Praxis CI
|
00e39a3f85
|
feat(milestone): merge phase/01 operator-foundation → milestone/v0.4-operator-tier
Phase 1 complete — Operator Foundation:
- Postgres 16 in Docker-in-LXC (asyncpg pool, 5-table schema, PgStore, migrations)
- Operator auth (argon2id, signed stateless cookies, slowapi 5/min rate limit)
- VC issuer key migration SQLite→Postgres (archive-before-active, R-VC-MIG-01)
- Operator bootstrap CLI (create-operator.py, idempotent)
- Backup cron script + G-008 restore drill
- Graceful degradation (server starts without Postgres)
- 272 tests pass, 33 skip (Postgres-requiring), 0 fail
---ci---
project: praxis
phase: 1
milestone: v0.4
status: complete
requirements:
covered: [REQ-MT-01, REQ-AUTH-01, REQ-NFR-AUTH-01, REQ-NFR-MT-01, REQ-MT-02]
partial: []
---/ci---
|
2026-08-04 01:41:06 +00:00 |
|
Praxis CI
|
6cf63cb064
|
docs(P01): verify — APPROVE_WITH_NOTES, 4 P0 fixed, 18/20 REQ covered
Verification layers:
Structural: PASS (all scripts executable, syntax clean, Dockerfile valid)
Behavioral: PASS (121 bats, 77 pytest, docker build succeeds, compose valid)
Security: PASS (no secrets committed, .dockerignore excludes .env*, env_file pattern)
Quality: PASS (coreci patterns followed, no coreci refs, G-104/G-105/G-106 verified)
P0 issues found and auto-fixed:
1. docker-compose.yml: removed invalid restart_policy key, fixed env_file syntax
2. pyproject.toml: added fastapi + uvicorn deps (v0.1 gap exposed by Dockerfile)
3. timing.sh: renamed coreci_deploy_timing → praxis_deploy_timing (TASK-03-07)
4. firstboot-hook.sh: fixed idempotency check (/opt/praxis/.git not /usr/local/bin/praxis-deploy)
P1+ issues: 8 (1 fixed: lxc-config.sh default alignment, 7 noted for post-hoc review)
REQ coverage: 18/20 covered, 2 deferred (live first-boot timing + live E2E require cluster)
Must-haves: 25/28 pass, 2 partial (comment-only diffs, no Makefile), 1 deferred
---ci---
project: praxis
phase: 1
milestone: v0.2
status: verify
---/ci---
|
2026-08-03 18:37:45 +00:00 |
|