feat: allow host-controlled admission for captured files #1

Merged
james.maes merged 1 commits from feat/captured-photo-admission-policy into develop 2026-11-06 16:43:29 +00:00
Owner

Add an optional quarantineCapturedFiles host setting so approved scanner photos can be available immediately. The default inherits quarantineNewFiles. The override applies only to CAPTURE intake with the server-resolved/revalidated device identity; ordinary uploads, imports, attachment-panel files and captures without an identity keep the existing policy. Generated-file policy is unchanged.

FILE_REGISTERED records the selected admission policy. Automatic availability does not fabricate a human review, release or content-scan event. Existing quarantined files still use the normal audited Release action. The host must configure its identity provider and media/size limits; direct Java intake callers remain trusted host code.

Validation: 69 focused tests passed with zero failures/errors/skips, including finalizer-path capture/default/ordinary-upload behavior, missing identity, hash failure, strict JSON injection rejection, schema and dependency boundaries; Checkstyle passed. Verification used committed Collaboration 53bd8f00 plus the published Core snapshot in an isolated reactor. Final immutable owner dependency publication/pinning remains pending; this is not a 1.0 release claim.

Requested by the scanner consumer. Echo host opt-in and admin-only release permission are being verified separately; Android production code is unchanged.

Add an optional quarantineCapturedFiles host setting so approved scanner photos can be available immediately. The default inherits quarantineNewFiles. The override applies only to CAPTURE intake with the server-resolved/revalidated device identity; ordinary uploads, imports, attachment-panel files and captures without an identity keep the existing policy. Generated-file policy is unchanged. FILE_REGISTERED records the selected admission policy. Automatic availability does not fabricate a human review, release or content-scan event. Existing quarantined files still use the normal audited Release action. The host must configure its identity provider and media/size limits; direct Java intake callers remain trusted host code. Validation: 69 focused tests passed with zero failures/errors/skips, including finalizer-path capture/default/ordinary-upload behavior, missing identity, hash failure, strict JSON injection rejection, schema and dependency boundaries; Checkstyle passed. Verification used committed Collaboration 53bd8f00 plus the published Core snapshot in an isolated reactor. Final immutable owner dependency publication/pinning remains pending; this is not a 1.0 release claim. Requested by the scanner consumer. Echo host opt-in and admin-only release permission are being verified separately; Android production code is unchanged.
james.maes added 1 commit 2026-11-05 14:24:07 +00:00
feat: allow host-controlled admission for captured files
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
QRun-IO/ci-policy: ci / Scoped workflow [workflow 3d75c629c2706be133505268b6696fe9b1ae420c] (pull_request) Successful in 7s
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 / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 7s
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Failing after 7s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 6s
3f08c584d0
Keep the default quarantine policy for ordinary uploads and captures without a provider-resolved device identity. Audit the selected policy without fabricating a release or review event.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
james.maes merged commit cef1476d85 into develop 2026-11-06 16:43:28 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: QRun-IO/qbit-record-files#1