This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/server/handlers/dependencies.go
Jeffrey Smith f0dd43144e rebrand: Switchboard Core → Armature
- 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>
2026-03-31 21:39:58 +00:00

70 lines
2.0 KiB
Go

package handlers
import (
"net/http"
"github.com/gin-gonic/gin"
"armature/models"
)
// ── Extension Dependencies ──────────────────
// Admin-only read endpoints for dependency graph visibility.
// Dependencies are created/deleted implicitly by InstallPackage/DeletePackage.
// ListDependencies returns all libraries that a package depends on.
// GET /api/v1/admin/packages/:id/dependencies
func (h *PackageHandler) ListDependencies(c *gin.Context) {
id := c.Param("id")
if h.stores.Dependencies == nil {
c.JSON(http.StatusOK, gin.H{"data": []any{}})
return
}
deps, err := h.stores.Dependencies.ListByConsumer(c.Request.Context(), id)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to list dependencies"})
return
}
if deps == nil {
deps = []models.ExtDependency{}
}
c.JSON(http.StatusOK, gin.H{"data": deps})
}
// ListConsumers returns all packages that depend on a library.
// GET /api/v1/admin/packages/:id/consumers
func (h *PackageHandler) ListConsumers(c *gin.Context) {
id := c.Param("id")
if h.stores.Dependencies == nil {
c.JSON(http.StatusOK, gin.H{"data": []any{}})
return
}
deps, err := h.stores.Dependencies.ListByLibrary(c.Request.Context(), id)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to list consumers"})
return
}
if deps == nil {
deps = []models.ExtDependency{}
}
c.JSON(http.StatusOK, gin.H{"data": deps})
}
// ListAllDependencies returns the full dependency graph.
// GET /api/v1/admin/dependencies
func (h *PackageHandler) ListAllDependencies(c *gin.Context) {
if h.stores.Dependencies == nil {
c.JSON(http.StatusOK, gin.H{"data": []any{}})
return
}
deps, err := h.stores.Dependencies.ListAll(c.Request.Context())
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to list dependencies"})
return
}
if deps == nil {
deps = []models.ExtDependency{}
}
c.JSON(http.StatusOK, gin.H{"data": deps})
}