- Rename Go module switchboard-core → armature (155+ files) - Rename Docker image → gobha/armature - Rename K8s resources, secrets, deployments - Rename Prometheus metrics switchboard_* → armature_* - Rename env vars SWITCHBOARD_ADMIN_* → ARMATURE_ADMIN_* - Rename DB names switchboard_core* → armature* - Update all frontend branding, notification templates, docs - Update CI scripts, e2e tests, Keycloak realm, nginx conf - Rename scripts/switchboard-ca.sh → scripts/armature-ca.sh - Rename k8s/switchboard.yaml → k8s/armature.yaml - Rename chart alerting/dashboard files - Fix: DockerHub push uses env: binding for secret injection - Helm chart updated (name, labels, template functions, dashboard, alerting) - Replace favicon/icon assets with Armature brand No functional changes. Pure mechanical rename + CI fix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
|
|
"armature/models"
|
|
)
|
|
|
|
// ExtensionPermissionStore manages declared and granted permissions for packages.
|
|
type ExtensionPermissionStore interface {
|
|
// DeclareForPackage upserts the declared permissions from a manifest.
|
|
// Any permissions in the DB for this package that are NOT in the
|
|
// provided list are deleted (manifest is the source of truth).
|
|
// Existing grants are preserved on upsert.
|
|
DeclareForPackage(ctx context.Context, packageID string, permissions []string) error
|
|
|
|
// ListForPackage returns all declared permissions for a package.
|
|
ListForPackage(ctx context.Context, packageID string) ([]models.ExtensionPermission, error)
|
|
|
|
// GrantedForPackage returns only granted permissions for a package.
|
|
// Used at runtime to determine which modules to inject.
|
|
GrantedForPackage(ctx context.Context, packageID string) ([]string, error)
|
|
|
|
// Grant marks a permission as granted by an admin.
|
|
Grant(ctx context.Context, packageID, permission, grantedBy string) error
|
|
|
|
// Revoke removes a grant (sets granted=false).
|
|
Revoke(ctx context.Context, packageID, permission string) error
|
|
|
|
// GrantAll grants all declared permissions for a package.
|
|
GrantAll(ctx context.Context, packageID, grantedBy string) error
|
|
|
|
// DeleteForPackage removes all permission rows for a package.
|
|
// Called when a package is uninstalled.
|
|
DeleteForPackage(ctx context.Context, packageID string) error
|
|
}
|