Update module URL

This commit is contained in:
Jonathon Leight
2026-08-09 09:33:47 -04:00
parent d502414fb5
commit 12624924a8
121 changed files with 221 additions and 220 deletions
+2 -2
View File
@@ -257,7 +257,7 @@ $ curl -s https://meshtender.com/version
"arch": "amd64",
"executableSHA256": "9f2c…",
"imageDigest": "sha256:a41b…",
"source": "https://github.com/jleight/meshtender",
"source": "https://github.com/MeshTender/MeshTender",
"license": "AGPL-3.0-only"
}
```
@@ -270,7 +270,7 @@ binary, which `commit` then lets you check.
Then rebuild that commit for that platform and compare digests:
```sh
git clone https://github.com/jleight/meshtender && cd meshtender
git clone https://github.com/MeshTender/MeshTender && cd MeshTender
git checkout 62e30036ee0bfb28f6c1a4a3f5ac5f4a52e4b1c9 # the commit /version reported
mise install # installs the pinned Go and ko
mise run image --platform linux/amd64 # the os/arch /version reported
+2 -2
View File
@@ -60,7 +60,7 @@ You must:
it is what the footer link on every page and the `/version` endpoint report, so
leaving it as ours would advertise source you are not running.
4. **Keep the attribution.** Say somewhere visible that your service is based on
MeshTender, with a link to <https://github.com/jleight/meshtender>. Copyright
MeshTender, with a link to <https://github.com/MeshTender/MeshTender>. Copyright
notices in the source stay as they are (AGPL §5(a)).
You may not imply that your instance is run, endorsed, reviewed, or supported by
@@ -77,7 +77,7 @@ the MeshTender project or its maintainer.
## Contact
For anything this file does not cover, including permission to use the name or
mark, ask first: <https://github.com/jleight/meshtender/issues>.
mark, ask first: <https://github.com/MeshTender/MeshTender/issues>.
Copyright © 2026 Jonathon Leight. All rights in the MeshTender name and marks are
reserved.
+2 -1
View File
@@ -31,7 +31,8 @@ import (
"strings"
"github.com/google/licensecheck"
"github.com/jleight/meshtender/internal/licenses"
"github.com/MeshTender/MeshTender/internal/licenses"
)
// minCoverage mirrors the threshold the package test uses.
+9 -9
View File
@@ -12,15 +12,15 @@ import (
"syscall"
"time"
"github.com/jleight/meshtender/internal/analytics"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/core"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/seed"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/analytics"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/core"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/seed"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
func main() {
+1 -1
View File
@@ -1,4 +1,4 @@
module github.com/jleight/meshtender
module github.com/MeshTender/MeshTender
// The exact toolchain is pinned with GOTOOLCHAIN (see .config/mise/config.toml
// and .woodpecker/build.yaml) rather than a `toolchain` directive, which Go
+3 -3
View File
@@ -16,9 +16,9 @@ import (
"strings"
"time"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
const (
+2 -2
View File
@@ -5,8 +5,8 @@ import (
"net/http/httptest"
"testing"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/web"
)
func testRecorder() *Recorder {
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"os"
"testing"
"github.com/jleight/meshtender/internal/testdb"
"github.com/MeshTender/MeshTender/internal/testdb"
)
// TestMain wires testdb's container teardown. The container only starts if a test
+3 -3
View File
@@ -5,9 +5,9 @@ import (
"testing"
"time"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/testdb"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/testdb"
)
func analyticsMigrate(dsn string) error {
+2 -2
View File
@@ -13,8 +13,8 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// passkeyView is display metadata for one registered passkey.
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"errors"
"net/http"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// Account deletion. The page's job is to make the consequences legible before
+2 -2
View File
@@ -12,8 +12,8 @@ import (
"strings"
"time"
mailer "github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/store"
mailer "github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/store"
)
// ErrTooManyEmails reports that an account has asked for more messages of one kind
+2 -2
View File
@@ -6,8 +6,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// Flash keys "em" (success) and "emerr" (failure) render inside the account page's
+2 -2
View File
@@ -11,8 +11,8 @@ import (
"github.com/go-webauthn/webauthn/protocol"
"github.com/go-webauthn/webauthn/webauthn"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// RequireUser is middleware that sends unauthenticated requests to the auth
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"net/http"
"net/url"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// SignupPassword handles a form-based account creation with a password.
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"net/http"
"time"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
// Re-authentication ("sudo mode"): proving, right now, that the person driving
+2 -2
View File
@@ -7,8 +7,8 @@ import (
"net/http"
"strings"
mailer "github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/store"
mailer "github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/store"
)
// ErrResetNotAllowed reports that a redeemed reset token can no longer be used to set
+2 -2
View File
@@ -7,8 +7,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// pageForgot renders the "forgot password" form.
+2 -2
View File
@@ -15,8 +15,8 @@ import (
"github.com/jackc/pgx/v5/pgxpool"
"golang.org/x/crypto/bcrypt"
"github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/store"
)
const (
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/go-webauthn/webauthn/webauthn"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// webauthnUser adapts a store.User plus its credentials to webauthn.User.
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
//go:embed templates/*.html
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"os"
"strings"
"github.com/jleight/meshtender/internal/buildinfo"
"github.com/MeshTender/MeshTender/internal/buildinfo"
)
// Config holds all runtime configuration for the server.
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestDeleteAccountPageShowsConsequences: the confirm page has to state what
+2 -2
View File
@@ -8,8 +8,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// requireCap is middleware that allows the request only if the current user
+1 -1
View File
@@ -3,7 +3,7 @@ package core
import (
"net/http"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
// The admin view of build provenance. It renders the same facts as the public
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"fmt"
"net/http"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// The CSP violation report view. Reports arrive at web.CSPReportPath on every host
+3 -3
View File
@@ -4,9 +4,9 @@ import (
"errors"
"net/http"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// The server-identity backup page. The identity is a 32-byte seed sealed under
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// identityAdmin spins up a server with a signed-in admin holding CapManageUsers.
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"net/http"
"time"
"github.com/jleight/meshtender/internal/analytics"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/analytics"
"github.com/MeshTender/MeshTender/internal/store"
)
// analyticsBar is one day's column in the traffic charts; heights are percentages
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"net/http"
"time"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// pageCommandLog shows the command audit log for a repeater (owner only),
+2 -2
View File
@@ -8,8 +8,8 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/buildinfo"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/buildinfo"
"github.com/MeshTender/MeshTender/internal/web"
)
// testDigest is a syntactically valid image digest for the fixture deployments.
+2 -2
View File
@@ -10,8 +10,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// pageOrgConfig renders an org's configuration read-only: a selected profile's
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// configCatalog reuses the resolver test catalog plus a risky command, so the
+3 -3
View File
@@ -9,9 +9,9 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/geo"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/geo"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// Regions are edited one at a time, split by what each part needs from the screen:
+2 -2
View File
@@ -7,8 +7,8 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/geo"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/geo"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestConfigRegionEditorSurfaces: the region attribute editor serves the modal
+1 -1
View File
@@ -3,7 +3,7 @@ package core
import (
"testing"
"github.com/jleight/meshtender/internal/geo"
"github.com/MeshTender/MeshTender/internal/geo"
)
func TestRegionGeofence(t *testing.T) {
+4 -4
View File
@@ -14,10 +14,10 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/meshcore-go/meshcore-go/hardware"
"github.com/jleight/meshtender/internal/mesh"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/jleight/meshtender/internal/wsbridge"
"github.com/MeshTender/MeshTender/internal/mesh"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
"github.com/MeshTender/MeshTender/internal/wsbridge"
)
const (
+2 -2
View File
@@ -5,8 +5,8 @@ import (
"net/http"
"strconv"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// consoleConfig is the JSON payload behind the console's "Apply organization
+2 -2
View File
@@ -8,8 +8,8 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/geo"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/geo"
"github.com/MeshTender/MeshTender/internal/store"
)
// cmdIDByKey resolves a catalog command's id by its key (test helper, via the
+3 -3
View File
@@ -16,9 +16,9 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/meshcore-go/meshcore-go/hardware"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestConsoleRoundTrip drives the command console end to end: the test plays the
+3 -3
View File
@@ -17,9 +17,9 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/meshcore-go/meshcore-go/hardware"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
func TestParseLocationFloat(t *testing.T) {
+3 -3
View File
@@ -17,9 +17,9 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/meshcore-go/meshcore-go/hardware"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestConsoleLoginConfirms drives the console's login/confirm-on-connect path
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// cmd builds a catalog entry; resolveCommand only reads Template and Arity, and
+3 -3
View File
@@ -16,9 +16,9 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/meshcore-go/meshcore-go/hardware"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestConsoleLoginRetry drops the first login (simulating a lost packet) and
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// postFetchSite issues a form POST carrying an explicit Sec-Fetch-Site header
+4 -4
View File
@@ -9,10 +9,10 @@ import (
"testing"
"time"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// cspServer stands up the full split-host server AND hands back the *Server, which
+4 -4
View File
@@ -8,10 +8,10 @@ import (
"testing"
"time"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/testdb"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/testdb"
)
// appLogin creates a user and returns it plus a live app-host session cookie,
+1 -1
View File
@@ -14,7 +14,7 @@ import (
"golang.org/x/crypto/bcrypt"
mailer "github.com/jleight/meshtender/internal/mail"
mailer "github.com/MeshTender/MeshTender/internal/mail"
)
// Black-box coverage for the optional account email: setting it, confirming it, and
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"golang.org/x/crypto/bcrypt"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// Black-box coverage for the auth host's non-visual POST endpoints: password
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// Black-box coverage for the org-management POST endpoints (create/edit/links/
+1 -1
View File
@@ -11,7 +11,7 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestCleanRepeaterName pins the firmware-derived byte bound: MeshCore stores a
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestFilterControlsPrecedeTheList pins audit U2 across every list page that has a
+4 -4
View File
@@ -8,10 +8,10 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
const (
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
var headingRe = regexp.MustCompile(`(?i)<h([1-6])\b`)
+2 -2
View File
@@ -9,8 +9,8 @@ import (
"testing"
"time"
"github.com/jleight/meshtender/internal/analytics"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/analytics"
"github.com/MeshTender/MeshTender/internal/store"
)
// fetchPage GETs a path on a host and returns its body, failing on non-200.
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"testing"
"time"
"github.com/jleight/meshtender/internal/auth"
"github.com/MeshTender/MeshTender/internal/auth"
)
// TestVerifyPasswordSpendsEqualTime is the test that actually guards the fix: it
+2 -2
View File
@@ -6,8 +6,8 @@ import (
"net/http/httptest"
"testing"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
)
// TestRevokedLoginLogsOut is the cross-host logout guarantee in miniature:
+3 -3
View File
@@ -8,9 +8,9 @@ import (
"strings"
"time"
"github.com/jleight/meshtender/internal/mesh"
"github.com/jleight/meshtender/internal/web"
"github.com/jleight/meshtender/internal/wsbridge"
"github.com/MeshTender/MeshTender/internal/mesh"
"github.com/MeshTender/MeshTender/internal/web"
"github.com/MeshTender/MeshTender/internal/wsbridge"
)
// Packet send tuning for the console's login/command exchanges. perTryReply is
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"strconv"
"strings"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// txtRecordName is the DNS label an org adds under its domain to prove ownership.
+1 -1
View File
@@ -3,7 +3,7 @@ package core
import (
"testing"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
func TestNormalizeHostname(t *testing.T) {
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// mapPoint mirrors the JSON shape the public map endpoint serves (store.MapPoint).
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// repeaterOrgContext resolves the {id} repeater (must be owned by the caller) and
+2 -2
View File
@@ -8,8 +8,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// orgID resolves the {id} URL param (a slug) to the internal int64 primary key.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/auth"
"github.com/MeshTender/MeshTender/internal/auth"
)
// TestPasswordFloorAppliesOnlyWhenSetting is the guarantee behind raising the
+2 -2
View File
@@ -9,8 +9,8 @@ import (
"strings"
"testing"
mailer "github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/store"
mailer "github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/store"
)
// Black-box coverage for the password-reset flow: /forgot and /reset/{token}.
+1 -1
View File
@@ -1,6 +1,6 @@
package core
import "github.com/jleight/meshtender/internal/config"
import "github.com/MeshTender/MeshTender/internal/config"
// RadioPreset is a convenience set of LoRa parameters for a MeshCore region,
// offered in the add-repeater form. They are starting points — regions vary and
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"sort"
"strings"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
// proxyHeaders are the forwarding-related headers worth surfacing first when
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"strings"
"time"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/web"
)
// This file backs the repeater "registry" tabs: site Documentation (public and
+2 -2
View File
@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/web"
)
// TestBuildPagesComposeAndExecute verifies every content page is pre-built with
+2 -2
View File
@@ -10,8 +10,8 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// The "set up from scratch over USB serial" path of the add-repeater wizard.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// jsonPost issues a JSON POST with an explicit Host header and cookies.
+3 -3
View File
@@ -12,9 +12,9 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// setupOrgOption is an org the user belongs to, with the names of its config
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestRootOrgDirectoryLoadMore verifies the directory's htmx "load more": the
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestSharePageShowsInviteExpiry checks how the share page presents link expiry to
+2 -2
View File
@@ -10,8 +10,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// inviteTTLDays is store.InviteTTL in whole days, for the owner-facing and
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"net/http/httptest"
"testing"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/web"
)
// TestAbsoluteURLIgnoresForwardedProto: the share-link base URL takes its scheme
+2 -2
View File
@@ -5,8 +5,8 @@ import (
"net/http"
"strconv"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// Ownership transfer hands a repeater to one of its stewards — the co-maintainers
+7 -7
View File
@@ -13,13 +13,13 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/buildinfo"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/marketing"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/buildinfo"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/marketing"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
//go:embed templates/*.html
+3 -3
View File
@@ -13,9 +13,9 @@ import (
"github.com/coder/websocket"
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestConsoleWebSocketOutlivesServerReadTimeout pins the one thing audit O1's server
+3 -3
View File
@@ -14,9 +14,9 @@ import (
"github.com/coder/websocket"
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/identity"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/identity"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestDrainWebSockets: an active console WebSocket is closed and its handler
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// waitForUserGone polls until the account is gone, so the assertion doesn't race
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestAnalyticsKindCards drives the traffic dashboard in a real browser after
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EConfigProfileSelect: the profile list on the Configuration page selects a
+2 -2
View File
@@ -9,8 +9,8 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/geo"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/geo"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EConsoleConfigPanel drives the "Apply organization configuration" panel:
+1 -1
View File
@@ -14,7 +14,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// contrastProbe measures the WCAG contrast ratio of every visible piece of text on the
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// flushCSP drains whatever the collector has queued into the database, the same way
+1 -1
View File
@@ -22,7 +22,7 @@ import (
func TestFooterSourceLinkOnEverySurface(t *testing.T) {
srv := newE2EServer(t)
const wantHref = "https://github.com/jleight/meshtender"
const wantHref = "https://github.com/MeshTender/MeshTender"
for _, tc := range []struct {
name string
+7 -7
View File
@@ -50,13 +50,13 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"golang.org/x/crypto/bcrypt"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/config"
"github.com/jleight/meshtender/internal/core"
"github.com/jleight/meshtender/internal/identity"
mailer "github.com/jleight/meshtender/internal/mail"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/testdb"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/config"
"github.com/MeshTender/MeshTender/internal/core"
"github.com/MeshTender/MeshTender/internal/identity"
mailer "github.com/MeshTender/MeshTender/internal/mail"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/testdb"
)
// TestMain manages the shared testdb container/template for the whole package.
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"github.com/chromedp/chromedp"
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EOrgPublicMap renders the public org Repeaters map in a real browser and
+2 -2
View File
@@ -12,8 +12,8 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/geo"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/geo"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2ERegionModalSave: an admin adds a region from the Configuration page — the
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EInviteExpiryBadges renders the share page with one live and one expired
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2ECreateInviteModal drives the share page's "Create single-use link"
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EShareOrgLimitsModal drives the share page's per-org "Edit limits" modal:
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EPersonAccessModal drives the People-with-access "Manage access" button:
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"github.com/chromedp/chromedp"
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EUserPublicLinks renders a public profile in a real browser and checks
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"github.com/chromedp/cdproto/webauthn"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// virtualAuthenticator enables the WebAuthn CDP domain and installs a virtual
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// TestE2EWizardManageAccessModal verifies the add-repeater wizard's final step
+1 -1
View File
@@ -8,7 +8,7 @@ import (
meshcore "github.com/meshcore-go/meshcore-go"
"github.com/jleight/meshtender/internal/store"
"github.com/MeshTender/MeshTender/internal/store"
)
// Service holds the loaded server-wide MeshCore identity.
+2 -2
View File
@@ -11,8 +11,8 @@ import (
"github.com/go-chi/chi/v5"
"github.com/jleight/meshtender/internal/auth"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/auth"
"github.com/MeshTender/MeshTender/internal/web"
)
//go:embed templates/*.html
+2 -2
View File
@@ -5,8 +5,8 @@ import (
"strings"
"time"
"github.com/jleight/meshtender/internal/store"
"github.com/jleight/meshtender/internal/web"
"github.com/MeshTender/MeshTender/internal/store"
"github.com/MeshTender/MeshTender/internal/web"
)
// pageOrgs is the public organization directory. It renders anonymously — the

Some files were not shown because too many files have changed in this diff Show More