Implements the full 14-table task-store schema from plan §4 with both SQLite and Redis backends sharing the TaskStore trait. Every §13/§14 advanced capability consumes one or more of these tables. SQLite backend: - 3 migrations (001: tables 1-7, 002: tables 8-14, 003: task registry fields) - WAL mode + busy_timeout for single-process concurrency - Schema version tracking with SchemaVersionAhead guard - Full CRUD + proptest round-trips on all 14 tables - Restart resilience test: all data survives close/reopen cycle Redis backend: - Hash + _index SET pattern for O(cardinality) iteration (no SCAN) - TTL-based expiration for sessions, idempotency, admin_sessions - SET NX/XX for leader lease CAS operations - Sorted sets for canary_runs with auto-prune - Rate limiting keys for search_ui and admin_login - CDC overflow buffer with byte-budget trimming - Scoped key rotation coordination (observe/check pattern) - Pub/sub for admin session revocation propagation - testcontainers integration tests for all 14 tables + extras Helm chart: - values.schema.json enforces redis backend when replicas > 1 - ESO ExternalSecret template for OpenBao integration - Updated values with secret inventory and rate limiting config Config validation: - replication_factor/replica_groups > 1 requires redis - HPA enabled requires redis - CDC overflow=redis requires redis task store - Leader election required when replica_groups > 1 - CSP/CORS wildcard rejection Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 001_initial.sql | ||
| 002_feature_tables.sql | ||
| 003_task_registry_fields.sql | ||