Rocky_Mountain_Vending/docs/manuals-tenant-recovery.md

61 lines
1.5 KiB
Markdown

# 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:
```bash
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:
```bash
pnpm manuals:backfill:tenant -- --domain rmv.abundancepartners.app --dry-run
```
Apply:
```bash
pnpm manuals:backfill:tenant -- --domain rmv.abundancepartners.app
```
## 4) Re-run smoke checks
```bash
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`):
```bash
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.