Skip to content

chore(register): retire the product schema, pipelinq owns it - #980

Merged
rubenvdlinde merged 1 commit into
developmentfrom
chore/retire-product-schema
Aug 31, 2026
Merged

chore(register): retire the product schema, pipelinq owns it#980
rubenvdlinde merged 1 commit into
developmentfrom
chore/retire-product-schema

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Part of the fleet schema consolidation. Three apps shipped a schema slugged product: decidiq, filinq and pipelinq. Slugs are global on a shared OpenRegister and a bare relation resolves by slug alone, so the copies could bind to each other. Pipelinq's is the fleet's commercial catalog entry and keeps the slug.

Nothing in Filinq read this copy: zero references across src/ and lib/. The schema, its register-list entry and its three mock seed objects go together.

The descriptor is only half the job

ImportHandler unions the freshly-imported schema ids into the register's existing list, so a schema removed from the descriptor keeps its row, its magic table and its place in the register forever. Verified on the dev instance with the companion command added in ConductionNL/openregister#3248:

occ openregister:schemas:prune-retired --app filinq --slug product --apply
  product (id=21, app=filinq): 0 object(s), referenced by 1 register(s)
  unlinked from register id=16 (filinq)
  DELETED (objects removed=0, table dropped=yes)

pipelinq's id 49 and decidiq's id 987 were untouched, which is the app scoping doing its job.

Version bump

info.version 8.0.0 to 8.1.0, mock 1.0.0 to 1.1.0. SettingsInitializer gates the import on info.version, so without the bump this never reaches an existing install.

Depends on ConductionNL/openregister#3248 for the prune command.

🤖 Generated with Claude Code

Three apps shipped a schema slugged `product`: decidiq, filinq and
pipelinq. Slugs are global on a shared OpenRegister and a bare relation
resolves by slug alone, so the copies could bind to each other. Pipelinq's
is the fleet's commercial catalog entry and keeps the slug.

Nothing in Filinq read this copy: zero references across src/ and lib/. The
schema, its register-list entry and its three mock seed objects go together.

Removing it from the descriptor is only half the job. ImportHandler unions
the freshly-imported schema ids into the register's existing list, so the
live row survives a descriptor deletion. Verified on the dev instance with
the new companion command:

  occ openregister:schemas:prune-retired --app filinq --slug product --apply
  -> product (id=21, app=filinq): 0 objects, referenced by 1 register(s)
     unlinked from register id=16 (filinq)
     DELETED (objects removed=0, table dropped=yes)

pipelinq's id 49 and decidiq's id 987 were untouched, which is the app
scoping doing its job.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/filinq @ 01f1c10

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
test
test-unit
check-manifest
test-l10n
format
check-schema-l10n
check-l10n-js
composer ✅ 118/118
npm ✅ 631/631
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright ⏭️ deferred — runs on the promotion into beta/main, not on a pull request into development
Hydra gates

Quality workflow — 2026-08-31 21:07 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit dc7285d into development Aug 31, 2026
50 checks passed
@rubenvdlinde
rubenvdlinde deleted the chore/retire-product-schema branch August 31, 2026 21:22
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.

1 participant