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
|
93d33ecb0c
|
feat(P01): SLICE-08+09+10 — secret wiring, bats tests (121), e2e verification
SLICE-08 (devops-engineer): .env.example updated with Proxmox deployment
vars (documented, sourced from ~/coreci/.env.secrets per D-026),
PRAXIS_CLIENT_DIST for StaticFiles, PRAXIS_SCENARIO. config.json
secrets.scopes already extended in SPECIFY (proxmox + voice scopes).
SLICE-09 (devops-engineer): 10 bats test files (G-106 fix: 10 not 9)
covering all proxmox scripts — 121 tests, 114 pass + 7 skipped (e2e).
Mocked curl/pct/ssh; no live cluster needed for unit tests.
SLICE-10 (devops-engineer): e2e-deploy.sh — sources secrets from both
coreci + praxis .env.secrets, runs full deploy, verifies /health +
client HTML serving. REQ-DEPLOY-15 covered.
All 6 grill binding decisions addressed:
G-101 MUST: GITEA_TOKEN baked into snippet (stage-snippet.sh)
G-102 MUST: PRAXIS_DB_PATH env read (db/store.py + db/migrate.py)
G-103 FIX: all 16 env vars in injection list (install-service.sh)
G-104 FIX: health-check timeout 600s (health-check.sh)
G-105 FIX: Dockerfile copy ordering (pyproject before source)
G-106 FIX: bats test count = 10
REQ-DEPLOY-12, 14, 15 covered. All 20 REQ-IDs now implemented.
---ci---
project: praxis
phase: 1
milestone: v0.2
status: execute
slice: 08-10
wave: 4
---/ci---
|
2026-08-03 18:17:40 +00:00 |
|
Praxis CI
|
0df1ec391a
|
docs(P00): create phase 1 plan — 10 slices, 4 waves, 34 tasks, 20/20 REQ coverage
PLAN.md: 998 lines (vertical-slice plan with wave ordering)
.gitignore: fix .env.example being ignored by .env.* pattern (D-038)
Wave 1: Dockerfile + docker-compose.yml + .dockerignore | FastAPI StaticFiles mount
Wave 2: PVE API layer (8 scripts) | health-check.sh
Wave 3: firstboot-hook.sh | install-service.sh + praxis.service | lxc-deploy.sh
Wave 4: secret wiring + .env.example | bats tests (11 files) | E2E verification
Persona load: devops-engineer 15 tasks, lead-developer 4, backend 4, data 2, frontend 0 (deactivated)
---ci---
project: praxis
phase: 0
milestone: v0.2
status: plan
---/ci---
|
2026-08-01 14:01:46 +00:00 |
|