Conversation
Auto-detect shell/subprocess relationships on BPMN import and startup; remove unused DsoWerkzaamheid and zoekActiviteiten imports.
…caffold downloads - Added Applicable Rules section to Activity Detail panel showing toepasbare regels from the DSO Uitvoeren Gegevens API, grouped by Conclusie / Indieningsvereisten - Backend: new /toepasbare-regels routes (metadata, STTR, DMN extraction, form scaffold) - Backend: uitvoerenGegevensBaseUrl added to both pre and prod DSO config - Form scaffold parses uitv:uitvoeringsregels from dmn:extensionElements (boolean→checkbox, list→select with options, number→number, string→textfield/textarea, bijlage→textfield) - DMN extraction returns the full dmn:definitions element as a standalone file - STTR route now sends Content-Disposition: attachment to trigger browser download - Linked TreeFellingPermitSubProcess to nl.imow-gm0995.activiteit.HoutopstandVellen via ronl:dsoActiviteitUrn; bumped example version to re-seed - Added verified STTR example outputs for Gemeente Lelystad HoutopstandVellen - Release v1.9.3
feat(dso): location-scoped name search in Activities tab (Phase 2d) Fixing a location preset now loads the authority full activity set in one call (pageSize 200) and reveals a name search box that live-filters by omschrijving client-side. Makes activities like HoutopstandVellen findable without walking the hierarchy. @
feat(dso): import indieningsvereisten form scaffold into LDE (Phase 4.2) Adds an "Import into LDE" button to indieningsvereisten entries in the Applicable Rules panel. The DSO form scaffold is already a form-js schema, so it is saved straight into the form store via FormService.saveForm (localStorage + assets API), stamped with the execution-platform metadata the editor and Operaton deploy expect. It lands in the Form Editor as a wip draft named after the activity and tagged with the authority as organization. DMN import (Phase 4.1) stays download-only: DMNs have no local asset store (the picker reads from TriplyDB via SPARQL), so importing needs an architectural decision (deploy-to-Operaton / validate / local store), deferred and documented in the phase plan. @
fix(dso): resolve readable authority name for imported form organization The RTR API only returns the authority code (e.g. GM0995), so imported forms were tagged with the code instead of a name. Add a shared LOCATION_PRESETS table + authorityLabel() resolver: known authority OINs (Lelystad, Flevoland) map to their names, others fall back to the code. The Activities tab presets now reuse the same table. @
…from the CPRMV project
feat(dso): publish-via-CPSV-Editor handoff deep-link Add a "Publish via CPSV Editor" action on Conclusie entries in the Applicable Rules panel. It opens the CPSV Editor with a deep-link (dsoImport=dmn + identifiers + DSO metadata); the CPSV Editor fetches the DMN XML from the shared backend, so the payload never rides in the URL. New VITE_CPSV_EDITOR_URL env var per environment. Also: gitignore local .env (committed envs remain .env.development / .acceptance / .production) and the v1.9.4 changelog entry. @
fix(dso): normalize STTR-extracted DMN for Operaton deploy + eval The Sogelink STTR DMN neither deploys nor evaluates on Operaton as-is. normalizeDmnForOperaton now: upgrades DMN 1.2 -> 1.3 (engine only transforms 1.3); injects ids on inputs/inputExpressions (engine rejects inputs without one); renames variable names to FEEL-safe identifiers and rewrites their inputExpression references (hyphens/spaces broke FEEL evaluation); and types output columns (BIZ-004). Rule logic and output value literals are left untouched. Verified against operaton.open-regels.nl: deploys all 7 decisions and the root decision evaluates (HTTP 200) where it previously threw a FEEL exception. historyTimeToLive remains the deployer (CPSV Editor) concern. Updates the phase plan and the committed HoutopstandVellen example DMN. @
feat(dso): add historyTimeToLive so extracted DMN is deploy-ready This Operaton instance enforces camunda:historyTimeToLive at deploy. normalizeDmnForOperaton now declares the camunda namespace and stamps historyTimeToLive="180" (matching the LDE BPMN-template convention) on every <decision>, so the extracted DMN deploys as handed off — the CPSV Editor deploys it as-is, no patching. Decisions that already declare HTTL are left untouched. Verified: the normalized HoutopstandVellen DMN now deploys directly (all 7 decisions) and the root decision evaluates, with no external HTTL. @
feat(form): green DSO badge for forms imported from DSO Forms imported via the DSO Applicable Rules panel now get status "dso" and render a green DSO badge in the Form Editor list, instead of the generic yellow WIP badge. form_schemas.status is unconstrained TEXT, so the new value persists fine; DSO forms stay editable like wip forms. Includes the v1.9.5 changelog entry (HTTL deploy-ready DMN + this badge). @
This Operaton instance enforces camunda:historyTimeToLive at deploy. normalizeDmnForOperaton now declares the camunda namespace and stamps historyTimeToLive="180" (matching the LDE BPMN-template convention) on every <decision>, so the extracted DMN deploys as handed off — the CPSV Editor deploys it as-is, no patching. Decisions that already declare HTTL are left untouched. Verified: the normalized HoutopstandVellen DMN now deploys directly (all 7 decisions) and the root decision evaluates, with no external HTTL.
Forms imported via the DSO Applicable Rules panel now get status "dso" and render a green DSO badge in the Form Editor list, instead of the generic yellow WIP badge. form_schemas.status is unconstrained TEXT, so the new value persists fine; DSO forms stay editable like wip forms. Includes the v1.9.5 changelog entry (HTTL deploy-ready DMN + this badge).
…mv-shacl-validation
test(shacl): add CPRMV/CPSV-AP/RONL validation fixtures + changelog
Add valid/invalid SHACL fixtures across all three layers and a malformed
Turtle case for the parser path:
- cprmv-nonconformant.ttl (pairs with the renamed cprmv-conformant.ttl)
- cpsv-ap-rule-nonconformant.ttl
- org-collision-{pass,fail}.ttl
- malformed.ttl
Rename cprmv-test.ttl -> cprmv-conformant.ttl for a clear conformant/
nonconformant pair. Declare the cprmv key on the frontend ValidationResult
layers type. Note the SHACL/CPRMV work under v1.9.5 in the changelog.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
…s (v1.9.6) - getAllDmns and chain-link queries only matched cprmv:DecisionModel under the old 0.3.0 namespace, so DMNs published under the new CPRMV 0.4.1 namespace (e.g. vast_bedrag_op_vestiging) were missing from /v1/dmns and the ChainBuilder DMN picker. Both namespaces are now supported side by side until existing 0.3.0 data is migrated. - ChainBuilder "Fill with test data" rendered Integer/Double inputs as empty when the RDF-sourced test value was 0 (0 || '' = ''), making it look like nothing was filled in. Now uses ?? so 0 displays correctly.
SHACL issue messages and focus-node locations were cut off with an ellipsis and could not be read in full. - frontend (ShaclValidator IssueRow): the location used a single-line CSS truncate. Location now wraps (break-all), message wraps (break-words), and both expose the complete text on hover via a title tooltip. - backend (shacl-validation.service offendingValues): removed the 60-char cap that truncated offending values reported for cardinality (maxCount / uniqueLang) violations; the full value is now included in the message (whitespace still normalized). - changelog: add v1.9.7 (bug fix), demote 1.9.6 to Released.
…shapes Closes two coverage gaps identified in the CPSV Editor field-mapping audit: - cprmv:ParameterWaarde had no SHACL shape; Parameters tab was entirely unvalidated. New shape requires skos:notation [1,1] and skos:prefLabel [1,n]; all other properties (schema:value, unitCode, dct:description, cprmv:validFrom/validUntil) are optional [0,1]. - cprmv:TemporalRule had no SHACL shape; validFrom/validUntil/confidenceLevel/ isBasedOn extensions on Rules were unvalidated. New shape captures all four as optional [0,1] with correct datatypes. Also adds skos:, schema:, dct: prefix declarations required by the new shapes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
deployProcess now stamps a process-level <camunda:property name="boardOwner"> onto the main BPMN at deploy time. The value is taken from an explicit boardOwner request field, or derived from the process's candidate groups (infra/rip groups -> infra-board, caseworker/hr groups -> caseworker). Injection is idempotent and conservative: on any unexpected BPMN shape the original XML is deployed untouched, so existing bundles never break. Consumed downstream by ronl-business-api to split open tasks and the Projecten archive by board without a hardcoded process allowlist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds an isolated "Board ownership" rectangle above "Resources to deploy" with segmented buttons: Auto (shows the auto-detected board), Infra-board, Caseworker, None (leave untagged). Auto omits boardOwner so the backend derives it; an explicit board overrides; None sends '' to deploy untagged. Backend boardOwner semantics made explicit: undefined=derive, ''=untagged, value=override. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Deploy modal now requires a board: the "None (leave untagged)" option is gone, Deploy is disabled until a board resolves (auto-detected or picked), and the resolved board is sent on both the Operaton deploy and the record write-back. Persisted via a new process_definitions.board_owner column (markDeployed) and surfaced through /bundles/public so downstream consumers (ronl-business-api Procesbibliotheek) can display it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Task_MapRoleOutputs now sets a leadRole process variable from the intake projectType (contractbeheer → manager-pb, else projectleider). This is the ownership signal the Infra-board Portfolio ROL filter reads — distinct from the task candidateGroups. Changelog v1.9.9 updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
No description provided.