Rocky_Mountain_Vending/docs/manuals-tenant-recovery.md

1.5 KiB

Manuals Tenant Recovery Runbook

1) Verify runtime env on active app

Confirm these variables on the live Coolify app/container:

  • NEXT_PUBLIC_CONVEX_URL (full https://... URL)
  • NEXT_PUBLIC_SITE_DOMAIN=rmv.abundancepartners.app
  • Optional override: MANUALS_TENANT_DOMAIN=rmv.abundancepartners.app

2) Verify Convex tenant data gate

Run:

pnpm deploy:staging:convex-gate

This fails if Convex returns fewer than one manual for the active domain.

3) Backfill existing manuals rows for tenant visibility

Dry run first:

pnpm manuals:backfill:tenant -- --domain rmv.abundancepartners.app --dry-run

Apply:

pnpm manuals:backfill:tenant -- --domain rmv.abundancepartners.app

4) Re-run smoke checks

pnpm deploy:staging:smoke -- --base-url https://rmv.abundancepartners.app --skip-browser

Manuals checks will fail if:

  • /manuals renders with initialManuals: []
  • tenant domain marker mismatches the host
  • degraded manuals state is shown

5) Recover eBay parts cache (when status is rate_limited/empty)

Force a cache refresh from the live app (requires ADMIN_API_TOKEN):

curl -sS -X POST \
  -H "x-admin-token: $ADMIN_API_TOKEN" \
  https://rmv.abundancepartners.app/api/admin/ebay/refresh

Then verify:

  1. GET /api/ebay/search?... reports cache status=success with non-zero listingCount.
  2. POST /api/ebay/manual-parts for a known parts manual returns at least one listing.
  3. Manual viewer shows no stale/error eBay panel when matches are unavailable.