Zum Hauptinhalt springen

Architektur-Übersicht — Medidentas

Kernaussage: Ein Cloudflare Worker bedient UI (Angular, als Static Assets) und /api auf einer Subdomain (app.medidentas.com), hinter Cloudflare Access. Der Worker hält selbst nur Prozesszustand + Referenzen in D1; Dokumente/Unterschriften/Kundenstamm liegen bei angebundenen Standard-Werkzeugen (System-Charakter, System-Charakter.md §3). Diese Datei zeigt die technische Laufzeit-Topologie; die fachliche Orchestrierung/Schichten-Sicht steht in System-Charakter.md (nicht dupliziert).

Grobe Systemstruktur​

Lesehilfe: durchgezogen = gebaut & aktiv, gestrichelt = angebunden aber (Stand heute) teilweise noch Fake/optional (NextCloud real nur mit gesetzten Secrets, Signatur nur fake-Provider, CRM nur als Link referenziert — docs/architektur/Stack.md §Entscheidung). Die vier öffentlichen Kundenstrecken sind die dokumentierte, begründete Ausnahme von der Golden Rule (CLAUDE.md §Compliance). Bei jeder architektonischen Änderung (neuer Provider, neue Datenhaltung) hier zuerst nachziehen.

Gemeinsamer Code (MED-D-381): shared/dexman-kern/ ist ein abhängigkeitsfreies TypeScript-Modul, das der Worker (verbindliche Werte, Hebel) und der Angular-Client (Was-wäre-wenn ohne Server-Rundreise) einbinden (Client über den Pfad-Alias @dexman-kern). Dexman-Daten liegen in D1 im eigenen Namensraum dexman_* (Tool-Isolation R10, W-3); Ist-Umsätze in der Kern-Faktentabelle praxis_jahreswert. Kein neuer Dienst, kein neuer Provider.

Software-Stückliste (SBOM)​

  • Format: CycloneDX (sbom-server.cdx.json / sbom-client.cdx.json), je aus server/ und client/ erzeugt (npm sbom --sbom-format cyclonedx).
  • Erzeugung: Schritt „SBOM erzeugen" in .github/workflows/app-deploy.yml — einmal je App-Deploy (= exakt der ausgelieferte Release-Stand, nutzt die installierten Deps; seit MED-D-327, vorher eigener CI-Job je main-Push; analog Taktano OP-SBOM-1).
  • Auffindbar: GitHub Actions → Workflow "App Deploy" → letzter Lauf → Artefakt sbom-cyclonedx (laufen nach 90 Tagen ab — der Weg über Actions ist der stabile Zugang, kein Dauerlink).
  • Zweck: Audit-/Zertifizierungs-Bereitschaft laufend statt erst zum Audit-Termin; schnelle Antwort auf "sind wir von CVE X betroffen?".