managarten/apps/api/src/modules
Till JS 546b94d472 feat(personas): move admin + internal endpoints from mana-auth to apps/api
Schließt die platform/product-split-Lücke: HEAD's apps/api/src/index.ts
referenziert seit dem Forms-M10d-Commit personasInternalRoutes /
personasAdminRoutes — die Implementierung lag aber noch nicht im Repo.
Build war strukturell broken bis hierhin.

Was wandert von mana-auth nach apps/api:

  apps/api/src/modules/personas/
    ├── schema.ts          — pgSchema('personas') mit personas /
    │                        persona_actions / persona_feedback;
    │                        userId ist plain text (Cross-DB-FK auf
    │                        mana-auth's auth.users geht nach Split nicht).
    ├── internal-routes.ts — service-key gated GET /due, POST /:id/actions
    │                        und POST /:id/feedback. Append-only +
    │                        idempotent über deterministische row-ids
    │                        (tickId-i-tool / tickId-module).
    └── admin-routes.ts    — admin-JWT gated CRUD; ruft mana-auth via
                             /api/v1/admin/users + /api/v1/auth/register
                             + /api/v1/internal/users/:id/persona-stamp
                             für den User-Lifecycle.

Persona-runner-Client zeigt jetzt auf apps/api:

  - config.ts: neues apiUrl-Feld (default http://localhost:3060,
    Env MANA_API_URL); authUrl bleibt für /api/v1/auth/login + spaces.
  - clients/mana-auth-internal.ts: drei Calls treffen jetzt
    /api/v1/personas/internal/* statt mana-auth's
    /api/v1/internal/personas/* — Datei-Name bleibt um Call-Site-Diff
    klein zu halten.
  - index.ts: ManaAuthInternalClient bekommt config.apiUrl statt authUrl.

Seed/Cleanup-Skripte:

  - --api= als bevorzugter Flag, --auth= als Legacy-Alias (cached
    Shell-History würde sonst hart brechen).
  - default http://localhost:3060, Env MANA_API_URL.
  - Endpoint-Pfade umgeschrieben:
      POST   /api/v1/admin/personas        → /api/v1/personas/admin
      DELETE /api/v1/admin/personas/:id    → /api/v1/personas/admin/:id

drizzle.config.ts: schema-Array + schemaFilter um 'personas' erweitert.
DB-push ist Pflicht-Schritt vor erstem Boot, sonst 42P01 auf /due.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 20:38:29 +02:00
..
articles feat(articles): finale polish — Help-Eintrag + intentional-console + 5-Locale i18n (#16,#10,#17) 2026-05-06 13:39:50 +02:00
calendar feat(api): create unified API server with first 3 modules 2026-04-02 21:12:15 +02:00
chat refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
comic feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases 2026-04-26 21:26:03 +02:00
contacts refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
food feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases 2026-04-26 21:26:03 +02:00
forms feat(forms): M10d headless wave-cron — server-worker + private internal_meta 2026-05-06 17:18:05 +02:00
guides refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
moodlit feat(api): port remaining 12 modules to unified API server 2026-04-02 21:34:08 +02:00
music refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
news refactor(shared-rss): extract RSS parsing + Readability into one package 2026-04-15 22:30:44 +02:00
news-research feat(news-research): RSS feed discovery, filter, and AI-context export 2026-04-15 22:31:07 +02:00
notes feat(notes): isSpaceContext flag replaces kontext module (Option B) 2026-04-29 00:14:32 +02:00
personas feat(personas): move admin + internal endpoints from mana-auth to apps/api 2026-05-06 20:38:29 +02:00
picture feat(wardrobe,picture): Google Nano Banana as a Try-On option 2026-04-24 16:04:21 +02:00
plants feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases 2026-04-26 21:26:03 +02:00
presi refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
profile feat(profile,api): meImages foundation for AI reference generation (M1) 2026-04-23 13:50:53 +02:00
research feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases 2026-04-26 21:26:03 +02:00
storage docs: update architecture comparison — 5/10 roadmap items done 2026-04-16 15:00:09 +02:00
todo refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
traces refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
unlisted feat(forms): M10d headless wave-cron — server-worker + private internal_meta 2026-05-06 17:18:05 +02:00
wardrobe feat(wardrobe): module foundation — garments + outfits space-scoped data layer (M1) 2026-04-23 18:27:37 +02:00
website fix(website): publish failed with uuid type error on Better-Auth ids 2026-04-23 21:43:57 +02:00
wetter feat(wetter): add multi-model source comparison view 2026-04-17 13:57:05 +02:00
who feat(who): add character dossier system for staged fact disclosure 2026-04-10 17:40:16 +02:00
writing feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases 2026-04-26 21:26:03 +02:00