[NI][SDK] Generate Platform SDK names from source metadata#104
Merged
chris-freeman-glean merged 8 commits intoMay 12, 2026
Merged
Conversation
Add the Platform source spec and derive Speakeasy SDK naming from scio-owned x-glean-sdk metadata so the new SDK surface does not depend on a manual open-api operation map.
This was referenced May 12, 2026
Keep existing generated commit metadata out of the Platform SDK metadata change so workflow-owned SHA fields remain workflow-owned.
Keep the Platform SDK metadata PR focused on source inputs and transform logic while allowing the normal transform workflow to regenerate derived specs and Speakeasy lock data.
Accept generated Platform API paths in post-transform smoke checks without committing the generated Platform artifacts in this PR.
Remove the locally bundled Platform source spec so the PR only prepares open-api to consume the normal redocly-published input.
Add targeted comments around Platform-specific merge and SDK naming behavior so future changes preserve the source-owned SDK contract.
Keep Platform transform support in place while leaving Platform out of the published merged SDK input until those endpoints are ready for client exposure.
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.
Internal Description for reviewers:
Platform SDK generation currently depends on open-api-owned endpoint mapping when the intended contract is owned by scio's Platform source specs. This PR prepares open-api to consume scio-owned
x-glean-sdkmetadata generically in the source-spec transform, but intentionally does not add Platform to the publishedglean-api-specsmerge input yet. That lets us land the transform plumbing and validation path without exposing experimental, feature-gated Platform methods in the public Python, TypeScript, Go, and Java SDKs.The Platform source spec, generated specs, merged Speakeasy output, and lockfile are intentionally left to the existing scio → redocly → open-api and transform workflows. A TODO remains in
.speakeasy/workflow.yamlmarking the exactgenerated_specs/platform.yamlinput to add once Platform endpoints are ready to appear in generated clients.Companion scio PR: https://github.com/askscio/scio/pull/238861
Supersedes stacked draft PR: #103
Supersedes manual-mapping PR: #102
Context/Jira (Mandatory if external):
N/A
Test plan:
npm testaskscio/scio#238861intosource_specs/platform.yaml, ranOPEN_API_COMMIT_SHA=$(git rev-parse HEAD) pnpm run transform:source_specs, thenspeakeasy run -s glean-api-specs --skip-upload-spec; workflow-owned inputs/outputs were removed/restored afterward so generated files stay out of this PR.x-glean-sdkmetadata mapped to the expected Speakeasy SDK method without code changes; removing that metadata failed the transform with an actionable error.pnpm exec vitest run tests/source-spec-transformer.test.jsRelease Notes (go/relnotesfaq)
Change Categories (mandatory - check all that apply)
(DO NOT include confidential details. Should be at least 40 characters long.)
External description for customers:
No customer-visible behavior change; this lands internal Platform SDK transform plumbing without publishing the unreleased Platform API methods into generated clients.