From 6e9393c9c7606e91ced908dceef69fd18cf2abe7 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Wed, 5 Aug 2026 19:52:11 +0200 Subject: [PATCH] Release v0.1.16 --- package.json | 4 ++-- pyproject.toml | 8 ++++---- src/govoplan_idm/backend/manifest.py | 5 +++-- webui/package.json | 4 ++-- webui/scripts/test-interface-pattern-language.mjs | 3 ++- webui/src/styles/idm.css | 1 - 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 547c4dd..743c627 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/idm-webui", - "version": "0.1.15", + "version": "0.1.16", "private": true, "type": "module", "main": "webui/src/index.ts", @@ -19,7 +19,7 @@ "LICENSE" ], "peerDependencies": { - "@govoplan/core-webui": "^0.1.15", + "@govoplan/core-webui": "^0.1.16", "@vitejs/plugin-react": "^5.2.0", "lucide-react": "^1.23.0", "react": ">=19.2.7 <20", diff --git a/pyproject.toml b/pyproject.toml index 3f024e2..885367b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-idm" -version = "0.1.15" +version = "0.1.16" description = "GovOPlaN identity management bridge module." readme = "README.md" requires-python = ">=3.12" authors = [{ name = "GovOPlaN" }] dependencies = [ - "govoplan-core>=0.1.15", - "govoplan-identity>=0.1.15", - "govoplan-organizations>=0.1.15", + "govoplan-core>=0.1.16", + "govoplan-identity>=0.1.16", + "govoplan-organizations>=0.1.16", ] [tool.setuptools.packages.find] diff --git a/src/govoplan_idm/backend/manifest.py b/src/govoplan_idm/backend/manifest.py index 3b695ea..7d0c10a 100644 --- a/src/govoplan_idm/backend/manifest.py +++ b/src/govoplan_idm/backend/manifest.py @@ -53,7 +53,7 @@ from govoplan_idm.backend.workflow_definitions import ( from govoplan_idm.backend.search_source import create_idm_search_source -MODULE_VERSION = "0.1.15" +MODULE_VERSION = "0.1.16" IDM_READ_SCOPES = ( "idm:organization_assignment:read", @@ -417,7 +417,8 @@ manifest = ModuleManifest( "Create the unit and function in Organizations first. Make sure the person and account exist in Identity. " "Then create the assignment in IDM. Direct assignments state who holds the function. Delegated assignments require a source assignment and a delegable function. " "Acting-for assignments require a source assignment, an acting account, and a function that allows acting in place. " - "Access maps accepted function facts to roles and rights; without such a mapping, the assignment is recorded but does not grant application permissions." + "Access maps accepted function facts to roles and rights; without such a mapping, the assignment is recorded but does not grant application permissions. " + "The assignment workspace uses the available application width so governance controls and assignment data remain visible together." ), layer="configured", documentation_types=("admin", "user"), diff --git a/webui/package.json b/webui/package.json index 6de312f..440594e 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/idm-webui", - "version": "0.1.15", + "version": "0.1.16", "private": true, "type": "module", "main": "src/index.ts", @@ -17,7 +17,7 @@ "./styles/idm.css": "./src/styles/idm.css" }, "peerDependencies": { - "@govoplan/core-webui": "^0.1.15", + "@govoplan/core-webui": "^0.1.16", "@vitejs/plugin-react": "^5.2.0", "lucide-react": "^1.23.0", "react": ">=19.2.7 <20", diff --git a/webui/scripts/test-interface-pattern-language.mjs b/webui/scripts/test-interface-pattern-language.mjs index b2a34dc..3438547 100644 --- a/webui/scripts/test-interface-pattern-language.mjs +++ b/webui/scripts/test-interface-pattern-language.mjs @@ -13,6 +13,7 @@ const changes = source("../src/features/FunctionAssignmentChangesPanel.tsx"); const patterns = source("../src/features/interfacePatterns.ts"); const moduleSource = source("../src/module.ts"); const translations = source("../src/i18n/generatedTranslations.ts"); +const styles = source("../src/styles/idm.css"); assert(page.includes("ActionBlockerHint") && page.includes("DocumentationHelpLink"), "IDM permissions and prerequisites expose actionable help"); assert(page.includes("assignmentBaseline") && page.includes("draftKey(assignmentDraft) !== draftKey(assignmentBaseline)"), "Existing assignments compare against their loaded draft baseline"); @@ -24,6 +25,6 @@ assert(patterns.includes('topicId: "idm.reference.fields-and-consequences"'), "I assert(moduleSource.includes('version: "0.1.8"') && moduleSource.includes('label: "i18n:govoplan-idm.view_assignments.2d40d6a5"'), "WebUI metadata matches the module release and localizes its action surface"); assert(translations.includes('"i18n:govoplan-idm.state_awaiting_authority"'), "Governed states and decisions are in the translation catalogue"); assert(!page.includes("window.confirm") && !changes.includes("window.confirm"), "IDM does not use browser-native consequential confirmation"); +assert(styles.includes(".idm-page") && !/\.idm-page\s*\{[^}]*max-width/s.test(styles), "The IDM workspace uses the full shared application width"); console.log("IDM surfaces satisfy the recorded interface pattern-language contract."); - diff --git a/webui/src/styles/idm.css b/webui/src/styles/idm.css index 9484787..0d5e7ec 100644 --- a/webui/src/styles/idm.css +++ b/webui/src/styles/idm.css @@ -2,7 +2,6 @@ display: grid; gap: 18px; width: 100%; - max-width: 1480px; } .idm-heading {