Skip to content

feat(release): attest the immutable signed Windows installer in the OpenPath promotion contract #251

Description

@balejosg

Summary

Extend OpenPath release/promotion provenance so downstream consumers receive one authoritative identity for the final immutable Authenticode-signed Windows installer produced by the new Windows distribution path.

This is a fresh implementation ticket. Older promotion-contract issues may be referenced for historical context, but this ticket defines the Windows signed-artifact requirement and migration.

Dependency

Blocked by: #250 — fresh immutable signed Windows installer implementation.

Coordinate final cutover with #249 and deployment bundle consumption with #248.

Required authority

The promotion contract must identify the final signed installer bytes, conceptually:

{
  "sourceSha": "<40-char SHA>",
  "inputsSha256": "<64-char SHA256>",
  "version": "<OpenPath version>",
  "releaseTag": "<exact release tag>",
  "installerAsset": "OpenPath-Windows-Setup.exe",
  "installerSha256": "<SHA256 of final signed bytes>",
  "payloadManifestAsset": "payload-manifest.json",
  "payloadManifestSha256": "<SHA256>"
}

Exact names may follow repository conventions. The normative rule is:

promotion contract Windows SHA = final post-sign executable bytes

Downstream wrappers must not derive a Windows tag/template or independently choose which installer is compatible.

OpenPath-first boundary

OpenPath alone decides Windows artifact compatibility, inheritance, provenance and promotion. No downstream wrapper concept belongs in this schema.

Historical context only

Earlier promotion/template work can inform reconnaissance, including OpenPath #244, but this new ticket owns the signed-installer promotion migration.

Downstream

Fresh ClassroomPath wrapper migration is tracked in ClassroomPath #161.

Non-goals

  • downstream release-bundle implementation;
  • ClassroomPath-specific metadata;
  • mutable latest aliases as authoritative identity;
  • silently changing the semantics of an existing incompatible public interface version;
  • provider-specific volatile signing transaction IDs inside deterministic contract bytes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions