feat(web): back global search with Solr #787

Merged
simon merged 1 commit from feat/solr-global-search into dev 2026-06-26 18:01:52 +00:00
Owner

Summary

  • add bundled Apache Solr as the CT-Ops global search backend in the customer compose stack
  • index CT-Ops-wide search documents from Postgres into Solr with instance/category filters and partial/prefix matching
  • harden timestamp serialization so string timestamps cannot crash search results
  • add Solr bundle validation and release packaging checks

Validation

  • node --experimental-strip-types --test lib/search/global-search-core.test.mjs lib/search/solr-client.test.mjs lib/global-search.test.mjs
  • PNPM_IGNORE_DEPS_STATUS_CHECK=1 pnpm --filter web type-check
  • bash deploy/scripts/test-solr-compose.sh && bash deploy/scripts/test-start.sh && bash deploy/scripts/test-forgejo-bundle-release.sh
  • BETTER_AUTH_URL=http://localhost:3000 BETTER_AUTH_SECRET=build-placeholder POSTGRES_PASSWORD=build-placeholder PNPM_IGNORE_DEPS_STATUS_CHECK=1 pnpm --filter web build
  • docker compose Solr smoke: core health, no host port, indexed ct-ops found by ct* query

Companion docs PR: carrtech/website#77.

## Summary - add bundled Apache Solr as the CT-Ops global search backend in the customer compose stack - index CT-Ops-wide search documents from Postgres into Solr with instance/category filters and partial/prefix matching - harden timestamp serialization so string timestamps cannot crash search results - add Solr bundle validation and release packaging checks ## Validation - node --experimental-strip-types --test lib/search/global-search-core.test.mjs lib/search/solr-client.test.mjs lib/global-search.test.mjs - PNPM_IGNORE_DEPS_STATUS_CHECK=1 pnpm --filter web type-check - bash deploy/scripts/test-solr-compose.sh && bash deploy/scripts/test-start.sh && bash deploy/scripts/test-forgejo-bundle-release.sh - BETTER_AUTH_URL=http://localhost:3000 BETTER_AUTH_SECRET=build-placeholder POSTGRES_PASSWORD=build-placeholder PNPM_IGNORE_DEPS_STATUS_CHECK=1 pnpm --filter web build - docker compose Solr smoke: core health, no host port, indexed ct-ops found by ct* query Companion docs PR: carrtech/website#77.
feat(web): back global search with Solr
All checks were successful
CI Policy / Workflow runner policy (pull_request) Successful in 7s
PR Checks (Docker images) / Ansible API contract (pull_request) Successful in 7s
PR Checks (Docker images) / Detect Docker image changes (pull_request) Successful in 8s
SAST / Detect security scan scope (pull_request) Successful in 9s
Customer bundle check / validate (pull_request) Successful in 12s
PR Checks (Docker images) / Ingest Docker image (pull_request) Has been skipped
SAST / gosec (agent) (pull_request) Has been skipped
PR Checks (Docker images) / Ansible API Docker image (pull_request) Has been skipped
SAST / gosec (ingest) (pull_request) Has been skipped
Secret Scan / gitleaks (pull_request) Successful in 29s
Conventional PR title / Conventional PR title (pull_request) Successful in 1s
SAST / semgrep (pull_request) Successful in 1m11s
SAST / crypto-lint (no weak hashes / ciphers) (pull_request) Successful in 1m7s
PR Checks (Web) / Web (lint / type-check / build) (pull_request) Successful in 2m32s
SAST / trivy (config / IaC) (pull_request) Successful in 2m4s
SAST / trivy (filesystem) (pull_request) Successful in 2m6s
PR Checks (Docker images) / Web Docker image (pull_request) Successful in 12m13s
6e32941f18
simon deleted branch feat/solr-global-search 2026-06-26 18:01:52 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carrtech/ct-ops!787
No description provided.