Achmad Setyabudi Susilo ba8a3360cc Drop GOFLAGS=-mod=mod; workspace mode forces -mod=readonly
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.
2026-06-24 07:37:39 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00
2026-06-24 07:25:01 +07:00

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).

  1. 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
    
  2. Start the control plane:

    ./control-plane/bin/control-plane -addr :8080 -data ./data
    
  3. 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
    
  4. 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
    
  5. Point nginx at the dashboard build (dashboard/out/) and the control plane (:8080). See nginx/nginx.conf.

  6. Open http://<nginx-host>/, sign in with any Bitbucket creds, pick accountfeature/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.
S
Description
No description provided
Readme 10 MiB
Languages
Go 38.8%
HTML 29.5%
TypeScript 25.7%
Shell 4.7%
JavaScript 0.7%
Other 0.6%