From eb36a962ac98a2d5f8ea565080eacde28324e777 Mon Sep 17 00:00:00 2001 From: Schalli Date: Mon, 7 Sep 2026 15:25:39 +0200 Subject: [PATCH] docs: Fehlender Verbindungstest beim Postfach als #16 erfasst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Postfach-Formular im Ausschreibungs-Radar hat keinen Verbindungstest, obwohl beide Inbox-Provider testConnection() mitbringen und das DKV-Modul sie ueber POST /dkv/test-connection samt Knopf bereits nutzt. Historie geprueft: der Knopf war nie vorhanden — die Formular-Datei hat nur zwei Commits (Erstellung 48e1252, Sprachumstellung 849aa9b), und eine Suche ueber alle Zweige nach testConnection, test-connection, "Verbindung testen" und passenden Uebersetzungsschluesseln findet fuer tender-radar nichts. Es ist eine Luecke, keine Regression. Ausserdem der Bildschirmabzug des Postfach-Formulars im Exchange-Modus als Referenz fuer die Einrichtung. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU --- .planning/WINDOWS.md | 19 +++++++++++++++--- .../postfach-formular-exchange.png | Bin 0 -> 32393 bytes 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 .planning/phases/14-rss-email-alert-ingestion-module-rollout/postfach-formular-exchange.png diff --git a/.planning/WINDOWS.md b/.planning/WINDOWS.md index 8b6d4b1..2eb683c 100644 --- a/.planning/WINDOWS.md +++ b/.planning/WINDOWS.md @@ -1,10 +1,10 @@ --- schema_version: 1 -open_count: 3 +open_count: 4 waived_count: 0 fixed_count: 12 -total_count: 15 -last_updated: 2026-09-07T13:10:51.272Z +total_count: 16 +last_updated: 2026-09-07T13:22:33.916Z --- # Broken Windows Ledger @@ -30,6 +30,7 @@ last_updated: 2026-09-07T13:10:51.272Z | 13 | 1 | unmet-truth | apps/web/src/app/globals.css | | Tailwind-4-Dunkelvariante war nie an die .dark-Klasse gebunden: globals.css definierte die Farbtokens unter .dark, deklarierte aber kein @custom-variant dark. In Tailwind 4 haengt die dark:-Utility-Variante per Vorgabe an prefers-color-scheme, nicht an einer Klasse. Die App schaltet den Modus jedoch ueber next-themes mit attribute=class. Folge: JEDE dark:-Utility im Web-Quellcode (ueber 100 Vorkommen in 10+ Dateien - Status-, Warn- und Fehlerfarben, Hinweisboxen, Badges in der Administration) blieb wirkungslos, sobald der Nutzer im Portal auf dunkel stellte, waehrend sein Betriebssystem hell stand. Am laufenden System gemessen: html.dark gesetzt, prefers-color-scheme hell, dark:bg-gray-800 ergab transparent und dark:text-green-400 blieb ohne Wirkung. Unentdeckt geblieben, weil Hintergrund und Textfarbe ueber CSS-Variablen unter .dark laufen und deshalb korrekt umschalten. Aufgedeckt beim Logo-Einbau 260907-fgv, dessen Plattenkontur dark:stroke-white/25 aus demselben Grund nicht griff. | fixed | | 2026-09-07T09:32:24.960Z | 2026-09-07T09:35:49.019Z | | 14 | 15 | unmet-truth | apps/web/src/app/(portal)/admin/modules/grants/page.tsx | | Die Suche in der Freigaben-Matrix macht die Matrix unbenutzbar, sobald sie etwas findet: derselbe Suchbegriff filtert BEIDE Achsen unabhaengig voneinander (page.tsx:137 filtert Module ueber m.name, page.tsx:145 filtert Gruppen ueber internalName/name). Ein Begriff, der nur eine Achse trifft, leert die andere vollstaendig — es bleibt nie ein Kaestchen zum Klicken uebrig. Am 2026-09-07 im Browser auf alpha gemessen: Suche 'Claude_VT' bzw. 'Vertrieb' laesst die Gruppenspalte stehen, entfernt aber jede Modulzeile; Suche 'Cert' laesst die Modulzeile stehen, entfernt aber jede Gruppenspalte. Damit scheitert genau der Zweck der Suche — in einer grossen Matrix die Kreuzung Modul x Gruppe finden. Belege: .planning/phases/16-ad-gruppen-synchronisation/uat-2026-09-07/befund-matrix-suche-gruppenname.png und befund-matrix-suche-modulname.png | open | | 2026-09-07T12:46:56.172Z | | | 15 | 16 | unmet-truth | apps/api/src/ldap/ldap.service.ts | | Der Sync reicht rohe Techniktexte an den Administrator durch und laesst echte AD-Konten still liegen. Am 2026-09-07 auf alpha gegen das echte AD gemessen (Lauf 14:42): zehn Fehlerzeilen unter den drei Zahlenzeilen, davon zwei Sorten. (1) Vier Konten scheitern mit der woertlichen Prisma-Meldung 'Invalid prisma.user.create() invocation: Unique constraint failed on the fields: (email)' — CN=uvertrieb_ro, uvertrieb_rw, uvertrieb_ro_ss, usoftware_rw aus OU=CTL_PWS_Gruppen teilen sich offenbar eine E-Mail-Adresse. Sie werden dadurch NIE importiert, ohne dass der Administrator erfaehrt warum oder was er tun soll. (2) Sechs Eintraege melden englisch 'no username mapped (check sAMAccountName mapping)' — korrekt uebersprungene Kontakte/Ressourcen ohne sAMAccountName, aber die Meldung liest sich wie ein Fehler und ist nicht uebersetzt. Beides braucht eine verstaendliche deutsche Meldung; die E-Mail-Kollision zusaetzlich eine Entscheidung, ob solche Konten ohne E-Mail angelegt oder bewusst uebersprungen werden. Beleg: .planning/phases/16-ad-gruppen-synchronisation/uat-2026-09-07/windows6a-sync-zahlenzeilen.png | open | | 2026-09-07T12:47:32.058Z | | +| 16 | 14 | unmet-truth | apps/api/src/tenders/tenders.controller.ts | | Das Postfach im Ausschreibungs-Radar hat keinen Verbindungstest, obwohl die Faehigkeit fertig vorliegt. Beide Inbox-Provider bringen testConnection() mit (imap.provider.ts:343, exchange-inbox.provider.ts:294), und das DKV-Modul nutzt sie ueber POST /dkv/test-connection samt Knopf 'Verbindung testen' im InboxConfigForm. Beim Ausschreibungs-Radar fehlt beides: der Controller kennt zu email-config nur GET (:343) und PUT (:357), kein Test-Endpunkt, und das Formular unter Meine Quellen hat keinen Knopf. Historie geprueft: der Knopf war nie vorhanden (git log -S testConnection im tender-radar-Frontend ist leer), es ist also eine Luecke, keine Regression. Folge fuer den Betrieb: ein Tippfehler in der EWS-Endpunkt-URL oder falsche Zugangsdaten fallen erst auf, wenn dauerhaft nichts ankommt — und dann ist nicht unterscheidbar, ob die Verbindung scheitert oder schlicht keine Alarm-Mail da war. Das trifft besonders WINDOWS #12, dessen ganzer Zweck der Beleg des handgeschriebenen NTLM/SOAP-Wegs ist. Aufgefallen am 2026-09-07 beim Einrichten des Postfachs. | open | | 2026-09-07T13:22:33.916Z | | ````json [ @@ -212,6 +213,18 @@ last_updated: 2026-09-07T13:10:51.272Z "reason": "", "recorded_at": "2026-09-07T12:47:32.058Z", "resolved_at": null + }, + { + "id": 16, + "kind": "unmet-truth", + "phase": "14", + "file": "apps/api/src/tenders/tenders.controller.ts", + "line": null, + "description": "Das Postfach im Ausschreibungs-Radar hat keinen Verbindungstest, obwohl die Faehigkeit fertig vorliegt. Beide Inbox-Provider bringen testConnection() mit (imap.provider.ts:343, exchange-inbox.provider.ts:294), und das DKV-Modul nutzt sie ueber POST /dkv/test-connection samt Knopf 'Verbindung testen' im InboxConfigForm. Beim Ausschreibungs-Radar fehlt beides: der Controller kennt zu email-config nur GET (:343) und PUT (:357), kein Test-Endpunkt, und das Formular unter Meine Quellen hat keinen Knopf. Historie geprueft: der Knopf war nie vorhanden (git log -S testConnection im tender-radar-Frontend ist leer), es ist also eine Luecke, keine Regression. Folge fuer den Betrieb: ein Tippfehler in der EWS-Endpunkt-URL oder falsche Zugangsdaten fallen erst auf, wenn dauerhaft nichts ankommt — und dann ist nicht unterscheidbar, ob die Verbindung scheitert oder schlicht keine Alarm-Mail da war. Das trifft besonders WINDOWS #12, dessen ganzer Zweck der Beleg des handgeschriebenen NTLM/SOAP-Wegs ist. Aufgefallen am 2026-09-07 beim Einrichten des Postfachs.", + "status": "open", + "reason": "", + "recorded_at": "2026-09-07T13:22:33.916Z", + "resolved_at": null } ] ```` diff --git a/.planning/phases/14-rss-email-alert-ingestion-module-rollout/postfach-formular-exchange.png b/.planning/phases/14-rss-email-alert-ingestion-module-rollout/postfach-formular-exchange.png new file mode 100644 index 0000000000000000000000000000000000000000..9feb46e13902ca7d7ea538323f5e9309b5e8b3e9 GIT binary patch literal 32393 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