``` feat: add websocket tests, PoA metrics, marketplace endpoints, and enhanced observability - Add comprehensive websocket tests for blocks and transactions streams including multi-subscriber and high-volume scenarios - Extend PoA consensus with per-proposer block metrics and rotation tracking - Add latest block interval gauge and RPC error spike alerting - Enhance mock coordinator
42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# Marketplace Web
|
||
|
||
Mock UI for exploring marketplace offers and submitting bids.
|
||
|
||
## Development
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
The dev server listens on `http://localhost:5173/` by default. Adjust via `--host`/`--port` flags in the `systemd` unit or `package.json` script.
|
||
|
||
## Data Modes
|
||
|
||
Marketplace web reuses the explorer pattern of mock vs. live data:
|
||
|
||
- Set `VITE_MARKETPLACE_DATA_MODE=mock` (default) to consume JSON fixtures under `public/mock/`.
|
||
- Set `VITE_MARKETPLACE_DATA_MODE=live` and point `VITE_MARKETPLACE_API` to the coordinator backend when integration-ready.
|
||
|
||
### Feature Flags & Auth
|
||
|
||
- `VITE_MARKETPLACE_ENABLE_BIDS` (default `true`) gates whether the bid form submits to the backend. Set to `false` to keep the UI read-only during phased rollouts.
|
||
- `VITE_MARKETPLACE_REQUIRE_AUTH` (default `false`) enforces a bearer token session before live bid submissions. Tokens are stored in `localStorage` by `src/lib/auth.ts`; the API helpers automatically attach the `Authorization` header when a session is present.
|
||
- Session JSON is expected to include `token` (string) and `expiresAt` (epoch ms). Expired or malformed entries are cleared automatically.
|
||
|
||
Document any backend expectations (e.g., coordinator accepting bearer tokens) alongside the environment variables in deployment manifests.
|
||
|
||
## Structure
|
||
|
||
- `public/mock/offers.json` – sample marketplace offers.
|
||
- `public/mock/stats.json` – summary dashboard statistics.
|
||
- `src/lib/api.ts` – data-mode-aware fetch helpers.
|
||
- `src/main.ts` – renders dashboard, offers table, and bid form.
|
||
- `src/style.css` – layout and visual styling.
|
||
|
||
## Submitting Bids
|
||
|
||
When in mock mode, bid submissions simulate latency and always succeed.
|
||
|
||
When in live mode, ensure the coordinator exposes `/v1/marketplace/offers`, `/v1/marketplace/stats`, and `/v1/marketplace/bids` endpoints compatible with the JSON shapes defined in `src/lib/api.ts`.
|