Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1275 commits
Select commit Hold shift + click to select a range
7ae34e9
feat(credential-broker): doffin provider entry
rubenvdlinde Jul 6, 2026
96ff14c
chore: preserve WIP (auto-committed to get work to origin/development)
rubenvdlinde Jul 6, 2026
314f851
Merge pull request 'feat(openregister): opt in to the AI-chat compani…
Jul 6, 2026
36534c9
feat(credential-broker): doriath custody leaf — resolver, store, self…
rubenvdlinde Jul 6, 2026
993b9c6
test-deploy: merge credential-provider-doffin + credential-doriath-le…
rubenvdlinde Jul 6, 2026
d287523
fix(dsar): persist declared escalation tiers + land policy-pack seeds
rubenvdlinde Jul 6, 2026
cb64914
Merge remote-tracking branch 'origin/development' into feat/credentia…
Jul 6, 2026
9fd102c
refactor(calc): extract CalculationPayloadBuilder; fix first-import s…
rubenvdlinde Jul 6, 2026
ec0c717
feat(dsar): temporal calculation sweep — makes declared deadline esca…
rubenvdlinde Jul 6, 2026
0433847
feat(dsar): GDPR art-35 DPIA pattern detection + privacy-officer visi…
rubenvdlinde Jul 6, 2026
f6970bd
Merge pull request 'feat(credential-broker): config head — credential…
Jul 6, 2026
288ceef
feat(dsar): register edits + DSAR register import repair step + job w…
rubenvdlinde Jul 6, 2026
a885a47
test(dsar): gate-19 e2e annotations + tasks complete for dsar-escalat…
rubenvdlinde Jul 6, 2026
9ba3077
test(credential-broker): unit tests for the credential-broker service
Jul 6, 2026
a24d632
Merge pull request 'test(credential-broker): unit tests for the crede…
Jul 6, 2026
b4f57f6
chore(openspec): archive dsar-escalation-and-dpia — main specs synced…
rubenvdlinde Jul 6, 2026
95df38e
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 6, 2026
af2c1d5
feat(search): hybrid document search — pgvector ANN + tsvector keywor…
Jul 6, 2026
493351b
feat(edepot): durable transfer + proof-of-transfer system register (O…
rubenvdlinde Jul 6, 2026
c769d59
Merge remote-tracking branch 'origin/development' into feat/credentia…
infoconductionnl Jul 6, 2026
89dc3e4
Merge pull request 'feat(credential-broker): Doriath custody leaf + d…
Jul 6, 2026
f09cf10
feat(edepot): durable job-based retry + real transfer controller (OR-…
rubenvdlinde Jul 6, 2026
5ca7d4d
feat(edepot): RFC 8493 BagIt serializer branch (OR-AD-1)
rubenvdlinde Jul 6, 2026
ce4c3c0
test(edepot): unit + newman + e2e for durable retry, BagIt, proof-of-…
rubenvdlinde Jul 6, 2026
f497933
chore(openspec): archive archival-transfer-hardening — main specs synced
rubenvdlinde Jul 6, 2026
40e3261
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 6, 2026
aceddeb
feat(search): searchable-property-index — pg_trgm GIN on _name + opt-…
Jul 6, 2026
76ba47d
feat(credential-broker): session-authenticated browser broker endpoint
rubenvdlinde Jul 6, 2026
9336776
Merge remote-tracking branch 'origin/development' into feat/session-b…
infoconductionnl Jul 6, 2026
77bcea6
Merge pull request 'feat(credential-broker): session-authenticated br…
Jul 6, 2026
8728483
feat(chat): compat window — deprecation headers + optional proxy-to-h…
Jul 6, 2026
0ce633b
feat(flows): type:agent flow action — dispatch AgentRunRequestedEvent…
Jul 6, 2026
bd20d81
feat(objects): batched POST /api/objects/counts with RBAC parity (aud…
rubenvdlinde Jul 7, 2026
578424b
Merge pull request 'feat(objects): batched POST /api/objects/counts w…
Jul 7, 2026
bfdbff2
fix(security+format): BSN sentinel reject, shared UuidFormat, JWT alg…
rubenvdlinde Jul 7, 2026
232f041
test(auth): verify JWT algorithm-confusion fix — 69/69 green
rubenvdlinde Jul 7, 2026
5b1f642
fix(perf/dos): clamp list page size to MAX_PAGE_SIZE (1000) — 3/3 green
rubenvdlinde Jul 7, 2026
08ec0e1
fix(auth): harden Basic-auth parsing — strict base64 + preserve colon…
rubenvdlinde Jul 7, 2026
0da1a82
fix(security): admin-gate webhook read + search-trail analytics/destr…
rubenvdlinde Jul 7, 2026
760db72
fix(notifications): rotating-window cursor so objects past 5000 event…
rubenvdlinde Jul 7, 2026
0c339a9
fix(retention): re-entrancy guard on destruction execution (approved-…
rubenvdlinde Jul 7, 2026
d2e30ad
feat(perf): add-hotpath-db-indexes — audit-trail (register,schema,cre…
rubenvdlinde Jul 7, 2026
3b794a7
feat(perf): add-hotpath-db-indexes — MySQL/MariaDB composite (_delete…
rubenvdlinde Jul 7, 2026
f586b5e
fix(audit): wire the hash chain on write — real tamper-evidence (was …
rubenvdlinde Jul 7, 2026
6e0885a
fix(security): re-enable RBAC on register/schema create/update/delete
rubenvdlinde Jul 7, 2026
10a6113
perf: bound schema-property exploration to a 1000-object sample
rubenvdlinde Jul 7, 2026
6e60218
fix(vectorization): add connect/read timeouts to embedding HTTP calls
rubenvdlinde Jul 7, 2026
ee2ca2a
fix(harvest): add connect/read timeouts to REST source fetcher
rubenvdlinde Jul 7, 2026
e769dbf
perf: memoize information_schema catalog scan per request
rubenvdlinde Jul 7, 2026
db85517
fix(perf): async webhook delivery — enqueue instead of blocking the w…
rubenvdlinde Jul 7, 2026
329be91
perf: scope aggregation-cache eviction via per-schema version counter
rubenvdlinde Jul 7, 2026
2d16838
perf(frontend): route-level code splitting for all 35 views + publicP…
rubenvdlinde Jul 7, 2026
cfdb602
perf: route findAll render through renderEntities (batch preload, fix…
rubenvdlinde Jul 7, 2026
d8d4a41
fix(frontend): honest 'coming soon' state for the Templates stub
rubenvdlinde Jul 7, 2026
25d5f5c
fix(concurrency): optimistic-concurrency guard on object PATCH (If-Ma…
rubenvdlinde Jul 7, 2026
f80c202
fix(security): optional request-binding for broker tokens (anti-replay)
rubenvdlinde Jul 7, 2026
96cbb72
chore(appstore): codeberg links + wire real screenshots
infoconductionnl Jul 7, 2026
099e00e
style(nldesign): ExploreSchema hardcoded hex colors -> NC CSS variables
rubenvdlinde Jul 7, 2026
0c01c10
refactor: extract SpreadsheetExtractor from TextExtractionService god…
rubenvdlinde Jul 7, 2026
7fb2159
refactor: extract PdfExtractor from TextExtractionService god-class
rubenvdlinde Jul 7, 2026
7f8c666
refactor: extract WordExtractor — completes TextExtractionService for…
rubenvdlinde Jul 7, 2026
d637f03
Merge PR #311: OpenRegister 2026-07-07 review — 22 changes (security/…
Jul 7, 2026
51d39b1
Merge pull request 'chore(appstore): codeberg links + real screenshot…
Jul 7, 2026
543574a
test: full unit coverage for session changes + fix regressions from r…
rubenvdlinde Jul 7, 2026
238c59b
Merge pull request 'Unit-test coverage for 2026-07-07 review changes …
Jul 7, 2026
3defdfd
fix(security+format): BSN sentinel reject, shared UuidFormat, JWT alg…
rubenvdlinde Jul 7, 2026
9f25beb
test(auth): verify JWT algorithm-confusion fix — 69/69 green
rubenvdlinde Jul 7, 2026
58ce209
fix(perf/dos): clamp list page size to MAX_PAGE_SIZE (1000) — 3/3 green
rubenvdlinde Jul 7, 2026
ee00dc7
fix(auth): harden Basic-auth parsing — strict base64 + preserve colon…
rubenvdlinde Jul 7, 2026
ded862c
fix(security): admin-gate webhook read + search-trail analytics/destr…
rubenvdlinde Jul 7, 2026
f114dd9
fix(notifications): rotating-window cursor so objects past 5000 event…
rubenvdlinde Jul 7, 2026
0d13fc4
fix(retention): re-entrancy guard on destruction execution (approved-…
rubenvdlinde Jul 7, 2026
d0585da
feat(perf): add-hotpath-db-indexes — audit-trail (register,schema,cre…
rubenvdlinde Jul 7, 2026
51ab97c
feat(perf): add-hotpath-db-indexes — MySQL/MariaDB composite (_delete…
rubenvdlinde Jul 7, 2026
5379563
fix(audit): wire the hash chain on write — real tamper-evidence (was …
rubenvdlinde Jul 7, 2026
b77562c
fix(security): re-enable RBAC on register/schema create/update/delete
rubenvdlinde Jul 7, 2026
6951412
perf: bound schema-property exploration to a 1000-object sample
rubenvdlinde Jul 7, 2026
9451e24
fix(vectorization): add connect/read timeouts to embedding HTTP calls
rubenvdlinde Jul 7, 2026
7f4da73
fix(harvest): add connect/read timeouts to REST source fetcher
rubenvdlinde Jul 7, 2026
f72e048
perf: memoize information_schema catalog scan per request
rubenvdlinde Jul 7, 2026
0d86c94
fix(perf): async webhook delivery — enqueue instead of blocking the w…
rubenvdlinde Jul 7, 2026
5872545
perf: scope aggregation-cache eviction via per-schema version counter
rubenvdlinde Jul 7, 2026
b8a372d
perf(frontend): route-level code splitting for all 35 views + publicP…
rubenvdlinde Jul 7, 2026
25f11cf
perf: route findAll render through renderEntities (batch preload, fix…
rubenvdlinde Jul 7, 2026
4023d2a
fix(frontend): honest 'coming soon' state for the Templates stub
rubenvdlinde Jul 7, 2026
96edd28
fix(concurrency): optimistic-concurrency guard on object PATCH (If-Ma…
rubenvdlinde Jul 7, 2026
db3d5c5
fix(security): optional request-binding for broker tokens (anti-replay)
rubenvdlinde Jul 7, 2026
268795a
style(nldesign): ExploreSchema hardcoded hex colors -> NC CSS variables
rubenvdlinde Jul 7, 2026
91efe3e
refactor: extract SpreadsheetExtractor from TextExtractionService god…
rubenvdlinde Jul 7, 2026
856d895
refactor: extract PdfExtractor from TextExtractionService god-class
rubenvdlinde Jul 7, 2026
2a102b1
refactor: extract WordExtractor — completes TextExtractionService for…
rubenvdlinde Jul 7, 2026
0694137
test: full unit coverage for session changes + fix regressions from r…
rubenvdlinde Jul 7, 2026
accdb73
Merge PR #313: OpenRegister 2026-07-07 review + full unit coverage → …
Jul 7, 2026
50b1786
openspec: propose credential-broker organisation scope
rubenvdlinde Jul 8, 2026
87c028d
feat(notifications): expose owning app id on effective preferences
rubenvdlinde Jul 8, 2026
95ed6d9
feat(credential-broker): organisation-scope credentials
rubenvdlinde Jul 8, 2026
739561a
feat(lifecycle): fk-graph lifecycle transitions — openspec artifacts
rubenvdlinde Jul 8, 2026
6cabfcd
feat(lifecycle): derive graph-mode transitions from FK-scoped siblings
rubenvdlinde Jul 8, 2026
7e020ea
feat(lifecycle): auto-seed lifecycle field from parent on create
rubenvdlinde Jul 8, 2026
ac1e7cc
test(lifecycle): graph derivation, validator, and auto-seed unit tests
rubenvdlinde Jul 8, 2026
a6561b0
docs(lifecycle): document graph mode, auto-seed, and transition endpo…
rubenvdlinde Jul 8, 2026
46d076e
openspec: propose per-app-doriath-application
rubenvdlinde Jul 8, 2026
88bbf89
feat(credential-broker): per-app Doriath application registration (id…
rubenvdlinde Jul 8, 2026
f807786
Merge pull request 'feat(lifecycle): FK-graph lifecycle transitions +…
Jul 8, 2026
e8b617d
chore(openspec): archive fk-graph-lifecycle-transitions (merged in #314)
rubenvdlinde Jul 8, 2026
c41b576
Merge pull request 'chore(openspec): archive fk-graph-lifecycle-trans…
Jul 8, 2026
b4dfe1f
Merge pull request 'feat(credential-broker): per-app Doriath applicat…
Jul 8, 2026
77e981f
Merge pull request 'feat(credential-broker): organisation scope' (#31…
Jul 8, 2026
9721a34
Merge pull request 'feat(notifications): expose owning app id on effe…
Jul 8, 2026
8b45036
fix(files): object files subresource returns empty list instead of 50…
rubenvdlinde Jul 9, 2026
ab0da01
fix(objects): resolve relation UUIDs across schemas when the URL sche…
rubenvdlinde Jul 9, 2026
48b5016
fix(validation): array items with a schema-slug $ref validate as UUID…
rubenvdlinde Jul 9, 2026
f25c7ef
Merge pull request 'fix: files-subresource 500 on stale folders, uuid…
Jul 9, 2026
7188b18
docs(openspec): dbal-virtual-registers change artifacts (proposal, de…
rubenvdlinde Jul 9, 2026
142bafd
feat(dbal): virtual registers over external SQL databases — connectio…
rubenvdlinde Jul 9, 2026
df90ce7
test(dbal): unit + integration coverage for virtual registers; databa…
rubenvdlinde Jul 9, 2026
afd696d
refactor(dbal): quality-gate pass — PHPCS/PHPMD clean on all touched …
rubenvdlinde Jul 9, 2026
aca5694
fix(dbal): PHPStan/Psalm pass — stale mapper @method/@psalm annotatio…
rubenvdlinde Jul 9, 2026
e1cc83a
feat: serve Nextcloud Tables tables as read-only virtual registers
rubenvdlinde Jul 9, 2026
009b2a9
test: cover the Tables provider, mappers, sync reconcile, and listener
rubenvdlinde Jul 9, 2026
89631dd
docs: add tables-object-source-provider OpenSpec change (tasks complete)
rubenvdlinde Jul 9, 2026
84264db
fix: drop unused container param from the TablesUuidDeriver factory c…
rubenvdlinde Jul 9, 2026
2b01cdc
test: pin the read-only-projection write-guard for tables-bound schemas
rubenvdlinde Jul 9, 2026
c51a5cf
fix(dbal): contract test for sources#introspect + repoint legacy @spe…
rubenvdlinde Jul 9, 2026
0f11aa5
fix(dbal): repoint legacy @spec anchors in phpcs-swept files
rubenvdlinde Jul 9, 2026
3d27029
feat(credential-broker): broker service + credential stores + notific…
rubenvdlinde Jul 9, 2026
b52df18
fix(dbal): request-level error mapping, list-path RBAC parity, relati…
rubenvdlinde Jul 9, 2026
33f7ba3
Merge remote-tracking branch 'origin/ci/composer-auth' into HEAD
rubenvdlinde Jul 9, 2026
aaeb8b7
style: add missing //end if comment in MagicMapper index creation
rubenvdlinde Jul 9, 2026
8530cb4
feat(apphost): declarative scheduled tasks for manifest-driven apps
rubenvdlinde Jul 9, 2026
724549c
fix(dbal): catch NotAuthorizedException on list endpoints — denied li…
rubenvdlinde Jul 9, 2026
3485ee8
fix(dbal): repoint legacy @spec anchors in ObjectsController (pulled …
rubenvdlinde Jul 9, 2026
93636a6
fix: guard IResult::fetch() loops against non-array returns
rubenvdlinde Jul 9, 2026
e83cc3b
Merge pull request 'feat: external databases as read-only virtual reg…
Jul 9, 2026
955a186
fix(apphost): make the schedule reconciler work against real OpenRegi…
rubenvdlinde Jul 9, 2026
dd2721b
fix: align Tables service calls with the real 2.2.0 signatures
rubenvdlinde Jul 9, 2026
1462934
chore(openspec): sync + archive dbal-virtual-registers
rubenvdlinde Jul 9, 2026
a118662
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
8b015b8
fix(dbal): database sources fail INSERT — database_url column is NOT …
rubenvdlinde Jul 9, 2026
a1b9bab
fix(dbal): filter engine-internal catalog objects during introspection
rubenvdlinde Jul 9, 2026
2cc9be5
fix(dbal): free-text search fails on PostgreSQL — CAST columns to tex…
rubenvdlinde Jul 9, 2026
9718d93
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
baaf8ee
feat(credential-broker): widen github provider allowRules for OpenBui…
rubenvdlinde Jul 9, 2026
ef070c1
chore(dbal): point new @spec tags at the change-dir spec (main spec l…
rubenvdlinde Jul 9, 2026
18fa6c9
feat(credential-broker): widen github provider allowRules for OpenBui…
rubenvdlinde Jul 9, 2026
dcb444d
Merge pull request 'fix(dbal): three live-testing fixes — NOT NULL da…
Jul 9, 2026
c146c30
Merge remote-tracking branch 'origin/development' into chore/dbal-vir…
rubenvdlinde Jul 9, 2026
1178e89
chore(openspec): merge development (incl. #327 fixes) and repoint its…
rubenvdlinde Jul 9, 2026
b1be417
Merge pull request 'chore(openspec): sync + archive dbal-virtual-regi…
Jul 9, 2026
dba8a3b
fix(phpstan): resolve 18 static-analysis errors with real fixes
rubenvdlinde Jul 9, 2026
d37a5e0
refactor(phpmd): clear escaped findings and refresh the baseline
rubenvdlinde Jul 9, 2026
4758257
style(phpcs): clear pre-existing code-style debt in lib
rubenvdlinde Jul 9, 2026
e70e965
fix(security): align SearchTrailController auth annotations with admi…
rubenvdlinde Jul 9, 2026
57e44fb
fix(schema): schema-property descriptions and canonical relation $ref…
rubenvdlinde Jul 9, 2026
630918a
Merge pull request 'openregister: merge feat/tables-object-source-pro…
Jul 9, 2026
0d5cc53
Merge pull request 'chore(preserve): DSAR/GDPR WIP feature to develop…
Jul 9, 2026
87a7c39
Merge remote feat/tables-object-source-provider (early push + develop…
rubenvdlinde Jul 9, 2026
d1ec236
Merge origin/development (PRs #299/#323/#324) into feat/tables-object…
rubenvdlinde Jul 9, 2026
a41712f
fix: de-duplicate methods baked in by the development merge + style c…
rubenvdlinde Jul 9, 2026
a512594
fix(dbal): canonical-query normalization for providers + object-sourc…
rubenvdlinde Jul 9, 2026
72649cb
Merge pull request 'feat: Nextcloud Tables as read-only virtual regis…
Jul 9, 2026
506dd72
fix(dbal): guard already-embedded values in object-source extend; log…
rubenvdlinde Jul 9, 2026
15720a4
chore(dbal): repoint legacy @spec anchors in RenderObject (pulled int…
rubenvdlinde Jul 9, 2026
b919aaa
chore(dbal): drop unresolvable REQ-EFT-003 fragment from repointed @s…
rubenvdlinde Jul 9, 2026
017eeb2
Merge pull request 'fix(dbal): canonical-query normalization, object-…
Jul 9, 2026
871aee0
chore(openspec): sync + archive tables-object-source-provider
rubenvdlinde Jul 9, 2026
d55817b
Merge pull request 'chore(openspec): sync + archive tables-object-sou…
Jul 9, 2026
bd5604c
Merge pull request 'feat(credential-broker): widen github provider al…
Jul 9, 2026
d84d5af
Merge pull request 'chore(ci): remove duplicate legacy release workfl…
Jul 9, 2026
a947e0e
Merge pull request 'openspec: unified search over magic-table storage…
Jul 9, 2026
6eeaa69
Merge pull request 'fix(MagicMapper): pass bool rbac/multitenancy to …
Jul 9, 2026
7afa089
Merge pull request 'fix(deps): pin direct vue dependency to ^2.7.16 t…
Jul 9, 2026
35c9ab0
Merge pull request 'openregister: rename remaining mydash references …
Jul 9, 2026
a8ef9d8
Merge pull request 'feat(anonymise): scope-local placeholder numberin…
Jul 9, 2026
159ee36
Merge pull request 'docs(integrations): remove duplicate case-variant…
Jul 9, 2026
7040969
Merge remote-tracking branch 'origin/development' into feat/apphost-m…
rubenvdlinde Jul 9, 2026
55de1ea
Merge pull request 'feat(apphost): declarative scheduled tasks for ma…
Jul 9, 2026
b149dd0
fix(security): admin-gate AuditTrailController::objects + verify (IDO…
rubenvdlinde Jul 9, 2026
ca15fd9
fix(security): admin-gate ConfigurationController external-repo disco…
rubenvdlinde Jul 9, 2026
b4730fc
fix(security): admin-gate DeletedController::topDeleters + WorkflowEn…
rubenvdlinde Jul 9, 2026
7d5930c
fix(security): admin-gate DashboardController tenant-wide analytics (…
rubenvdlinde Jul 9, 2026
57d1f30
Merge branch 'development' into feat/gdpr-data-subject-rights
Jul 9, 2026
5b574e0
Merge pull request 'feat(gdpr): fleet-wide data-subject-rights capabi…
Jul 9, 2026
da1d926
docs(openspec): dbal-virtual-registers-crud change artifacts
rubenvdlinde Jul 9, 2026
5fc2aa1
feat(dbal): true CRUD — opt-in write-through to external databases
rubenvdlinde Jul 9, 2026
e85b0c1
chore(dbal): repoint legacy @spec anchors in SaveObject/DeleteObject …
rubenvdlinde Jul 9, 2026
e078d62
chore(openspec): check off implemented dbal-crud tasks (live verifica…
rubenvdlinde Jul 9, 2026
5ab5863
fix(dbal): PK properties are strings; write statuses survive controll…
rubenvdlinde Jul 9, 2026
2369837
fix(dbal): return non-secret authConfig to admins for database sources
rubenvdlinde Jul 9, 2026
08eb2a6
fix(security): complete no-admin-idor guards, tests, and phpstan base…
rubenvdlinde Jul 9, 2026
6681d3b
fix(dbal): frontend Source entity carries authConfig (edit-modal rehy…
rubenvdlinde Jul 9, 2026
3b30fcc
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
48988ba
Merge pull request 'fix(security): triage + close all 103 no-admin-id…
Jul 9, 2026
5b44fd6
chore(openspec): 6.4 live verification complete — full CRUD verified …
rubenvdlinde Jul 9, 2026
e9fd206
Merge pull request 'feat(dbal): true CRUD — opt-in write-through to e…
Jul 9, 2026
eed1045
Merge pull request 'fix(relations): only record genuine references in…
Jul 9, 2026
3bf4b28
chore(openspec): sync + archive dbal-virtual-registers-crud
rubenvdlinde Jul 9, 2026
2e69bfb
Merge pull request 'chore(openspec): sync + archive dbal-virtual-regi…
Jul 9, 2026
0958bb4
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
c5849c2
Merge pull request 'feat(calc): declarative dateAdd, running sequence…
Jul 9, 2026
2c79151
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
ec5f56a
Merge pull request 'feat(relations): resourceUrl deep-links + full le…
Jul 9, 2026
a473cdb
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
102ca03
Merge pull request 'feat(flows): declarative x-openregister-flows eng…
Jul 9, 2026
f761f68
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
807a0c3
Merge pull request 'test(flow): unit tests for the declarative flow e…
Jul 9, 2026
36827d9
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
bd27cf8
Merge pull request 'fix(search): stop cross-schema unified search cra…
Jul 9, 2026
7bcc421
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
23593ca
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 9, 2026
1d5f7bb
Merge pull request 'fix(openregister): resolve 19 PHPUnit warnings (u…
Jul 9, 2026
d1329f9
Merge pull request 'ci(openregister): adopt canonical test workflow —…
Jul 9, 2026
5488238
feat(federation): FederatedShare data model (entity + mapper + migrat…
rubenvdlinde Jul 10, 2026
896d944
perf(lock,magic-mapper): advisory pre-creation lock + skip orphaned m…
rubenvdlinde Jul 10, 2026
57792c7
feat(federation): Phase 1 read path — serving endpoint + live-proxy p…
rubenvdlinde Jul 10, 2026
d0b1c7e
wip(federation): FederationController + AppHost scheduling system, Do…
rubenvdlinde Jul 10, 2026
269da64
Merge pull request 'perf(lock,magic-mapper): advisory pre-creation lo…
Jul 10, 2026
cb7147b
Merge remote-tracking branch 'origin/development' into HEAD
rubenvdlinde Jul 10, 2026
4038890
feat(federation): share management API (create/list/revoke, token min…
rubenvdlinde Jul 10, 2026
c777a85
feat(federation): OCM cloud-federation provider + discovery advertise…
rubenvdlinde Jul 10, 2026
d875914
feat(federation): Phase 3 — bidirectional write-through
rubenvdlinde Jul 10, 2026
7f645d3
feat(federation): Phase 4 — federate-share flow action (rule-based sh…
rubenvdlinde Jul 10, 2026
64a2563
docs+test(federation): Federation feature page + FederationShareServi…
rubenvdlinde Jul 10, 2026
0bd9a92
test(flow): wire FederationShareService mock into FlowActionServiceTest
rubenvdlinde Jul 10, 2026
929d2c5
fix(tests): remove duplicate ObjectSourceRegistry imports that fatal …
rubenvdlinde Jul 10, 2026
430c42e
fix(l10n): extract 19 missing source strings into en.json (drift)
rubenvdlinde Jul 10, 2026
8d52543
style(federation): satisfy check:strict quality gates (PHPCS + PHPStan)
rubenvdlinde Jul 10, 2026
d511bb4
style(federation): normalise inter-method blank lines (phpcbf)
rubenvdlinde Jul 10, 2026
e62fcbb
fix(l10n): backfill 19 source strings across all 36 required locales
rubenvdlinde Jul 10, 2026
07268d7
fix(magic-mapper): portable SELECT casts in UNION query — replace PG-…
WilcoLouwerse Jul 10, 2026
95554cf
feat(federation): cross-instance OpenRegister object sharing (OCM) (#…
Jul 10, 2026
82bbc6b
chore(deps): bump @conduction/nextcloud-vue to ^1.0.0-beta.168
rubenvdlinde Jul 10, 2026
ce5aa11
Merge pull request 'chore(deps): bump @conduction/nextcloud-vue to ^1…
Jul 10, 2026
42b105b
docs(openspec): adopt authored change specs from feature branches (ar…
rubenvdlinde Jul 10, 2026
9107a57
fix(appstore): licence agpl -> EUPL-1.2 (from fix/appstore-metadata; …
rubenvdlinde Jul 10, 2026
9e0f1ff
Merge fix/woo-520-mariadb-cast-portability (PR #338): portable SELECT…
rubenvdlinde Jul 10, 2026
97d6b5f
fix(icon): carry the white fill on the <svg> element, not inner nodes
rubenvdlinde Jul 10, 2026
cea3412
Merge pull request 'fix: root-level fill on openregister app.svg for …
Jul 10, 2026
b0a7e39
feat(object): persist client-supplied @self.geo on create and update
rubenvdlinde Jul 11, 2026
63547d1
Merge pull request 'feat(object): persist @self.geo on create + updat…
Jul 11, 2026
a57d5c5
build(vue): adopt beta.190 and standardise the local-lib override (#344)
rubenvdlinde Jul 12, 2026
7c4dd8c
fix(composer): never autoload the nextcloud/ocp stubs at runtime
rubenvdlinde Jul 12, 2026
f8a7b09
fix(composer): drop the OCP autoload mapping entirely, not just from …
rubenvdlinde Jul 12, 2026
c396fb0
feat(schemas): cascade-delete a schema with its objects, leaving no o…
rubenvdlinde Jul 12, 2026
569d4d2
Merge remote-tracking branch 'origin/development' into feat/schema-de…
rubenvdlinde Jul 12, 2026
06a8679
Merge pull request #347: feat(schemas): cascade-delete a schema with …
Jul 12, 2026
280cea9
fix(tests): register the OCP stubs in the test bootstrap, not composer
rubenvdlinde Jul 12, 2026
3696ffa
Merge pull request 'fix(composer): never autoload the nextcloud/ocp s…
Jul 12, 2026
fd8459a
fix(magic-mapper): emit ISO-8601 for format:date-time on the read pat…
Jul 12, 2026
f428f0e
fix(mdm): import the trust-configuration register, and document MDM
rubenvdlinde Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
20 changes: 20 additions & 0 deletions .forgejo/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Summary

<!-- Describe what was implemented and why (2–5 sentences) -->

## Changes

<!-- List modified files and what changed -->
- `path/to/file` — what changed and why

## Test Coverage

<!-- Describe what tests cover the changes -->
- `tests/Unit/...` — what is covered

## Quality checklist

- [ ] `composer check:strict` passes locally (phpcs + phpmd + phpstan + psalm + tests)
- [ ] Hydra gates clean: `/hydra-gates` shows zero `FAIL` lines
- [ ] New `lib/**/*.php` classes have a matching `tests/Unit/**/*Test.php`
- [ ] Burn-down PR? Cite cluster + before/after counts: phpcs __ → __, phpmd __ → __, phpstan __ → __
92 changes: 92 additions & 0 deletions .forgejo/issue_template/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "🐛 Bug Report"
description: "Iets werkt niet zoals verwacht"
title: "[BUG] "
labels: ["bug", "needs-triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Bug Report
Beschrijf het probleem zo concreet mogelijk zodat het reproduceerbaar is.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat gaat er mis?"
placeholder: "Bij het uploaden van een PDF groter dan 10MB crasht de anonymizer."
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: "Stappen om te reproduceren"
value: |
1. Ga naar ...
2. Doe ...
3. Zie fout ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: "Verwacht gedrag"
placeholder: "Het document wordt anonimiseerd en gedownload."
validations:
required: true

- type: textarea
id: actual
attributes:
label: "Werkelijk gedrag"
placeholder: "HTTP 500 na ~30 seconden, geen output."
validations:
required: true

- type: textarea
id: environment
attributes:
label: "Omgeving"
value: |
- Namespace/omgeving:
- Versie/image tag:
- Browser (indien van toepassing):
validations:
required: false

- type: textarea
id: logs
attributes:
label: "Logs / Screenshots"
description: "Plak relevante logs of voeg screenshots toe"
render: shell
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria (fix)"
value: |
- [ ] Bug is niet meer reproduceerbaar
- [ ] Regressietest toegevoegd
- [ ] Fix getest in acceptatieomgeving
- [ ] Geen nieuwe security findings
- [ ] Code gereviewd (4-eyes)
validations:
required: true

- type: dropdown
id: severity
attributes:
label: "Severity"
options:
- "🔴 Critical — productie ligt plat"
- "🟠 High — grote impact, workaround aanwezig"
- "🟡 Medium — beperkte impact"
- "🟢 Low — cosmetic / minor"
validations:
required: true
125 changes: 125 additions & 0 deletions .forgejo/issue_template/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: "✨ Feature request"
description: "Suggest a feature or improvement. Fields below feed a draft OpenSpec proposal."
title: "[FEATURE] "
labels: ["enhancement", "feature", "needs-triage"]
type: "Feature"
body:
- type: markdown
attributes:
value: |
## Suggest a feature

Thanks for telling us what you need. **Triage happens within 24 hours.**

The fields below feed an OpenSpec proposal directly if the suggestion
is accepted. The more concrete you are, the faster it ships.

Prefer Dutch? Vul de velden in het Nederlands in — that's fine, we triage in both.

- type: textarea
id: problem
attributes:
label: "Problem"
description: "What can't you do today? What's the friction? Write it from your perspective — one or two sentences is plenty."
placeholder: "I want to filter contacts by last interaction date but the list view doesn't support it. I end up exporting to CSV and sorting in a spreadsheet."
validations:
required: true

- type: textarea
id: proposed-solution
attributes:
label: "Proposed solution"
description: "How would you like it to work? Sketches, links, references welcome. \"I'm not sure\" is also a valid answer — we'll figure it out together."
placeholder: "A date-range filter in the contacts list sidebar, defaulting to last 30 days, persisted per user."
validations:
required: true

- type: textarea
id: who-benefits
attributes:
label: "Who benefits"
description: "Which user role or workflow does this serve? Be specific."
placeholder: "Account managers tracking client engagement, especially before renewal conversations."
validations:
required: true

- type: dropdown
id: priority-to-you
attributes:
label: "How important is this to you?"
description: "Honest self-assessment. Helps us prioritise."
options:
- "Nice to have"
- "Would use weekly"
- "Would use daily"
- "Blocking me right now"
validations:
required: true

- type: textarea
id: context
attributes:
label: "Anything else?"
description: "Edge cases, alternatives you've considered, things to avoid, related capabilities, anything that didn't fit in the boxes above."
placeholder: "Out of scope: per-team default filter (could be later). Avoid: hiding the filter behind a settings page — needs to be one click from the list."

- type: markdown
attributes:
value: |
### Context

The fields below are auto-filled when you suggest a feature from inside
the app. They capture where you were when the idea hit so we can scope
the spec without a second round of questions.

**We show them to you here on purpose**: you can see exactly what we
send and edit or clear any field before you submit. Leave them blank if
you're filing directly from GitHub — we'll still triage it.

- type: input
id: app
attributes:
label: "App"
description: "Auto-filled by the in-product modal. The Nextcloud app you were using."
placeholder: "pipelinq"

- type: input
id: page
attributes:
label: "Page"
description: "Auto-filled. The manifest page id + route you were on when you opened the modal."
placeholder: "clients-detail (/clients/abc-123)"

- type: input
id: surface
attributes:
label: "Modal or widget"
description: "Auto-filled. Any modal, dialog, dashboard widget, or sidebar tab open at the moment the modal launched. Helps us pinpoint UI-attached suggestions."
placeholder: "edit-client-modal · or · dashboard widget: open-leads"

- type: input
id: object
attributes:
label: "Object in focus"
description: "Auto-filled. The OpenRegister register + schema + UUID the page was viewing, if any. Lets us trace the suggestion to a real data shape."
placeholder: "pipelinq · Client · 2f9d-…-abc"

- type: input
id: spec-ref
attributes:
label: "Related capability"
description: "Auto-filled if the page or widget declares a `specRef`. Connects the suggestion to the existing OpenSpec for that capability."
placeholder: "client-management"

- type: markdown
attributes:
value: |
---

### What happens next

1. **Within 24 hours**: a maintainer reads this and replies with one of `ready-to-build`, `needs-design`, `parking-lot`, or `wont-build` (with a reason).
2. **If `ready-to-build`**: an OpenSpec proposal is auto-drafted from these fields. Hydra picks it up and opens a draft PR within days.
3. **When it ships**: you're credited on the spec, you get a `Co-Authored-By:` trailer on the merge commit, and you appear on the app's contributors page.

Read the full flow at the [Users are the moat](https://docs.conduction.nl/strategy/users-are-the-moat) strategy doc.
92 changes: 92 additions & 0 deletions .forgejo/issue_template/technical-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "⚙️ Technische Taak"
description: "Infra, refactor, technische schuld of ops-werk"
title: "[TECH] "
labels: ["technical", "needs-refinement"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Technische Taak
Gebruik dit template voor infra-wijzigingen, refactoring, technische schuld of operationeel werk zonder directe gebruikerswaarde.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat moet er gedaan worden en waarom?"
placeholder: "Migreer de WOO-platform PVC's naar S3 primary storage op Fuga Cloud."
validations:
required: true

- type: textarea
id: motivation
attributes:
label: "Motivatie / Aanleiding"
description: "Welk probleem lost dit op? Waarom nu?"
placeholder: "Huidige lokale PVC's lopen vol en zijn niet HA. Zie ook issue #123."
validations:
required: false

- type: textarea
id: approach
attributes:
label: "Aanpak (globaal)"
description: "Hoe gaan we dit oplossen? Welke keuzes zijn al gemaakt?"
placeholder: |
1. Backup bestaande data
2. S3 bucket aanmaken op Fuga Cloud
3. Nextcloud occ storage:update uitvoeren
4. Smoke test per namespace
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria"
value: |
- [ ] Taak uitvoerbaar via Ansible/Terraform (geen handmatige stappen)
- [ ] Gedocumenteerd in runbook of ADR
- [ ] Getest in acceptatieomgeving vóór productie
- [ ] Rollback-procedure beschreven
- [ ] Geen downtime buiten afgesproken window
- [ ] Gereviewd (4-eyes)
- [ ] Geen nieuwe security findings
validations:
required: true

- type: textarea
id: risks
attributes:
label: "Risico's / Afhankelijkheden"
placeholder: "Afhankelijk van beschikbaarheid acceptatieomgeving. Risico: dataverlies bij fout in migratiescript."
validations:
required: false

- type: dropdown
id: category
attributes:
label: "Categorie"
options:
- "Infra / ops"
- "Refactor"
- "Technische schuld"
- "Security"
- "Performance"
- "CI/CD"
- "Documentatie"
validations:
required: true

- type: dropdown
id: priority
attributes:
label: "Prioriteit"
options:
- "🔴 Critical"
- "🟠 High"
- "🟡 Medium"
- "🟢 Low"
validations:
required: true
Loading