Nachnutzungskonzept
Etwa die Hälfte der Bausteine existiert schon in eCore, eforms-cloud und calServer, verstreut und in unterschiedlicher Reife. Diese Seite ordnet jeden Baustein seinem Zielmodul zu und sagt, wie er nachgenutzt wird.
Arten der Nachnutzung
| Art | Bedeutung |
|---|---|
| übernehmen | unverändert einsetzen, als Paket (eCore) oder als eigener Container (Java-Dienste aus calServer) |
| portieren | Code in ein Modul dieser Hülle oder in eCore übertragen und anpassen |
| Muster | Lösung nachbauen, weil der Code zu eng an sein Ursprungsmodul oder an das V1-Schema gebunden ist |
| neu | existiert nirgends und wird gebaut |
Leitlinie: portieren statt koppeln. Die neue App ruft keine Schnittstellen von eforms-cloud oder calServer auf und teilt keine Datenbank mit ihnen. Einzige Ausnahme sind die beiden Java-Dienste aus calServer, die schon heute für sich stehen, über HTTP mit Bearer-Token arbeiten und keine eigene Datenbank brauchen.
Weil Coding-Agenten bauen, kosten Portieren und Nachbauen nach Muster im Schreiben ähnlich viel. Die Wahl zwischen beiden entscheidet deshalb die Kopplung an das Ursprungsmodul und die Prüfbarkeit, nicht der Tippaufwand. Die drei Quell-Repositories bleiben dafür als Lesevorlage für die Agenten erreichbar.
Nach Zielmodul
Unterbau (eCore)
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Konto, Mandant, Rollen, Capability-Gate, 2FA | eCore Tenancy, Auth, Entitlement | übernehmen | Teams als Minor ergänzen; Mandantentrennung ist schon da und trägt den SaaS-Betrieb |
| App-Gerüst, Verwaltung, Sicherung, Datenexport | eCore scripts/neue-app.mjs, template/, ecore-admin-ui | übernehmen | Erfassung der Ablage-Dateien in der Sicherung prüfen |
| Abo mit Plänen und Freischaltung | eCore Entitlement, Abo mit Stripe | übernehmen | Module des Abos als Capabilities je Mandant |
| Plattform-Verwaltung: Mandanten, Abo, Überwachung | eforms ePlattform (/admin/platform), Mandanten-Umzug | Muster | als Verwaltung für calhelp |
| Envelope-Verschlüsselung | eCore Crypto/EnvelopeCrypto, BlobCrypto | übernehmen | keine |
| KI-Schicht mit Prompt-Katalog | eCore Ai/* | übernehmen | Prompts für Mail-Klassifikation, Antwortentwurf, Vertragsdaten |
| Desktop-Modus: Arbeitsplatz-Gerüst, geteilte Ansicht, Datentabelle, Tastaturkürzel | eCore hat nur die App-Form; Kartenansicht schmaler Tabellen als Muster aus eforms components/admin/AdminTable.vue | neu | als Minor in eCore, Fixture zuerst |
| SSO über LDAP, SAML, OIDC | eforms Services/SsoService.php | portieren | als Minor nach eCore, Konfiguration je Mandant, mit Verwaltungsseite; LDAP nur mit gesicherter Verbindung |
Vorgangskern
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Kommentar, Erwähnung, Anhang, Aktivität, Checkliste | eforms Models/Ticket*, Services/Ticket* | portieren | vom Kanban-Board lösen, an Vorgang und Zeitleiste hängen |
| Gruppenzuweisung, Fälligkeit, Eskalation, Feldhistorie | calServer Models/Ticket.php, TicketDue*, TicketChangeTracker | Muster | an V1-Tabellen gebunden, Nachbau im Kern |
| Hash-verkettetes Protokoll mit Prüfjob | eforms Services/Whistle/WhistleAuditLogger.php | portieren | vom Meldungsbezug auf den Vorgang verallgemeinern |
| Zustand und Ereignis in einer Transaktion | calServer Services/Release/* | Muster | als Grundlage des Phasenwechsels |
| Fristenwarnung, täglich idempotent | eforms WhistleCheckDeadlinesCommand, calServer NotepadReminderService | Muster | als allgemeine Fristen-Engine, Minor in eCore |
| Vorgangsarten, Phasen-Automat, Feldkatalog | keine | neu | symfony/workflow aus Konfiguration |
Posteingang
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Mailversand mit Absenderidentität, Vorlagen je Ereignis | eforms Services/Mail/*, MailTemplate | portieren | in Teilen, für Antworten aus dem Vorgang |
| Mail-Eingang über Graph und IMAP, Zuordnung zum Vorgang | keine | neu | zwei Adapter hinter einer Schnittstelle |
Beschaffung und Vergabeakte
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Formular-Vorlagen und Blöcke als Antragsmaske | eforms FormTemplate, FormBlock, FormRenderer.vue | portieren | Backend übernehmen, Oberfläche im eCore-Stil neu (keine Nuxt UI) |
| Vier-Augen-Prüfung | calServer Services/Release/* | Muster | mehrstufig statt einstufig |
| Vergabeakte, Angebote, Bewertung, Zuschlag, Vergaberegeln | keine | neu | Regeln als Konfiguration, solange das Vergaberecht offen ist |
Dokumente und Vorlagen
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Vorlagen mit Variablen, bedingten Klauseln, Versionen, Snapshot und Hash, PDF | eforms Services/Dpa/DpaRenderService.php, DpaTemplate, DpaContract (AVV-Generator) | portieren | Variablen aus dem Feldkatalog statt AVV-Feldern; deckt den Großteil der Vorlagenerstellung |
| Briefkopf-Unterlage, Stempel, PDF/A, Textauszug | calServer report-runner (/overlay, /pdf/stamp, /pdfa) | übernehmen | als Container, keine Codeänderung |
| Versionierte Dokumentablage | calServer Models/Document.php, DocumentVersioningService | Muster | als allgemeine Ablage, Minor in eCore |
| Textbaustein-Bibliothek, Vorlageneditor mit markierten Stellen | keine | neu |
Signatur
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| PAdES-Siegel mit Zeitstempel, Fernsignatur über CSC API v2 | calServer calserver-seal, Services/Seal/* | übernehmen | als Container; mehrere Unterzeichner je Dokument ergänzen; CSC erst mit echtem Anbieter erproben |
| Externer Zugang per Token im URL-Fragment | eforms useWhistleAccess.ts, WhistleTokenGenerator, WhistleReporterAuth | Muster | Unterzeichner-Rolle, Ablauf, Widerruf |
| Eingefrorener Dokument-Hash | calServer CertificateFreezeService | Muster | vor der ersten Zeichnung |
| Unterschriftsfläche | calServer SignaturePad.vue | Muster | im eCore-Stil |
| Zeichnungswege, Unterzeichnerseite, Erinnerungen, Prüfprotokoll | keine | neu |
Vertrag und Partner
| Baustein | Herkunft | Art | Anpassung |
|---|---|---|---|
| Erinnerung und Eskalation | über die Fristen-Engine des Kerns | Muster | |
| Vertragsregister, Fristberechnung, Bestandsimport | keine | neu | |
| Partnerverzeichnis | keine | neu | klein |
Bewusst nicht nachgenutzt
- Generisches Grid aus calServer (
TableMaster.vue,useDataTable.ts): hängt am Feldregister von calServer. - Laravel-Module aus calServer als Code: eng an das V1-Schema gebunden; nur ihre Muster werden übernommen.
- Oberflächen aus eforms-cloud: Nuxt UI passt nicht zum eCore-Stil; das Backend wird portiert, die Oberfläche neu gebaut.
Was neu gebaut wird
Desktop-Modus in eCore, Vorgangskern mit Vorgangsarten und Feldkatalog, Mail-Eingang, Vergabeakte, Zeichnungswege mit Regeln, externe Gegenzeichnung, Vertragsregister, Partnerverzeichnis, Textbaustein-Bibliothek und Vorlageneditor.
Rechte am Code: Die drei Repositories sind proprietär; die Nutzung für dieses Projekt ist intern zu klären. Report-Runner (JasperReports) und Seal (EU DSS) nutzen LGPL-Bibliotheken und bleiben deshalb eigene Dienste.