[Feature] Establish governed print delivery and IPP/CUPS provider boundary #28

Closed
opened 2026-07-31 11:39:44 +02:00 by zemion · 1 comment
Owner

Context

The AdreMa assessment identifies direct central printing as a real domain capability, not just a file export. GovOPlaN currently has no owner for printers, queues, idempotent jobs, status, cancellation, retry, secure release, or print evidence.

Recommended Boundary

Create govoplan-print when implementation starts.

  • Print owns printer/queue discovery abstractions, print jobs, lifecycle, cancellation, retry, accounting, secure release, and evidence.
  • Connectors owns connection profiles, credentials, health tests, and provider adapters such as IPP/CUPS or Windows print servers.
  • Templates owns document/label rendering.
  • Files owns generated artifacts.
  • Campaign and Workflow submit immutable artifact references through a versioned capability.
  • Ops observes worker/queue health but does not own print business state.

Scope

  • Define versioned printer, media/capability, submission, job-status, and cancellation DTOs.
  • Define idempotency, accepted-versus-unknown outcome, retry, and duplicate-prevention semantics.
  • Define secure-release, confidentiality, retention, audit, and operator permissions.
  • Define provider discovery/testing through Connectors without shell-command execution.
  • Specify clean behavior when Print or a provider is absent.
  • Scaffold the module/repository only after the contracts and first IPP/CUPS vertical are ready to implement.

Acceptance Criteria

  • The boundary does not put printer state in Campaign, Templates, Files, Connectors, or Ops.
  • A consumer can submit a pinned artifact, query status, cancel where supported, and receive an immutable result reference through capabilities.
  • Outcome-unknown submissions never retry automatically in a way that risks duplicate physical output.
  • Provider credentials and network policy follow the platform secret and connector contracts.
  • The first implementation plan includes a synthetic/fake printer and an IPP/CUPS integration test profile.
## Context The AdreMa assessment identifies direct central printing as a real domain capability, not just a file export. GovOPlaN currently has no owner for printers, queues, idempotent jobs, status, cancellation, retry, secure release, or print evidence. ## Recommended Boundary Create `govoplan-print` when implementation starts. - Print owns printer/queue discovery abstractions, print jobs, lifecycle, cancellation, retry, accounting, secure release, and evidence. - Connectors owns connection profiles, credentials, health tests, and provider adapters such as IPP/CUPS or Windows print servers. - Templates owns document/label rendering. - Files owns generated artifacts. - Campaign and Workflow submit immutable artifact references through a versioned capability. - Ops observes worker/queue health but does not own print business state. ## Scope - Define versioned printer, media/capability, submission, job-status, and cancellation DTOs. - Define idempotency, accepted-versus-unknown outcome, retry, and duplicate-prevention semantics. - Define secure-release, confidentiality, retention, audit, and operator permissions. - Define provider discovery/testing through Connectors without shell-command execution. - Specify clean behavior when Print or a provider is absent. - Scaffold the module/repository only after the contracts and first IPP/CUPS vertical are ready to implement. ## Acceptance Criteria - The boundary does not put printer state in Campaign, Templates, Files, Connectors, or Ops. - A consumer can submit a pinned artifact, query status, cancel where supported, and receive an immutable result reference through capabilities. - Outcome-unknown submissions never retry automatically in a way that risks duplicate physical output. - Provider credentials and network policy follow the platform secret and connector contracts. - The first implementation plan includes a synthetic/fake printer and an IPP/CUPS integration test profile.
Author
Owner

Resolution

Closing this proposal after the architecture decision.

  • GovOPlaN will not introduce a separate Print module for the AdreMa vertical.
  • Templates owns printable label, envelope, letter, and report output.
  • Files may persist the generated artifact; Campaign owns batch review/routing; Audit owns evidence.
  • If managed printer submission is needed later, Connectors may expose it as a governed artifact export destination. It does not need its own party, audience, or rendering domain.
  • The canonical AdreMa roadmap is now GovOPlaN/govoplan-dist-lists#5, with Distribution Lists as the core target.

This preserves the complete module graph requested for the feature: Addresses, Organizations/IDM, Datasources, Connectors, Dataflow, Distribution Lists, Templates, Campaign, Files, Audit, Policy, Reporting, and Workflow.

## Resolution Closing this proposal after the architecture decision. - GovOPlaN will not introduce a separate Print module for the AdreMa vertical. - Templates owns printable label, envelope, letter, and report output. - Files may persist the generated artifact; Campaign owns batch review/routing; Audit owns evidence. - If managed printer submission is needed later, Connectors may expose it as a governed artifact export destination. It does not need its own party, audience, or rendering domain. - The canonical AdreMa roadmap is now GovOPlaN/govoplan-dist-lists#5, with Distribution Lists as the core target. This preserves the complete module graph requested for the feature: Addresses, Organizations/IDM, Datasources, Connectors, Dataflow, Distribution Lists, Templates, Campaign, Files, Audit, Policy, Reporting, and Workflow.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan#28