Skip to content

Add data-model-migration commands for semantic entity push - #403

Draft
Philipp Hoch (hochphil) wants to merge 4 commits into
mainfrom
feature/data-model-migration-semantic-entities
Draft

Add data-model-migration commands for semantic entity push#403
Philipp Hoch (hochphil) wants to merge 4 commits into
mainfrom
feature/data-model-migration-semantic-entities

Conversation

@hochphil

Copy link
Copy Markdown

Summary

  • Adds a new data-model-migration content-cli module that exports a Data Integration data model via GET /integration/api/pools/{poolId}/data-models/{dataModelId}/transport?includeColumns=true
  • Converts tables, process configurations, and classic foreign keys into pig semantic entities (objects, event sources, relationships, perspective) with data bindings
  • Pushes converted entities into a target pig package via pig-sl-ontology public CRUD endpoints
  • Explicitly does not support object-centric object links (signal-links); only classic foreignKeys[] from the transport payload are converted

Commands

  • content-cli export data-model --poolId <id> --dataModelId <id> [--outputToJsonFile]
  • content-cli push semantic-model --poolId <id> --dataModelId <id> --package <packageKey> [--schema <schema>] [--namespace <ns>] [--fromFile <json>] [--dryRun]

Test plan

  • yarn test tests/commands/data-model-migration tests/integration/commands/data-model-migration.spec.ts
  • yarn build
  • Manual dry run against a staging team: content-cli push semantic-model --poolId ... --dataModelId ... --package ... --dryRun
  • Manual push against a staging pig package with edit access

Made with Cursor

Introduce a new content-cli module that exports a Data Integration data
model via the cloud-data-integration transport API, converts tables,
process configurations, and classic foreign keys into pig semantic
entities, and pushes them into a target pig-sl-ontology package.
Includes converter unit tests, API/service tests, command wiring tests,
and user guide documentation.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Aligns the migration flow with the platform CLI path (config nodes create) by
posting SaveNodeTransport payloads to the package-manager API, reusing existing
OAuth scopes and the standard validate/version workflow.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate FailedQuality Gate failed

Failed conditions
1 New Minor Issues (required ≤ 0)
4 New Major Issues (required ≤ 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Mark constructor-only-assigned members as readonly (S2933) and replace
the redundant boolean literal comparison with Boolean() to satisfy S1125
while preserving the serialized required flag.
Includes-AI-Code: true
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for freeto 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.

1 participant

@hochphil