change Go module path to gosuda.org/portal/v2

Kim committed Mar 6, 2026 at 18:19 UTC 105f5ca26c27058d1d91974ce41ddabf1d52f167
18 files changed +34 -34
AGENTS.md
+1 -1
@@ -96,7 +96,7 @@ Descriptive docs under `docs/` should match current code paths.
96
97 ## Go Conventions
98
99 -**Imports:** stdlib -> external -> internal (blank-line separated), local prefix `gosuda.org/portal`.
99 +**Imports:** stdlib -> external -> internal (blank-line separated), local prefix `gosuda.org/portal/v2`.
100 **Concurrency:** `errgroup.Group` over `WaitGroup`; `errgroup.SetLimit` for bounded work; `context.WithTimeout` over `time.After` in loops; no bare `go func()` without owned lifecycle.
101 **I/O:** prefer directory-scoped operations when touching filesystem trees.
102
cmd/demo-app/main.go
+2 -2
@@ -20,8 +20,8 @@ import (
20 "github.com/rs/zerolog/log"
21 "golang.org/x/net/websocket"
22
23 - "gosuda.org/portal/sdk"
24 - "gosuda.org/portal/types"
23 + "gosuda.org/portal/v2/sdk"
24 + "gosuda.org/portal/v2/types"
25 )
26
27 //go:embed static
cmd/portal-tunnel/main.go
+2 -2
@@ -15,8 +15,8 @@ import (
15 "github.com/rs/zerolog"
16 "github.com/rs/zerolog/log"
17
18 - "gosuda.org/portal/sdk"
19 - "gosuda.org/portal/types"
18 + "gosuda.org/portal/v2/sdk"
19 + "gosuda.org/portal/v2/types"
20 )
21
22 var (
cmd/portal-tunnel/relays.go
+1 -1
@@ -14,7 +14,7 @@ import (
14
15 "github.com/rs/zerolog/log"
16
17 - "gosuda.org/portal/sdk"
17 + "gosuda.org/portal/v2/sdk"
18 )
19
20 type relayRuntime struct {
cmd/relay-server/frontend.go
+2 -2
@@ -11,8 +11,8 @@ import (
11 "strings"
12 "sync"
13
14 - "gosuda.org/portal/portal"
15 - "gosuda.org/portal/portal/admin"
14 + "gosuda.org/portal/v2/portal"
15 + "gosuda.org/portal/v2/portal/admin"
16 )
17
18 type readDirFileFS interface {
cmd/relay-server/serve.go
+8 -8
@@ -11,12 +11,12 @@ import (
11
12 "github.com/rs/zerolog/log"
13
14 - "gosuda.org/portal/portal"
15 - "gosuda.org/portal/portal/acme"
16 - portaladmin "gosuda.org/portal/portal/admin"
17 - "gosuda.org/portal/portal/keyless"
18 - "gosuda.org/portal/portal/policy"
19 - "gosuda.org/portal/types"
14 + "gosuda.org/portal/v2/portal"
15 + "gosuda.org/portal/v2/portal/acme"
16 + "gosuda.org/portal/v2/portal/admin"
17 + "gosuda.org/portal/v2/portal/keyless"
18 + "gosuda.org/portal/v2/portal/policy"
19 + "gosuda.org/portal/v2/types"
20 )
21
22 func runServer(cfg relayServerConfig) error {
@@ -56,7 +56,7 @@ func runServer(cfg relayServerConfig) error {
56 }
57
58 frontend := NewFrontend(cfg.PortalURL)
59 - adminHandler := portaladmin.NewHandler(cfg.PortalURL, cfg.AdminSecretKey, "admin_settings.json", cfg.TrustProxyHeaders, func(w http.ResponseWriter, r *http.Request, appPath string) {
59 + adminHandler := admin.NewHandler(cfg.PortalURL, cfg.AdminSecretKey, "admin_settings.json", cfg.TrustProxyHeaders, func(w http.ResponseWriter, r *http.Request, appPath string) {
60 frontend.ServeAppStatic(w, r, appPath)
61 })
62 if loadErr := adminHandler.LoadSettings(); loadErr != nil {
@@ -106,7 +106,7 @@ func runServer(cfg relayServerConfig) error {
106 return server.Wait()
107 }
108
109 -func serveAPI(frontend *Frontend, adminHandler *portaladmin.Handler, cfg relayServerConfig) func(http.Handler) http.Handler {
109 +func serveAPI(frontend *Frontend, adminHandler *admin.Handler, cfg relayServerConfig) func(http.Handler) http.Handler {
110 return func(base http.Handler) http.Handler {
111 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
112 switch {
go.mod
+1 -1
@@ -1,4 +1,4 @@
1 -module gosuda.org/portal
1 +module gosuda.org/portal/v2
2
3 go 1.26.0
4
portal/admin/handler.go
+3 -3
@@ -7,9 +7,9 @@ import (
7 "net/http"
8 "strings"
9
10 - "gosuda.org/portal/portal"
11 - "gosuda.org/portal/portal/policy"
12 - "gosuda.org/portal/types"
10 + "gosuda.org/portal/v2/portal"
11 + "gosuda.org/portal/v2/portal/policy"
12 + "gosuda.org/portal/v2/types"
13 )
14
15 const cookieName = "portal_admin"
portal/admin/handler_test.go
+2 -2
@@ -8,8 +8,8 @@ import (
8 "path/filepath"
9 "testing"
10
11 - "gosuda.org/portal/portal/policy"
12 - "gosuda.org/portal/types"
11 + "gosuda.org/portal/v2/portal/policy"
12 + "gosuda.org/portal/v2/types"
13 )
14
15 func TestLoginAndProtectedActions(t *testing.T) {
portal/admin/rows.go
+1 -1
@@ -6,7 +6,7 @@ import (
6 "strings"
7 "time"
8
9 - "gosuda.org/portal/portal"
9 + "gosuda.org/portal/v2/portal"
10 )
11
12 const staleLeaseHideWindow = 3 * time.Minute
portal/admin/state.go
+1 -1
@@ -6,7 +6,7 @@ import (
6 "os"
7 "path/filepath"
8
9 - "gosuda.org/portal/portal/policy"
9 + "gosuda.org/portal/v2/portal/policy"
10 )
11
12 type stateStore struct {
portal/admin/state_test.go
+1 -1
@@ -5,7 +5,7 @@ import (
5 "path/filepath"
6 "testing"
7
8 - "gosuda.org/portal/portal/policy"
8 + "gosuda.org/portal/v2/portal/policy"
9 )
10
11 func TestStateStoreRoundTrip(t *testing.T) {
portal/broker.go
+1 -1
@@ -10,7 +10,7 @@ import (
10
11 "github.com/rs/zerolog/log"
12
13 - "gosuda.org/portal/types"
13 + "gosuda.org/portal/v2/types"
14 )
15
16 var (
portal/broker_test.go
+1 -1
@@ -7,7 +7,7 @@ import (
7 "testing"
8 "time"
9
10 - "gosuda.org/portal/types"
10 + "gosuda.org/portal/v2/types"
11 )
12
13 func TestLeaseBrokerClaimActivatesTLSMarker(t *testing.T) {
portal/helpers.go
+1 -1
@@ -9,7 +9,7 @@ import (
9 "strings"
10 "time"
11
12 - "gosuda.org/portal/types"
12 + "gosuda.org/portal/v2/types"
13 )
14
15 const (
portal/server.go
+3 -3
@@ -18,9 +18,9 @@ import (
18 "golang.org/x/sync/errgroup"
19
20 "github.com/gosuda/keyless_tls/relay/l4"
21 - "gosuda.org/portal/portal/keyless"
22 - "gosuda.org/portal/portal/policy"
23 - "gosuda.org/portal/types"
21 + "gosuda.org/portal/v2/portal/keyless"
22 + "gosuda.org/portal/v2/portal/policy"
23 + "gosuda.org/portal/v2/types"
24 )
25
26 type ServerConfig struct {
sdk/client.go
+2 -2
@@ -18,8 +18,8 @@ import (
18 "strings"
19 "time"
20
21 - "gosuda.org/portal/portal/keyless"
22 - "gosuda.org/portal/types"
21 + "gosuda.org/portal/v2/portal/keyless"
22 + "gosuda.org/portal/v2/types"
23 )
24
25 type ClientConfig struct {
sdk/listener.go
+1 -1
@@ -10,7 +10,7 @@ import (
10 "sync"
11 "time"
12
13 - "gosuda.org/portal/types"
13 + "gosuda.org/portal/v2/types"
14 )
15
16 type ListenRequest struct {