Skip to content

feat: Report source plugin versions to the injected platform destination#22988

Draft
disq wants to merge 2 commits into
claude/platform-dest-cli-session-mintfrom
claude/external-sync-source-versions-cli
Draft

feat: Report source plugin versions to the injected platform destination#22988
disq wants to merge 2 commits into
claude/platform-dest-cli-session-mintfrom
claude/external-sync-source-versions-cli

Conversation

@disq

@disq disq commented Jun 22, 2026

Copy link
Copy Markdown
Member

Stacked on #22945 (base: claude/platform-dest-cli-session-mint).

When auto-injecting the platform destination, also inject a source_versions list ([]{name, path, version}) for the sync's sources into the destination spec.

The destination forwards it as the now-required sources on CreateExternalSync (cloudquery-private#12848), so the platform can reject — at sync open, before any upload — sources whose version the asset view can't process. Supported window is same major and ≤ the pinned corpus version [<major>.0.0 .. pinned]; the gate is on by default with a per-tenant opt-out (platform cloudquery/platform#2995).

The CLI only reports; the platform owns the decision. Each *specs.Source contributes its name / path (cloudquery/<name>) / version.

Tests: inject_test.go asserts the injected source_versions.

Inject a `source_versions` list ({name, path, version}) for the sync's sources
into the auto-injected platform destination spec, so the platform can reject
sources whose version the asset view can't process before any upload.
Use a local sourceVersion struct instead of []map[string]string (self-documenting,
guards against key typos). Add a two-source case asserting order and that none are
dropped.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant