54 lines
2.5 KiB
Markdown
54 lines
2.5 KiB
Markdown
# API surface smoke - admin, health, docs, public v1
|
|||
|
|
|
||
|
|
**When:** 2026-08-04 03:03:48 +02:00
|
||
|
|
**API:** http://127.0.0.1:8080
|
||
|
|
**Web:** http://localhost:5174
|
||
|
|
**Demo:** `demo@descrybe.local` / `DemoPass123!` (`is_platform_admin=true`)
|
||
|
|
**Demo API key:** `dk_demo_local_descrybe_test_key_v1` (**Platform Demo** after seed-demo; not A1)
|
||
|
|
|
||
|
|
> **Note (isolation):** Historical matrix rows below may still say Local Demo Co / A1 — treat as outdated. Canonical identity: [safe-test-fixtures.md](safe-test-fixtures.md).
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
| Metric | Value |
|
||
|
|
|--------|-------|
|
||
|
|
| PASS | 20 |
|
||
|
|
| FAIL | 0 |
|
||
|
|
| Overall | PASS |
|
||
|
|
|
||
|
|
## Matrix
|
||
|
|
|
||
|
|
| Check | Result | Detail |
|
||
|
|
|-------|--------|--------|
|
||
|
|
| demo is_platform_admin | **PASS** | db=true |
|
||
|
|
| login demo platform admin | **PASS** | True |
|
||
|
|
| GET /api/auth/me platform admin | **PASS** | Local Demo Co |
|
||
|
|
| GET /api/admin/users | **PASS** | status=200 |
|
||
|
|
| GET /api/admin/companies | **PASS** | status=200 |
|
||
|
|
| GET /api/admin/analytics | **PASS** | status=200 |
|
||
|
|
| GET /api/admin/jobs | **PASS** | status=200 |
|
||
|
|
| GET /healthz | **PASS** | status=200 |
|
||
|
|
| GET /readyz | **PASS** | status=200 |
|
||
|
|
| GET /docs (web) | **PASS** | status=200 |
|
||
|
|
| GET /api/v1/openapi.yaml | **PASS** | status=200 |
|
||
|
|
| OpenAPI has auth + localhost server | **PASS** | clarity text present |
|
||
|
|
| v1 GET /products?limit=1 (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /categories?limit=1 (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /attributes?limit=1 (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /feeds (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /export-feeds (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /process (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 GET /health (demo key) | **PASS** | status=200 |
|
||
|
|
| v1 products without key -> 401 | **PASS** | status=401 |
|
||
|
|
|
||
|
|
## Fixes applied this run
|
||
|
|
|
||
|
|
1. **OpenAPI clarity** (`apps/api/internal/httpapi/v1_openapi.go`): expanded `info.description` with auth headers, curl example, base path notes; added `http://localhost:8080/api/v1` server; ASCII-safe Bearer scheme description.
|
||
|
|
2. **Docs page clarity** (`apps/web/src/routes/docs/+page.svelte`): header link (OpenAPI YAML), loading/error/retry for RapiDoc, theme via `marketingTheme`.
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- `GET /healthz` / `GET /readyz` are on the API host; Vite proxies them from the web origin in local dev.
|
||
|
|
- Interactive docs: `http://localhost:5174/docs` (RapiDoc); raw spec: `/api/v1/openapi.yaml`.
|
||
|
|
- Public `/api/v1/*` is API-key only; dashboard `/api/*` is session + CSRF.
|
||
|
|
- Related: [demo-user.md](demo-user.md), [qa-local-demo.md](qa-local-demo.md), [local-smoke-results.md](local-smoke-results.md).
|