Scrub internal names from CE tree

Task 11152 · Queued · Coder · created · updated

Epic: Security audit of development keys and container artifacts. This child = Architecture C7 (PRD R8). It waits for "Cut aws and bedrock from CE tree": most cloud env var names leave the tree with that cut, and this child scrubs what is left. ## Original requirement (verbatim, epic body) - "Internal architecture names leak: the path `infra/jaah/terraform/modules/ecs/main.tf` and cloud environment variable names. Low risk." - "It should not break anything in prod or dev" Operator decision D6: scrub them from the CE tree and remove the sensitive allowances. ## Approach (Architecture C7) - Remove the two `[[sensitive.allow]]` entries at `tools/community_edition/manifest.toml:166-174`. - `apps/api/app/credential_keys.py`: reword the cloud refusal to "the environment's KMS key ARN (`CREDENTIAL_KMS_KEY_ID`)" with no repo path. The string ships whichever branch runs. - `apps/api/app/config.py`: reword both terraform path mentions (`modules/ecs/main.tf` and `session-analytics.tf`) the same way. Comments become prose without the path, or point to `docs/architecture.md`, which does not ship. - Cloud env var names: for each env var that the ECS task definition sets and that no shipped module reads, grep the built tree. Scrub every hit outside a reader. ## PRD R8 — Scrub internal names from the CE tree (A5; D6) — verbatim - AC8.1 No shipped CE file contains `infra/jaah/terraform` paths or cloud-only environment variable names; the two `[[sensitive.allow]]` entries permitting `infra/jaah/terraform/modules/ecs/main.tf` (for `config.py` and `credential_keys.py`) are removed so the mirror's sensitive check enforces it. Cloud error messages may keep them (edition-specific text). Credentials & reach: - Quick/full gate, pytest, CE tree build + `check_tree`, installer harness, tree console build | Worktree only (`./dc`, `tools/community_edition/*.py` present) | verified — files present on h2; no credential needed - PR checks / merge lane / Jaah Deploy run status | `jaah-forge` (pre-authenticated for the task) | verified — read verb `pr list` succeeded from h2 - Dev console boots, sign-in, Slack/Telegram settings, attachment upload (AC2.3, AC4.5, AC9.2) | `org/console/dev-login` (credential_get succeeded); environment: dev control plane | **deferred** to a node with reach. dev timed out from h2 (prod `app.jaah.ai` answered 200). Operator answer A5: a green Jaah Deploy is the gate, and the browser check runs on a node that reaches dev; a builder without reach records it deferred Out of scope: PRD §5, verbatim: - Do NOT change `infra/community-edition/node/install_clis.sh`'s vendor `curl https://claude.ai/install.sh | bash` (D8; deferred follow-up). - Do NOT sign or digest-pin the cloud deploy images pushed by Jaah Deploy, nor add deploy-time verification (D3 chose CE + base images only). - Do NOT add a CI/terraform guard over ECS env (D7 verify-only). - Do NOT cosign-sign `SHA256SUMS` (D4). - Do NOT remove Slack, Telegram, headscale, AWS, KMS, S3 or Bedrock from the cloud edition — the prune is CE-tree only. - Do NOT change the session-secret / dev-seed / insecure-agent refusals' semantics or the `FIXTURE_APP_ENVS` set. - Do NOT touch `infra/jaah/terraform` resources (only read them for R2). - Do NOT change port binds, setup-loopback rule, cookie flags or rate limits (A6 positives). - Architecture boundary: no new `[[sensitive.allow]]` entries; do not rename env vars a shipped module reads; do not change refusal semantics — wording only. Done means: - AC8.1 — `grep -rn "infra/jaah/terraform" <built CE tree>` prints nothing; the two allowances are gone from `tools/community_edition/manifest.toml`; the mirror check (sensitive) for `jaah-ce` green with them gone; the report lists each ECS-set env var name grepped in the built tree and shows that every remaining hit is a reader; the reworded refusals still name the variable to set, so they stay actionable (existing refusal tests green). - AC9.1 `./dc check quick` green on the branch; merge lane `./dc check full` green. - AC9.2 The PR's Jaah Deploy succeeds to dev; dev console loads and a user can sign in. (browser part deferred — dev unreachable from h2; operator A5: green Jaah Deploy is the gate)

Activity

  • Draft
  • Ready