Phase 16: hardening and release 0.1.0
- TOTP second factor (RFC 6238, secret encrypted under the master key), ten hashed single-use recovery codes, two-step login with a pending token bound to the client address, account enrolment/disable, admin reset - tests/security: prompt-injection corpus never acts or creates evidence-free beliefs; roles and CSRF on form and API paths; cross-mind isolation (demo scenario 5); stored-XSS escaping and CSP across pages; secrets never echoed (API, pages, database, archives); hostile archive import; session lifecycle and security headers - OpenAPI 3.1 document generated from the route table, served at /api/v1/openapi.json and kept complete by a test - gosec clean (justified #nosec annotations, cookie/redirect hardening, bounded multipart parsing, UUID packing without narrowing conversions); govulncheck clean with toolchain pinned to go1.26.8 - THREAT_MODEL verification pointers, SECURITY.md testing section, README, CHANGELOG 0.1.0, docs/RELEASE_NOTES.md, PLAN status
This commit is contained in:
@@ -48,7 +48,7 @@ An administrator can: start Noema → log in → create a mind → configure per
|
||||
- ☑ `cmd/noemad` (graceful shutdown, bootstrap admin, supervised background tasks), `cmd/noemactl` (`status`, `migrate up|down|status`, `user create`, exit codes)
|
||||
- ☑ `deploy/`: compose (pgvector db + app), multi-stage Dockerfile
|
||||
- ☑ Tests: config precedence, migration up/down + append-only trigger, hashing, session lifecycle, lockout, CSRF, roles, API envelope
|
||||
- ☐ TOTP + recovery codes (moved to Phase 16 with the rest of hardening)
|
||||
- ☑ TOTP + recovery codes (delivered in Phase 16)
|
||||
|
||||
### Phase 2 – Mind model, identity, personality, self-model ☑
|
||||
- ☑ `migrations/0002_minds`: minds, personality_templates, personality_versions (append-only), self_models
|
||||
@@ -170,7 +170,9 @@ An administrator can: start Noema → log in → create a mind → configure per
|
||||
- ☑ snapshots, fork with shared history, comparison tools, replay engine and UI (exact / approximate / diverged), experiment framework with exportable results, mind export/import archives (hostile-input validation)
|
||||
|
||||
### Phase 16 – Hardening and release
|
||||
- ☐ TOTP + recovery codes, security test suite, performance pass, OpenAPI document, docs set, screenshots, `go test -race`, `go vet`, staticcheck, gosec, govulncheck, release notes
|
||||
- ☑ TOTP + recovery codes, security test suite (`tests/security`), OpenAPI document (`docs/openapi.json`, served at `/api/v1/openapi.json`, coverage-tested), docs set, `go test -race`, `go vet`, staticcheck, gosec, govulncheck clean, release notes
|
||||
- ☐ screenshots (no browser available in the build environment; capture from a running instance and add to `docs/screenshots/`)
|
||||
- ☐ performance pass beyond indexes already in migrations (profile under a realistic load before tuning)
|
||||
|
||||
## 5. Deterministic vs LLM decisions
|
||||
See `ARCHITECTURE.md` §14. Rule: if a unit test can assert the exact output, it is code.
|
||||
|
||||
Reference in New Issue
Block a user