Files
CASAN/AINative_OKR_CASAN5/infra/local-prod
thanhnvandClaude Opus 4.8 e891981b59 feat(plan-01): Phase 4b — external callers to packages paths + registry (Task 1.7)
Point the canonical entry points at the new package layout; the .specify compat facade
is retained as an intentional backward-compat layer (see below).

- .gitea/workflows/{ci,harness-ci}.yml: invoke packages/casan-harness/scripts/bash|tests
  (state paths .specify/logs kept). CI now runs on the new structure.
- infra/local-prod/docker-compose.yml: dashboard-server.py -> packages path (logs/alerts
  env stay under .specify state).
- scripts/casan-step.mjs + run-casan-pipeline.mjs: resolve the harness under
  packages/casan-harness, falling back to .specify so the adversarial/sourcegen sandboxes
  (which stage a .specify/ tree) keep working; requirement input prefers apps/okr/domain/input.
- project-registry.json: record the new layout (harness_root, state_root, governance_root,
  per-project domain_root) so Plan-06 can register a second app with its own domain.
  verify-harness-reuse.sh already resolves via CASAN_HARNESS_ROOT -> HARNESS_REUSE_VALID (3 projects).

Facade decision: the .specify/{scripts,tests,security,...} symlinks are KEPT as a
documented compat layer. A full hard cutover (removing them) still needs ~15 literal
`.specify/...` refs repointed (loop_common/evidence-pack/secrets-scan config+test paths,
run-casan-pipeline step scripts, and the signed policy-bundle.yaml path list which then
needs manifest regen + re-sign). That is a scoped follow-up; the physical separation
(code in packages/, domain in apps/, packages holds no domain data, single CASAN_* path
indirection) is complete and the full gate is green via BOTH entry paths: PASS=64 FAIL=0 SKIP=3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 11:36:24 +09:00
..
2026-07-06 12:00:27 +09:00
2026-07-06 12:00:27 +09:00
2026-07-06 12:00:27 +09:00
2026-07-06 12:00:27 +09:00

CASAN Local Production-Like Infra Lab

This Docker Compose stack emulates the external infrastructure needed to move CASAN Tier 2 from "needs infra" to locally testable production-like controls.

Services

Service Local URL Purpose
Vault dev http://127.0.0.1:18200 KMS Transit signing/rotation/non-exportable keys
Mock IdP/OIDC http://127.0.0.1:18081 RS256 JWT + JWKS for approval identity
MinIO http://127.0.0.1:19090 S3-compatible WORM/Object Lock emulation
MinIO Console http://127.0.0.1:19091 Object store admin UI
Alert webhook http://127.0.0.1:19092 Slack/PagerDuty-style webhook emulator
Billing API mock http://127.0.0.1:19093/usage Provider usage API emulator
Dashboard via nginx http://127.0.0.1:18080 Dashboard behind basic auth (casan / casan)

Commands

bash .specify/scripts/bash/infra-lab.sh start
bash .specify/scripts/bash/infra-lab.sh verify
bash .specify/scripts/bash/infra-lab.sh env
bash .specify/scripts/bash/infra-lab.sh stop

This is a lab, not a compliance claim. AWS S3 Object Lock, real enterprise IdP, CloudHSM, PagerDuty/Slack, and OpenAI/Anthropic billing APIs still need real managed services and credentials before claiming production Strong readiness.