Skip to content

Validate Nexus Collection candidates by role impact and promote exact artifacts to Galaxy #134

Description

@litroc

Target process

Consume the exact immutable Collection candidate from Nexus on the Wonderbox, verify SHA-256, run only affected Heavy/Application role families, and publish the same bytes without rebuilding to galaxy.ansible.com when green. Failed candidates remain outside public Galaxy.

Temporary transition

Provide the initial Supplementary workflow_dispatch adapter as explicit transition-noop. It receives repository, commit, version, artifact name and digest after the source release has already published to Galaxy. It must execute no Heavy/Application tests, never publish, only echo the future promotion command, and emit validated=false and release_eligible=false.

Deliverables

  • Route keycloak*, satellite*, and other role families independently.
  • Cancel superseded work per Collection/family without cancelling unrelated families.
  • Fetch and verify the exact Nexus candidate in the target implementation.
  • Promote exact bytes on green; never rebuild.

Superseding current contract — 2026-08-09 UTC

This section is the binding implementation contract for replacing the non-release-capable transition adapter.

  • Implement the production path immutable Nexus candidate → impact-based ModuLix validation → identical bytes to galaxy.ansible.com for every onboarded Collection.
  • Fetch the candidate by exact digest, verify source commit, version, signature, SBOM, provenance, scan evidence, policy identity, and the signed upstream authorization before validation.
  • Run only affected Heavy/Application role families, but fail closed on missing or contradictory classification.
  • Publish the exact Nexus bytes to Galaxy without rebuilding. Download the Galaxy artifact afterward and require the same digest.
  • The current transition-noop remains historical compatibility only, always reports validated=false and release_eligible=false, and cannot satisfy this issue.
  • A manual dispatch may run diagnostics but cannot publish a production Galaxy release.
  • Repeating the same version and same digest is idempotent only after complete readback. The same version with another digest fails. Published versions are not overwritten or deleted; correction uses a new version and revocation evidence.
  • Normal releases use the normal promotion gate and small-team rule. Security releases use the reviewer-free Security gate and complete with humanActions=0.
  • Add negative fixtures for digest mismatch, missing or invalid signature, invalid authorization, mutable tag, replay, manual start, incomplete scans, stale evidence, and version conflict.
  • Apply explicit policy-compliant timeouts and retain the signed final receipt and correlated evidence immutably for seven years.

Definition of done

  • The no-op has been replaced in the release-capable path by executed Heavy/Application validation and exact-byte Galaxy promotion.
  • Nexus and post-publication Galaxy digests are identical and bound to the same source commit and version.
  • Manual start, replay, stale evidence, digest mismatch, and version conflict cannot publish.
  • A fresh current-head normal fixture and a fresh real Security fixture demonstrate their respective authorization paths; the Security run records humanActions=0.
  • The signed receipt links Nexus candidate, Galaxy release, commit, workflow identities, validations, actor identities, and all evidence for seven-year retention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions