Skip to content

Project Search Delivery 2026 10 17

Anushka Wijesundara edited this page Oct 18, 2026 · 1 revision

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.

Delivered

  • 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_0129 creates project_saved_filter and project_filter_favourite. Fresh-install schema adoption and a real PostgreSQL downgrade/upgrade cycle were verified.

Verification

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.

Live acceptance

  • Namespace operations, Helm 213, chart/base version 1.113.50, local candidate cand-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.dump restored 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.

Machine-readable acceptance

Interface examples

Project search and saved favourites

Phone / light · Desktop / dark · Phone / dark

Clone this wiki locally