ba8a3360cc83cad0bbb6949d3f7533c90880627e
The go.work file enables workspace mode, which only allows -mod=readonly or -mod=vendor. -mod=mod fails the build with: go: -mod may only be set to readonly or vendor when in workspace mode Drop the GOFLAGS line and let workspace mode pick the default (readonly). Update go.work.sum to track module checksums.
Sandbox Deployment Platform (SDP)
Internal deployment platform for Backend/QA. Lets a developer deploy a feature branch into an isolated sandbox, with the API Gateway routing selected services to the sandbox and the rest to OCP. See REQUIREMENTS.md for the full spec.
Layout
.
├── protocol/ # shared wire types (Event, DeployRequest)
├── control-plane/ # Go. HTTP API + WS hub + SQLite/.log persistence
├── agent-micro/ # Go. Runs on 172.18.136.92, deploys Go microservices
├── agent-gateway/ # Go. Runs on 172.18.139.186, deploys the API Gateway
├── dashboard/ # NextJS static export, served by nginx
└── nginx/ # reverse proxy + try_files for the dashboard
End-to-end smoke (manual)
Prereqs: Go 1.22+, Node 18+, Docker on each agent VM, alpine:3.20 loaded
locally (docker load -i alpine.tar).
-
Build everything:
cd protocol && go build ./... cd ../control-plane && go build -o bin/control-plane ./cmd/control-plane cd ../agent-micro && go build -o bin/agent-micro ./cmd/agent-micro cd ../agent-gateway && go build -o bin/agent-gateway ./cmd/agent-gateway cd ../dashboard && npm install && npm run build -
Start the control plane:
./control-plane/bin/control-plane -addr :8080 -data ./data -
Start the micro agent on 172.18.136.92:
SDP_CP_URL=ws://172.18.139.186:8080/ws/agent SDP_NODE_ID=micro \ ./agent-micro/bin/agent-micro -
Start the gateway agent on 172.18.139.186:
SDP_CP_URL=ws://172.18.139.186:8080/ws/agent SDP_NODE_ID=gateway \ ./agent-gateway/bin/agent-gateway -
Point nginx at the dashboard build (
dashboard/out/) and the control plane (:8080). Seenginx/nginx.conf. -
Open
http://<nginx-host>/, sign in with any Bitbucket creds, pickaccount→feature/login-error, click Deploy. Watch the stage checkmarks and the log stream.
Notes
- Credentials are passed per-operation to the agent and never persisted on the agent longer than the operation.
- The runtime model is
alpine:3.20+ bind-mounted repo + exec'd binary. No Dockerfile build step on the agent. - Logs persist to
<data>/logs/<deploymentId>.log. SQLite holds progress snapshots and final state.
Description
Languages
Go
38.8%
HTML
29.5%
TypeScript
25.7%
Shell
4.7%
JavaScript
0.7%
Other
0.6%