Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(signing): adopt x-openregister-lifecycle on signingRequest#111

Closed
rubenvdlinde wants to merge 9 commits into
developmentfrom
feature/declarative-annotation-pilot
Closed

feat(signing): adopt x-openregister-lifecycle on signingRequest#111
rubenvdlinde wants to merge 9 commits into
developmentfrom
feature/declarative-annotation-pilot

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Migrates signingRequest off STATUS_TRANSITIONS onto OpenRegister's lifecycle annotation. Six transitions. Net -36/+23 lines. Verified end-to-end. Companion: ConductionNL/openregister#1357

- Extend base webpack config instead of replacing resolve/module
- Add NodePolyfillPlugin for process polyfill compatibility
- Add CnObjectSidebar + objectSidebarState for proper sidebar positioning
- Follows ADR-017 (component composition) and ADR-018 (header actions)
- Fix Views.vue: remove <script setup>, fix merged template tags
- Fix BatchAnonymizationView.vue: convert from <script setup> to Options API, fix escaped quotes
- Fix EntityReviewTable.vue: fix escaped quotes throughout
- Fix navigation.ts: merge duplicate interface property definitions
- All files had corruption from bad code generation (merged lines, \x27 quotes)
Settings link in gear foldout now opens NcAppSettingsDialog modal
instead of routing to /settings page. Matches ADR-004 pattern:
- Admin config: /settings/admin/{appid} (NC admin panel)
- In-app settings: NcAppSettingsDialog modal from gear menu
- Wrap all strings in BatchAnonymizationView and EntityReviewTable
- Wrap signing option labels and error fallbacks
- Expand l10n files from 133 to 225 keys with Dutch translations
All translation keys now use sentence case per ADR-007.
Only first word capitalized, except proper nouns and acronyms.
Replace docudesk's hand-written transition matrix with the platform's
declarative lifecycle annotation:

| Action | from | to |
|--------|------|----|
| send | DRAFT | PENDING |
| start | PENDING | IN_PROGRESS |
| complete | IN_PROGRESS | COMPLETED |
| decline | IN_PROGRESS | DECLINED |
| expire | PENDING / IN_PROGRESS | EXPIRED |
| cancel | DRAFT / PENDING / IN_PROGRESS | CANCELLED |

### Deletes
- SigningService::STATUS_TRANSITIONS constant table
- SigningService::isValidTransition method
- Explicit isValidTransition call in SigningService::cancelRequest

### Replaces with
- OpenRegister's LifecycleValidationListener (subscribes to ObjectUpdatingEvent
  via StoppableEventInterface) rejects any save attempt that moves status
  outside the schema's declared transitions.

Verified end-to-end against /apps/openregister/api/objects/{id}/transition:
- DRAFT → PENDING (send) → IN_PROGRESS (start) → COMPLETED (complete)
- send from COMPLETED correctly rejected with structured 422
…ative-annotation-pilot

# Conflicts:
#	js/docudesk-dashboard.js
#	js/docudesk-dashboard.js.LICENSE.txt
#	js/docudesk-dashboard.js.map
#	js/docudesk-main.js
#	js/docudesk-main.js.LICENSE.txt
#	js/docudesk-main.js.map
#	js/docudesk-settings.js
#	js/docudesk-settings.js.LICENSE.txt
#	js/docudesk-settings.js.map
#	l10n/en.js
#	l10n/en.json
#	l10n/nl.js
#	l10n/nl.json
#	src/navigation/MainMenu.vue
#	src/store/modules/navigation.ts
#	src/views/Views.vue
#	src/views/anonymization/BatchAnonymizationView.vue
#	src/views/anonymization/EntityReviewTable.vue
#	src/views/signing/SigningRequestForm.vue
#	webpack.config.js
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/docudesk @ 4164068

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

Coverage: 0% (0/10 statements)


Quality workflow — 2026-05-19 03:53 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Closing in prep for docudesk's manifest-system refactor (Tier-4 adoption) on development. This PR's diff is too large to cheaply rebase across the upcoming manifest changes — please reopen against post-manifest development if the work is still relevant. The 5 spec/docs/gitignore PRs (#101, #133, #134, #148, #149) just landed; the manifest sweep follows.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant