Files
descrybe/docs/features.md
T
2026-08-16 23:07:32 +02:00

74 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Feature checklist (phases AE)
Short parity checklist for Descrybe v2. Detailed gaps: **[status-and-gaps.md](status-and-gaps.md)**. Cutover: [cutover.md](cutover.md). Schema: [schema-map.md](schema-map.md).
Legend: `[x]` done · `[~]` partial/stub · `[ ]` missing
## Phase 0 — Scaffold
- [x] Monorepo: `apps/api`, `apps/web`, docs/scripts (migrator under `apps/api/cmd/migrator`)
- [x] Docker Compose PostgreSQL 16
- [x] goose migrations + sqlc generate
- [x] `cmd/api`, `cmd/worker`, `cmd/migrator`
- [x] SvelteKit shell + `PUBLIC_API_URL` + CSRF-aware client
- [x] ID map JSON format documented ([schema-map.md](schema-map.md))
- [ ] CI (`go test`, sqlc check, `svelte-check`)
- [ ] Automated tests
## Phase A — Platform
- [x] Email/password auth (argon2id), login/logout, session cookies (scs)
- [x] Invite accept + set-password (`must_set_password`)
- [x] Companies + memberships (replace Clerk orgs / profiles)
- [~] Team invite / revoke / remove member (invite + remove yes; revoke/list pending incomplete)
- [~] Settings: profile, company (language, merge-by-GTIN) — company yes; profile update thin
- [~] API keys CRUD (dashboard keys yes; **`/api/v1` product API missing**)
- [~] Billing/usage read + credit consume (overview + consume yes; plans/cycles/cron incomplete)
- [ ] `is_platform_admin` gate + migrator from `admin_users`
- [x] Health: `/healthz` + `/readyz` (Postgres `pool.Ping`)
- [x] Svelte: login, accept-invite, settings, billing overview, API keys
- [~] Migrator: companies, users, memberships, plans (+ dry-run) — needs real MySQL validation
- [ ] Invite / set-password emails (SMTP)
## Phase B — Catalog
- [~] Categories tree + CSV upload (CRUD + formulas API; no tree UI / CSV)
- [~] Attributes hierarchy + category links (CRUD; linking UI incomplete)
- [~] Custom variables + title/description formula editors (API yes; rich UI missing)
- [~] Products list/search/edit (API list/get/patch; UI basic)
- [ ] File uploads (products / EANs) + object storage
- [~] Migrator: categories, attributes, variables, products (best-effort; files incomplete)
## Phase C — Feeds / export
- [~] Input feeds (URL / file / FTP), mapping, schema extraction (CRUD + mapping JSON; sync/FTP/extract missing)
- [~] Sync jobs via River (DB job row stub; River not wired)
- [~] Export feed builder (XML/CSV) + public URLs (create + stub body)
- [ ] Preview APIs
- [~] Migrator: feeds, export feeds (mappings incomplete)
## Phase D — AI processing
- [x] Pipeline workers: categorize (vector + LLM taxonomy) → attributes → enhance
- [~] Credits, rate limits, cancel/retry (credits + cancel yes; rate limits/retry incomplete)
- [~] OpenAI / Pinecone behind interfaces (OpenAI + optional Pinecone; LLM categorize when category missing)
- [~] Job controls UI (list/start/cancel basic; no admin visibility)
## Phase E — WooCommerce + admin / cutover
- [~] WooCommerce sync (config only; test/sync stubs)
- [ ] Admin: users, billing, jobs, stuck cleanup
- [ ] Final ETL verification + count reports on real data
- [ ] Cutover runbook executed ([cutover.md](cutover.md))
- [ ] Clerk decommissioned; MySQL retained 30 days
## Suggested next milestones
1. Validate migrator `-dry-run` on production MySQL dump
2. Implement real feed sync (URL + CSV)
3. Implement real export XML/CSV
4. AI pipeline MVP behind interfaces
5. Port `/api/v1` for existing API clients
6. Catalog CSV + formula UI + product edit parity
7. Admin + Woo (if needed) → cutover