Model role-based service directory and availability explanations #1

Closed
opened 2026-07-09 15:05:00 +02:00 by zemion · 4 comments
Owner

Define the portal service directory as the user-facing map of configured services, filtered by role/function, tenant, policy, installed modules, and package contributions.

Source concept/wiki doc: govoplan-portal/docs/SERVICE_DIRECTORY_CONCEPT.md.

Acceptance criteria:

  • Service entries describe audience, required capabilities/modules, entry point, blockers, and evidence expectations.
  • Unavailable services can explain missing role, policy, capability, maintenance mode, or external provider state when useful.
  • Portal consumes service contributions through core contracts instead of importing domain module internals.

Context recovered from previous GovOPlaN planning chats and consolidated into the roadmap/docs on 2026-07-09.

Architecture reconciliation (2026-07-31)

Shared service semantics are tracked in GovOPlaN/govoplan#31.

Portal owns service discovery, presentation, entry, and channel-specific availability explanations. The versioned institutional service definition must remain provider-neutral so Forms, Cases, Workflow Engine, Reporting, Decisions, Records, and external publication can consume it independently. Existing module-contributed entries are the compatibility path; do not create a Services repository until independent persistence/lifecycle and non-Portal reuse are proven.

Define the portal service directory as the user-facing map of configured services, filtered by role/function, tenant, policy, installed modules, and package contributions. Source concept/wiki doc: `govoplan-portal/docs/SERVICE_DIRECTORY_CONCEPT.md`. Acceptance criteria: - [ ] Service entries describe audience, required capabilities/modules, entry point, blockers, and evidence expectations. - [ ] Unavailable services can explain missing role, policy, capability, maintenance mode, or external provider state when useful. - [ ] Portal consumes service contributions through core contracts instead of importing domain module internals. Context recovered from previous GovOPlaN planning chats and consolidated into the roadmap/docs on 2026-07-09. <!-- govoplan-recovered-concept:d1ceb3e27729fa77 --> ## Architecture reconciliation (2026-07-31) Shared service semantics are tracked in [GovOPlaN/govoplan#31](https://git.add-ideas.de/GovOPlaN/govoplan/issues/31). Portal owns service discovery, presentation, entry, and channel-specific availability explanations. The versioned institutional service definition must remain provider-neutral so Forms, Cases, Workflow Engine, Reporting, Decisions, Records, and external publication can consume it independently. Existing module-contributed entries are the compatibility path; do not create a Services repository until independent persistence/lifecycle and non-Portal reuse are proven. <!-- codex-institutional-governance-services-2026-07-31 -->
Author
Owner

Codex State: progress

Summary

  • The repository is now an installable headless module exposing portal.service_directory over optional provider-owned Service definitions.
  • Availability is typed, fail-closed, evidence-aware, and can explain or conceal audience/module/capability/Mandate/policy/connector/maintenance/configuration failures.

Verification

  • Portal suite: 7 tests passed

Next / Blocked

  • Add the role-aware service-directory WebUI and concrete Access/Policy availability evaluator integrations.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - The repository is now an installable headless module exposing portal.service_directory over optional provider-owned Service definitions. - Availability is typed, fail-closed, evidence-aware, and can explain or conceal audience/module/capability/Mandate/policy/connector/maintenance/configuration failures. ### Verification - `Portal suite: 7 tests passed` ### Next / Blocked - Add the role-aware service-directory WebUI and concrete Access/Policy availability evaluator integrations. Suggested status label: `status/in-progress`
Author
Owner

Codex State: progress

Summary

  • Completed the service-directory projection with a tenant API and /portal WebUI.
  • Audience visibility is derived server-side from the authenticated principal and active same-tenant function assignments; caller-supplied audience widening is not accepted.

Verification

  • 9 focused Portal tests pass; the consolidated Core WebUI production build includes the Portal module and remains within bundle budgets.

Next / Blocked

  • Close after the source changes are pushed; specialized form, case, and workflow entry launchers remain in their owning modules.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Completed the service-directory projection with a tenant API and /portal WebUI. - Audience visibility is derived server-side from the authenticated principal and active same-tenant function assignments; caller-supplied audience widening is not accepted. ### Verification - `9 focused Portal tests pass; the consolidated Core WebUI production build includes the Portal module and remains within bundle budgets.` ### Next / Blocked - Close after the source changes are pushed; specialized form, case, and workflow entry launchers remain in their owning modules. Suggested status label: `status/in-progress`
Author
Owner

Codex State: done

Summary

  • Role/function-aware service discovery, useful unavailable/hidden explanations, exact provider-owned definitions, and contract-only module integration are implemented locally.
  • Launch now re-evaluates the exact Service revision and delegates case/workflow effects to replay-safe owner capabilities; missing form runtime fails closed with an explanation.

Changed Files

  • src/govoplan_portal
  • webui
  • docs/SERVICE_DIRECTORY_CONCEPT.md

Verification

  • 10 Portal tests passed; Ruff passed; integrated institutional journeys passed; Core WebUI production build passed.

Next / Blocked

  • Close after the implementation commit is pushed.
## Codex State: done ### Summary - Role/function-aware service discovery, useful unavailable/hidden explanations, exact provider-owned definitions, and contract-only module integration are implemented locally. - Launch now re-evaluates the exact Service revision and delegates case/workflow effects to replay-safe owner capabilities; missing form runtime fails closed with an explanation. ### Changed Files - `src/govoplan_portal` - `webui` - `docs/SERVICE_DIRECTORY_CONCEPT.md` ### Verification - `10 Portal tests passed; Ruff passed; integrated institutional journeys passed; Core WebUI production build passed.` ### Next / Blocked - Close after the implementation commit is pushed.
zemion added
status
in-progress
and removed
status
ready
labels 2026-08-01 14:56:04 +02:00
Author
Owner

Codex State: done

The verified implementation has been committed and pushed on main in ff44ed5. The issue acceptance scope is complete; follow-on product depth remains tracked separately.

## Codex State: done The verified implementation has been committed and pushed on `main` in `ff44ed5`. The issue acceptance scope is complete; follow-on product depth remains tracked separately.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-portal#1