API StudioSDK StudioMonitoringMCP ServerSpec AuditFeatures
PricingBlogDocs
Log inStart for free
Blog/Engineering
Engineering·October 15, 2026·2 min read

Who built this SDK? Proving package provenance from spec to registry

Connect a published SDK to its inputs and build workflow. Understand what trusted publishing and provenance establish, and what still needs review.

#sdk#supply-chain#publishing#security
Who built this SDK? Proving package provenance from spec to registry

A customer reports a bug in version 2.4.0 of your SDK. You find the package in the registry, but the generator has changed since that release. To reproduce the build, you need the specification, generator, configuration and dependencies used at the time.

A Git tag identifies source code, but the package also depends on generator settings, transforms and the build workflow. Retain those inputs with the release so an investigation does not depend on reconstructing them from a current checkout.

Give releases an input record

Start with an immutable source commit and a digest of the specification used for generation. Record generator version, configuration revision, custom transforms, dependency lockfiles and build environment. If a release resolves a moving branch, retain the exact commit it selected.

An illustrative release manifest might contain specCommit, specSha256, generatorVersion, configCommit and packageDigest. Those are local conventions, not a standard attestation format.

Make the evidence follow the published bytes. If a workflow builds an archive and later modifies its contents, evidence about the original archive does not describe the modified package. Inspect final contents and retain the artifact digest that corresponds to publication.

Use supported identity-based publishing

npm trusted publishing uses OpenID Connect so supported CI/CD workflows can publish without a long-lived npm publishing token. The registry checks workflow identity against the package's trusted-publisher configuration.

PyPI Trusted Publishers uses a similar identity-based approach with its own providers and rules. Do not assume the same configuration applies to both registries. Configure the intended repository and workflow, then review trigger permissions and deployment-environment controls.

OIDC removes one category of standing secret. It does not make an authorized workflow harmless. A compromised workflow with publishing permission can still release unwanted code. Review changes to workflows, build scripts, third-party actions and their dependencies.

Provider support and prerequisites can change. Follow the registry's current requirements for runner environments and tool versions instead of copying configuration from an unrelated release pipeline.

Understand what provenance establishes

A provenance statement connects an artifact to information about its source and build. npm documents provenance generation and verification, including conditions for automatic generation with trusted publishing. Availability depends on the provider and package/repository conditions; do not assume every trusted publication has identical attestations.

Verify that the recorded source, workflow and artifact match your expected release. Provenance does not prove that the implementation is correct, dependencies are safe, or generated methods handle every input.

It also does not establish byte-for-byte reproducible builds on its own. Reproducibility requires controlled inputs and an independent rebuild comparison. Treat those as complementary checks with separate evidence.

Inspect the final package

During review, inspect package name, version, exported entry points, license, generated source and dependencies. Verify source links point to the intended revision. Retain enough information to answer a customer report using the exact release rather than today's checkout.

← PreviousHow to Choose an OpenAPI SDK Generator: 10 Questions to Ask

Related articles

Can an AI agent actually integrate your API? Build an eval to find out
Engineering·2 min read

Can an AI agent actually integrate your API? Build an eval to find out

Give an agent a real task, an isolated sandbox and a result you can verify. Check the records and code the agent produces.

October 15, 2026
MCP or CLI? Run the same API workflow through both
Engineering·2 min read

MCP or CLI? Run the same API workflow through both

Compare agent interfaces with the same task, permissions and outcome checks. Token counts mean little when one path does less work.

October 15, 2026
Your streaming API returned 200. Then it failed
Engineering·2 min read

Your streaming API returned 200. Then it failed

An HTTP success status starts a stream; it does not prove the operation finished. Design explicit completion, interruption and recovery semantics.

October 15, 2026
Your MCP server authenticates users. Does it preserve their permissions?
Engineering·3 min read

Your MCP server authenticates users. Does it preserve their permissions?

Follow identity from MCP client to downstream API. Check token audiences, delegated credentials and tenant authorization at each boundary.

October 15, 2026

A letter when something ships

New SDK languages, changes in the generator, and now and then a longer piece on keeping docs from rotting. Roughly one a month.

Join developers keeping tabs on Octri.

Octri

Upload an OpenAPI spec. Get complete docs and production-ready SDKs in 10 languages, live in minutes.

Contact support

Product

  • API Studio
  • SDK Studio
  • Monitoring
  • MCP Server
  • Pricing
  • Open Source
  • Blog
  • Changelog
  • Press Kit

From your spec

  • Spec Audit
  • TypeScript SDK
  • Python SDK
  • Go SDK
  • Java SDK
  • MCP Server

Developers

  • Documentation
  • SDK Libraries
  • MCP Server
  • Monitoring
  • CLI
  • Support

Legal

  • Terms of Service
  • Privacy Policy
  • Fair Use Policy
  • Data Processing (DPA)
  • Cookie Policy
  • Security
  • Subprocessors

© 2026 Octri, LLC. All rights reserved.

Made by devs who got tired of hand-writing SDKs.