fix: align webhook regenerate route with frontend path
This commit is contained in:
@@ -177,7 +177,7 @@ func (s *Server) Router() chi.Router {
|
|||||||
r.Get("/settings", s.getSettings)
|
r.Get("/settings", s.getSettings)
|
||||||
r.Put("/settings", s.updateSettings)
|
r.Put("/settings", s.updateSettings)
|
||||||
r.Get("/settings/webhook-url", s.getWebhookURL)
|
r.Get("/settings/webhook-url", s.getWebhookURL)
|
||||||
r.Post("/settings/regenerate", s.regenerateWebhookSecret)
|
r.Post("/settings/webhook-url/regenerate", s.regenerateWebhookSecret)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ type Registry struct {
|
|||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
Token string `json:"token"`
|
Token string `json:"token"`
|
||||||
|
Owner string `json:"owner"`
|
||||||
CreatedAt string `json:"created_at"`
|
CreatedAt string `json:"created_at"`
|
||||||
UpdatedAt string `json:"updated_at"`
|
UpdatedAt string `json:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ func (s *Store) CreateRegistry(r Registry) (Registry, error) {
|
|||||||
r.UpdatedAt = r.CreatedAt
|
r.UpdatedAt = r.CreatedAt
|
||||||
|
|
||||||
_, err := s.db.Exec(
|
_, err := s.db.Exec(
|
||||||
`INSERT INTO registries (id, name, url, type, token, created_at, updated_at)
|
`INSERT INTO registries (id, name, url, type, token, owner, created_at, updated_at)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)`,
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
r.ID, r.Name, r.URL, r.Type, r.Token, r.CreatedAt, r.UpdatedAt,
|
r.ID, r.Name, r.URL, r.Type, r.Token, r.Owner, r.CreatedAt, r.UpdatedAt,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Registry{}, fmt.Errorf("insert registry: %w", err)
|
return Registry{}, fmt.Errorf("insert registry: %w", err)
|
||||||
@@ -29,9 +29,9 @@ func (s *Store) CreateRegistry(r Registry) (Registry, error) {
|
|||||||
func (s *Store) GetRegistryByID(id string) (Registry, error) {
|
func (s *Store) GetRegistryByID(id string) (Registry, error) {
|
||||||
var r Registry
|
var r Registry
|
||||||
err := s.db.QueryRow(
|
err := s.db.QueryRow(
|
||||||
`SELECT id, name, url, type, token, created_at, updated_at
|
`SELECT id, name, url, type, token, owner, created_at, updated_at
|
||||||
FROM registries WHERE id = ?`, id,
|
FROM registries WHERE id = ?`, id,
|
||||||
).Scan(&r.ID, &r.Name, &r.URL, &r.Type, &r.Token, &r.CreatedAt, &r.UpdatedAt)
|
).Scan(&r.ID, &r.Name, &r.URL, &r.Type, &r.Token, &r.Owner, &r.CreatedAt, &r.UpdatedAt)
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
return Registry{}, fmt.Errorf("registry %s: %w", id, ErrNotFound)
|
return Registry{}, fmt.Errorf("registry %s: %w", id, ErrNotFound)
|
||||||
}
|
}
|
||||||
@@ -45,9 +45,9 @@ func (s *Store) GetRegistryByID(id string) (Registry, error) {
|
|||||||
func (s *Store) GetRegistryByName(name string) (Registry, error) {
|
func (s *Store) GetRegistryByName(name string) (Registry, error) {
|
||||||
var r Registry
|
var r Registry
|
||||||
err := s.db.QueryRow(
|
err := s.db.QueryRow(
|
||||||
`SELECT id, name, url, type, token, created_at, updated_at
|
`SELECT id, name, url, type, token, owner, created_at, updated_at
|
||||||
FROM registries WHERE name = ?`, name,
|
FROM registries WHERE name = ?`, name,
|
||||||
).Scan(&r.ID, &r.Name, &r.URL, &r.Type, &r.Token, &r.CreatedAt, &r.UpdatedAt)
|
).Scan(&r.ID, &r.Name, &r.URL, &r.Type, &r.Token, &r.Owner, &r.CreatedAt, &r.UpdatedAt)
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
return Registry{}, fmt.Errorf("registry %q: %w", name, ErrNotFound)
|
return Registry{}, fmt.Errorf("registry %q: %w", name, ErrNotFound)
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-3
@@ -56,10 +56,28 @@ func (s *Store) DB() *sql.DB {
|
|||||||
return s.db
|
return s.db
|
||||||
}
|
}
|
||||||
|
|
||||||
// migrate creates all tables if they do not already exist.
|
// migrate creates all tables if they do not already exist, then runs
|
||||||
|
// incremental migrations for schema changes added after initial release.
|
||||||
func (s *Store) migrate() error {
|
func (s *Store) migrate() error {
|
||||||
_, err := s.db.Exec(schema)
|
if _, err := s.db.Exec(schema); err != nil {
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
return s.runMigrations()
|
||||||
|
}
|
||||||
|
|
||||||
|
// runMigrations applies additive schema changes that cannot be expressed
|
||||||
|
// with CREATE TABLE IF NOT EXISTS.
|
||||||
|
func (s *Store) runMigrations() error {
|
||||||
|
migrations := []string{
|
||||||
|
// Add owner column to registries (2026-03-28).
|
||||||
|
`ALTER TABLE registries ADD COLUMN owner TEXT NOT NULL DEFAULT ''`,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, m := range migrations {
|
||||||
|
// Ignore errors from already-applied migrations (duplicate column).
|
||||||
|
_, _ = s.db.Exec(m)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
const schema = `
|
const schema = `
|
||||||
|
|||||||
Reference in New Issue
Block a user