chore: strip pre-fork version comments across 72 files
Removes standalone "// v0.X.X:" comment lines and inline trailing version annotations. Keeps version references in config field docs and compatibility notes where they describe requirements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,7 +36,6 @@ import (
|
||||
sqliteStore "switchboard-core/store/sqlite"
|
||||
)
|
||||
|
||||
// v0.33.0: Embedded OpenAPI spec and Swagger UI for /api/docs.
|
||||
//
|
||||
//go:embed static/openapi.yaml
|
||||
var openapiSpec []byte
|
||||
@@ -106,7 +105,6 @@ func main() {
|
||||
stores = postgres.NewStores(database.DB)
|
||||
}
|
||||
|
||||
// v0.33.0: Start Prometheus DB pool collector
|
||||
metrics.StartDBCollector(database.DB, 15*time.Second)
|
||||
|
||||
// Bootstrap admin from env (K8s secret) — upserts on every restart
|
||||
@@ -158,17 +156,12 @@ func main() {
|
||||
sandbox.New(sandbox.DefaultConfig()),
|
||||
stores,
|
||||
)
|
||||
// v0.38.1: connections module — extension connection resolution
|
||||
starlarkRunner.SetConnectionResolver(handlers.NewConnectionResolverAdapter(stores, keyResolver))
|
||||
// v0.29.2: db module — extension namespaced table access
|
||||
starlarkRunner.SetDB(database.DB, database.IsPostgres())
|
||||
// v0.38.0: disk-based script loading + load() support
|
||||
if cfg.StoragePath != "" {
|
||||
starlarkRunner.SetPackagesDir(cfg.StoragePath + "/packages")
|
||||
}
|
||||
// v0.5.0: realtime module — extension publish to WebSocket channels
|
||||
starlarkRunner.SetBus(bus)
|
||||
// v0.38.5: allow extensions to reach private IPs (self-hosted Gitea, etc.)
|
||||
if os.Getenv("EXT_ALLOW_PRIVATE_IPS") == "true" {
|
||||
starlarkRunner.SetAllowPrivateIPs(true)
|
||||
log.Printf(" ⚠️ Extension SSRF protection relaxed: private IPs allowed")
|
||||
@@ -274,7 +267,6 @@ func main() {
|
||||
c.JSON(200, info)
|
||||
})
|
||||
|
||||
// v0.32.0: Kubernetes probe endpoints
|
||||
// Liveness: process is alive and serving (no dependency checks).
|
||||
base.GET("/healthz/live", func(c *gin.Context) {
|
||||
c.JSON(200, gin.H{"status": "ok"})
|
||||
@@ -296,10 +288,8 @@ func main() {
|
||||
c.JSON(200, gin.H{"status": "ok"})
|
||||
})
|
||||
|
||||
// v0.33.0: Prometheus metrics endpoint (no auth — Prometheus scrapes directly)
|
||||
base.GET("/metrics", gin.WrapH(promhttp.Handler()))
|
||||
|
||||
// v0.33.0: OpenAPI spec + Swagger UI (no auth — documentation)
|
||||
base.GET("/api/docs", func(c *gin.Context) {
|
||||
c.Data(http.StatusOK, "text/html; charset=utf-8", swaggerHTML)
|
||||
})
|
||||
@@ -308,7 +298,6 @@ func main() {
|
||||
patched := bytes.Replace(openapiSpec, []byte("${VERSION}"), []byte(Version), 1)
|
||||
c.Data(http.StatusOK, "application/yaml", patched)
|
||||
})
|
||||
// v0.6.2: Dynamic OpenAPI spec with extension routes merged in
|
||||
base.GET("/api/docs/openapi.json", func(c *gin.Context) {
|
||||
spec, err := handlers.BuildOpenAPISpec(stores, openapiSpec, Version)
|
||||
if err != nil {
|
||||
@@ -501,7 +490,7 @@ func main() {
|
||||
connTypeH := handlers.NewConnectionTypeHandler(stores)
|
||||
protected.GET("/connection-types", connTypeH.ListConnectionTypes)
|
||||
|
||||
// Extension Connections (personal scope — v0.38.1)
|
||||
// Extension Connections (personal scope
|
||||
connH := handlers.NewConnectionHandler(stores, keyResolver)
|
||||
protected.GET("/connections", connH.ListConnections)
|
||||
protected.POST("/connections", connH.CreateConnection)
|
||||
@@ -559,7 +548,7 @@ func main() {
|
||||
teams := handlers.NewTeamHandler(stores, keyResolver)
|
||||
protected.GET("/teams/mine", teams.MyTeams)
|
||||
|
||||
// Groups (user: my groups — v0.16.0)
|
||||
// Groups (user: my groups
|
||||
groupH := handlers.NewGroupHandler(stores)
|
||||
protected.GET("/groups/mine", groupH.MyGroups)
|
||||
|
||||
@@ -697,7 +686,7 @@ func main() {
|
||||
admin.GET("/audit", adm.ListAuditLog)
|
||||
admin.GET("/audit/actions", adm.ListAuditActions)
|
||||
|
||||
// Groups (admin — v0.16.0)
|
||||
// Groups (admin
|
||||
groupAdm := handlers.NewGroupHandler(stores)
|
||||
admin.GET("/groups", groupAdm.ListGroups)
|
||||
admin.POST("/groups", groupAdm.CreateGroup)
|
||||
@@ -712,7 +701,7 @@ func main() {
|
||||
admin.GET("/permissions", groupAdm.ListPermissions)
|
||||
admin.GET("/users/:id/permissions", groupAdm.GetUserPermissions)
|
||||
|
||||
// Resource Grants (admin — v0.16.0)
|
||||
// Resource Grants (admin
|
||||
admin.GET("/grants/:type/:id", groupAdm.GetResourceGrant)
|
||||
admin.PUT("/grants/:type/:id", groupAdm.SetResourceGrant)
|
||||
|
||||
@@ -736,7 +725,7 @@ func main() {
|
||||
admin.PUT("/extensions/:id", extAdm.AdminUpdateExtension)
|
||||
admin.DELETE("/extensions/:id", extAdm.AdminUninstallExtension)
|
||||
|
||||
// Extension permissions (admin — v0.29.0)
|
||||
// Extension permissions (admin
|
||||
extPermH := handlers.NewExtPermHandler(stores)
|
||||
admin.GET("/extensions/:id/permissions", extPermH.ListPackagePermissions)
|
||||
admin.GET("/extensions/:id/review", extPermH.ReviewPackage)
|
||||
@@ -744,7 +733,7 @@ func main() {
|
||||
admin.POST("/extensions/:id/permissions/:perm/revoke", extPermH.RevokePermission)
|
||||
admin.POST("/extensions/:id/permissions/grant-all", extPermH.GrantAllPermissions)
|
||||
|
||||
// Extension secrets (admin — v0.29.0 CS3)
|
||||
// Extension secrets (admin
|
||||
extSecH := handlers.NewExtSecretsHandler(stores)
|
||||
admin.GET("/extensions/:id/secrets", extSecH.GetSecrets)
|
||||
admin.PUT("/extensions/:id/secrets", extSecH.SetSecrets)
|
||||
@@ -756,7 +745,7 @@ func main() {
|
||||
packagesDir = cfg.StoragePath + "/packages"
|
||||
}
|
||||
pkgAdm := handlers.NewPackageHandler(stores, packagesDir)
|
||||
pkgAdm.SetSandbox(sandbox.New(sandbox.DefaultConfig())) // v0.30.0: schema migrations
|
||||
pkgAdm.SetSandbox(sandbox.New(sandbox.DefaultConfig()))
|
||||
|
||||
// Package registry — must be registered before /packages/:id (v0.30.0)
|
||||
registryH := handlers.NewRegistryHandler(stores, packagesDir, pkgAdm)
|
||||
@@ -769,14 +758,14 @@ func main() {
|
||||
admin.PUT("/packages/:id/enable", pkgAdm.EnablePackage)
|
||||
admin.PUT("/packages/:id/disable", pkgAdm.DisablePackage)
|
||||
admin.DELETE("/packages/:id", pkgAdm.DeletePackage)
|
||||
admin.GET("/packages/:id/settings", pkgAdm.GetPackageSettings) // v0.30.0
|
||||
admin.PUT("/packages/:id/settings", pkgAdm.UpdatePackageSettings) // v0.30.0
|
||||
admin.GET("/packages/:id/dependencies", pkgAdm.ListDependencies) // v0.38.2
|
||||
admin.GET("/packages/:id/consumers", pkgAdm.ListConsumers) // v0.38.2
|
||||
admin.POST("/packages/:id/test-tool", pkgAdm.TestTool) // v0.38.2
|
||||
admin.POST("/packages/:id/update", pkgAdm.UpdatePackage) // v0.5.4
|
||||
admin.GET("/packages/:id/export", pkgAdm.ExportPackage) // v0.5.4
|
||||
admin.GET("/dependencies", pkgAdm.ListAllDependencies) // v0.38.2
|
||||
admin.GET("/packages/:id/settings", pkgAdm.GetPackageSettings)
|
||||
admin.PUT("/packages/:id/settings", pkgAdm.UpdatePackageSettings)
|
||||
admin.GET("/packages/:id/dependencies", pkgAdm.ListDependencies)
|
||||
admin.GET("/packages/:id/consumers", pkgAdm.ListConsumers)
|
||||
admin.POST("/packages/:id/test-tool", pkgAdm.TestTool)
|
||||
admin.POST("/packages/:id/update", pkgAdm.UpdatePackage)
|
||||
admin.GET("/packages/:id/export", pkgAdm.ExportPackage)
|
||||
admin.GET("/dependencies", pkgAdm.ListAllDependencies)
|
||||
|
||||
// Workflow package export (v0.30.2)
|
||||
wfPkgH := handlers.NewWorkflowPackageHandler(stores)
|
||||
@@ -825,9 +814,7 @@ func main() {
|
||||
}
|
||||
|
||||
// ── Page Routes ──────────────────────────
|
||||
// v0.27.0: Extension surface static assets (JS, CSS, images).
|
||||
// Served without auth — same rationale as extension assets (script tags can't send headers).
|
||||
// v0.28.7: on-disk path moved to /data/packages/, URL stays /surfaces/:id/ for stability.
|
||||
// In split deployment, nginx serves these from /data/packages/ directly.
|
||||
if cfg.StoragePath != "" {
|
||||
packagesStaticDir := cfg.StoragePath + "/packages"
|
||||
@@ -853,7 +840,6 @@ func main() {
|
||||
// Login page — no auth required
|
||||
base.GET("/login", pageEngine.RenderLogin())
|
||||
|
||||
// v0.25.0: Surface routes generated from manifest registry.
|
||||
// Replaces manual per-surface route blocks.
|
||||
pageEngine.RegisterPageRoutes(base, pages.PageRouteMiddleware{
|
||||
Authenticated: middleware.AuthOrRedirect(cfg, stores.Users, userCache),
|
||||
@@ -864,7 +850,6 @@ func main() {
|
||||
Session: middleware.AuthOrRedirect(cfg, stores.Users, userCache), // TODO: session middleware for workflow visitors (v0.2.0)
|
||||
})
|
||||
|
||||
// v0.29.1: Extension API routes — Starlark packages serve JSON endpoints.
|
||||
// Mounted at /s/:slug/api/* with JWT auth (returns 401, not redirect).
|
||||
{
|
||||
extAPIH := handlers.NewExtAPIHandler(stores, starlarkRunner)
|
||||
|
||||
Reference in New Issue
Block a user