Repository navigation
Harden installer transport and production runtime privileges - #326
Conversation
|
Original head 5286966 produced real outcomes. These are retained separately from the current correction, not relabeled as a whole-PR pass.
The normal incremental correction is 32bd4c5e1bcf3189f332f8810b789c59c365c342, tree
All 67 focused source checks, workflow YAML, shell syntax, central policy validation, diff and secret/private-boundary checks pass locally. Current-head hosted CI is running normally. Existing superseded jobs retain their original results or ordinary concurrency cancellation status. No publisher, image push, tuple/lock change, guard weakening or manual retry was used. Sample-app owns current-head, actual-main and cleanup follow-through on this PR. |
|
|
The corrected 32bd4c5 now has real production and Python runtime evidence. Whole-PR and main acceptance remain pending the other original checks. Both native production jobs in smoke 42184759095 are SUCCESS:
Each completed the actual application-storage and mounted-video write/unlink probe without temporary-directory fallback, Node/PHP/Composer trust checks, the unchanged full Brotli verifier, browser launch and the embedded sample workflow script. Loaded PHP is 8.4.27, Composer 2.11.0 and Node 22.23.4; both Node default stores have 116 roots/blocked=0, and PHP inspected 299 stores/blocked=0. The PR's actual checkout/image revision is GitHub's synthetic merge Corrected Python/polyglot 42184759209 / job 127782344113 is also SUCCESS. It executes exact parent 935c on amd64 with APT/libapt 2.6.2 and actual clean system bundle SHA256 Both PHP application and microservice versions, source image-security tests, central action policy and Sonar are green on this exact source head. Remaining devcontainer/SDK recovery and timer checks are still running. Sample-app owns their terminal outcome, protected integration and actual-main follow-through; earlier NONPASSs remain preserved at 6680199752. No guard, profile, finding state, tuple/lock, publisher or registry output changed. |
|
Normal protected integration completed at e2c6bfa4c2401f6763787edb403618e3288c7f05 on 2026-11-06 at 08:22:50Z. Exact source head 32bd4c5 had 36 successful checks, one existing neutral CodeQL rollup and no pending/failing checks. All current required contexts were green, base was accepted 2ecc, and merge used the exact-head guard without bypassing branch protection. The last original SDK timer job completed SUCCESS at 08:21:15Z; activity recovery also passed. The native/Python runtime and cleanup receipt remains 6680295398. Earlier failures remain separately attributed in 6680199752. Sample-app owns the automatic actual-main runs now starting on e2c6bfa and remote-branch cleanup. #325 remains open until complete main acceptance. No new public publisher, registry write, tuple/lock update or production effect follows from source integration. |
|
General completed inherited #326 actual-main acceptance after the operator switched the Sample App agent off. Normal merge Main smoke original42187256537 independently boots both linux/amd64 and linux/arm64 application/worker processes as UID33, proves writable storage/mounted video output, passes the maintained trust/Brotli verifier and browser/sample workflows, then removes its exact containers, volumes and networks. Main polyglot42187256497 executes the matching immutable official Python parent with the accepted offline fixed-wheel/CA predecessor before SDK requests, completes the example and removes its owned stack. No arm64 Python execution is inferred from catalog metadata. The HTTPS-only installer restrictions, wheel-only unchanged PyYAML and non-root production behavior are accepted. Tuples/locks, explicit local screenshot-output authority and strict verification guards remain intact. All historical failures remain attributed. Existing manual publisher318/run42129323146 remains the latest publication; no new image publication or production deployment was selected. The exact merged remote branch is absent by both Git and REST404; its local branch is removed, and the retained General source checkout is clean/detached at the accepted merge. No local runtime resource was created for this follow-through. General owns the bounded main-log diagnostic copies through Nov7 09:45UTC. This completes #325 source/runtime/main criteria; it does not qualify unrelated installed helpers or authorize another publisher run. |



Addresses #325. The issue stays open through actual-main acceptance.
The production app and queue worker inherit root, and three installer downloads omit explicit HTTPS restrictions. This runs the application as www-data, prepares its writable home/browser/video state, constrains those downloads, and requires wheels for the unchanged policy-parser dependency. The explicit local screenshot-output tool preserves its existing host-bind authority.
Production and Python worker builds now bind matching immutable Bookworm parents and the accepted central preflight before APT. The Python worker keeps its parent's pip offline until authenticated local wheels are installed and the maintained-client/trust checks pass. Published tuples and dependency locks are unchanged. The concrete input/follower packet and General's ordinary unpublished CI decision retain their exact boundaries. The manual publisher stays unchanged.
Validation before PR: 67 focused source tests, workflow/Compose YAML and shell syntax, source identity/lock comparisons, and branch Public Boundary pass. Existing native production smoke will prove actual app/worker UID, storage and mounted-video writes, browser launch and workflows. The first Python bootstrap and actual runtime results remain pending. Central parent catalog #330 has source review plus green PR/main checks; its arm64 metadata is not an installed Python result.
The complete 27-key Sonar disposition distinguishes these five hardening locations from 22 contextual reports. No scanner state, profile or exclusion changes are included.