feat(printers): remove printers and devices as archives, purged by retention (carry PR 26 to main) #27
Closed
james.maes
wants to merge 2 commits from
feat/printer-approval-20261105 into main
pull from: feat/printer-approval-20261105
merge into: QRun-IO:main
QRun-IO:main
QRun-IO:fix/delete-refusal-under-lock
QRun-IO:feat/delete-stations-printers-20261111
QRun-IO:fix/print-job-created-date-time
QRun-IO:feat/station-identity-20261110
QRun-IO:feat/multi-node-realtime-20261110
QRun-IO:wip/native-auth-pins-20261107
QRun-IO:docs/release-1.1.2-20261106
QRun-IO:ci/gitea-registry-rc22-20261106
QRun-IO:docs/release-1.1.1-20261106
QRun-IO:fix/realtime-header-case-20261106
QRun-IO:docs/release-1.1.0-20261105
QRun-IO:feat/remove-printers-devices-main-20261105
QRun-IO:feat/remove-printers-devices-20261105
QRun-IO:docs/printing-release-closeout-20261104
QRun-IO:release/printing-1.0.0-20261103
QRun-IO:release/printing-cohort-20261101
QRun-IO:dependabot/maven/org.codehaus.mojo-exec-maven-plugin-3.6.4
QRun-IO:dependabot/maven/org.apache.maven.plugins-maven-surefire-plugin-3.6.1
QRun-IO:dependabot/maven/org.apache.maven.plugins-maven-checkstyle-plugin-3.6.0
QRun-IO:migration/cutoff-cf06815f30e1-b9a717
QRun-IO:migration/cutoff-7bedb1016fa9-a854c1
QRun-IO:migration/cutoff-5f74c0c69a55-38f8f8
QRun-IO:dependabot/maven/com.puppycrawl.tools-checkstyle-14.3.0
QRun-IO:dependabot/maven/com.kingsrook-qbit-build-parent-2.1.2
QRun-IO:dependabot/github_actions/github/codeql-action/upload-sarif-4.39.1
QRun-IO:dependabot/github_actions/github/codeql-action/init-4.39.1
QRun-IO:dependabot/github_actions/astral-sh/setup-uv-10.3.2
QRun-IO:dependabot/github_actions/KofTwentyTwo/standards/dot-github/workflows/pr.yml-1.2.1
QRun-IO:dependabot/github_actions/actions/setup-java-6.1.0
QRun-IO:chore/printing-quality-integration-20261101
QRun-IO:feat/small-label-tests-20261101
QRun-IO:archive/qrun-github-cutover-20261101/e08b3ef9c817/dependabot/github_actions/github/codeql-action/init-4.39.1
QRun-IO:migration/cutoff-e08b3ef9c817-b21637
QRun-IO:archive/qrun-github-cutover-20261101/de286e7eb67b/dependabot/github_actions/github/codeql-action/upload-sarif-4.39.1
QRun-IO:migration/cutoff-de286e7eb67b-06d241
QRun-IO:archive/qrun-github-cutover-20261101/cc4dc3dc2700/dependabot/github_actions/astral-sh/setup-uv-10.3.2
QRun-IO:migration/cutoff-cc4dc3dc2700-4e3528
QRun-IO:archive/qrun-github-cutover-20261101/2cec82bf4aa9/dependabot/github_actions/actions/setup-java-6.1.0
QRun-IO:migration/cutoff-2cec82bf4aa9-68d7f8
QRun-IO:archive/qrun-github-cutover-20261101/2a2eedc89f64/dependabot/github_actions/KofTwentyTwo/standards/dot-github/workflows/pr.yml-1.2.1
QRun-IO:migration/cutoff-2a2eedc89f64-2894f0
QRun-IO:archive/qrun-github-cutover-20261101/088692e3aefa/main
QRun-IO:archive/qrun-github-cutover-20261101/7bedb1016fa9/dependabot/maven/org.apache.maven.plugins-maven-surefire-plugin-3.6.1
QRun-IO:archive/qrun-github-cutover-20261101/5f74c0c69a55/dependabot/maven/org.apache.maven.plugins-maven-checkstyle-plugin-3.6.0
QRun-IO:archive/qrun-github-cutover-20261101/1db6a1163d5e/dependabot/github_actions/actions/setup-java-6.1.0
QRun-IO:archive/qrun-github-cutover-20261101/c8f8e016cf29/dependabot/maven/com.kingsrook-qbit-build-parent-2.1.2
QRun-IO:migration/cutoff-c8f8e016cf29-8a552b
QRun-IO:archive/qrun-github-cutover-20261101/cf06815f30e1/dependabot/maven/org.codehaus.mojo-exec-maven-plugin-3.6.4
QRun-IO:archive/qrun-github-cutover-20261101/985acc06d7e9/dependabot/maven/com.puppycrawl.tools-checkstyle-14.3.0
QRun-IO:migration/cutoff-985acc06d7e9-7f35cb
QRun-IO:archive/qrun-github-cutover-20261101/1a0964ef233d/main
QRun-IO:chore/server-source-standards-20261101
QRun-IO:archive/qrun-github-cutover-20261101/02b922aa11fa/main
QRun-IO:archive/qrun-github-cutover-20261101/4f962f7fbfd8/dependabot/maven/com.kingsrook-qbit-build-parent-2.1.2
QRun-IO:archive/qrun-github-cutover-20261101/8460edb60d58/dependabot/maven/org.apache.maven.plugins-maven-surefire-plugin-3.6.1
QRun-IO:archive/qrun-github-cutover-20261101/05c83067e182/dependabot/maven/com.puppycrawl.tools-checkstyle-14.3.0
QRun-IO:archive/qrun-github-cutover-20261101/b1b8f3b065b8/dependabot/maven/org.apache.maven.plugins-maven-checkstyle-plugin-3.6.0
QRun-IO:archive/qrun-github-cutover-20261101/e0ff82392398/dependabot/maven/org.codehaus.mojo-exec-maven-plugin-3.6.4
QRun-IO:feat/print-anything
QRun-IO:feat/record-printing
QRun-IO:archive/qrun-github-cutover-20261101/9128133f5cdd/dependabot/github_actions/actions/setup-java-6.1.0
QRun-IO:docs/installed-native-020-20261031
QRun-IO:dependabot/github_actions/KofTwentyTwo/standards/dot-github/workflows/codeql.yml-1.2.1
QRun-IO:dependabot/github_actions/actions/download-artifact-8.0.2
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a1ca7201e7
|
Merge pull request 'feat(printers): remove printers and devices as archives, purged by retention' (#26) from feat/remove-printers-devices-20261105 into feat/printer-approval-20261105
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
Shared Java Maven CI / verify (push) Failing after 2s
Shared Java Maven CI / secrets (push) Failing after 2s
QRun-IO/ci-policy: ci / Scoped workflow [workflow 1b3648d9421543350067e95e54959dfb471b26d5] (pull_request) Failing after 3s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
Shared Java Maven CI / gate (push) Failing after 14s
qrun-release / release (push) Failing after 2m11s
qrun-release / postpublish (push) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 2s
|
||
|
|
c5a9c6d37f
|
feat(printers): remove printers and devices as archives, purged by retention
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
Shared Java Maven CI / verify (push) Failing after 1s
Shared Java Maven CI / secrets (push) Failing after 1s
QRun-IO/ci-policy: ci / Scoped workflow [workflow 1b3648d9421543350067e95e54959dfb471b26d5] (pull_request) Failing after 3s
QRun-IO/ci-policy: native / native-result (pull_request) Failing after 1s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
Shared Java Maven CI / gate (push) Failing after 3s
qrun-release / release (push) Failing after 2m7s
qrun-release / postpublish (push) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 2s
Add nullable removed_at to printing_printer and printing_device (read-only "Removed at" on both tables) through the existing idempotent migration. Remove printers (printingRemoveSelectedPrinters, record and selection) and PrintingService.removePrinter set removed_at, clear approval and exposure, and drop the printer from the operator catalog, submissions, claims, the device/printer selectors and the PRINTERS frame, which is pushed again. A removed queue that the device shares again returns exposed but not approved; approval changes on a removed printer are refused. Remove device (printingRemoveDevices, confirmation required) revokes access through the existing REVOKE control, then PrintingService.removeDevice archives the device and all of its printers; an already revoked device is archived without a new command. Removed devices leave the device list, every device selector and all authenticated paths; job history stays. Retention cleanup hard-deletes removed printers that no job references and removed devices with no jobs and no printers, bounded by the batch size and logged. Native inventory authorization still covers removed rows so a re-shared queue can reactivate. Tests cover hiding, re-sharing, device removal with history, purge bounds and process metadata. Docs: README, UI walkthrough, storage and retention, realtime, changelog (1.1.0). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: James Maes <james@kof22.com> |