Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
5.3 KiB
5.3 KiB
Process & sell — end-to-end summary (Descrybe v2)
Last updated: 2026-08-04
Repo: f:/laragon/www/_MY/descrybe-v2
Short guide for verifying the parallel feature work: standard fields, feed auto-map, sync+process (including EPREL/specs), export, and the public API + docs.
Prerequisites
cd f:/laragon/www/_MY/descrybe-v2
docker compose up -d # Postgres on host :5433 (healthy)
$env:DATABASE_URL = "postgres://descrybe:descrybe@localhost:5433/descrybe?sslmode=disable"
# Goose migrations through 009 (008 standard fields config, 009 processing step progress; 007 already applied)
cd apps/api
go run github.com/pressly/goose/v3/cmd/goose@v3.24.3 -dir sql/schema postgres $env:DATABASE_URL up
# API + worker (separate terminals)
go run ./cmd/api
go run ./cmd/worker
# Web
cd ../web
npm install
npm run dev
- Web: http://localhost:5174
- API: http://localhost:8080
- API docs (RapiDoc): http://localhost:5174/docs
- OpenAPI YAML: http://localhost:8080/api/v1/openapi.yaml
Demo credentials
From demo-user.md:
| Field | Value |
|---|---|
demo@descrybe.test |
|
| Password | DemoPass123! |
| Role | Platform admin; Platform Demo only (not A1) |
| Default company | Platform Demo (sandbox; see safe-test-fixtures.md) |
| Demo API key | dk_demo_local_descrybe_test_key_v1 → Platform Demo only |
Re-seed anytime:
cd apps/api
$env:DATABASE_URL = "postgres://descrybe:descrybe@localhost:5433/descrybe?sslmode=disable"
go run ./cmd/seed-demo -postgres $env:DATABASE_URL
seed-demo assigns the Platform Demo plan (~1M AI credits). Do not top up or rename A1 Slovenija. Resolve Platform Demo company_id from SQL//api/auth/me before any wallet UPDATE.
How to test (happy path)
- Login at http://localhost:5174/login with the demo credentials → land on
/dashboard(company Platform Demo). - Standard fields → open
/standard-fields, enable the recommended standard fields (company config from migration008). - Open a feed →
/feeds, pick an input feed with URL data →/feeds/{feedId}(and/feeds/{feedId}/mapping). - Auto-map → run auto-map on the feed mapping so source columns/paths bind to product + standard fields.
- Sync + process a sample → sync the feed (URL CSV/XML →
raw_products), then start a small processing job (dashboard Background Tasks/processing, or select raw products and process). Keep the worker running. - See EPREL / specs → open a processed product; when
EPREL_ENABLED=trueand an EPREL id is present, attributes includeeprel_*/ nestedeprel; specs come from theparse_specs/fill_fieldssteps. See eprel.md. - Export →
/export-feeds, generate or open the public XML/CSV stream for a template that mapseprel_*/ attribute sources. - Public API + docs → browse http://localhost:5174/docs (RapiDoc) and smoke:
curl -s -H "Authorization: Bearer dk_demo_local_descrybe_test_key_v1" \
"http://localhost:8080/api/v1/products?limit=1"
Processing via public API (same pipeline as the dashboard):
POST /api/v1/processGET /api/v1/process/{id}
Env flags
Set on the API and especially the worker (enrichment runs in ProcessJob):
| Variable | Default | Purpose |
|---|---|---|
EPREL_ENABLED |
false |
Turn on EPREL enrichment step |
EPREL_TIMEOUT |
10s |
HTTP client timeout |
EPREL_BASE_URL |
https://eprel.ec.europa.eu/api |
Override for tests/proxies |
EPREL_FICHE_LANGUAGE |
EN |
Product fiche language |
EPREL_API_KEY |
(empty) | Optional X-API-KEY — never log |
OPENAI_API_KEY |
(empty) | Enables OpenAI enhance; without it, heuristic fallback still runs |
OPENAI_MODEL |
gpt-4o-mini |
Chat model |
OPENAI_BASE_URL |
https://api.openai.com/v1 |
Override for proxies |
Example worker env:
$env:DATABASE_URL = "postgres://descrybe:descrybe@localhost:5433/descrybe?sslmode=disable"
$env:EPREL_ENABLED = "true"
$env:OPENAI_API_KEY = "sk-..." # optional
go run ./cmd/worker
What was deferred
Not in scope for this reconcile / parallel feature pass (see status-and-gaps.md):
- Stripe checkout / subscriptions (manual credits + plans only)
- River job client (DB claim + NOTIFY remains)
- Feed FTP / Excel / uploaded-file ingest; export schedule / object storage
- Rich WooCommerce mapping UI + live store E2E
- Production cutover blockers: Clerk email patch, membership role promotion, SMTP set-password smoke
- Org export/import, WebSocket live updates, GitHub Actions CI
- Structured-descriptions / vector-categories backend APIs (UI shells exist)
- Pinecone index tuning (optional; needs config)
Related docs
- demo-user.md — credentials, API key, company counts
- eprel.md — EPREL step, export aliases, tests
- status-and-gaps.md — full gap list
- go-live-checklist.md — cutover gates
- Root README.md — quick start
Build smoke (reconcile)
cd apps/api; go build ./...
cd ../web; npm run check
Expected: Go packages compile; svelte-check reports 0 errors / 0 warnings.