Components¶
The project is split into eight repositories under the
secrets-bridge GitHub
organisation. Each one has a single responsibility; the dependency
direction is one-way and reviewable.
| Repo | Language | Holds |
|---|---|---|
core |
Go | Provider interface + connectors, shared types. Infra-free: no Postgres, no Redis. |
api |
Go (Fiber v3) | Control Plane API. Owns Postgres + Redis + the workflow/RBAC domain. |
worker |
Go | Background sweepers, the GitOps observation poller, periodic discovery scheduler. |
agent |
Go | Outbound-only execution agent. No Postgres / Redis dependency. |
controller |
Go (kubebuilder) | Kubernetes CRD reconciler. Receives the v0.1.0 operator. |
ui |
React + TS + Vite | SPA dashboard. No SSR. |
charts |
Helm / YAML | Deploy manifests for all components (in progress). |
docs |
mkdocs-material | This site. |
Dependency graph¶
flowchart LR
core["core<br/>provider interface +<br/>shared types"]
api["api<br/>Postgres + Redis<br/>workflow + audit"]
worker["worker<br/>sweepers + gitops"]
agent["agent<br/>outbound only"]
controller["controller<br/>K8s reconciler"]
ui["ui<br/>React SPA"]
charts["charts<br/>Helm bundle"]
api -->|"imports"| core
worker -->|"imports"| api
worker -->|"imports via pkg"| core
agent -->|"imports"| core
agent -.->|"HTTPS only"| api
controller -->|"imports"| core
ui -.->|"HTTPS only"| api
charts -.->|"deploys"| api
charts -.->|"deploys"| worker
charts -.->|"deploys"| agent
charts -.->|"deploys"| controller
charts -.->|"deploys"| ui
The forbidden edges:
agent→api/internal/storage(would pull Postgres into the workload network)agent→api/internal/runtime(would pull Redis)controller→api/pkg/storage(same reasoning)core→ anything that importsdatabase/sql/redis/*
CI in each repo greps go.sum to enforce these directions; the
build fails if a forbidden module path appears.