feat: TransportProvider abstraction and DeployPipeline scaffolding @W-24222968@ - #1840
Draft
WillieRuemmele wants to merge 4 commits into
Draft
WillieRuemmele wants to merge 4 commits into
WillieRuemmele wants to merge 4 commits into
Conversation
WillieRuemmele
force-pushed
the
wr/transport-scaffolding
branch
2 times, most recently
from
September 24, 2026 19:51
db6e08b to
6acaf55
Compare
Introduces a first-class transport layer so `componentSet.deploy()` can route metadata types through secondary endpoints (Connect API, presigned URLs, DataKit) alongside the standard Metadata API. - TransportProvider interface: handles(), deploy(), retrieve(), describe() - DeployPipeline: groups components by transport, runs before/after metadata phases, merges results into DeployResult - DeployResult: addTransportResults() + getAsyncTransportHandles() - componentSet.deploy() delegates to deployWithPipeline when transports are registered — no public API signature change - Registry: transport strategy hint on MetadataType.strategies
WillieRuemmele
force-pushed
the
wr/transport-scaffolding
branch
from
September 24, 2026 19:57
6acaf55 to
5114116
Compare
The pipeline orchestrates both deploy and retrieve operations, so the name should not imply deploy-only semantics.
…ts option - Add skipTransports option to MetadataApiDeployOptions and MetadataApiRetrieveOptions - Wire retrieve pipeline with both before-metadata and after-metadata phases - Guard deploy post() after-metadata transports on RequestStatus.Succeeded - Deduplicate transport file responses in RetrieveResult (matches DeployResult) - Extract runPendingAfterMetadataTransports helper in MetadataApiDeploy - Add retrieveWithPipeline in ComponentSet mirroring deployWithPipeline - Add tests for retrieve transport phases, skipTransports, error handling, dedup
This branch has not been deployed
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.
Summary
@W-24222968@
Introduces a first-class transport layer in SDR so
componentSet.deploy()can route metadata types through secondary endpoints (Connect API, presigned URLs, DataKit) alongside the standard Metadata API — without changing the public API signature.handles(),deploy(),retrieve(),describe()contract for secondary endpointsbefore-metadata/metadata-api/after-metadataphases, merges results intoDeployResultaddTransportResults()andgetAsyncTransportHandles()for transport result merging with cache invalidationdeployWithPipeline()when transports are registered; no public API signature changetransportstrategy hint onMetadataType.strategiesfor future concrete typesThis is the scaffolding branch — concrete transport implementations (e.g., Heroku ConnectApi) will follow in a branch off this one.
Test plan