Skip to content

feat(schemas): x-openregister-lifecycle on 7 schemas (re-do of #306)#419

Open
rubenvdlinde wants to merge 1 commit into
developmentfrom
feature/x-openregister-lifecycle-schemas
Open

feat(schemas): x-openregister-lifecycle on 7 schemas (re-do of #306)#419
rubenvdlinde wants to merge 1 commit into
developmentfrom
feature/x-openregister-lifecycle-schemas

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

Re-applies the ADR-031 declarative-state-machine annotations from PR #306 onto the current post-manifest-migration lib/Settings/procest_register.json. PR #306's branch (feature/declarative-annotation-pilot) accumulated 40+ conflicts with development (which has since landed the json-manifest migration that deleted/restructured files the branch modified) and could not be rebased — this is a clean re-do off current development.

Adds configuration.x-openregister-lifecycle blocks (state machine: field, initial, final, transitions) to 7 schemas, with version bumps:

Schema Version Transitions
task 1.0.0 → 1.1.0 activate, complete, terminate, disable
document 1.0.0 → 1.1.0 submit, adopt, archive, sendBack
voorstel 1.0.0 → 1.1.0 startParafering, paraferingDone, accord, submit, decide, archive, sendBack, revise
hearingSession 1.1.0 → 1.2.0 invite, execute, cancel, waive (incl. the dossier_beschikbaar status that development added)
adviesAanvraag 1.0.0 → 1.1.0 receive, expire
handhavingsactie 1.0.0 → 1.1.0 forfeit, execute, withdraw
inspectieChecklist 1.0.0 → 1.1.0 activate, archive

Register version bumped 0.7.0 → 0.8.0.

Notes / scope

Supersedes #306, which is on an un-rebaseable branch.

Test plan

  • python3 -m json.tool lib/Settings/procest_register.json is valid (done)
  • OpenRegister picks up the lifecycle blocks; POST /api/objects/{id}/transition honours the new transition tables
  • Register re-import / upgrade applies the version bumps without errors

@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 7a1e205

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

Spec coverage: 5% (21 tests / 456 specs)


Quality workflow — 2026-05-12 05:38 UTC

Download the full PDF report from the workflow artifacts.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[CONCERN] hearingSession: dossier_beschikbaar has no incoming transition

The hearingSession lifecycle uses dossier_beschikbaar as a from state in three transitions (execute, cancel, waive), but there is no transition whose to is dossier_beschikbaar. Starting from gepland, the lifecycle machine can reach uitgenodigd, uitgevoerd, geannuleerd, and afgezien — but dossier_beschikbaar is unreachable via any defined transition.

If dossier availability is set by an external/automatic process (not a user-triggered transition), this may be intentional and should be documented. If it is meant to be triggered manually, a makeDossierAvailable (or similar) transition from uitgenodigd to dossier_beschikbaar is missing.

Suggested fix: either add a transition makeDossierAvailable: { from: ["uitgenodigd"], to: "dossier_beschikbaar" }, or add a comment/description in the schema explaining that this state is set programmatically outside the lifecycle machine.

Copy link
Copy Markdown

@WilcoLouwerse WilcoLouwerse left a comment

Choose a reason for hiding this comment

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

Review

🟡 Concerns (1)

Reviewed by WilcoLouwerse via automated batch review.

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