Skip to content

Admin Worker

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

Quick Reference

Resource Location
Source Code components/admin_worker/
Infrastructure infra/admin/

UI Overview

Route Description
/ Home/landing page
/accounts Accounts list
/indexes Index listing
/indexes/:id Index detail with tabs (Infra, Export, Jobs, Configuration, Aliases)
/indexes/:id/jobs/:jobId Sync job detail
/monitoring System 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 />));