Repair release and interface CI gates
This commit is contained in:
@@ -59,7 +59,7 @@ jobs:
|
|||||||
git config --global --add url."https://git.add-ideas.de/GovOPlaN/govoplan".insteadOf "ssh://git@git.add-ideas.de/GovOPlaN/govoplan"
|
git config --global --add url."https://git.add-ideas.de/GovOPlaN/govoplan".insteadOf "ssh://git@git.add-ideas.de/GovOPlaN/govoplan"
|
||||||
- name: Bootstrap release sources
|
- name: Bootstrap release sources
|
||||||
working-directory: govoplan
|
working-directory: govoplan
|
||||||
run: python tools/repo/bootstrap-repositories.py --parent .. --transport public-https --exclude-repo addideas-govoplan-website
|
run: python tools/repo/bootstrap-repositories.py --parent .. --transport public-https --reuse-checkout-auth --exclude-repo addideas-govoplan-website
|
||||||
- name: Build release wheel roots and WebUI
|
- name: Build release wheel roots and WebUI
|
||||||
working-directory: govoplan
|
working-directory: govoplan
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -340,6 +340,7 @@ def add_scoped_workflow_manifest(repo: Path) -> None:
|
|||||||
(backend / "__init__.py").write_text("", encoding="utf-8")
|
(backend / "__init__.py").write_text("", encoding="utf-8")
|
||||||
(backend / "manifest.py").write_text(
|
(backend / "manifest.py").write_text(
|
||||||
"""from govoplan_core.core.modules import DocumentationCondition, DocumentationTopic, ModuleManifest, PermissionDefinition
|
"""from govoplan_core.core.modules import DocumentationCondition, DocumentationTopic, ModuleManifest, PermissionDefinition
|
||||||
|
from govoplan_core.core.provider_governance import declared_module_architecture
|
||||||
|
|
||||||
|
|
||||||
def get_manifest():
|
def get_manifest():
|
||||||
@@ -368,6 +369,20 @@ def get_manifest():
|
|||||||
conditions=(DocumentationCondition(required_scopes=("access:item:read",)),),
|
conditions=(DocumentationCondition(required_scopes=("access:item:read",)),),
|
||||||
metadata={"kind": "workflow"},
|
metadata={"kind": "workflow"},
|
||||||
),
|
),
|
||||||
|
DocumentationTopic(
|
||||||
|
id="access.admin.reference",
|
||||||
|
title="Administer access",
|
||||||
|
summary="Static administrator documentation for the release fixture.",
|
||||||
|
documentation_types=("admin",),
|
||||||
|
metadata={"kind": "reference"},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
architecture=declared_module_architecture(
|
||||||
|
layer="institutional_foundation",
|
||||||
|
kind="foundation",
|
||||||
|
maturity="scaffold",
|
||||||
|
documentation_ref="pyproject.toml",
|
||||||
|
known_limits=("Release-test fixture only.",),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
""",
|
""",
|
||||||
@@ -387,6 +402,7 @@ def replace_with_unscoped_workflow_manifest(repo: Path) -> None:
|
|||||||
manifest = repo / "src" / "govoplan_access" / "backend" / "manifest.py"
|
manifest = repo / "src" / "govoplan_access" / "backend" / "manifest.py"
|
||||||
manifest.write_text(
|
manifest.write_text(
|
||||||
"""from govoplan_core.core.modules import DocumentationTopic, ModuleManifest
|
"""from govoplan_core.core.modules import DocumentationTopic, ModuleManifest
|
||||||
|
from govoplan_core.core.provider_governance import declared_module_architecture
|
||||||
|
|
||||||
|
|
||||||
def get_manifest():
|
def get_manifest():
|
||||||
@@ -402,6 +418,20 @@ def get_manifest():
|
|||||||
documentation_types=("user",),
|
documentation_types=("user",),
|
||||||
metadata={"kind": "workflow"},
|
metadata={"kind": "workflow"},
|
||||||
),
|
),
|
||||||
|
DocumentationTopic(
|
||||||
|
id="access.admin.reference",
|
||||||
|
title="Administer access",
|
||||||
|
summary="Static administrator documentation for the release fixture.",
|
||||||
|
documentation_types=("admin",),
|
||||||
|
metadata={"kind": "reference"},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
architecture=declared_module_architecture(
|
||||||
|
layer="institutional_foundation",
|
||||||
|
kind="foundation",
|
||||||
|
maturity="scaffold",
|
||||||
|
documentation_ref="pyproject.toml",
|
||||||
|
known_limits=("Release-test fixture only.",),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
""",
|
""",
|
||||||
|
|||||||
@@ -1581,6 +1581,134 @@
|
|||||||
"path": "/workflow/definitions/{}/triggers",
|
"path": "/workflow/definitions/{}/triggers",
|
||||||
"rationale": "This capability-first module intentionally exposes a headless API for other modules and integrations.",
|
"rationale": "This capability-first module intentionally exposes a headless API for other modules and integrations.",
|
||||||
"repository": "govoplan-workflow-engine"
|
"repository": "govoplan-workflow-engine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "ui_reachable",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/addresses/contact-merges/{}/split",
|
||||||
|
"rationale": "The Addresses WebUI constructs the selected merge id and recovery action dynamically.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "ui_reachable",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/addresses/contact-merges/{}/undo",
|
||||||
|
"rationale": "The Addresses WebUI constructs the selected merge id and recovery action dynamically.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "intentionally_headless",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/addresses/contact-point-snapshots",
|
||||||
|
"rationale": "Campaign and other modules consume the governed contact-point snapshot capability without a direct Addresses screen.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "intentionally_headless",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/addresses/contact-point-snapshots/{}",
|
||||||
|
"rationale": "Campaign and other modules consume the governed contact-point snapshot capability without a direct Addresses screen.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "intentionally_headless",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/addresses/contact-point-sources/preview",
|
||||||
|
"rationale": "This capability endpoint previews a module-supplied contact source and is consumed by integrations rather than a direct screen.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "intentionally_headless",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/addresses/contact-points/resolve",
|
||||||
|
"rationale": "This governed recipient-resolution endpoint is consumed by Campaign and other modules.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "intentionally_headless",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/addresses/contacts/{}/redirect",
|
||||||
|
"rationale": "Stored references and module capabilities resolve merged-contact redirects without a direct user action.",
|
||||||
|
"repository": "govoplan-addresses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/addresses/imports/{}",
|
||||||
|
"rationale": "The import flow can create, apply, and roll back a run, but the WebUI does not yet resume a saved run by id after navigation or reload.",
|
||||||
|
"repository": "govoplan-addresses",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-addresses/issues/22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "ui_reachable",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/campaigns/{}/versions/{}/print-output/download",
|
||||||
|
"rationale": "The Campaign WebUI validates and follows the build artifact's server-provided download path.",
|
||||||
|
"repository": "govoplan-campaign"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/relationships",
|
||||||
|
"rationale": "IDM documents typed relationships but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/relationships",
|
||||||
|
"rationale": "IDM documents typed relationships but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "PATCH",
|
||||||
|
"path": "/relationships/{}",
|
||||||
|
"rationale": "IDM documents typed relationships but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/relationships/{}/revoke",
|
||||||
|
"rationale": "IDM documents typed relationships but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/typed-groups",
|
||||||
|
"rationale": "IDM documents typed groups but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "POST",
|
||||||
|
"path": "/typed-groups",
|
||||||
|
"rationale": "IDM documents typed groups but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "PATCH",
|
||||||
|
"path": "/typed-groups/{}",
|
||||||
|
"rationale": "IDM documents typed groups but its current administration page exposes function assignments only.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "missing_ui",
|
||||||
|
"method": "GET",
|
||||||
|
"path": "/typed-groups/{}/memberships",
|
||||||
|
"rationale": "IDM lacks the typed-group membership explanation surface for this existing API.",
|
||||||
|
"repository": "govoplan-idm",
|
||||||
|
"tracking_issue": "https://git.add-ideas.de/GovOPlaN/govoplan-idm/issues/11"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"schema_version": 1
|
"schema_version": 1
|
||||||
|
|||||||
Reference in New Issue
Block a user