Skip to content

SP-957: move Team-to-Team Copy commands to 't2tc package' group#370

Open
Zgjim Haziri (ZgjimHaziri) wants to merge 5 commits into
SP-874-add-single-package-import-commandfrom
SP-957-t2tc-command-group
Open

SP-957: move Team-to-Team Copy commands to 't2tc package' group#370
Zgjim Haziri (ZgjimHaziri) wants to merge 5 commits into
SP-874-add-single-package-import-commandfrom
SP-957-t2tc-command-group

Conversation

@ZgjimHaziri

@ZgjimHaziri Zgjim Haziri (ZgjimHaziri) commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Description

The batch commands config list/export/import/diff are specific to the Team-to-Team Copy (T2TC) service but lived under the generic top-level config group, mixed in with the package-resource commands (package, nodes, versions, variables, metadata). This made the surface confusing: bulk T2TC-archive operations looked like general-purpose commands.

Approach: group the T2TC operations under a dedicated t2tc package group, and keep config for package-resource commands only.

  • config list/export/import/difft2tc package list/export/import/diff
  • config validateconfig package validate (it validates a package)
  • Added config package list for everyday package listing (staging packages by default, with flavor filtering)

Non-breaking: the old commands are kept as deprecated aliases. Each prints a runtime deprecation notice pointing to its replacement and is marked [Deprecated] in --help, so existing automation keeps working until the aliases are removed in a future release.

Internal structure: the T2TC logic now lives in a dedicated t2tc module (command/package services, package + diff APIs, StudioService, transport constants), so the deprecated config aliases are thin delegators. The former BatchImportExport catch-all in config is split into domain-specific classes — StagingPackage (staging list), Metadata (package metadata), Variable (variable export) — meaning configuration-management no longer carries any batch export/import code.

Docs updated accordingly (new t2tc-commands.md, reframed config-commands.md, mkdocs nav).

Stacked on #369 (SP-874) — base will retarget to main once that merges.

Relevant links

Checklist

  • I have self-reviewed this PR
  • I have tested the change and proved that it works in different scenarios
  • I have updated docs if needed

Made with Cursor

Bulk T2TC operations (list/export/import/diff) move from the top-level
'config' group to a dedicated 't2tc package' group, and 'config validate'
moves to 'config package validate'. The old commands remain as deprecated
aliases with runtime deprecation notices pointing to the new ones, so the
change is non-breaking. Also adds a staging-focused 'config package list'
and updates the docs.

Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
.option("--json", "Return the response as a JSON file")
.action(this.listNodeDependencies);

const t2tcCommand = configurator.command("t2tc")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we create a different module for this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created it and refactored the services/apis in which module they fit most.

Comment thread docs/user-guide/t2tc-commands.md
The agentic development guide is general package-authoring guidance, not
Team-to-Team Copy. Revert its export/import examples from 't2tc package'
back to the 'config' commands (which still work as deprecated aliases) and
keep only the validate example on the new 'config package validate'. The
general commands will move to non-t2tc package commands later.

Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Move the Team-to-Team Copy package operations into a self-contained t2tc
module (command/package services, package + diff APIs, StudioService and
transport constants) so the deprecated config aliases are thin shells.

Dismantle the BatchImportExport catch-all in configuration-management by
splitting its methods into their proper domains:
- staging list      -> StagingPackageApi / StagingPackageService
- package metadata   -> MetadataApi / MetadataService
- variables export   -> VariableApi
- connection-var fix -> connection-variable.helper (shared with t2tc)

configuration-management no longer holds any batch export/import code,
StudioService, or transport constants; t2tc imports only the variable and
package domains plus shared interface types.

Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
…2tc-command-group

Bring in the SP-874 PR-feedback wording and propagate it into the reframed
t2tc docs: "batch artifact" terminology, "ignored" variable assignments,
and the single-package group description.

Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

sonarqubecloud Bot commented Jun 8, 2026

Copy link
Copy Markdown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants