Skip to main content

Admin Worker

React Router 7 + Cloudflare Worker application serving the Admin Console UI. Proxies API requests to the Admin Lambda backend.

Quick Reference

ResourceLocation
Source Codecomponents/admin_worker/
Infrastructureinfra/admin/

UI Overview

RouteDescription
/Home/landing page
/accountsAccounts list
/indexesIndex listing
/indexes/:idIndex detail with tabs (Infra, Export, Jobs, Configuration, Aliases)
/indexes/:id/jobs/:jobIdSync job detail
/monitoringSystem monitoring

Local Development

cd components/admin_worker
npm install
npm run dev # http://localhost:5173

Local API Access

For local development against a real Admin Lambda:

  1. Get a Cloudflare Access token from the browser dev tools after authenticating
  2. Create .dev.vars file:
    LOCAL_CF_ACCESS_TOKEN=your_cf_access_jwt_here
  3. Run npm run dev

Testing

npm test # Run all tests
npm run coverage # With coverage report

Test Utilities

Use helpers from tests/lib/test-utils.ts:

import {
createMockEnv,
createMockContext,
createMockResponse,
createMockGatewayClient,
setupGatewayClient,
renderWithRouter,
} from "../lib/test-utils";

// Mock a successful API response
setupGatewayClient("get", createMockResponse({ json: { items: [] } }));

// Mock an error response
setupGatewayClient("get", createMockResponse({ ok: false, status: 404 }));

// Render component with router
const { getByText } = render(renderWithRouter(<MyComponent />));