This commit is contained in:
@@ -28,6 +28,12 @@ manifest, allowing the shell to link directly to an exact topic when possible.
|
||||
Docs still performs the authoritative audience, permission, configured-state,
|
||||
and documentation-type filtering.
|
||||
|
||||
Core also maps explicit route, navigation, settings, and View surface IDs to
|
||||
the module's static user or administrator documentation baseline. This makes a
|
||||
page association complete by default and gives every derived field/action
|
||||
context a useful fallback. Exact `metadata.help_contexts` remain the preferred
|
||||
authoring mechanism for consequential or unfamiliar controls.
|
||||
|
||||
When there is no exact topic, Docs resolves the page fallback and then the first
|
||||
visible topic owned by the module. If Docs is unavailable, the shell opens the
|
||||
hosted documentation with the same context parameters.
|
||||
|
||||
@@ -18,7 +18,9 @@ operator, and roadmap pages.
|
||||
| External references and integration maturity | `EXTERNAL_REFERENCES_AND_INTEGRATION_MATURITY.md` | Stable external identity and cumulative connector maturity; configured source authority is defined by the meta target architecture. |
|
||||
| Institutional context and governed references | `INSTITUTIONAL_CONTEXT_CONTRACT.md` | Shared temporal, actor/representation, institution, mandate, service, party, decision, evidence, legal-basis, information-governance, presentation, and geo DTO/provider contracts. |
|
||||
| Temporal data read context | `TEMPORAL_DATA_CONTEXT.md` | Valid-time and recorded-time titlebar selection, HTTP/cache contract, security boundary, and module-adoption rule. |
|
||||
| Cross-module information governance adoption | `INFORMATION_GOVERNANCE_ADOPTION.md` | Manifest evidence and enforcement rules for temporal browsing, purpose-aware access, retention, and institutional context. |
|
||||
| Context-sensitive F1 help | `CONTEXTUAL_HELP_CONTRACT.md` | Focus, route, module-manifest documentation contexts, Docs projection, and hosted fallback. |
|
||||
| German localization and help quality gate | `LOCALIZATION_AND_HELP_QUALITY.md` | German reference locale, new-installation default, catalog completeness, automatic page associations, and explicit-help review priorities. |
|
||||
| Postbox E2EE target architecture | `POSTBOX_E2EE_ARCHITECTURE.md` | Strategic encrypted postbox/mailbox model, key ownership, role mailbox semantics, and retraction limits. |
|
||||
| Shared state, runtime coordination, and recovery | `STATE_AND_RECOVERY_CONTRACT.md` | State profiles, object storage, node registration/drain, fenced leases, migration ordering, and recovery evidence. |
|
||||
| Module lifecycle recovery | `MODULE_LIFECYCLE_RECOVERY.md` | Installer/live-graph recovery modes, deployment fence, evidence, retry blocking, and operator reconciliation. |
|
||||
@@ -39,6 +41,8 @@ operator, and roadmap pages.
|
||||
| Topic | Canonical document | Notes |
|
||||
| --- | --- | --- |
|
||||
| Product roadmap and module routing | `GOVOPLAN_MASTER_ROADMAP.md` | Product-level sequencing, implementation gates, issue routing, and missing-module decisions. |
|
||||
| Stable platform ideas | `govoplan/docs/PLATFORM_CORE_IDEAS.md` | Cross-product thesis, canonical distinctions, product experience rule, maturity rule, and decision test. |
|
||||
| Current cross-product reconciliation | `govoplan/docs/STRATEGY_STATUS.md` | The only current prose status source; generated evidence and Gitea remain authoritative inputs. |
|
||||
| Institutional governance target | `govoplan/docs/INSTITUTIONAL_GOVERNANCE_TARGET_ARCHITECTURE.md` | Cross-product semantic layers, source-authority modes, candidate Mandates/Services/Parties/Decisions boundaries, and migration sequence. |
|
||||
| UI/UX decisions | `UI_UX_DECISION_LEDGER.md` | Binding guided-UI decisions, open decisions, impact index, and review checklist. |
|
||||
| Core interface migration | `INTERFACE_PATTERN_MIGRATION.md` | Core-owned settings, credential, retention, lifecycle, and shared-component evidence for the product pattern language. |
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
# Information Governance Adoption
|
||||
|
||||
## Platform Rule
|
||||
|
||||
Temporal browsing, purpose-aware access, retention, and institutional context
|
||||
are platform-wide information-governance dimensions. Every module receives the
|
||||
same contract by default. A module may claim `partial` or `enforced` only with
|
||||
repository-owned object scope, evidence, and limitations; it may claim
|
||||
`not_applicable` only when the dimension genuinely does not apply.
|
||||
|
||||
Historical business data is always authorized under the current security
|
||||
state. No module may use a historical permission, membership, role, function
|
||||
assignment, or policy projection to weaken present-day access.
|
||||
|
||||
Platform-wide adoption is tracked in
|
||||
[GovOPlaN #40](https://git.add-ideas.de/GovOPlaN/govoplan/issues/40), with
|
||||
temporal reads detailed in
|
||||
[GovOPlaN #39](https://git.add-ideas.de/GovOPlaN/govoplan/issues/39).
|
||||
|
||||
## Manifest Declaration
|
||||
|
||||
`ModuleManifest.information_governance` publishes four dimensions:
|
||||
|
||||
- `temporal_browsing`;
|
||||
- `purpose_aware_access`;
|
||||
- `retention`;
|
||||
- `institutional_context`.
|
||||
|
||||
Each dimension declares:
|
||||
|
||||
- adoption: `not_applicable`, `contract_only`, `partial`, or `enforced`;
|
||||
- object types covered;
|
||||
- repository-local test/documentation evidence;
|
||||
- the remaining limitation for `contract_only` or `partial`.
|
||||
|
||||
The default is intentionally `contract_only`. It applies the platform rule
|
||||
without pretending that existing domain queries and effects already enforce
|
||||
it. `reference_ready`, `supported`, and `lts` modules cannot retain an
|
||||
applicable dimension below `enforced`.
|
||||
|
||||
## Read Contract
|
||||
|
||||
For every persistent domain object, the owner classifies the read:
|
||||
|
||||
1. **Current-only:** historical semantics do not exist and the API says so.
|
||||
2. **Valid-time:** select facts effective now or at the requested instant.
|
||||
3. **Bitemporal:** additionally select only revisions known by `recorded_at`.
|
||||
4. **All-validity:** return effective revisions in a bounded history view.
|
||||
|
||||
The Core temporal middleware supplies the request context. Owners apply it in
|
||||
repositories or query helpers, include it in cache keys, return evaluated
|
||||
context, and test current/at/all plus recorded-time boundaries. Search,
|
||||
reporting, exports, selectors, counts, and drill-through must use the same
|
||||
projection as the owning list/detail API.
|
||||
|
||||
## Purpose-Aware Access Contract
|
||||
|
||||
Permission establishes a technical action ceiling. Purpose-aware access asks
|
||||
whether this actor, represented capacity, case/work item, legal basis, and
|
||||
declared use may access this object now.
|
||||
|
||||
- A client-supplied purpose is an assertion, never authority by itself.
|
||||
- The owner or Policy capability validates the purpose and returns explainable
|
||||
provenance.
|
||||
- Sensitive access can require case assignment, mandate, reason capture,
|
||||
approval, or break-glass evidence.
|
||||
- Search, selectors, reporting, exports, background jobs, and connectors apply
|
||||
the same decision.
|
||||
- Audit records the validated purpose identifier and decision reference, not
|
||||
unnecessary content.
|
||||
|
||||
## Retention Contract
|
||||
|
||||
Every persistent object declares an owner, retention class or policy reference,
|
||||
trigger, start instant, hold behavior, review/disposition action, and evidence.
|
||||
Retention is not a generic timestamp deletion job.
|
||||
|
||||
- Domain owners enumerate and execute their own effects through a typed
|
||||
retention provider.
|
||||
- Policy resolves inherited ceilings and simulation.
|
||||
- Records owns record disposition; Files owns byte/object effects; Audit owns
|
||||
audit-detail behavior; external providers declare their own effect and
|
||||
recovery semantics.
|
||||
- Dry-run, legal hold, exact revision, idempotency, outcome unknown,
|
||||
reconciliation, correction, and destruction evidence are mandatory for
|
||||
consequential removal.
|
||||
|
||||
## Institutional Context Contract
|
||||
|
||||
Consequential objects and effects carry the relevant tenant, institution,
|
||||
organization unit, function, mandate/jurisdiction, service/case/work item,
|
||||
party/representation, decision, and record references. Context is minimized to
|
||||
what the operation needs. Organizational membership is not itself permission
|
||||
or mandate.
|
||||
|
||||
Events, automation intents, audit evidence, records, and external effects retain
|
||||
the same governed context envelope or an exact reference to it. Consumers must
|
||||
not reconstruct authority later from mutable current structures.
|
||||
|
||||
## Adoption Order
|
||||
|
||||
1. Inventory every domain list/detail/search/export/effect and classify all
|
||||
four dimensions.
|
||||
2. Migrate institutional owners first: Access, IDM, Organizations, Mandates,
|
||||
Services, Parties, Cases, Approvals, Committee, Decisions, Voting, and
|
||||
Records.
|
||||
3. Migrate communication and content: Addresses, Distribution Lists, Campaign,
|
||||
Postbox, Mail, Calendar, Files, Templates, and Forms Runtime.
|
||||
4. Migrate data projections: Connectors, Datasources, Dataflow, Reporting,
|
||||
Search, Risk Compliance, and Dashboard.
|
||||
5. Migrate workflow/task/background/provider operations and prove that no
|
||||
asynchronous path drops context.
|
||||
6. Advance manifest claims only after owner tests and browser/reference-journey
|
||||
evidence pass.
|
||||
|
||||
The generated platform inventory reports adoption counts and module details.
|
||||
Gitea tracks individual migrations; the declaration is evidence and a maturity
|
||||
gate, not a substitute for implementation.
|
||||
|
||||
## Definition Of Enforced
|
||||
|
||||
A dimension is `enforced` only when:
|
||||
|
||||
- all declared object types and public reads/effects use it;
|
||||
- list/detail/count/search/export/worker behavior is consistent;
|
||||
- cache and pagination semantics cannot cross contexts;
|
||||
- absence, invalid values, and inaccessible referenced context fail safely;
|
||||
- tests cover current, historical, unauthorized, replay, and module-absence
|
||||
combinations appropriate to the dimension;
|
||||
- user/admin documentation explains behavior and limitations;
|
||||
- the manifest cites those tests and docs.
|
||||
@@ -0,0 +1,60 @@
|
||||
# Localization And Contextual Help Quality
|
||||
|
||||
## Reference Language
|
||||
|
||||
German (`de`) is GovOPlaN's first-class reference target. Every translation key
|
||||
used by a shipped WebUI must exist in German and English. German completeness is
|
||||
a release gate; English remains the source-code fallback language so existing
|
||||
literal labels and external developer APIs do not change semantics.
|
||||
|
||||
New installations and tenants default to German. Existing system, tenant, and
|
||||
user preferences are preserved. The available-language and policy model can
|
||||
still select another default or disable a package at the relevant scope.
|
||||
|
||||
Explicit high-risk help content and browser acceptance are tracked in
|
||||
[Core #284](https://git.add-ideas.de/GovOPlaN/govoplan-core/issues/284).
|
||||
|
||||
The platform inventory recognizes both inline locale objects and generated
|
||||
catalogs declared as `const de` / `const en`. Its strict mode requires both
|
||||
locales and reports `de` explicitly as the reference locale.
|
||||
|
||||
## Help Resolution
|
||||
|
||||
Every focusable field and action receives a stable derived F1 identity from the
|
||||
shared shell, even when the component has no dedicated help text. Resolution
|
||||
falls back from field/action to dialog or page and then to the module's visible
|
||||
documentation baseline.
|
||||
|
||||
Backend manifests publish explicit topic associations first. Core additionally
|
||||
associates declared route, navigation, settings, and View surface IDs with the
|
||||
module's static user or administrator documentation baseline. Feature modules
|
||||
should still add exact `metadata.help_contexts` entries for consequential,
|
||||
unfamiliar, policy-controlled, destructive, security-sensitive, or legally
|
||||
meaningful fields and actions.
|
||||
|
||||
The generated `help_review_candidates` list is therefore a content-depth queue,
|
||||
not a list of controls on which F1 cannot work. It should prioritize:
|
||||
|
||||
1. effect, deletion, delivery, retention, disclosure, encryption, and recovery;
|
||||
2. identity, representation, mandate, institutional context, and purpose;
|
||||
3. valid-time versus recorded-time selection;
|
||||
4. provider authority, synchronization, conflict, and outcome unknown;
|
||||
5. fields whose consequences are not evident from their label.
|
||||
|
||||
## Verification
|
||||
|
||||
```bash
|
||||
cd /mnt/DATA/git/govoplan
|
||||
/mnt/DATA/git/govoplan/.venv/bin/python \
|
||||
tools/inventory/platform-interface-inventory.py \
|
||||
--strict --strict-declarations --strict-endpoints
|
||||
```
|
||||
|
||||
The check must report:
|
||||
|
||||
- reference locale `de` present and complete;
|
||||
- no used key missing from `de` or `en`;
|
||||
- every field has a resolvable F1 context;
|
||||
- no duplicate stable IDs;
|
||||
- no undeclared public WebUI surface;
|
||||
- no stale runtime route or endpoint declaration.
|
||||
@@ -93,10 +93,17 @@ Alembic, and post-migration tasks. The lock is session-scoped and therefore
|
||||
released if the migration process dies.
|
||||
|
||||
Runtime roles run `govoplan_core.commands.wait_for_database`. It waits until
|
||||
the database has exactly the configured Core/module Alembic heads and never
|
||||
upgrades schema. This permits a migration Job and runtime Deployments to be
|
||||
the database has exactly the configured, dependency-resolved Core/module
|
||||
Alembic heads and never upgrades schema. Cross-module `depends_on` revisions
|
||||
therefore do not leave runtime roles waiting for a branch marker Alembic has
|
||||
correctly consumed. This permits a migration Job and runtime Deployments to be
|
||||
submitted together while keeping startup fail-closed.
|
||||
|
||||
Runtime coordination records the installed `govoplan-core` distribution
|
||||
version for API, worker and scheduler roles. FastAPI/OpenAPI metadata versions
|
||||
are presentation metadata and must not be used as deployable software identity;
|
||||
mixing the two would create a false version-skew readiness failure.
|
||||
|
||||
## Recovery Ledger
|
||||
|
||||
`govoplan_core.core.recovery` provides a durable operation and evidence
|
||||
|
||||
@@ -1065,6 +1065,408 @@
|
||||
"release": "0.1.15",
|
||||
"squash_policy": "reviewed-manual",
|
||||
"track": "release"
|
||||
},
|
||||
{
|
||||
"heads": [
|
||||
{
|
||||
"owner": "govoplan-notifications",
|
||||
"revision": "6e2f91ab4c70"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-poll",
|
||||
"revision": "6e7f8a9b0c1d"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dashboard",
|
||||
"revision": "7b9d2f4a6c8e"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-voting",
|
||||
"revision": "8b9c0d1e2f3a"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-mail",
|
||||
"revision": "93b4c5d6e7f8"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-core",
|
||||
"revision": "a36d8e4f9b12"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-forms-runtime",
|
||||
"revision": "a3d5f7b9c1e2"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-templates",
|
||||
"revision": "a3f7c9d2e1b4"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-organizations",
|
||||
"revision": "a61e4d9c72b8"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-mandates",
|
||||
"revision": "a8b1c2d3e4f5"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-audit",
|
||||
"revision": "a8d1e4f7b2c5"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-approvals",
|
||||
"revision": "a91c4e72b5d8"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-policy",
|
||||
"revision": "a9c4e7b2d5f8"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-idm",
|
||||
"revision": "b1c2d3e4f5a6"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-search",
|
||||
"revision": "b2c3d4e5f607"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-datasources",
|
||||
"revision": "b8d2f5a0c3e7"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-views",
|
||||
"revision": "b8e4c1f7a2d9"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-risk-compliance",
|
||||
"revision": "b9c0d1e2f3a4"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-services",
|
||||
"revision": "b9c2d3e4f5a6"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-parties",
|
||||
"revision": "c0d3e4f5a6b7"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-identity-trust",
|
||||
"revision": "c3f5a7b9d1e2"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-projects",
|
||||
"revision": "c4a1e8f2d6b9"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-addresses",
|
||||
"revision": "c5d7e8f9a0b1"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-access",
|
||||
"revision": "c7e0a3d6f9b2"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-reporting",
|
||||
"revision": "c8d5e2f6a9b3"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-scheduling",
|
||||
"revision": "c9d4e7f1a2b3"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-decisions",
|
||||
"revision": "d1e4f5a6b7c8"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-calendar",
|
||||
"revision": "d24e5f607182"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-committee",
|
||||
"revision": "d8b9f0a1c2e3"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-postbox",
|
||||
"revision": "d8e3f6a9b2c5"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-campaign",
|
||||
"revision": "e3c8f4a5b6d7"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-workflow-engine",
|
||||
"revision": "e4a1f8c2d7b6"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-encryption",
|
||||
"revision": "e5b7c9d1f3a4"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dist-lists",
|
||||
"revision": "e7c3a9d1b5f2"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-files",
|
||||
"revision": "f1a2b3c4d5e7"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dataflow",
|
||||
"revision": "f6c2a9d4e7b1"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-cases",
|
||||
"revision": "f6d3a8b1c4e7"
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-connectors",
|
||||
"revision": "f7c8d9e0a1b2"
|
||||
}
|
||||
],
|
||||
"owner_heads": [
|
||||
{
|
||||
"owner": "govoplan-access",
|
||||
"revisions": [
|
||||
"c7e0a3d6f9b2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-addresses",
|
||||
"revisions": [
|
||||
"c5d7e8f9a0b1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-approvals",
|
||||
"revisions": [
|
||||
"a91c4e72b5d8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-audit",
|
||||
"revisions": [
|
||||
"a8d1e4f7b2c5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-calendar",
|
||||
"revisions": [
|
||||
"d24e5f607182"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-campaign",
|
||||
"revisions": [
|
||||
"e3c8f4a5b6d7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-cases",
|
||||
"revisions": [
|
||||
"f6d3a8b1c4e7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-committee",
|
||||
"revisions": [
|
||||
"d8b9f0a1c2e3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-connectors",
|
||||
"revisions": [
|
||||
"f7c8d9e0a1b2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-core",
|
||||
"revisions": [
|
||||
"a36d8e4f9b12"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dashboard",
|
||||
"revisions": [
|
||||
"7b9d2f4a6c8e"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dataflow",
|
||||
"revisions": [
|
||||
"f6c2a9d4e7b1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-datasources",
|
||||
"revisions": [
|
||||
"b8d2f5a0c3e7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-decisions",
|
||||
"revisions": [
|
||||
"d1e4f5a6b7c8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-dist-lists",
|
||||
"revisions": [
|
||||
"e7c3a9d1b5f2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-encryption",
|
||||
"revisions": [
|
||||
"e5b7c9d1f3a4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-files",
|
||||
"revisions": [
|
||||
"f1a2b3c4d5e7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-forms",
|
||||
"revisions": [
|
||||
"e1f2a3b4c5d6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-forms-runtime",
|
||||
"revisions": [
|
||||
"a3d5f7b9c1e2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-identity",
|
||||
"revisions": [
|
||||
"5c6d7e8f9a10"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-identity-trust",
|
||||
"revisions": [
|
||||
"c3f5a7b9d1e2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-idm",
|
||||
"revisions": [
|
||||
"b1c2d3e4f5a6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-mail",
|
||||
"revisions": [
|
||||
"93b4c5d6e7f8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-mandates",
|
||||
"revisions": [
|
||||
"a8b1c2d3e4f5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-notifications",
|
||||
"revisions": [
|
||||
"6e2f91ab4c70"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-organizations",
|
||||
"revisions": [
|
||||
"a61e4d9c72b8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-parties",
|
||||
"revisions": [
|
||||
"c0d3e4f5a6b7"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-policy",
|
||||
"revisions": [
|
||||
"a9c4e7b2d5f8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-poll",
|
||||
"revisions": [
|
||||
"6e7f8a9b0c1d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-postbox",
|
||||
"revisions": [
|
||||
"d8e3f6a9b2c5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-projects",
|
||||
"revisions": [
|
||||
"c4a1e8f2d6b9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-reporting",
|
||||
"revisions": [
|
||||
"c8d5e2f6a9b3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-risk-compliance",
|
||||
"revisions": [
|
||||
"b9c0d1e2f3a4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-scheduling",
|
||||
"revisions": [
|
||||
"c9d4e7f1a2b3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-search",
|
||||
"revisions": [
|
||||
"b2c3d4e5f607"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-services",
|
||||
"revisions": [
|
||||
"b9c2d3e4f5a6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-templates",
|
||||
"revisions": [
|
||||
"a3f7c9d2e1b4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-views",
|
||||
"revisions": [
|
||||
"b8e4c1f7a2d9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-voting",
|
||||
"revisions": [
|
||||
"8b9c0d1e2f3a"
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "govoplan-workflow-engine",
|
||||
"revisions": [
|
||||
"e4a1f8c2d7b6"
|
||||
]
|
||||
}
|
||||
],
|
||||
"recorded_at": "2026-08-05T17:51:25Z",
|
||||
"release": "0.1.16",
|
||||
"squash_policy": "reviewed-manual",
|
||||
"track": "release"
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
|
||||
Reference in New Issue
Block a user