Session store: hash session ids into storage keys; publish the PostgreSQL schema (KOF22 integration) #24

Merged
james.maes merged 2 commits from kof22/session-codec-integration into develop 2026-11-07 00:17:38 +00:00
Owner

The canonical session-store (develop and 0.1.0-RC.1) is missing behaviour the KOF22 application depends on and that production already runs:

  • SessionCodec: storage keys are a SHA-256 of a domain-separated session id, so raw session ids are never stored or logged.
  • StoredSessionSchema: the PostgreSQL DDL for the stored-session table (the host's schema-drift test needs it).
  • the in-memory, Redis, shared-Redis and table-based providers and the stored-session metadata use them.

Without this, moving the host from its source-built copy to the published artifact would silently change session storage back to storing raw ids, and the host's SourceOnlyQbitsPostgresTest fails to compile.

Source and tests only; POM keeps develop's Core RC.22 / qbit-redis 0.1.0-RC.1 pins and adds the PostgreSQL test dependency and a UTC test JVM. Carried over from the earlier KOF22 integration with line endings normalised.

Co-Authored-By: Claude Sonnet 5.5 noreply@anthropic.com

The canonical session-store (develop and 0.1.0-RC.1) is missing behaviour the KOF22 application depends on and that production already runs: - **SessionCodec**: storage keys are a SHA-256 of a domain-separated session id, so raw session ids are never stored or logged. - **StoredSessionSchema**: the PostgreSQL DDL for the stored-session table (the host's schema-drift test needs it). - the in-memory, Redis, shared-Redis and table-based providers and the stored-session metadata use them. Without this, moving the host from its source-built copy to the published artifact would silently change session storage back to storing raw ids, and the host's SourceOnlyQbitsPostgresTest fails to compile. Source and tests only; POM keeps develop's Core RC.22 / qbit-redis 0.1.0-RC.1 pins and adds the PostgreSQL test dependency and a UTC test JVM. Carried over from the earlier KOF22 integration with line endings normalised. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-07 00:06:36 +00:00
feat: hash session ids into storage keys and publish the PostgreSQL schema (KOF22 session-store integration)
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 9cb8c13124a99d18da83cbcd4faa795859ac9e55] (pull_request) Successful in 6s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 6s
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 6s
maven / build (push) Failing after 2m52s
build / maven (push) Failing after 2m52s
54e780e9f9
Brings the KOF22-validated session-store behaviour onto develop:

- SessionCodec derives the storage key from a SHA-256 of a domain-separated
  session id, so a raw session id is never stored or logged.
- StoredSessionSchema publishes the PostgreSQL DDL for the stored-session table.
- The in-memory, Redis, shared-Redis and table-based providers and the
  stored-session table metadata use them.
- Tests: SessionCodecTest, a PostgreSQL integration test for the table
  provider, and the fixture endpoint; the PostgreSQL test needs
  qqq-backend-module-postgres (test scope) and a UTC JVM.

Source and test changes only; the POM keeps develop's Core RC.22 and
qbit-redis 0.1.0-RC.1 pins.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes added 1 commit 2026-11-07 00:10:35 +00:00
build: keep the JaCoCo agent on the unit tests; run the PostgreSQL IT under a UTC JVM in failsafe
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 9cb8c13124a99d18da83cbcd4faa795859ac9e55] (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 10s
maven / build (push) Successful in 3m17s
build / maven (push) Successful in 3m17s
375cf053a1
The UTC argLine was set on surefire, replacing the argLine that jacoco prepare-agent
injects, so the unit tests ran without the agent and the class-coverage gate fell to
0.70 (min 0.80). The UTC setting belongs to failsafe, which runs the PostgreSQL IT;
it now appends to the jacoco argLine with @{argLine}, with an empty default property.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes merged commit b85b9555bf into develop 2026-11-07 00:17:38 +00:00
james.maes deleted branch kof22/session-codec-integration 2026-11-07 00:17:39 +00:00
Sign in to join this conversation.