Release govoplan-datasources v0.1.25: unify interface contracts and documentation

This commit is contained in:
2026-09-08 01:32:31 +02:00
parent ad8235028f
commit 930302b535
5 changed files with 36 additions and 21 deletions
+2 -2
View File
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-datasources" name = "govoplan-datasources"
version = "0.1.24" version = "0.1.25"
description = "Governed datasource catalogue, staging, and materialization lifecycle for GovOPlaN." description = "Governed datasource catalogue, staging, and materialization lifecycle for GovOPlaN."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = [{ name = "GovOPlaN" }] authors = [{ name = "GovOPlaN" }]
dependencies = ["govoplan-core>=0.1.20"] dependencies = ["govoplan-core>=0.1.45"]
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
where = ["src"] where = ["src"]
+1 -1
View File
@@ -1,3 +1,3 @@
"""GovOPlaN Datasources module.""" """GovOPlaN Datasources module."""
__version__ = "0.1.24" __version__ = "0.1.25"
+16 -1
View File
@@ -68,7 +68,7 @@ from govoplan_datasources.backend.payloads import ExternalArtifactPayloadBackend
MODULE_ID = "datasources" MODULE_ID = "datasources"
MODULE_NAME = "Datasources" MODULE_NAME = "Datasources"
MODULE_VERSION = "0.1.24" MODULE_VERSION = "0.1.25"
DATASOURCE_INTERFACE_VERSION = "0.2.0" DATASOURCE_INTERFACE_VERSION = "0.2.0"
ARCHITECTURE = ModuleArchitectureDeclaration( ARCHITECTURE = ModuleArchitectureDeclaration(
@@ -487,6 +487,21 @@ manifest = ModuleManifest(
), ),
architecture=ARCHITECTURE, architecture=ARCHITECTURE,
documentation=( documentation=(
DocumentationTopic(
id="datasources.workspace-layout",
title="Datasources workspace actions",
summary="Find collection-wide commands in their consistent workspace position.",
body="Reload and Add datasource or stage use the persistent full-width workspace header at the upper right; Reload sits immediately before creation. Selecting a record, changing filters, or opening an editor does not move these collection-wide commands into the left pane. Catalogue, staging, and origin filters remain in the collection pane. Snapshot and freeze actions remain with their selected resource. Existing permissions, disabled-state rules, and unsaved-change guards still apply. Administrators configure authority through the existing permission system; no new permission or automatic operation is introduced.",
layer="static",
documentation_types=("user", "admin"),
audience=("user", "module_admin", "operator"),
order=5,
translations={"de": {
"title": "Datenquellen: Aktionen im Arbeitsbereich",
"summary": "Sammlungsweite Aktionen an ihrer einheitlichen Position im Arbeitsbereich finden.",
"body": "Neu laden und Datenquelle oder Staging hinzufügen stehen oben rechts in der dauerhaft sichtbaren, arbeitsbereichsweiten Leiste; Neu laden steht unmittelbar vor dem Anlegen. Auswahl, Filterwechsel und Bearbeitung verschieben diese sammlungsweiten Aktionen nicht in den linken Bereich. Katalog-, Staging- und Herkunftsfilter bleiben im Sammlungsbereich. Snapshot- und Einfrieraktionen bleiben bei der ausgewählten Ressource. Bestehende Berechtigungen, Deaktivierungsregeln und der Schutz ungespeicherter Änderungen gelten weiterhin. Administratoren konfigurieren Rechte im bestehenden Berechtigungssystem; es entstehen weder neue Rechte noch automatische Vorgänge.",
}},
),
DocumentationTopic( DocumentationTopic(
id="datasources.data-subject-requests", id="datasources.data-subject-requests",
title="Datasources data-subject requests", title="Datasources data-subject requests",
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/datasources-webui", "name": "@govoplan/datasources-webui",
"version": "0.1.24", "version": "0.1.25",
"private": true, "private": true,
"type": "module", "type": "module",
"main": "src/index.ts", "main": "src/index.ts",
@@ -17,7 +17,7 @@
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"peerDependencies": { "peerDependencies": {
"@govoplan/core-webui": "^0.1.18", "@govoplan/core-webui": "^0.1.45",
"lucide-react": "^1.23.0", "lucide-react": "^1.23.0",
"react": ">=19.2.7 <20", "react": ">=19.2.7 <20",
"react-dom": ">=19.2.7 <20", "react-dom": ">=19.2.7 <20",
@@ -315,18 +315,8 @@ export default function DatasourcesPage({
return ( return (
<WorkspaceFrame as="main" height="viewport" surface="plain" className="datasources-page" label="Datasource workspace"> <WorkspaceFrame as="main" height="viewport" surface="plain" className="datasources-page" label="Datasource workspace">
<WorkspaceLayout
variant="split"
primarySize="compact"
surface="contained"
primaryScrollable={false}
contentScrollable={false}
primaryLabel="Datasource catalogue"
contentLabel="Datasource workspace"
contentClassName="datasources-workspace"
primary={<>
<WorkspaceActionBar <WorkspaceActionBar
scope="collection-pane" scope="workspace"
variant="collection" variant="collection"
refreshable refreshable
reloadAction={{ onReload: () => void reload(selectedDatasourceRef), loading: loading || working }} reloadAction={{ onReload: () => void reload(selectedDatasourceRef), loading: loading || working }}
@@ -340,6 +330,16 @@ export default function DatasourcesPage({
disabledReason={!canStage && !canManage ? DATASOURCES_I18N.manageReason : undefined} disabledReason={!canStage && !canManage ? DATASOURCES_I18N.manageReason : undefined}
/>} />}
/> />
<WorkspaceLayout
variant="split"
primarySize="compact"
surface="contained"
primaryScrollable={false}
contentScrollable={false}
primaryLabel="Datasource catalogue"
contentLabel="Datasource workspace"
contentClassName="datasources-workspace"
primary={<>
<div className="datasources-view-switch"> <div className="datasources-view-switch">
<SegmentedControl<CatalogueView> <SegmentedControl<CatalogueView>
ariaLabel="Datasource view" ariaLabel="Datasource view"