50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# 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.
|