Skip to content

[SDK 0.1.0][P0] Execute the first public release and validate registry provenance #41

Description

@BunsDev

Parent: #31

Blocked by:

Outcome

Execute the separately authorized first public SDK release through the repository’s existing fail-closed two-key release system, then prove that npm registry state, GitHub attestations, and clean consumer installs match the reviewed artifacts exactly.

External mutation warning

This issue contains irreversible or externally visible actions: publication unlock, tag creation, npm package bootstrap, trusted-publisher configuration, and public registry records. Each mutation requires fresh explicit maintainer authorization when executed. Creating or assigning this issue is not authorization to publish.

Required sequence

1. Release authorization

Record:

2. Governance prerequisites

Confirm with evidence:

  • npm organization/package-name readiness;
  • maintainer accounts and required 2FA;
  • least-privilege one-time bootstrap owner;
  • protected npm-release GitHub environment and reviewers;
  • required checks and branch-protection decision;
  • no token fallback in normal publishing.

3. Reviewed unlock/version PR

  • version the exact approved fixed group through Changesets;
  • update changelogs and workspace-exact internal ranges;
  • open repository publication locks deliberately;
  • preserve protected-environment and OIDC requirements;
  • pass canonical verification in a clean checkout;
  • merge through review, not direct push.

4. No-publish rehearsal

  • create the annotated sdk-v<version> tag at the exact reviewed commit;
  • run release workflow verify mode;
  • retain five-or-approved-count tarballs, manifest, checksums, and attestations;
  • prove registry state is unchanged;
  • compare all artifact digests with the reviewed candidate.

5. One-time bootstrap

  • publish exact reviewed tarballs in canonical dependency order with an explicitly approved least-privilege credential;
  • store no token in repository files, GitHub secrets for future use, workflow logs, argv, or shell history;
  • revoke the credential immediately after bootstrap;
  • record the audit trail and registry ownership.

6. Trusted publishing

Bind every released package to:

  • OpenCoven/sdk;
  • the exact release workflow identity;
  • the protected npm-release environment;
  • OIDC only, with no NPM_TOKEN or NODE_AUTH_TOKEN fallback.

7. Registry/provenance validation

Verify:

  • versions and latest dist-tags;
  • manifests, licenses, changelogs, exports, binaries, and internal ranges;
  • registry tarball SHA-256 values against release manifest;
  • npm provenance and GitHub attestations;
  • clean ESM/type imports from blank consumers;
  • global CLI behavior if released;
  • future OIDC-only publication path.

Dependencies

Blockers

  • Any blocking security finding
  • Missing supported-platform evidence
  • Placeholder CLI still included without an explicit ship/defer decision
  • Unprotected release environment or unavailable OIDC trusted publishing
  • Package-name/ownership conflict
  • Artifact or manifest digest mismatch

Acceptance criteria

  • Authorization names version, package set, platforms, and launch criteria.
  • Repository and deployment locks require independent reviewed approvals.
  • Rehearsal artifacts exactly match the reviewed release candidate.
  • One-time bootstrap credential is revoked and absent from retained systems.
  • Every published package has the expected trusted-publisher identity.
  • Normal publishing uses OIDC with no token fallback.
  • Registry bytes match the release manifest and attestations.
  • Clean consumers import every released package successfully.
  • Global CLI commands work if the CLI was included.
  • Rollback/incident contacts and support policy are published.
  • [SDK 0.1.0] Ship a secure read-only OpenCoven SDK #31 closes only after validation evidence is linked.

Non-goals

No write/stream/rich-authority APIs are added here. This issue executes an approved release; it does not broaden the approved scope or waive a failed gate.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions