molecule-core/workspace-server
Molecule AI Core-BE 6947774e1b fix(staging): wire collectCPConfigFiles into CPProvisioner.Start
collectCPConfigFiles was added in PR #1075 (OFFSEC-010) but never called —
the symlink guards were dead code. This patch wires the function into
CPProvisioner.Start so the guards actually protect the CP request path.

Changes:
1. cpProvisionRequest gains ConfigFiles map[string]string field
   (base64-encoded, same shape as Docker provisioner's WriteFilesToContainer)
2. Start calls collectCPConfigFiles(cfg) before building the request;
   errors propagate as hard failures (a workspace without its config files
   is not usable)
3. Two new tests:
   - TestStart_CollectsConfigFiles: verifies TemplatePath files AND
     ConfigFiles map appear in the CP request body, base64-encoded
   - TestStart_SymlinkTemplatePathError: verifies a symlink TemplatePath
     causes Start to fail, exercising the OFFSEC-010 root-symlink guard

Without this wiring, a malicious operator could bypass the WalkDir symlink
guards by passing TemplatePath as a symlink to the CP.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 23:18:12 +00:00
..
cmd fix(main): heal ADMIN_TOKEN placeholder in global_secrets on startup (#831) 2026-05-13 22:42:32 +00:00
internal fix(staging): wire collectCPConfigFiles into CPProvisioner.Start 2026-05-14 23:18:12 +00:00
migrations feat(plugins): plugin drift detector + queue + admin apply endpoint (#123) 2026-05-10 00:39:50 +00:00
pkg/provisionhook feat(#1957): wire gh-identity plugin into workspace-server 2026-04-24 15:01:41 +00:00
.air.toml feat(local-dev): air-based hot-reload for workspace-server 2026-05-08 08:10:50 -07:00
.ci-force
.gitignore feat(local-dev): containerize platform + canvas stack via docker-compose (closes #126) 2026-05-08 10:53:39 -07:00
.golangci.yaml chore(workspace-server): add golangci.yaml disabling errcheck 2026-04-24 07:16:54 +00:00
Dockerfile fix(platform): install docker-cli-buildx in workspace-server image (mc#765 follow-up) 2026-05-12 22:14:46 -07:00
Dockerfile.dev ci(docker): pin base image digests in all Dockerfiles 2026-05-09 23:56:39 +00:00
Dockerfile.tenant fix(dockerfile-tenant): chown /org-templates to canvas user so !external resolver can mkdir cache 2026-05-09 19:40:52 -07:00
entrypoint-tenant.sh fix(memory-plugin): gate sidecar spawn on cutover-active 2026-05-05 12:39:03 -07:00
go.mod fix(handlers): remove duplicate test declarations; skip SSH tests gracefully 2026-05-14 04:56:19 +00:00
go.sum [core-lead-agent] fix(core#228): cascade fixes for PluginResolver — make main compile 2026-05-10 09:46:35 +00:00