- Remove executable permissions from configuration files (.editorconfig, .env.example, .gitignore) - Remove executable permissions from documentation files (README.md, LICENSE, SECURITY.md) - Remove executable permissions from web assets (HTML, CSS, JS files) - Remove executable permissions from data files (JSON, SQL, YAML, requirements.txt) - Remove executable permissions from source code files across all apps - Add executable permissions to Python
1.9 KiB
1.9 KiB
Marketplace Web
Mock UI for exploring marketplace offers and submitting bids.
Development
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 underpublic/mock/. - Set
VITE_MARKETPLACE_DATA_MODE=liveand pointVITE_MARKETPLACE_APIto the coordinator backend when integration-ready.
Feature Flags & Auth
VITE_MARKETPLACE_ENABLE_BIDS(defaulttrue) gates whether the bid form submits to the backend. Set tofalseto keep the UI read-only during phased rollouts.VITE_MARKETPLACE_REQUIRE_AUTH(defaultfalse) enforces a bearer token session before live bid submissions. Tokens are stored inlocalStoragebysrc/lib/auth.ts; the API helpers automatically attach theAuthorizationheader when a session is present.- Session JSON is expected to include
token(string) andexpiresAt(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.