-
2e7daa481e
feat(15-08): Marketplace-Karte mit drittem Zustand "Kein Zugriff"
schalli
2026-08-04 19:49:46 +02:00
-
43c7fa200b
feat(15-08): serverseitige Modulsperre mit 403-Seite
schalli
2026-08-04 19:41:25 +02:00
-
c6086ba750
docs(15-07): complete Freigabe-Matrix, Aktivierungsdialog und Benutzer-Detail-Grants plan
schalli
2026-08-04 19:28:18 +02:00
-
050d070340
feat(15-07): Benutzer-Detail mit geerbten Rechten und Direkt-Freigaben
schalli
2026-08-04 19:25:15 +02:00
-
3cd6d997cf
feat(15-07): Aktivierungsdialog mit drei Aktionen in /admin/modules
schalli
2026-08-04 19:21:25 +02:00
-
6b2a6f1ce4
feat(15-07): Freigabe-Matrix Module x Gruppen unter /admin/modules/grants
schalli
2026-08-04 19:18:30 +02:00
-
a3e8d0a158
docs(15-06): complete Gruppenverwaltung im Admin-UI plan
schalli
2026-08-04 19:06:54 +02:00
-
4985e43412
feat(15-06): group member management + delete dialog with concrete impact numbers
schalli
2026-08-04 19:02:11 +02:00
-
c3ba1f74ea
feat(15-06): /admin/groups table + create/rename modal with AD radio-select binding
schalli
2026-08-04 18:57:43 +02:00
-
90dc3981d5
feat(15-06): phase-wide i18n keys + sixth admin nav entry for groups
schalli
2026-08-04 18:50:28 +02:00
-
09abb2b323
docs(15-03): complete modul-freigaben-schreibseite plan
schalli
2026-08-04 18:43:45 +02:00
-
1c32543f58
feat(15-03): GET /modules/catalog — beide Statusflags in einer Antwort
schalli
2026-08-04 18:41:23 +02:00
-
072fb7f62f
feat(15-03): ModuleGrantsController und Einbindung in GroupsModule
schalli
2026-08-04 18:41:17 +02:00
-
5e256db01d
feat(15-03): ModuleGrantsService — Freigaben setzen/entziehen mit Mandanten-Gegenprüfung
schalli
2026-08-04 18:41:12 +02:00
-
614de2815a
feat(15-04): AD-Gruppenmitgliedschafts-Abgleich im bestehenden LDAP-Sync
schalli
2026-08-04 15:50:42 +02:00
-
2a79d4ca1f
docs(15-05): complete dashboard-widget-modulfilterung plan
schalli
2026-08-04 15:39:48 +02:00
-
0ff46acd75
feat(15-05): getWidgets filters via ModuleAccessService (D-22, PERM-07)
schalli
2026-08-04 15:37:28 +02:00
-
d0ff6f0bc0
test(15-05): add failing test for module-filtered getWidgets
schalli
2026-08-04 15:31:35 +02:00
-
954cd6e171
feat(15-05): static widget-to-module registration table
schalli
2026-08-04 15:30:51 +02:00
-
c4d7b7ded6
docs(15-02): complete Gruppenverwaltung & Standardgruppen-Mitgliedschaft plan
schalli
2026-08-04 15:27:48 +02:00
-
33838dde39
feat(15-02): automatische Standardgruppen-Mitgliedschaft an genau einem Ort
schalli
2026-08-04 15:23:01 +02:00
-
69494d7549
feat(15-02): GroupsModule — CRUD für Gruppen, Mitgliedschaften und Löschauswirkung
schalli
2026-08-04 15:21:41 +02:00
-
79c83eae5f
docs(15-01): complete Group/ModuleGrant foundation plan
schalli
2026-08-04 15:14:21 +02:00
-
4fd2f2e6a6
docs(15-01): append self-check result to SUMMARY
schalli
2026-08-04 15:13:47 +02:00
-
3b3950cfdb
docs(15-01): add SUMMARY for Group/ModuleGrant foundation + access resolution tracer
schalli
2026-08-04 15:13:33 +02:00
-
92e8eaffa5
feat(15-01): RLS policies for Group/GroupMembership/ModuleGrant (T-15-11)
schalli
2026-08-04 15:11:33 +02:00
-
9a4ba8a33c
feat(15-01): ModuleAccessService as single source of truth for module access (D-01)
schalli
2026-08-04 15:09:10 +02:00
-
c5c704bae9
feat(15-01): Group/GroupMembership/ModuleGrant schema + D-06 backfill migration
schalli
2026-08-04 15:03:48 +02:00
-
ac65149964
docs(15): create phase plan
schalli
2026-08-04 14:44:05 +02:00
-
8a4bb32847
docs(15): create phase plan — 8 plans, 4 waves, PERM-01..07
schalli
2026-08-04 14:39:46 +02:00
-
ff22178847
docs(state): record phase 15 UI-SPEC session
schalli
2026-08-04 13:58:34 +02:00
-
4f78999238
docs(15): UI design contract
schalli
2026-08-04 13:58:33 +02:00
-
37ab7c537d
docs(15): record owner-approved typography exception, add icon-only aria-labels
schalli
2026-08-04 13:54:44 +02:00
-
2f354cd59c
docs(15): UI design contract
schalli
2026-08-04 13:39:00 +02:00
-
960acb55c5
docs(phase-15): add validation strategy
schalli
2026-08-04 13:32:14 +02:00
-
32c4ec3fc8
docs(15): research phase domain
schalli
2026-08-04 13:30:53 +02:00
-
d4ae20b300
docs(15): add PERM-01..07 requirements and widget success criterion
schalli
2026-08-04 11:59:50 +02:00
-
ce96e5a5e7
docs(state): record phase 15 context session
schalli
2026-08-04 10:52:41 +02:00
-
6859c7504e
docs(15): capture phase context
schalli
2026-08-04 10:52:37 +02:00
-
7e1b4a2964
docs(roadmap): add Phase 15 module permissions (groups & user grants)
schalli
2026-08-04 08:42:56 +02:00
-
bd84a26824
docs(260729-d3k): add plan + verification (passed 6/6) for LDAP multi-base-DN
schalli
2026-07-29 09:43:06 +02:00
-
97465a6f25
docs(260729-d3k): complete LDAP multi-base-DN quick task
schalli
2026-07-29 09:40:29 +02:00
-
96be7e168b
feat(260729-d3k): multi-line Base-DN textarea + reworked scope i18n
schalli
2026-07-29 09:37:51 +02:00
-
5cbd530a87
feat(260729-d3k): multi-base LDAP sync scope + re-keyed no-op guard
schalli
2026-07-29 09:36:55 +02:00
-
5cdd48d864
docs(260728-lih): add plan + verification (passed 6/6) for LDAP selective sync
schalli
2026-07-28 15:47:22 +02:00
-
fd9c1bee34
docs(260728-lih): complete LDAP sync selektiv und auto-sync default plan
schalli
2026-07-28 15:43:37 +02:00
-
63a07abb47
feat(260728-lih): default LDAP create-form syncIntervalMin to 0 + reword copy
schalli
2026-07-28 15:42:10 +02:00
-
57bc7f96b3
feat(260728-lih): make LDAP sync strictly selective (empty selection = no-op)
schalli
2026-07-28 15:41:33 +02:00
-
c54e424c05
feat(260728-lih): default LDAP syncIntervalMin to 0 (auto-sync off)
schalli
2026-07-28 15:40:28 +02:00
-
7e5a6a6e01
docs(planning): add v1.1 milestone audit and 260723-lvg quick plan
schalli
2026-07-28 14:55:27 +02:00
-
ae85b91468
fix(admin): refresh sidebar after module toggle on admin page
schalli
2026-07-24 12:10:39 +02:00
-
51501aa7ee
docs(260723-lvg): complete "Jetzt abrufen" quick task summary
schalli
2026-07-23 15:55:23 +02:00
-
bdaf154f66
feat(260723-lvg): add "Jetzt abrufen" manual poll button to tender radar
schalli
2026-07-23 15:54:43 +02:00
-
7502f97e85
feat(260723-lvg): add admin-gated POST /poll-now endpoint for tender radar
schalli
2026-07-23 15:52:44 +02:00
-
e1358d70fd
fix(tenders): register poll cron in onApplicationBootstrap (fresh-DB bootstrap)
schalli
2026-07-23 15:30:04 +02:00
-
cc57de7313
feat(tender-radar): add settings gear link on module page
schalli
2026-07-23 15:10:46 +02:00
-
c8bf229524
docs(14): phase verification — 4/5 verified, criterion 2 (EWS live) human_needed
schalli
2026-07-23 14:28:01 +02:00
-
eff5d26413
docs(14-05): complete i18n rollout for tender-radar plan
schalli
2026-07-23 14:23:23 +02:00
-
849aa9b0a9
feat(14-05): convert tender-radar settings + config forms to useTranslations
schalli
2026-07-23 14:20:52 +02:00
-
2ea02a2671
feat(14-05): convert tender-radar results-side components to useTranslations
schalli
2026-07-23 14:15:33 +02:00
-
d73171b052
feat(14-05): add tenderRadar i18n namespace (DE + EN) with key-parity guard
schalli
2026-07-23 14:07:41 +02:00
-
a4889f8399
docs(14-04): complete denylist transparency plan
schalli
2026-07-23 14:01:12 +02:00
-
947325f6ad
feat(14-04): CoverageBanner "manuell beobachten" denylist block
schalli
2026-07-23 13:59:44 +02:00
-
28c6c7fee1
feat(14-04): denylisted-portals read endpoint sourced from DENYLISTED_PORTALS
schalli
2026-07-23 13:58:25 +02:00
-
c140d1186a
docs(14-03): pause after Tasks 1-3 — Task 4 (live EWS human-verify) OPEN
schalli
2026-07-23 13:56:00 +02:00
-
48e12523f3
feat(14-03): add email-config admin routes + D-13 read-side visibility filter + EmailAlertConfigForm
schalli
2026-07-23 13:53:17 +02:00
-
1be6b15249
feat(14-03): add per-tenant encrypted TenderEmailConfig + ownerTenantId write-side (D-13)
schalli
2026-07-23 13:45:11 +02:00
-
8983231196
feat(14-03): add EmailAlertAdapter generic extraction + 'email-alert' normalizer dispatch
schalli
2026-07-23 13:38:36 +02:00
-
4d6fbb136e
test(14-03): add failing spec for email-alert generic link/subject extraction
schalli
2026-07-23 13:37:37 +02:00
-
6e3789a0b0
docs(14-02): complete RSS ingestion slice plan
schalli
2026-07-23 13:33:01 +02:00
-
48a2dc1026
feat(14-02): add RSS feed admin routes, API client, and settings UI
schalli
2026-07-23 13:29:07 +02:00
-
e812738c3a
feat(14-02): add TenderRssFeedSource CRUD, tick poll gate, and wire RssAdapter
schalli
2026-07-23 13:24:36 +02:00
-
3a96cbbbe6
feat(14-02): add RssAdapter.parseFeed + 'rss' normalizer dispatch
schalli
2026-07-23 13:17:02 +02:00
-
a47c0c57ee
docs(14-01): complete inbox-module extraction plan
schalli
2026-07-23 13:11:21 +02:00
-
c404954bee
feat(14-01): add fetchMessages() to InboxProvider + both implementations
schalli
2026-07-23 13:09:45 +02:00
-
eb668fd5c8
refactor(14-01): extract DKV inbox providers into shared inbox/ module
schalli
2026-07-23 13:02:15 +02:00
-
9dd5038575
docs(state): record phase 14 planning session
schalli
2026-07-23 12:17:58 +02:00
-
b2c52843aa
docs(14): mark RESEARCH open questions resolved (plan-checker warning 2)
schalli
2026-07-23 12:17:57 +02:00
-
cf105f0884
docs(14): create phase plan (5 plans, 4 waves)
schalli
2026-07-23 12:14:26 +02:00
-
9bd93ce8ff
docs(14): add D-13..D-15 (per-tenant email visibility, RSS feed-list, poll granularity)
schalli
2026-07-23 11:58:10 +02:00
-
7f757772f1
docs(14): research RSS/email-alert ingestion and module rollout
schalli
2026-07-23 11:45:57 +02:00
-
d71a781be0
docs(state): record phase 14 context session
schalli
2026-07-23 11:16:23 +02:00
-
b655038835
docs(14): capture phase context
schalli
2026-07-23 11:16:13 +02:00
-
7de0714b30
docs(13): re-verify after normalizer fix — 3/4, Truth 3 deferred (option C)
schalli
2026-07-23 10:37:28 +02:00
-
7bd65e0077
docs(260723-e7i): pre-dispatch plan for normalizer-gap-phase-13-schliessen-tende
schalli
2026-07-23 10:21:33 +02:00
-
d5128d5759
docs(quick-260723-e7i): complete normalizer-gap-phase-13-schliessen-tende quick task
schalli
2026-07-23 10:21:18 +02:00
-
988100576f
test(quick-260723-e7i): cover ai-netserver/cosinex bag normalization + DOE regression
schalli
2026-07-23 10:19:00 +02:00
-
82c9a48305
feat(quick-260723-e7i): per-sourceType dispatch in TenderNormalizerService
schalli
2026-07-23 10:18:16 +02:00
-
9d5aca0e1b
docs(13): phase verification — gaps_found (normalizer stub blocks criteria 1/2/3)
schalli
2026-07-23 09:58:59 +02:00
-
7602795622
docs(13-05): complete cosinex/DTVP adapter plan
schalli
2026-07-23 09:51:43 +02:00
-
6fe0dd07fe
feat(13-05): register CosinexAdapter as tenders module provider
schalli
2026-07-23 09:49:19 +02:00
-
12fc5ac02d
feat(13-05): add cosinex/DTVP source adapter with fixture tests
schalli
2026-07-23 09:48:21 +02:00
-
775ed153b7
docs(13-04): complete NetServer adapter plan
schalli
2026-07-23 09:16:04 +02:00
-
88572f5694
feat(13-04): NetServerAdapter im Modul registriert (INGEST-02)
schalli
2026-07-23 09:14:24 +02:00
-
043ada9438
feat(13-04): NetServer-Adapter fuer tender24/lhs-vpbw/vergabe.landbw (INGEST-02)
schalli
2026-07-23 09:13:01 +02:00
-
2c28605397
docs(13-06): complete multi-source read surface plan
schalli
2026-07-23 08:57:25 +02:00
-
bf61316500
feat(13-06): TenderDetail renders all cross-source links
schalli
2026-07-23 08:56:06 +02:00
-
166194fa04
feat(13-06): getTender include sources[] (SCHEMA-03 read surface)
schalli
2026-07-23 08:55:02 +02:00
-
1c523c039c
docs(13-03): complete dedup-resolver-fan-out-wiring plan
schalli
2026-07-23 08:53:33 +02:00
-
1d4f9cf1b3
feat(13-03): wire SourceRegistry + TenderDedupService into TendersModule
schalli
2026-07-23 08:51:47 +02:00