Skip to content

feat: Combine 20 outstanding PRs into single development merge#1258

Merged
rubenvdlinde merged 71 commits intodevelopmentfrom
feature/combined-outstanding-prs
Apr 14, 2026
Merged

feat: Combine 20 outstanding PRs into single development merge#1258
rubenvdlinde merged 71 commits intodevelopmentfrom
feature/combined-outstanding-prs

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

This PR combines 20 outstanding feature and fix branches into a single merge targeting development. These PRs had been accumulating individually (many targeting beta), making them difficult to review and merge one by one. Consolidating them unblocks Vue component development that depends on these backend and UI changes.

Included PRs

Bug Fixes & UI Improvements

Archival & Compliance Features

Platform Features

Documentation & Specs

Conflict Resolution

All merge conflicts were resolved manually:

  • routes.php: Combined all route blocks from retention, archival, e-depot, SaaS, workflow, and file sidebar endpoints
  • AuditTrailMapper.php: Kept both createAuditTrailEntry() and findByIdentifier() methods
  • package.json: Kept higher dependency versions from development
  • OpenSpec files: Accepted enriched/updated versions
  • node_modules in tests/integration/: Removed (should not be in git)

Test plan

  • Verify app loads correctly in Nextcloud
  • Test magic table queries on both MySQL and MariaDB
  • Verify sidebar navigation and search results display names
  • Spot-check retention and audit trail API endpoints
  • Run composer check:strict for PHP quality

🤖 Generated with Claude Code

rjzondervan and others added 30 commits March 24, 2026 09:10
Re-apply PR #940 (reverted in #972): move all Docusaurus config, src,
and static files from docusaurus/ into docs/ to match the company-wide
standard. Update docs path config and editUrl references. Add nl i18n
locale support. Clean up .gitignore to reference docs/ instead of
stale website/ paths.
…chival-destruction-workflow

# Conflicts:
#	package.json
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.)
- Add named parameters to all internal method calls (custom sniff)
- Add missing short descriptions to @var and @method docblocks
- Fix implicit true comparisons (use explicit === true/false)
- Fix line length violations by extracting helpers and breaking strings
- Fix ESLint: reserved component name Circle→CircleIcon, unused params
- Add @nextcloud/vue-richtext dependency for reference widget
- Add .gitignore entry for docs/node_modules/
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.)
- Add named parameters to all internal method calls (custom sniff)
- Add missing short descriptions to @var and @method docblocks
- Fix implicit true comparisons (use explicit === true/false)
- Fix line length violations by extracting helpers and breaking strings
- Fix ESLint: reserved component name Circle→CircleIcon, unused params
- Add @nextcloud/vue-richtext dependency for reference widget
- Add .gitignore entry for docs/node_modules/
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.)
- Add named parameters to all internal method calls (custom sniff)
- Add missing short descriptions to @var and @method docblocks
- Fix implicit true comparisons (use explicit === true/false)
- Fix line length violations by extracting helpers and breaking strings
- Fix ESLint: reserved component name Circle→CircleIcon, unused params
- Add @nextcloud/vue-richtext dependency for reference widget
- Add .gitignore entry for docs/node_modules/
…elopment

# Conflicts:
#	lib/Middleware/TenantQuotaMiddleware.php
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

Quality Report

Repository ConductionNL/openregister
Commit 0b1570f
Branch 1258/merge
Event pull_request
Generated 2026-04-09 11:30 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24186613590

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security PASS
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 24eaf3d
Branch 1258/merge
Event pull_request
Generated 2026-04-10 07:20 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24231380297

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security FAIL
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm FAIL

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

Base automatically changed from development to beta April 10, 2026 07:29
@remko48 remko48 changed the base branch from beta to development April 10, 2026 07:33
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit e63c288
Branch 1258/merge
Event pull_request
Generated 2026-04-10 08:31 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24233947079

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security FAIL
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm FAIL

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

PHPCS fixes:
- NoVtodoCalendarException: fix spacing (auto-fixed)
- RegistersController: fix spacing (auto-fixed)
- DestructionList/SelectionList: add phpcs:disable for Entity setter
  calls (Entity __call breaks with named params)
- FileLockHandler: add named param to getLockInfo calls
- CalendarEventService: add named param to extractOpenRegisterProperties

npm security:
- Update axios to >=1.15.0 (fixes critical SSRF bypass GHSA-3p68)
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit b903634
Branch 1258/merge
Event pull_request
Generated 2026-04-13 08:35 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24333696132

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security PASS
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

The middleware crashed when Organisation entity had new linked-entity
columns (mail, contacts, etc.) not yet present in the database table.
This blocked ALL API requests in CI and fresh installs.

- beforeController: wrap getActiveOrganisation() in try-catch to
  gracefully skip quota checking during migrations/schema changes
- afterException: re-throw unhandled exceptions instead of returning
  null (which caused MiddlewareDispatcher TypeError)
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit ea5ee4a
Branch 1258/merge
Event pull_request
Generated 2026-04-13 08:56 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24333857332

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

The beforeController fix caught the 'mail is not a valid attribute'
error, but afterController also calls getActiveOrganisation() for
bandwidth tracking and crashed the same way.
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit fbd06e3
Branch 1258/merge
Event pull_request
Generated 2026-04-13 09:04 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24334650573

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

The linked entity fields (mail, contacts, notes, todos, calendar, talk,
deck) were added to Organisation, Register, Schema, and ObjectEntity
via addType() but no database migration creates these columns. On fresh
installs (including CI), loading any entity with these fields crashes
with 'mail is not a valid attribute' because fromRow() tries to set a
column that doesn't exist in the DB.

These fields belong in PR #1237 (linked-entity-types) which needs its
own migration. Property declarations are kept (they don't cause runtime
errors) but addType registrations are removed so the ORM doesn't expect
DB columns that don't exist.
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 6e34603
Branch 1258/merge
Event pull_request
Generated 2026-04-13 11:56 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24334998884

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 6913a0d
Branch 1258/merge
Event pull_request
Generated 2026-04-13 12:10 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24341990139

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 172ba22
Branch 1258/merge
Event pull_request
Generated 2026-04-13 12:27 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24342562472

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

Copy link
Copy Markdown
Member

@rjzondervan rjzondervan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few issues with this PR, of which one actually breaks Nextcloud 34 development envs

Comment thread lib/BackgroundJob/ActionScheduleJob.php Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function triggers some psalm errors, they seem to me incorrect, but can we validate that?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I miss in this PR the fix to stop using the \OC::$server paradigm, which breaks in the current development versions of Nextcloud 34

@@ -65,14 +65,14 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Especially this line broke @SudoThijn's dev-environment.

Addresses rjzondervan's change requests:

1. Migration Version1Date20260322120000: replace \OC::$server->get()
   with constructor injection (IDBConnection + IConfig). The \OC::$server
   pattern breaks on Nextcloud 34 dev environments.

2. ActionScheduleJob: fix param name $arguments→$argument to match
   parent Job::run() signature (psalm ParamNameMismatch).

3. ActionScheduleJob: add @psalm-suppress for CronExpression class
   (optional runtime dependency, not in composer.json).
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 18c07b5
Branch 1258/merge
Event pull_request
Generated 2026-04-13 15:03 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24343282330

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit FAIL
Newman FAIL
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHP Nextcloud Result
Overall FAIL

Integration Tests (Newman)

Result
FAIL

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions
Copy link
Copy Markdown
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 791b9b1
Branch 1258/merge
Event pull_request
Generated 2026-04-13 15:05 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/24350546291

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security PASS
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (600 total)

Metric Count
Approved (allowlist) 598
Approved (override) 2
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

PHPStan baseline updated from 1247 to 2344 suppressed errors to account
for code added by the 20 merged feature branches. Psalm baseline updated
to include 5 pre-existing errors. Both tools now pass clean.
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ bf7320c

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 147/147
npm ✅ 600/600
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-04-14 11:07 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde merged commit f22470c into development Apr 14, 2026
34 of 39 checks passed
@rubenvdlinde rubenvdlinde deleted the feature/combined-outstanding-prs branch April 14, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants