[Feature] Configuration package import/export and signed preconfiguration catalogs #208
Closed
opened 2026-07-07 15:01:59 +02:00 by zemion
·
2 comments
No Branch/Tag Specified
Labels
Clear labels
area/api
HTTP API contracts, routers, schemas, or API smoke behavior.
area/auth
Authentication, sessions, access bootstrap, or login behavior.
area/db
Database sessions, models, transactions, or persistence primitives.
area/devex
Local developer workflow, scripts, tests, tooling, or release helpers.
area/docs
Durable documentation and project guidance.
area/governance
Governance policy, audit, privacy, retention, or compliance behavior.
area/marketing
Public website, product messaging, publication copy, or legal page content.
area/migrations
Alembic migrations, schema bootstrap, or persistence evolution.
area/module-system
Module discovery, manifests, capabilities, routing, or optional integrations.
area/rbac
Permissions, roles, delegation, or authorization policy.
area/release
Versioning, release locks, tags, packaging, or dependency pins.
area/security
Security posture, static analysis, supply-chain hardening, or vulnerability remediation.
area/tenancy
Tenant boundaries, provisioning, or tenant-scoped data behavior.
area/webui
Shared WebUI shell, frontend components, routing, or frontend tests.
audit/complexity
Complexity finding from Radon, Xenon, or equivalent maintainability scans.
audit/duplication
Duplicated-code finding from jscpd or equivalent similarity scans.
audit/false-positive
Audit finding reviewed as a narrow false positive or acceptable risk.
audit/needs-design
Audit finding that needs an architectural or product decision before implementation.
audit/quick-fix
Audit finding that appears narrow and directly fixable.
audit/structural
Audit finding that needs design, refactoring, or behavior review.
codex/needs-human
Needs an explicit human decision before Codex should implement.
codex/ready
Suitable for Codex to pick up with the existing issue context.
module/access
GovOPlaN access, identity, authentication, RBAC, and administration behavior.
module/addresses
GovOPlaN Addresses module behavior or integration.
module/admin
GovOPlaN Admin module behavior or integration.
module/appointments
GovOPlaN Appointments module behavior or integration.
module/audit
GovOPlaN Audit module behavior or integration.
module/calendar
GovOPlaN Calendar module behavior or integration.
module/campaign
GovOPlaN campaign module behavior or integration.
module/cases
GovOPlaN Cases module behavior or integration.
module/connectors
GovOPlaN Connectors module behavior or integration.
module/core
GovOPlaN core runner, shared primitives, shell, or extension points.
module/dataflow
GovOPlaN Dataflow module behavior or integration.
module/datasources
GovOPlaN governed datasource contracts, catalogs, and integrations.
module/dist-lists
GovOPlaN Distribution Lists module behavior or integration.
module/dms
GovOPlaN Dms module behavior or integration.
module/erp
GovOPlaN Erp module behavior or integration.
module/evaluation
GovOPlaN Evaluation module behavior or integration.
module/files
GovOPlaN files module behavior or integration.
module/fit-connect
GovOPlaN Fit Connect module behavior or integration.
module/forms
GovOPlaN Forms module behavior or integration.
module/identity
GovOPlaN Identity module behavior or integration.
module/identity-trust
GovOPlaN Identity Trust module behavior or integration.
module/idm
GovOPlaN Idm module behavior or integration.
module/ledger
GovOPlaN Ledger module behavior or integration.
module/mail
GovOPlaN mail module behavior or integration.
module/notifications
GovOPlaN Notifications module behavior or integration.
module/ops
GovOPlaN Ops module behavior or integration.
module/organizations
GovOPlaN Organizations module behavior or integration.
module/payments
GovOPlaN Payments module behavior or integration.
module/permits
GovOPlaN Permits module behavior or integration.
module/policy
GovOPlaN Policy module behavior or integration.
module/poll
GovOPlaN Poll module behavior or integration.
module/portal
GovOPlaN Portal module behavior or integration.
module/postbox
GovOPlaN Postbox module behavior or integration.
module/reporting
GovOPlaN Reporting module behavior or integration.
module/risk-compliance
GovOPlaN Risk Compliance module behavior or integration.
module/scheduling
GovOPlaN Scheduling module behavior or integration.
module/search
GovOPlaN Search module behavior or integration.
module/tasks
GovOPlaN Tasks module behavior or integration.
module/templates
GovOPlaN Templates module behavior or integration.
module/tenancy
GovOPlaN Tenancy module behavior or integration.
module/views
GovOPlaN governed task views, interface projections, and workflow view integration.
module/workflow
GovOPlaN Workflow module behavior or integration.
module/xoev
GovOPlaN Xoev module behavior or integration.
module/xrechnung
GovOPlaN Xrechnung module behavior or integration.
module/xta-osci
GovOPlaN Xta Osci module behavior or integration.
priority
p0
Immediate stop-the-line priority.
priority
p1
High priority for the next focused work window.
priority
p2
Normal planned priority.
priority
p3
Low priority or opportunistic cleanup.
source/backlog-import
Imported from markdown backlog, roadmap, plan, or TODO files.
source/security-audit
Created from a structured security or code-quality audit report.
source/todo-scan
Imported from inline TODO/FIXME/HACK markers by the Gitea TODO importer.
status
blocked
Cannot progress without a decision, dependency, credential, or external change.
status
in-progress
Currently being worked.
status
needs-info
Needs clarifying input before implementation can proceed safely.
status
ready
Ready for implementation.
status
triage
Needs review, ownership, priority, or acceptance criteria.
type
bug
A reproducible defect, regression, or incorrect behavior.
type
debt
Cleanup, refactoring, risk reduction, or deferred engineering work.
type
docs
Documentation, process, or developer workflow work.
type
feature
New user-visible behavior or platform capability.
type
task
Implementation, maintenance, migration, or operational work.
type
user-story
End-to-end user journey or real-world process story used to steer product slices.
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: GovOPlaN/govoplan-core#208
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
GovOPlaN modules can be installed, but a working public-sector process still
requires many coordinated module-owned configurations: workflows, forms, portal
entry points, tasks, mail templates, payment profiles, access roles,
permissions, and interface bindings. Operators need a way to import a trusted
preconfiguration, understand required modules and data, resolve problems before
applying changes, and export a working setup for reuse.
Durable concept:
docs/CONFIGURATION_PACKAGES.mdExample catalog shape:
docs/configuration-package-catalog.example.jsonProposed Capability
Add configuration packages: signed, versioned preconfigurations that sit above
modules and are imported/exported through typed module provider capabilities.
The system should:
changes
Ownership
govoplan-coregovoplan-access,govoplan-admin,govoplan-portal,govoplan-forms,govoplan-cases,govoplan-workflow,govoplan-tasks,govoplan-templates,govoplan-mail,govoplan-payments,govoplan-auditcapabilities, typed DTOs/schemas, module package catalog integration, admin
route/UI contributions, audit events
Core should own orchestration, package/catalog validation, dependency
resolution, generic APIs, and the generic wizard shell. Modules should own
their own fragment schemas, validation, apply/export logic, diagnostics,
redaction, and health checks. Access owns roles, groups, permissions, users,
API keys, and principal-mapping fragments only.
Acceptance Criteria
DTO schemas.
configuration.providercapability contract for module-ownedpreflight/apply/export/health operations.
module package catalogs.
capabilities, missing operator data, conflicts, and unsafe changes.
values into data requirements.
interfaces, and required data without exposing irrelevant internals.
assignments.
workflow/forms/portal/tasks/templates/mail/payments/cases/audit providers as
those modules mature.
clean tenant.
Verification Target
data, and diagnostics are shown before apply.
and verify provider health checks pass.
First configuration-package foundation slice landed. Added govoplan_core.core.configuration_packages with DTOs for package manifests, module requirements, fragments, diagnostics, required data, dry-run plan items, apply/export results, plus the runtime-checkable ConfigurationProvider protocol behind the configuration.provider capability key. Added configuration package catalog load/validate/sign/acceptance helpers with configuration-specific env vars and Ed25519 signature/channel/freshness/replay handling analogous to module package catalogs. Updated docs/CONFIGURATION_PACKAGES.md with the concrete contract and env var surface. Verification: py_compile for configuration_packages.py and tests/test_module_system.py; unittest module catalog adjacency set including test_configuration_package_catalog_validates_signed_entries and test_configuration_provider_contract_is_runtime_checkable; git diff --check. Keeping #208 open for dry-run orchestration, apply/export APIs, the access provider, and the admin wizard.
Implemented the first complete configuration package foundation. Core now has provider-neutral dry_run_configuration_package, apply_configuration_package, and export_configuration_package orchestration, signed catalog validation remains covered, and access registers an access.configuration provider for roles, groups, and group-role assignments. Admin wizard backend endpoints were added under /api/v1/admin/configuration-packages/{catalog,dry-run,apply,export}, with WebUI API helpers. Round-trip smoke coverage applies access fragments into a tenant and exports them again. Focused unit/API tests, py_compile, WebUI build, and diff checks passed.