[Performance review] Query current case eligibility without tenant-wide grant lists #7

Closed
opened 2026-09-08 10:24:52 +02:00 by zemion · 2 comments
Owner

P3: zero-match search in 50-case/100-grant fixture still loads all grants and constructs large ID lists. Use SQL predicates/EXISTS with current purpose-aware grant rules and exact authorized pagination. Include principal/tenant/search/count equivalence and query growth tests.

Tracking: GovOPlaN/govoplan-core#298

User authorized implementation on 2026-09-08. Work is local until explicitly published; keep this issue open until verification and publication state are recorded. Preserve tenant isolation, current authorization, immutable history, audit evidence, deterministic ordering, retry safety and existing API compatibility. Add focused regressions and owning EN/DE documentation. No live mail/provider side effects or historical data rewrites.

P3: zero-match search in 50-case/100-grant fixture still loads all grants and constructs large ID lists. Use SQL predicates/EXISTS with current purpose-aware grant rules and exact authorized pagination. Include principal/tenant/search/count equivalence and query growth tests. Tracking: https://git.add-ideas.de/GovOPlaN/govoplan-core/issues/298 User authorized implementation on 2026-09-08. Work is local until explicitly published; keep this issue open until verification and publication state are recorded. Preserve tenant isolation, current authorization, immutable history, audit evidence, deterministic ordering, retry safety and existing API compatibility. Add focused regressions and owning EN/DE documentation. No live mail/provider side effects or historical data rewrites.
zemion added the
type
bug
priority
p1
status
in-progress
labels 2026-09-08 10:24:52 +02:00
Author
Owner

Local implementation receipt — 2026-09-08

Current tenant/purpose-aware case grant eligibility now uses correlated EXISTS instead of tenant-wide grant/ID materialization; authorization precedes count and pagination. Zero-match fixture loads 0 grant objects instead of 100.43 tests+4 subtests plus Core exact JSON predicate regressions and PostgreSQL compilation pass. User-first actor selection mechanics are shared with Committee; service-account-specific collections remain separate. EN/DE docs updated.

Verification: tools/checks/check-focused.sh completed successfully,72/72 manifest architecture checks passed, and changed-source Ruff F plus git diff --check passed across 16 repositories. Tests use isolated databases/mock providers; no live data/provider mutation, commit, push, tag, deployment or release was performed. Changes remain local and unpublished: keep this issue OPEN until publication/rollout state is recorded. Before rollout, back up and test coordinated Mail/Files/Connectors/Datasources migrations on a database copy. PostgreSQL concurrency, real provider races and representative load testing remain operational verification, not a claimed certification.

## Local implementation receipt — 2026-09-08 Current tenant/purpose-aware case grant eligibility now uses correlated EXISTS instead of tenant-wide grant/ID materialization; authorization precedes count and pagination. Zero-match fixture loads 0 grant objects instead of 100.43 tests+4 subtests plus Core exact JSON predicate regressions and PostgreSQL compilation pass. User-first actor selection mechanics are shared with Committee; service-account-specific collections remain separate. EN/DE docs updated. Verification: tools/checks/check-focused.sh completed successfully,72/72 manifest architecture checks passed, and changed-source Ruff F plus git diff --check passed across 16 repositories. Tests use isolated databases/mock providers; no live data/provider mutation, commit, push, tag, deployment or release was performed. Changes remain local and unpublished: keep this issue OPEN until publication/rollout state is recorded. Before rollout, back up and test coordinated Mail/Files/Connectors/Datasources migrations on a database copy. PostgreSQL concurrency, real provider races and representative load testing remain operational verification, not a claimed certification.
Author
Owner

Source publication and database verification — 2026-09-08

Remote main branches and annotated tags were verified against the exact coordinated commits. The implementation-specific tests and EN/DE documentation recorded above remain the acceptance evidence. Cross-module focused checks, manifest shapes, 63 WebUI build configurations and 230 browser tests passed. This records source publication, not a package-registry release, runtime image, website deployment or production rollout.

Database correction to the previous local-only note: the already-running development server had automatically applied Files a2b3c4d5e701, Mail b5d6e7f8091a, Connectors d2a4c6e8f0b1 and Datasources e2b8d4a0f6c3 during reloads. Their heads and expected schema/indexes were verified in the local development PostgreSQL database. A current-state backup was captured and restored into a private, isolated PostgreSQL 16 cluster; this was not a pre-upgrade backup. The supported no-op migration preserved all 281 tables and 142,287 rows by per-row SHA-256 comparison, and retained the same migration heads. Files source identity recomputation matched all 7,385 rows (2 non-null identities, zero mismatches). Both Datasources PostgreSQL concurrency tests, previously skipped without a dedicated database, passed against that isolated cluster. The test cluster was stopped. No real mail delivery, POP3 retrieval/deletion, legacy mailbox reconciliation or external connector import was initiated.

Representative production load/deadline testing and real-provider race/compatibility verification remain separate operational rollout checks; this is not security certification. Operational follow-up: GovOPlaN/govoplan-core#299.

Closing this implementation issue: its code, regression, documentation and source-publication criteria are satisfied. Operational checks above are not claimed complete.

## Source publication and database verification — 2026-09-08 - govoplan-cases: [v0.1.25](https://git.add-ideas.de/GovOPlaN/govoplan-cases/src/tag/v0.1.25) · [0337e0cf0b37](https://git.add-ideas.de/GovOPlaN/govoplan-cases/commit/0337e0cf0b37a9b89dd51cccf28500649361fb37) - govoplan-core: [v0.1.46](https://git.add-ideas.de/GovOPlaN/govoplan-core/src/tag/v0.1.46) · [6591aaa3fdaf](https://git.add-ideas.de/GovOPlaN/govoplan-core/commit/6591aaa3fdaf19d1900ccff326c56a0b0969d9fa) Remote main branches and annotated tags were verified against the exact coordinated commits. The implementation-specific tests and EN/DE documentation recorded above remain the acceptance evidence. Cross-module focused checks, manifest shapes, 63 WebUI build configurations and 230 browser tests passed. This records source publication, not a package-registry release, runtime image, website deployment or production rollout. Database correction to the previous local-only note: the already-running development server had automatically applied Files a2b3c4d5e701, Mail b5d6e7f8091a, Connectors d2a4c6e8f0b1 and Datasources e2b8d4a0f6c3 during reloads. Their heads and expected schema/indexes were verified in the local development PostgreSQL database. A current-state backup was captured and restored into a private, isolated PostgreSQL 16 cluster; this was not a pre-upgrade backup. The supported no-op migration preserved all 281 tables and 142,287 rows by per-row SHA-256 comparison, and retained the same migration heads. Files source identity recomputation matched all 7,385 rows (2 non-null identities, zero mismatches). Both Datasources PostgreSQL concurrency tests, previously skipped without a dedicated database, passed against that isolated cluster. The test cluster was stopped. No real mail delivery, POP3 retrieval/deletion, legacy mailbox reconciliation or external connector import was initiated. Representative production load/deadline testing and real-provider race/compatibility verification remain separate operational rollout checks; this is not security certification. Operational follow-up: https://git.add-ideas.de/GovOPlaN/govoplan-core/issues/299. Closing this implementation issue: its code, regression, documentation and source-publication criteria are satisfied. Operational checks above are not claimed complete. <!-- govoplan-integrity-publication-20260908 -->
zemion removed the
status
in-progress
label 2026-09-08 12:57:26 +02:00
Sign in to join this conversation.
No labels
priority
p1
type
bug
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-cases#7