Fix authentication metadata after device enrollment #6

Open
KofTwentyTwo wants to merge 0 commits from fix/authentication-metadata-device-headers into develop
pull from: fix/authentication-metadata-device-headers
KofTwentyTwo commented 2026-10-30 14:35:40 +00:00 (Migrated from github.com)

Change

Reopening the Android host after device enrollment sent saved device headers to the public authentication metadata endpoint and returned HTTP 403 before login could resume. Exempt the canonical /qqq/v1/metaData/authentication route from device binding so login metadata remains available with pending, stale, invalid-token, or revoked device headers. Protected metadata, processes, and scans still enforce device approval.

Verification

  • ./mvnw verify install — 13 tests passed; Checkstyle passed.
  • ./mvnw -f demo/pom.xml verify — HTTP acceptance scenario passed.
  • Regression reproduced HTTP 403 before the fix and HTTP 200 afterward.
  • Session documentation updated.
  • Restarted local demo and confirmed the canonical endpoint returns HTTP 200 with stale device headers.

Compatibility

No API schema changes. Local emulator verification; Zebra TC22 hardware testing remains outstanding.

## Change Reopening the Android host after device enrollment sent saved device headers to the public authentication metadata endpoint and returned HTTP 403 before login could resume. Exempt the canonical `/qqq/v1/metaData/authentication` route from device binding so login metadata remains available with pending, stale, invalid-token, or revoked device headers. Protected metadata, processes, and scans still enforce device approval. ## Verification - [x] `./mvnw verify install` — 13 tests passed; Checkstyle passed. - [x] `./mvnw -f demo/pom.xml verify` — HTTP acceptance scenario passed. - [x] Regression reproduced HTTP 403 before the fix and HTTP 200 afterward. - [x] Session documentation updated. - [x] Restarted local demo and confirmed the canonical endpoint returns HTTP 200 with stale device headers. ## Compatibility No API schema changes. Local emulator verification; Zebra TC22 hardware testing remains outstanding.
forge-recovery added 7 commits 2026-10-31 12:40:08 +00:00
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Add native device profiles, presence and location, session activity and screen viewing, and record/bulk session termination. Include the optional Record Files bridge and isolated HTTP contract evidence; final authorization-guard adoption and production qualification remain documented gates.

Co-Authored-By: OpenAI GPT-6 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Adopt the frozen Record Files operation guard, including expected desktop absence. Verify actual retained registration, association and receipt commits against concurrent device revocation/session termination and injected rollback.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Verify a browser administrator can issue viewing demand consumed by the Android heartbeat, and assert the real widget response shape.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Exercise the actual demo main in a non-UTC child JVM across the presence expiry window, and record the current guarded integration and TC22 acceptance boundaries.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
(deploy-key) Bot added 12 commits 2026-11-01 18:40:50 +00:00
Check device approval before observing heartbeat activity, including the
trailing-slash route accepted by Javalin. Rejected heartbeats cannot create
sessions or advance device and session presence. Keep approval-state reads
available to the enrolled device.

Both failures were reproduced before correction. Validation: 37 root tests
and four demo tests pass, including real HTTP pending/revoked assertions,
unchanged presence, trailing-slash handling and standalone file-H2 presence.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Adopt the explicitly verified 0515 bundle in its own isolated cache, including
the matched core logging correction. Preserve earlier candidates and evidence.
Retain runtime/source hashes and fresh 37-base/18-integration test results,
document Jobs migration boundaries and the unpublished dependency CI gate.

Validation: Checkstyle, runtime duplicate checks, path/junction regression,
PowerShell parsing, staged whitespace and secret scanning pass. This does not
publish upstream dependencies or upgrade an operator runtime.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Set the migration session to UTC in the canonical H2 schema before converting
legacy zoned timestamps. Direct schema consumers and the demo initializer now
share the same policy without depending on the workstation time zone.

Add a file-backed America/Chicago child-JVM regression across DST and unusual
offsets, checking all migrated timestamp fields, repeated initialization,
password hashes, approval and exact barcode strings. The old SQL reproduces
the timestamp shift in an isolated shadow resource.

Validation: fresh root/demo reactor verifies 37 plus 5 tests and Checkstyle,
without installing artifacts or restarting the operator runtime.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Import the QQQ BOM in the demo so qqq.version controls transitive core,
Javalin and OpenAPI versions as well as the direct RDBMS dependency.
The installed scanner POM retains its own default property; a consumer's
command-line override alone does not change that transitive model.

Strict private runtime verification caught the mixed RC.20/new-core
classpath and older Guava. XML and diff checks pass; fresh consumer
tests, runtime provenance and browser acceptance are pending.
No shared Maven artifacts or operator runtime were changed.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
The demo's explicit Jupiter 5.11.4 aggregate pulled an older test API
while the QQQ BOM selected engine 6.0.2, preventing test discovery.
Use the managed engine directly so its API and platform remain aligned
with the selected core, matching the core project's dependency pattern.

XML and diff checks pass; fresh consumer verification and runtime
provenance remain required. No tests or BOM controls are disabled.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Document the exact source tuple, runtime provenance and fifteen passing
record/bulk browser cases. Correct the scope summary for implemented
fleet/session/location and optional camera integration features.
Retain actual provider, hardware and immutable release limitations.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Advertise optional APP_CONTENT and DEVICE_SCREEN modes in extension1.2.
Bind session, viewer demand, lease and frame modes; clear prior pixels
and demand on mode changes. Preserve omitted-mode app-content defaults,
approval, administrator authorization, replay checks and resource limits.

Pass39 server and six real-HTTP demo tests with normal Checkstyle.
Historical1.0/1.1 API baselines and qualified core JAR hashes remain
unchanged. Independent source review found no introduced security issue.
Android consent/projection acceptance remains a separate device gate.

Co-Authored-By: OpenAI GPT-6.1 (Codex) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Record exact API1.9/mobile1.2 consumer and published source evidence,
physical scanner and screen-consent limits, current hosted login test
follow-up, optional Record Files compatibility and deferred signing.
Preserve earlier checkpoints as history instead of current release claims.

Documentation only; diff checks and staged secret scanning pass.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
Record the verified source and operator runtime separately, including current CI, trusted scanning and transitional upload qualification. Retain pending real-provider, device, immutable dependency and final distribution requirements.

Co-Authored-By: Codex <noreply@openai.com>
Record the final signed core dependency cohort, fresh scanner/demo/upload/browser results and exhaustive artifact comparison. Preserve the separate files-owner release, production dependency adoption and physical-device gates.

Co-Authored-By: Codex <noreply@openai.com>
Complete copyright and source layout corrections, analyze optional PowerShell tools, add privacy-safe structured failure diagnostics, and close a test-stream ownership gap.

Validation: enabled Checkstyle and clean compilation with 39 server, 6 HTTP demo and 18 optional Record Files cases passing in an isolated coherent API1.10 snapshot. Production and physical acceptance gates remain explicit.

Co-Authored-By: Codex <noreply@openai.com>
feat(scans): expose authoritative per-scan process context
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
Demo acceptance / Check Windows demo helpers (pull_request) Canceled after 0s
Demo acceptance / Verify demo HTTP contract (pull_request) Canceled after 0s
QBit CodeQL / Analyze branch source (pull_request) Canceled after 0s
CodeQL / analyze (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Failing after 51s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 15s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 10s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 22m51s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 5s
b156ab7c50
Publish additive mobile extension1.3 scanContext with exact decoder type, value, event and server-derived attribution for downstream actions. Consume transient inputs to prevent inherited types, require reopening pre1.3 saved processes, and reject changed type/source/app/process retries.

Add a narrow verified capture facade for host applications such as Echo. Validation:44root,7HTTPdemo,18optionalfiles and2contract-generation cases pass with Checkstyle; released baselines unchanged. Echo implementation remains uncommitted and separate.

Co-Authored-By: Codex <noreply@openai.com>
Some required checks failed
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
Demo acceptance / Check Windows demo helpers (pull_request) Canceled after 0s
Demo acceptance / Verify demo HTTP contract (pull_request) Canceled after 0s
QBit CodeQL / Analyze branch source (pull_request) Canceled after 0s
CodeQL / analyze (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Failing after 51s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 15s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 10s
QRun-IO/ci-policy: ci / java-maven-2 (pull_request) Failing after 22m51s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 5s
This branch is already included in the target branch. There is nothing to merge.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/authentication-metadata-device-headers:fix/authentication-metadata-device-headers
git checkout fix/authentication-metadata-device-headers
Sign in to join this conversation.