Repository navigation
Scaffold hardened Axum application Docker recipes - #401
Draft
ChristianPavilonis wants to merge 7 commits into
Draft
ChristianPavilonis wants to merge 7 commits into
ChristianPavilonis wants to merge 7 commits into
Conversation
7 tasks
This was referenced Oct 7, 2026
Retain full vulnerability evidence in framework packaging checks without treating the fixture as an approved release. Keep strict defaults and reject report-only GHCR publication. Update inherited Bookworm packages and cover the policy boundary with regression tests.
Reject empty and non-string CVE/package identities in both scan policies. Record the successful hosted native builds and artifact/index handoff.
This was
linked to
issues
Oct 14, 2026
Replace Python helpers and tests with dependency-free Node.js tooling, update workflows and documentation, and preserve OCI artifact verification contracts. Accept valid repeated separators in image repository names and share Compose startup polling with regression coverage.
This branch has not been deployed
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
.dockerignore, using the application's lockfile and declared Rust toolchain, pinned GNU/Bookworm inputs, CA trust, numeric non-root identity, exec startup, and explicit container binding.Scope and issue relationships
Part of #391.
Closes #398.
The existing #398 closing association remains, but this PR is still draft. Packaging evidence does not satisfy its remaining production-integration acceptance or justify merging before those requirements are resolved.
Related to #399 and #400. This PR implements their preparation slices, not their complete acceptance criteria; neither issue should close on this merge.
Related to #410 and draft PR #414 for AWS provider integration. This PR adds reference design and deployment guidance only, not provider implementation, DynamoDB/identity certification, real AWS acceptance or a closing association for #410.
Applications own their release artifacts, registry approval, credentials, configuration, secrets, storage policy, and deployment. Trusted Server's actual image, asset/config integration, installer, and releases remain downstream.
Changes
scripts/prepare_generated_axum_container.shcontainer-probe, deliberately stage framework sources inside its context, preserve dependency features, and prepare one application-owned lockfile for both architecturesscripts/test_generated_axum_container.sh.github/workflows/axum-container.ymlscripts/test_axum_container_handoff.shandexamples/container-publishing/examples/axum-deployment/compose.yamland deployment smokedocs/guide/deploying-axum-kubernetes.mdand documentation navigationdocs/specs/aws-reference-deployment.mdThe CI image is a generated disposable
container-probeapplication, not app-demo, Trusted Server, or a public EdgeZero application image. Test-only source staging does not change scaffold dependency selection or replace the original standalone-consumer proof using portable Git dependencies.CI and recorded security status
The documentation-only update is pushed at
7f846ae02cf2ff334673c59ccd2f6eef076139ba. Current-head hosted CI still requires verification. Container/runtime evidence below was recorded at implementation head68894a05f6f4a8c49a8a2b7bd7fee2bed24efcfe; it is not a claim that those jobs have rerun at the documentation head.custom-bwithmissing partial committed response. The previous run passed; intermittence is suspected, not confirmed. Investigate and verify current-head results rather than treat it as an image-scan failure.main; branch integration and affected validation remain outstanding.Framework packaging/handoff uses
SCAN_POLICY=report-only. Scan execution, malformed reports and artifact-integrity failures still block; vulnerability findings are retained and reported, not waived. The publisher and release-record verification remain strict by default and reject High/Critical findings, including unfixed findings, unless an independently trusted owner-reviewed scoped exception is supplied. Report-only policy cannot authorize GHCR publication.Bookworm package upgrades cleared the eight findings with available fixes in the recorded scan. The latest recorded image scans report 50 High and 1 Critical finding, with no available fixes reported. Packaging passes under report-only; strict release verification rejects the same image. No vulnerability exceptions have been authorized. The image scanner found no language-specific files, so the SBOM is not independent certification of every statically linked Rust dependency.
Documentation update validation
For the documentation-only change in
7f846ae0:npm run lintandnpm run buildpassed at the unchanged documentation inputs. The Kubernetes page rendered and local Markdown links resolved.cargo test -p edgezero-clipassed before commit: 207 unit tests and one external-consumer test passed; the generated-workspace build test remained ignored.git diff --checkand staged-diff checks passed. Only four documentation/navigation files changed.Recorded local validation
These are executed results from their recorded implementation checkpoints, not a claim that every local command was rerun at the current head or that all CI is green.
98930917, its own committedCargo.lock, and no out-of-context dependencies. Its unchanged generated Dockerfile passed the native amd64 smoke.Remaining acceptance
run_appentrypoint do not prove these properties.Packaging preparation is not production certification. Preserve accepted HTTP protocol limits and BestEffort/Unsupported distinctions. No externally published image, GHCR/ECR acceptance, Kubernetes/EKS acceptance, Fargate acceptance, real AWS provider acceptance, identity/CAS certification, end-client-delivery guarantee, or multi-writer embedded-store support is claimed.