Commit graph

25 commits

Author SHA1 Message Date
f9f8e0c54f Refresh work-record index after TEN-WP-0011 finished
Assistant: grok
Assistant-Session: 01a04cea-e5e8-7081-a0fc-808ebbc35fa9
2026-08-29 13:04:51 +02:00
0228969ca9 Refresh work-record index after TEN-WP-0011
Regenerated by fix-consistency (C-33) after the Engine/PIP declaration
and TEN-WP-0011 were added.

Assistant: grok
Assistant-Session: 01a04cea-e5e8-7081-a0fc-808ebbc35fa9
2026-08-29 12:00:25 +02:00
afb50e0d7d Refresh work-record index
Regenerated by fix-consistency; adds the inbound layer-declaration intake.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2564823@bnt-lap001
Assistant-Session: 2a7ed827-4928-4b9f-8613-9135c9cadfe9
2026-08-29 02:45:20 +02:00
0c0b40f510 chore: refresh work record index 2026-08-21 01:21:51 +02:00
749461b97b Implement PostgreSQL production store path
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 41s
Add the PostgreSQL backend, migration and stopped-write transfer tools, lease-aware deployment manifests, tenancy declarations, and shared conformance coverage. Persist grouping mutations in durable stores and separate process liveness from database readiness.
2026-08-19 14:43:08 +02:00
b22d4a7294 TEN-WP-0010-T01: mark proposed-and-recorded as done, ratification outstanding
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 22:53:52 +02:00
bdf9f5f643 Finish TEN-WP-0010: mutable grouping, contract corrected, handoffs sent
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 22:53:10 +02:00
b998ca2332 Finish TEN-WP-0010-T03/T04: audited grouping mutation
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 1m5s
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 22:09:24 +02:00
1b2526910b TEN-WP-0010-T02 done, T01 proposed: no consumer parses the grouping segment
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 22:05:59 +02:00
cf7ca1a692 TEN-WP-0009: make database placement portable rather than settled
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 18:59:30 +02:00
781359e7d4 Plan PostgreSQL production store (TEN-WP-0009)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 18:25:35 +02:00
a69adb6498 Add deployment pin-drift check (make verify-pin)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 10:46:26 +02:00
76196aa39f Finish TEN-WP-0007: guardrail surface live in production
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 10:34:44 +02:00
611431c2b7 TEN-WP-0007: pin guardrail image, record CI digest and flex-auth nine-action pin
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 10:02:34 +02:00
e5c106186d chore(consistency): refresh WORK-RECORDS.md for TEN-WP-0006 close
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 02:21:10 +02:00
0d1435c2d2 Finish TEN-WP-0006-T01: specify guardrail model and boundary
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 02:07:42 +02:00
77bc207484 chore(consistency): refresh WORK-RECORDS.md for TEN-WP-0005 close
Index still listed T01-T04 as todo after the workplan finished. Regenerated
by fix-consistency; committing the file so origin matches the hub.
2026-08-14 01:44:49 +02:00
7dcccafc03 Plan tenant update and retirement APIs 2026-08-10 18:54:28 +02:00
a48d3711c9 Sync tenant runtime workplan state 2026-08-09 01:49:11 +02:00
20bda2f0e5 chore(consistency): register ADHOC-2026-07-24 in State Hub [auto]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 00:16:21 +02:00
18f510070f chore(consistency): sync WORK-RECORDS.md for TEN-WP-0003 closure [auto]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 22:55:13 +02:00
5d57c7d488 TEN-WP-0003: FlexAuthWriteAuthorizer -- gate writes through flex-auth
flex_auth.py: CheckRequest + FlexAuthCheckClient against flex-auth's real
POST /v1/check contract (schemas/check_request.schema.json,
decision_envelope.schema.json, read directly from the flex-auth repo, not
guessed). Fail-closed by construction: only effect=="allow" authorizes;
every other effect, non-200, malformed body, or transport failure resolves
to deny, nothing raises past is_allowed().

authz.FlexAuthWriteAuthorizer implements the existing WriteAuthorizer
Protocol. Action -> resource-type mapping coordinated with FLEX-WP-0008's
planned vocabulary (both repos reference the same table).
DefaultDenyWriteAuthorizer stays the fallback when no flex-auth URL is
configured.

config.py: Settings.from_env(), mirroring qonto-assistant's pattern.
docs/flex-auth-integration.md documents the contract, fail-closed rule,
and current real state (denies everything until FLEX-WP-0008 lands).

60 tests passing. Verified live twice over real HTTP between separate
processes (not just MockTransport): a deny-returning flex-auth double
produces 403 from POST /tenants, an allow-returning one produces 201.

Also registered (not implemented) the two workplans this depends on for a
complete picture: flex-auth/FLEX-WP-0008 (protected-system registration --
what makes allow reachable) and key-cape/KEY-WP-0005 (discovered key-cape
emits none of iam-profile_v0.3.md's core claims yet, not just missing
tenant_roles -- a bigger, security-sensitive gap flagged rather than
quietly worked around).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 22:54:44 +02:00
c0482abeaf chore(consistency): sync WORK-RECORDS.md for TEN-WP-0002 closure [auto]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 22:24:37 +02:00
934a2f7c35 chore(consistency): sync WORK-RECORDS.md for TEN-WP-0002 T01-T03 [auto]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 22:01:51 +02:00
7eb21c05b8 chore(consistency): register TEN-WP-0001/0002 in State Hub [auto]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 21:56:43 +02:00