Add local launcher-to-secretapi end-to-end smoke runbook

This commit is contained in:
Joshua 2026-02-17 20:51:56 -08:00
parent 7ef7c662f3
commit f11b40479c
2 changed files with 52 additions and 0 deletions

View File

@ -13,6 +13,9 @@ These templates are deployment-time placeholders for membership-gated commerce.
3. `secretapi-deploy.md` 3. `secretapi-deploy.md`
- Backend deployment runbook for membership + governance install APIs. - Backend deployment runbook for membership + governance install APIs.
4. `local-e2e-smoke.md`
- Local launcher + backend smoke sequence before live deployment.
## Usage ## Usage
1. Copy templates to environment-specific files. 1. Copy templates to environment-specific files.

View File

@ -0,0 +1,49 @@
# Local E2E Smoke (Launcher + Secret API)
This smoke path validates wallet intent, membership, member channel, and governance install flow locally before live server wiring.
## 1) Start Secret API
```bash
cd "/Users/vsg/Documents/VSG Codex/web/backend/secretapi"
cp .env.example .env.local
go run .
```
Default bind is `http://127.0.0.1:8080`.
## 2) Start Launcher Harness
```bash
cd "/Users/vsg/Documents/VSG Codex/launcher"
make serve
```
Open `http://127.0.0.1:4310`.
## 3) Run Deterministic Flow
1. Enter wallet + chain id.
2. Click `Create intent`.
3. Sign typed data in local wallet tooling and paste signature.
4. Click `Verify signature`.
5. Click `Get quote`.
6. Confirm tx hash (local/test hash if RPC verification disabled).
7. Click `Confirm membership tx`.
8. Register member channel and poll events.
9. Ack an event.
10. Request governance install token and check install status.
## 4) Expected Results
1. Membership status resolves to `active`.
2. Event polling returns deterministic event envelopes with stable `event_id`.
3. Event ack is idempotent for `event_id + device_id`.
4. Owner role can open support ticket; workspace member is rejected with `owner_role_required`.
5. Governance install token is owner-gated and blocked when availability is parked.
## 5) Troubleshooting
1. If CORS fails, set `SECRET_API_ALLOWED_ORIGIN=*` locally.
2. If tx confirmation blocks, set `SECRET_API_CHAIN_RPC_URL=` empty for local non-chain smoke.
3. If member channel returns `membership_inactive`, re-run wallet intent/verify and membership confirm.