Projektstand und Übersicht (Stand 2026-10-16) #44

Open
opened 2026-10-16 05:58:58 +00:00 by Nick.Rosenloecher · 0 comments
Owner

Ziel

Einstieg in ApiCore: Was ist gebaut, geprüft, gemergt und ausgerollt, was ist offen, was blockiert, was muss der Inhaber tun.

Zweck des Systems

ApiCore ist die digitale Imkereiverwaltung der Imkerei Wabenhain: Stände, Völker, Königinnen, Durchsichten, Behandlungen, Fütterungen, Ernte bis Honigcharge, Lager, Abfüllung und Etiketten – mit lückenloser Rückverfolgbarkeit, Compliance (Bestandsbuch, Etikett-Pflichtangaben, Behördenpaket) und Saison-Autopilot. Der Wabenhain-Shop liest Bestände nur über GET /shop-sync mit API-Schlüssel, ERPNext den Inventar-Spiegel über /export/inventar/*.

Architektur

  • Backend ApiCore-Backend/: NestJS 11, Prisma 7, PostgreSQL 18, API unter /api/v1, Rechte über @RequirePermission (fail-closed).
  • Frontend ApiCore-Frontend/: Next.js 16 (App Router), TanStack Query, PWA mit Offline-Warteschlange (IndexedDB) und Service Worker.
  • Ein Backend-Image in drei Rollen: api (HTTP), worker (Outbox-Zustellung, Webhooks, Kalender, Wetter, Telegram), job (CronJobs cleanup, daily-evaluation, task-templates, app-backup, rekey).
  • Fachliche Folgen über die Transactional Outbox DomainEvent in Postgres, kein Message-Broker; Rate-Limits in Postgres.
  • Betrieb im RKE2-Cluster (Namespace apicore), Manifeste als Kustomize unter deploy/k8s (base, components, overlay encry), Images aus Gitea Actions.

Bereiche

Erledigt

In Arbeit

  • Beute L2 Karte ohne 3D (lokal committet, nicht gepusht) – #19
  • Beute L3 3D-Szene (erster Schnitt lokal) – #20
  • Beute L4 Umbauen (lokal, unkommittiert) – #21
  • Beute L5 Durchsicht und Offline (lokal, unkommittiert) – #22
  • Beute Teil 4 Sprach-Durchsicht (Doku lokal) – #25
  • T7 Spracherfassung (Plan lokal, nicht gepusht) – #27
  • AuDHD-Restpunkte – #9
  • Doku-Abgleich 2026-10-16 (Worktree, wartet auf Commit) – #42

Offen

Blockiert (wartet auf den Inhaber)

  • Rollout in den Cluster – #28
  • Secrets, Telegram-Bot, Vorprüfungen – #29
  • Geheimnisse rotieren – #30
  • T6 nach dem Rollout – #34
  • ERP-Export in Betrieb nehmen – #35
  • Beute: Maße, Fotos, Rechtefrage – #23

Inhaber-Aufgaben gesammelt: #43

Rollout-Stand

  • Produktiv seit 2026-10-12: Backend sha-f5b1964 (Commit f5b19642), Frontend-Image vom 2026-10-12 03:23 UTC, Postgres 18.6-alpine, CronJob apicore-db-backup, PVC apicore-data.
  • Nicht ausgerollt: alles ab Paket 0 (10cbe9bf) bis origin/main b48fb157 – Paket 0, Rückgrat, T3, T4, T6, ERP-Export, Beute L1. CI-Builds auf b48fb157 grün.
  • Lokal, nicht gepusht (Session vs-code-ff): 6 Commits (7fd5beda, 04508d5f, e4252878, b73da4d8, f0e14399, 8cacdf17) und rund 66 unkommittierte bzw. neue Dateien (Beute L3–L5).

Doku

  • README.md (Einstieg, nach dem Doku-Abgleich), CLAUDE.md (Arbeitsregeln), ARCHITECTURE.md (Module, Annahmen 1–99, Kubernetes §7, Backup §8, Sicherheit §9, Rückgrat §10, T4 §11, T6 §12, Beute §13), TASKS.md (Häkchenliste)
  • docs/lastenheft.md, docs/pruefung-2026-09.md, docs/erp-inventar-export.md
  • Specs und Pläne: docs/superpowers/specs/, docs/superpowers/plans/
  • Deploy: deploy/k8s/ (Runbook im Plan 2026-10-13-plattform-rueckgrat.md)

Status

Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)

## Ziel Einstieg in ApiCore: Was ist gebaut, geprüft, gemergt und ausgerollt, was ist offen, was blockiert, was muss der Inhaber tun. ## Zweck des Systems ApiCore ist die digitale Imkereiverwaltung der Imkerei Wabenhain: Stände, Völker, Königinnen, Durchsichten, Behandlungen, Fütterungen, Ernte bis Honigcharge, Lager, Abfüllung und Etiketten – mit lückenloser Rückverfolgbarkeit, Compliance (Bestandsbuch, Etikett-Pflichtangaben, Behördenpaket) und Saison-Autopilot. Der Wabenhain-Shop liest Bestände nur über `GET /shop-sync` mit API-Schlüssel, ERPNext den Inventar-Spiegel über `/export/inventar/*`. ## Architektur - Backend `ApiCore-Backend/`: NestJS 11, Prisma 7, PostgreSQL 18, API unter `/api/v1`, Rechte über `@RequirePermission` (fail-closed). - Frontend `ApiCore-Frontend/`: Next.js 16 (App Router), TanStack Query, PWA mit Offline-Warteschlange (IndexedDB) und Service Worker. - Ein Backend-Image in drei Rollen: `api` (HTTP), `worker` (Outbox-Zustellung, Webhooks, Kalender, Wetter, Telegram), `job` (CronJobs `cleanup`, `daily-evaluation`, `task-templates`, `app-backup`, `rekey`). - Fachliche Folgen über die Transactional Outbox `DomainEvent` in Postgres, kein Message-Broker; Rate-Limits in Postgres. - Betrieb im RKE2-Cluster (Namespace `apicore`), Manifeste als Kustomize unter `deploy/k8s` (base, components, overlay `encry`), Images aus Gitea Actions. ## Bereiche **Erledigt** - [x] MVP, Module 0–21 – #2 - [x] v1.x, Module 22–33 und Redesign – #3 - [x] Später-Liste (Karte, Wetter, Herkunft, PWA, NFC) – #4 - [x] RBAC, Deploy-Grundlage, erste Härtung – #5 - [x] Ausbau September 2026 (alles bearbeitbar, Warnungen) – #6 - [x] Prüfung September 2026 (Shop-Schnittstelle, Bestandsbuch, Überwinterung) – #7 - [x] API-Sicherheitsaudit Oktober 2026 – #8 - [x] Bestandsabgleich mit dem Shop, Rohstoffe, Herstellung – #10 - [x] Cluster-Härtung 2026-10-10/12 – #11 - [x] Paket 0 – #12 - [x] Plattform-Rückgrat (Option A: api/worker/job, Outbox) – #13 - [x] T3 Erfassung am Stand – #14 - [x] T4 Logik-Ketten und Saison-Autopilot – #15 - [x] T6 Compliance – #16 - [x] T8 ERP-Inventar-Export – #17 - [x] Beute L1 Daten und API – #18 **In Arbeit** - [ ] Beute L2 Karte ohne 3D (lokal committet, nicht gepusht) – #19 - [ ] Beute L3 3D-Szene (erster Schnitt lokal) – #20 - [ ] Beute L4 Umbauen (lokal, unkommittiert) – #21 - [ ] Beute L5 Durchsicht und Offline (lokal, unkommittiert) – #22 - [ ] Beute Teil 4 Sprach-Durchsicht (Doku lokal) – #25 - [ ] T7 Spracherfassung (Plan lokal, nicht gepusht) – #27 - [ ] AuDHD-Restpunkte – #9 - [ ] Doku-Abgleich 2026-10-16 (Worktree, wartet auf Commit) – #42 **Offen** - [ ] T5 Optik – #26 - [ ] Beute Teil 3 KI-Bewertung aus Foto – #24 - [ ] Kalender-Sync auf Ressourcenpostfach – #33 - [ ] Abschluss-Review vor dem Rollout – #37 - [ ] Backend-e2e flaky und nicht in der CI – #32 - [ ] Next.js-Patch-Update – #31 - [ ] Seed legt weiteren Admin an (Befund 2026-10-16) – #45 - [ ] Folgepunkt `packagingSize` – #36 - [ ] Manuelle Geräte- und Browserprüfungen – #38 - [ ] Fachfragen Prüfung September 2026 – #39 - [ ] Doku-Nachträge in lokal bearbeiteten Dateien – #40 - [ ] Aufräumen (gemergter Branch, Worktree, node_modules) – #41 **Blockiert (wartet auf den Inhaber)** - [ ] Rollout in den Cluster – #28 - [ ] Secrets, Telegram-Bot, Vorprüfungen – #29 - [ ] Geheimnisse rotieren – #30 - [ ] T6 nach dem Rollout – #34 - [ ] ERP-Export in Betrieb nehmen – #35 - [ ] Beute: Maße, Fotos, Rechtefrage – #23 **Inhaber-Aufgaben gesammelt:** #43 ## Rollout-Stand - Produktiv seit 2026-10-12: Backend `sha-f5b1964` (Commit f5b19642), Frontend-Image vom 2026-10-12 03:23 UTC, Postgres `18.6-alpine`, CronJob `apicore-db-backup`, PVC `apicore-data`. - Nicht ausgerollt: alles ab Paket 0 (10cbe9bf) bis `origin/main` b48fb157 – Paket 0, Rückgrat, T3, T4, T6, ERP-Export, Beute L1. CI-Builds auf b48fb157 grün. - Lokal, nicht gepusht (Session vs-code-ff): 6 Commits (7fd5beda, 04508d5f, e4252878, b73da4d8, f0e14399, 8cacdf17) und rund 66 unkommittierte bzw. neue Dateien (Beute L3–L5). ## Doku - `README.md` (Einstieg, nach dem Doku-Abgleich), `CLAUDE.md` (Arbeitsregeln), `ARCHITECTURE.md` (Module, Annahmen 1–99, Kubernetes §7, Backup §8, Sicherheit §9, Rückgrat §10, T4 §11, T6 §12, Beute §13), `TASKS.md` (Häkchenliste) - `docs/lastenheft.md`, `docs/pruefung-2026-09.md`, `docs/erp-inventar-export.md` - Specs und Pläne: `docs/superpowers/specs/`, `docs/superpowers/plans/` - Deploy: `deploy/k8s/` (Runbook im Plan `2026-10-13-plattform-rueckgrat.md`) ## Status Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)
Nick.Rosenloecher added the art/dokuprio/hochstatus/in-arbeit labels 2026-10-16 05:58:59 +00:00
Nick.Rosenloecher pinned this 2026-10-16 06:00:30 +00:00
Sign in to join this conversation.