Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Indexer Admin Console UI

  • Status: Accepted
  • Date: 2026-03-15
  • Context:
    • ERD_INDEXERS_CHECKLIST.md still had the broad indexer-management UI item open after the manual search page landed.
    • The API already exposed many ERD-backed mutation workflows for indexers, secrets, routing policies, rate limits, search profiles, policy sets, import jobs, and Torznab management.
    • The current UI lacked a dedicated route for those operations, which forced all validation of that surface into API/CLI-only flows.
  • Decision:
    • Add a dedicated /indexers route and crates/revaer-ui/src/features/indexers/ feature slice for operator-facing indexer administration.
    • Reuse the existing authenticated API surface through the shared ApiClient, adding small generic REST helpers instead of introducing new dependencies or duplicating HTTP auth logic.
    • Model the page as an action-oriented admin console with a shared activity log, because the backend does not yet expose read/list endpoints for every managed resource.
    • Alternatives considered: overloading the existing Settings page, or delaying all UI work until broader list/read APIs existed. Both options would have either blurred module boundaries or left the remaining ERD UI scope blocked longer.
  • Consequences:
    • Positive outcomes:
      • Revaer now has end-to-end UI entry points for the existing indexer management workflows, including definitions lookup, tags, secrets, routing policies, rate limits, instances, search profiles, policies, imports, and Torznab actions.
      • Operators can capture raw response payloads in the page log, which improves reproducibility when comparing UI behavior to API/CLI behavior.
      • No new dependencies were added.
    • Risks or trade-offs:
      • The console is action-first rather than a full CRUD browser because list/read endpoints are still incomplete for several resource types.
      • Several fields currently use free-form text inputs for enum keys and UUIDs, which trades richer affordances for implementation speed and API parity.
  • Follow-up:
    • Implementation tasks:
      • Add list/read endpoints and richer selectors as the backend surface expands.
      • Fold more health and connectivity summary views into the indexer route once dedicated data reads are available.
    • Review checkpoints:
      • Keep just ci and just ui-e2e green.
      • Revisit the remaining unchecked checklist items around service layering, error logging origin, rollout, and final acceptance.