M2: Session core #12

Closed
opened 2026-07-05 19:20:05 +01:00 by TimCane · 0 comments
TimCane commented 2026-07-05 19:20:05 +01:00 (Migrated from github.com)

Goal

The session aggregate, Redis CAS store, MinIO storage, tokens/auth, and create/join/snapshot/rename endpoints (OCR faked instant-empty).

Scope

Aggregate, Redis store with Lua CAS, MinIO storage, tokens/auth, create/join/snapshot/rename. docs 02-04 minus OCR/finalize.

References

Acceptance criteria (docs/14)

  • A1 Full auth-matrix integration tests pass (wrong token / non-host / not-Open)
  • A2 Two parallel joins never corrupt the doc (CAS test)
  • A3 Session TTL visible via redis-cli TTL; expired -> 404 session-not-found
  • A4 SplitCalculator unit + property tests pass (written now, used in M4)

Notes

Aggregate + store + auth + mapper precede endpoints; SplitCalculator is independent; integration tests last.

Sub-tasks are tracked as sub-issues below.

## Goal The session aggregate, Redis CAS store, MinIO storage, tokens/auth, and create/join/snapshot/rename endpoints (OCR faked instant-empty). ## Scope Aggregate, Redis store with Lua CAS, MinIO storage, tokens/auth, create/join/snapshot/rename. docs 02-04 minus OCR/finalize. ## References - [docs/14-build-order.md#m2---session-core](https://github.com/TimCane/bill-splitter/blob/main/docs/14-build-order.md#m2---session-core) - [docs/02-domain-model.md](https://github.com/TimCane/bill-splitter/blob/main/docs/02-domain-model.md) - [docs/03-redis-schema.md](https://github.com/TimCane/bill-splitter/blob/main/docs/03-redis-schema.md) - [docs/04-api-contract.md](https://github.com/TimCane/bill-splitter/blob/main/docs/04-api-contract.md) - [docs/07-backend-design.md](https://github.com/TimCane/bill-splitter/blob/main/docs/07-backend-design.md) - [docs/11-testing-strategy.md](https://github.com/TimCane/bill-splitter/blob/main/docs/11-testing-strategy.md) ## Acceptance criteria (docs/14) - [ ] A1 Full auth-matrix integration tests pass (wrong token / non-host / not-Open) - [ ] A2 Two parallel joins never corrupt the doc (CAS test) - [ ] A3 Session TTL visible via `redis-cli TTL`; expired -> 404 `session-not-found` - [ ] A4 `SplitCalculator` unit + property tests pass (written now, used in M4) ## Notes Aggregate + store + auth + mapper precede endpoints; SplitCalculator is independent; integration tests last. Sub-tasks are tracked as sub-issues below.
Sign in to join this conversation.
No description provided.