Repository navigation
fix(magic-tables,example-sets): underscore properties read as properties, dot-path config fields, check counts like install - #4661
Merged
Conversation
…roperty, and a config field may be a dot path The rehearsal R2 install logged 16,038 'meta is not a valid attribute' errors: shillinq's _meta property has a _meta column, and every magic-table reader took each _ column for object metadata, so MagicStatisticsHandler failed the whole row and the other readers dropped the property. MagicMetadataColumn now decides: a property the schema declares is a property unless ObjectEntity has that attribute. An unknown metadata column is skipped and noted once at debug. opencatalogi's publiccode schema was rejected on every import because the save-time check compared description.nl.longDescription with the top-level keys; the reader walks dot paths, so the check now accepts a path whose first segment is a property. example-set --check counted changes into the per-schema object count (12 dossiq cases against 10 declared); changes are now counted and printed apart.
… bulk writer asks it too check:strict's phpmd flagged static access, a long variable name and the bulk writer's method length; the write-side rule moves into MagicMetadataColumn::skippedOnWrite().
Contributor
Quality Report — ConductionNL/openregister @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-specs | ✅ | ||||
| test-l10n | ✅ | ||||
| test-l10n-parity | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 173/173 | |||
| npm | ✅ | ✅ 648/648 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ✅ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ✅ 26244/26244 · 25 skipped | ||||
| Newman | ✅ 714/714 | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ✅ |
Quality workflow — 2026-10-16 00:18 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Findings from the Zuiddrecht go-live rehearsal R2 (NC 32.0.13, openregister 2.1.41-unstable.20261015192032).
16,038x "[MagicStatisticsHandler] meta is not a valid attribute". shillinq declares a property
_meta(RetentionRule, BbvAccountMapping, InnovatieboxTariff). Its magic-table column is_meta, and every reader took each_column for object metadata:MagicStatisticsHandlercalledObjectEntity::setMeta(), which throws, and dropped the whole row;MagicSearchHandlerandMagicMapper::rowToObjectEntity()silently dropped the property; the bulk writer never wrote it.MagicMetadataColumnnow decides: a property the schema declares is a property, unless ObjectEntity has an attribute of that name. An unknown metadata column is skipped and logged at debug once per field (the legitimate-skip case), and_schema_versionreachesschemaVersion. This was a data fault, not only noise: those rows were unreadable through that path.opencatalogi
PARTIAL IMPORT:publiccoderejected. Log: "None of the fallback fields in objectDescriptionField ('description.nl.longDescription | description.en.longDescription') exist as properties in the schema." The reader walks dot paths (MetadataHydrationHandler::getValueFromPath(), andSchemadocuments these fields as dot-notation paths), but the save-time check compared the whole path with the top-level keys. It now accepts a path whose first segment is a property. The opencatalogi schema is right, so no opencatalogi change is needed.example-set:install zuiddrecht --checksaid 12 dossiq cases where the install declares 10. The check counted the set's two changes ondossiq case(parkeren-henk-uitkomst,woo-zaaksysteem-uitkomst) into the object count. REQ-EXS-004 asks for objects per register and schema, so the install was right. Changes are now counted apart and printed asdossiq case: 2 change(s) checked.OpenSpec: new change
underscore-properties-and-config-paths(REQ-MTR-001, REQ-SCP-001);example-setsREQ-EXS-004 gains a scenario.Not here, on purpose: "GenericDeepLinkRegistrationListener: Could not resolve appId!" is caused by decidiq registering the listener under OpenRegister's class name; fixed in ConductionNL/decidiq#1747.
Verified locally: new tests with controls (each fails without its fix; a path into a missing property and an unknown metadata column still behave as before),
tests/Unit/Service/ExampleSetandtests/Unit/Dbgreen apart from 15 inherited SQLite-migration errors in AuditTrail tests that need a Nextcloud root.composer check:strictrun once: lint, phpcs, psalm, phpstan green; phpmd flagged five findings in this change (static access, a long name, method length), fixed in the second commit and checked with phpmd and phpstan on the touched files; test:all red only on the 15 inherited SQLite-migration AuditTrail errors (they need a Nextcloud root and are not touched here). No_rbacadded.