Specs: anonymiser-backend-selection (#1497)#1498
Open
rjzondervan wants to merge 1 commit into
Open
Conversation
Contributor
Quality Report — ConductionNL/openregister @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 153/153 | |||
| npm | ✅ | ✅ 598/598 | |||
| PHPUnit | ❌ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-12 09:52 UTC
Download the full PDF report from the workflow artifacts.
8f1a110 to
2a87303
Compare
Contributor
|
Rebased on top of latest
Clean rebase, no conflicts. Force-pushed with lease. |
2a87303 to
2860bac
Compare
Author the OpenSpec change directory for anonymiser-backend-selection —
a new OpenRegister capability covering:
- Typed state-query API (AnonymisationBackendService::getState() + an
admin-only OCS endpoint GET /api/admin/anonymisation/backend-state)
returning a BackendState value object with activeMethod,
effectiveMethod, and per-backend {available, configured} flags.
- Admin selector UI: an 'Anonimiseren' section within the existing
OpenRegisterAdmin settings page, with a method picker, per-backend
endpoint configuration, live availability indicators, and a per-
backend Test connection probe.
- Canonical 'no backend' determination rule: effectiveMethod resolves
to regex when recognition is disabled OR the active backend is not
available + configured. Single source of truth lives in the service.
Probe results are cached for 60s (configurable). ExApp availability is
derived from AppAPI / IAppManager with a documented 'appapi_missing'
fallback. Storage shape inside the fileManagement IAppConfig blob is
treated as implementation-internal — consumers MUST go through the
service.
Specs only — no implementation. Unblocks DocuDesk's
anonymiser-backend-warning (PR #135, hard cross-app dep).
Refs: #1497
Pair: ConductionNL/docudesk#135 (consumer)
2860bac to
caddcfc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the OpenSpec change directory for anonymiser-backend-selection — a new OpenRegister capability covering:
AnonymisationBackendService::getState()+ admin-only OCS endpointGET /api/admin/anonymisation/backend-statereturning aBackendStatevalue object withactiveMethod,effectiveMethod, and per-backend{available, configured, lastProbedAt, latencyMs}flags.OpenRegisterAdminsettings page — method picker, per-backend endpoint configuration, live availability indicators (AppAPI-derived for ExApps), per-backend Test connection button.effectiveMethodresolves toregexwhen recognition is disabled OR the active backend is notavailable && configured. Single source of truth in the service; consumers MUST NOT recompute.Probe results cached 60s (configurable, 10–600s). ExApp availability derived from AppAPI /
IAppManagerwith a documentedappapi_missingfallback. Storage shape inside thefileManagementIAppConfigblob is implementation-internal — consumers go through the service, not the blob.Specs only — no implementation in this PR.
Refs: #1497
Pair: ConductionNL/docudesk#135 — DocuDesk's
anonymiser-backend-warningis the consumer; it cites this capability as a Hard cross-app dependency.Out of scope
BackendInterface+ per-method handlers) — not needed for state query + UI.fileManagementIAppConfigblob to normalised storage — separate change if needed.Test plan
proposal.md,design.md,tasks.md, and theanonymiser-backend-selection/spec.mddeltaBackendStateshape matches DocuDesk's consumer expectation in PR check isset items type #135'sanonymiser-backend-warningeffectiveMethod(D3 in design.md) is acceptable, including thehybridAND-aggregation behaviourappapi_missingfallback handlingopenspec validate(when the implementation PR lands)