Repository navigation
Project Search Delivery 2026 10 17
B-450's first implementation slice is accepted on local MicroK8s. B-450 and the overall Jira/JSM programme remain in progress. The query and API guide defines the exact supported dialect, permissions, limits and remaining functionality.
- Cross-project work-item navigator with a bounded JQL-style parser, boolean expressions, parentheses, lists, empty checks, typed comparisons, UTC date functions and stable sorting.
- Tenant and project access restrictions are applied outside the complete user expression. OR/NOT cannot widen authorization.
- Owner-only editing/deletion of private, project-shared and administrator-published organisation filters. Project sharing requires edit access. Definition sharing never grants record access.
- Persistent personal favourites with explicit, repeat-safe desired-state writes. Access is checked again after membership changes.
- CSV export uses the current query and authorization, quotes data and mitigates spreadsheet formulas; results over 10,000 are explicitly rejected.
- Saved-query editing has an explicit accessible label, a visible saved confirmation and an unsaved-change notice when an applied query differs from its saved definition. Stale page bookmarks clamp to the last available page.
- REST query/filter/favourite interfaces share the web rules, reject wrong types and use idempotency keys for creation. OpenAPI and wiki contracts are updated. Native iOS UI integration is outside this slice.
- Additive migration
20261017_0129createsproject_saved_filterandproject_filter_favourite. Fresh-install schema adoption and a real PostgreSQL downgrade/upgrade cycle were verified.
| Gate | Result |
|---|---|
| Broad default suite | 2,029 passed, 169 opt-in skipped before final defensive/UI additions. |
| Final focused query/localization | 73 passed: 32 query/permission/CRUD/API/export/CSRF regressions and 41 localization checks. Seven query cases were added after the broad run collected tests; the combined runs cover 2,036 distinct default cases. |
| Browser and accessibility | 4 passed at 1440/390 px, light/dark. Search, save, favourite, update, CSV download, error positions and unsaved notices; no page errors, WCAG 2.1 AA violations or horizontal page overflow. Captures use fixture data. |
| PostgreSQL | 2 passed: real SQL/persistence and reversible migration on an explicitly disposable database. |
| Malformed-route/form/API sweeps | SQLite and PostgreSQL: 134 pages, 209 forms, zero distinct failing routes, including malformed JSON and POST sweeps across roles. Final malformed project-key and page-clamping checks are covered by focused regressions. |
| Static/configuration | Ruff, whitespace, migration expand-policy, localization generation, Helm lint and wiki links pass. |
| Future CI | Mandatory PostgreSQL gate and browser job include the new tests. Hosted execution is unverified until an authorized push. |
A full 500-user / 10,000-items-per-project load rehearsal was not rerun for this slice. No completion claim is made for all of B-450, full Jira JQL compatibility, full Premium parity or a new performance capacity target.
The first browser run exposed the nested-label issue in the saved query textarea; it was replaced with an explicit label. PostgreSQL first-install testing exposed table creation already performed by the baseline metadata adoption; independent per-table guards corrected the migration. Generated source/interface catalogs were refreshed. SQLite fixture deletion required explicit favourite cleanup in addition to PostgreSQL FK cascade behavior. All fixes have regression coverage.
- Namespace
operations, Helm 213, chart/base version 1.113.50, local candidatecand-search-20261017. - Immutable image:
localhost:32000/serviceops-server@sha256:ee07ed78286bcd9c8bd5fcb4c17edbf1e43a3993ab22787a6615a768e7c5f0fc. - All 32 changed runtime/model/template/migration file hashes match the tested working tree in the running image.
- Database head
20261017_0129, 162 tables, at least 487 tickets. Database/uploads/backups PVC identities remain unchanged. - Pre-upgrade backup
serviceops-search-backup-20261017:/backups/serviceops-20261017T070653Z.dumprestored 160 tables, 487 tickets and the previous schema into a scratch database, then removed it. - Web, outbox, events and AI workers are ready. Health/readiness, retained Helm test, public API/OpenAPI, website Cloudflare Access redirect and recent new-pod logs pass.
- Browser/functional testing used disposable fixtures. Live acceptance verifies the deployed source, schema and runtime; no production ticket or work item was created for tests.
- No GitHub commit, push, tag, hosted pipeline or new release was performed. Existing unrelated source/infra edits are preserved.
