Del via


Dataflows - Save Dataflow Gen One As Dataflow Gen Two

Save Dataflow Gen1 As Dataflow Gen2 (CI/CD) (Preview)
Converts a Gen1 dataflow to a Fabric native artifact (Gen2 CI/CD).

Key Features:

  • Creates a new Gen2 (CI/CD) artifact while preserving the original Gen1 dataflow
  • Optionally migrates refresh schedules
  • Updates connection formats to Fabric-compatible formats
  • Preserves sensitivity labels and security settings
  • Provides detailed error reporting for non-fatal issues
  • Supports specifying a target workspace for the new artifact

Prerequisites:

  • Source dataflow must be Generation 1
  • User must have appropriate permissions on the workspace

Migration Process:

  1. Validates source dataflow and permissions
  2. Converts dataflow definition to Fabric format
  3. Updates connection strings for Fabric compatibility
  4. Creates new Gen2 artifact in the specified workspace
  5. Optionally migrates refresh schedule

Error Handling: The API returns success even if some non-critical operations fail (e.g., schedule migration). Such failures are reported in the errors array of the response.

Preview

This is a preview API call.

POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/dataflows/{gen1DataflowId}/saveAsNativeArtifact

URI Parameters

Name In Required Type Description
gen1DataflowId
path True

string (uuid)

The object ID of the Gen1 dataflow to save as a native artifact

groupId
path True

string (uuid)

The workspace (group) ID of the gen1 dataflow

Request Body

Name Type Description
description

string

maxLength: 4000

Optional description for the new artifact. If not provided or empty, the description from the source dataflow will be copied.

Maximum length: 4000 characters

displayName

string

maxLength: 200

Optional display name for the new artifact. If not provided or empty, the system will generate a name based on the source dataflow name with a suffix like "_copy1", "_copy2", etc. to avoid naming conflicts.

Maximum length: 200 characters

includeSchedule

boolean

Whether to include the refresh schedule from the source dataflow in the migration. If true, attempts to copy the existing schedule to the new artifact in disabled state. If false, the new artifact will be created without a schedule.

targetWorkspaceId

string (uuid)

Optional target workspace ID where the new artifact will be created. If not provided or empty, the new artifact will be created in the same workspace as the source dataflow.

Responses

Name Type Description
200 OK

SaveAsNativeDataflowResponse

OK

Examples

Example

Sample request

POST https://api.powerbi.com/v1.0/myorg/groups/51e47fc5-48fd-4826-89f0-021bd3a80abd/dataflows/928228ba-008d-4fd9-864a-92d2752ee5ce/saveAsNativeArtifact
{
  "displayName": "newDataflowName",
  "description": "New dataflow description",
  "includeSchedule": "true",
  "targetWorkspaceId": "d4c3b4a1-2f5e-4c3a-9f7e-123456789abc"
}

Sample response

Definitions

Name Description
ArtifactMetadata

Metadata information for a Fabric artifact

ArtifactMetadataUser

User information in artifact metadata

ArtifactProvisionState

Current provisioning state of the artifact

SaveAsNativeDataflowErrorCode

Non-fatal warning codes that may occur during migration. These indicate partial failures that don't prevent the overall operation from succeeding.

SaveAsNativeDataflowRequest

Request body for migrating a Gen1 dataflow to Gen2(CI/CD) native artifact

SaveAsNativeDataflowResponse

Response from the dataflow migration operation

ArtifactMetadata

Metadata information for a Fabric artifact

Name Type Description
artifactType

string

Type of the artifact

capacityObjectId

string (uuid)

ID of the capacity hosting this artifact

createdByUser

ArtifactMetadataUser

User information in artifact metadata

createdDate

string (date-time)

When the artifact was created

description

string

Description of the artifact

displayName

string

Display name of the artifact

folderObjectId

string (uuid)

ID of the workspace/folder containing this artifact

lastUpdatedDate

string (date-time)

When the artifact was last updated

modifiedByUser

ArtifactMetadataUser

User information in artifact metadata

objectId

string (uuid)

Unique identifier for the artifact

ownerUser

ArtifactMetadataUser

User information in artifact metadata

provisionState

ArtifactProvisionState

Current provisioning state of the artifact

workloadPayload

string

Workload-specific payload data

ArtifactMetadataUser

User information in artifact metadata

Name Type Description
displayName

string

User's display name

emailAddress

string (email)

User's email address

objectId

string (uuid)

User's object ID

ArtifactProvisionState

Current provisioning state of the artifact

Value Description
InProgress

The artifact is being provisioned

Active

The artifact is active

Migrating

The artifact is being migrated

Recovering

The artifact is recovering

SoftDeletedByUser

The artifact is soft deleted by the user

SoftDeleted

The artifact is soft deleted

Failed

The artifact provisioning failed

Deleting

The artifact is being deleted

DisabledByDeprovisioning

The artifact is disabled by deprovisioning

DeprovisioningFailed

The artifact deprovisioning failed

DeletedByDeprovision

The artifact is deleted by deprovisioning

DeletedByWorkload

The artifact is deleted by the workload

SaveAsNativeDataflowErrorCode

Non-fatal warning codes that may occur during migration. These indicate partial failures that don't prevent the overall operation from succeeding.

Value Description
FailedToCopySchedule

The refresh schedule could not be copied to the new artifact

SetDataflowOriginFailed

Failed to set the origin tracking information on the new artifact

ConnectionsUpdateFailed

Connection strings could not be updated to Fabric format

SaveAsNativeDataflowRequest

Request body for migrating a Gen1 dataflow to Gen2(CI/CD) native artifact

Name Type Description
description

string

maxLength: 4000

Optional description for the new artifact. If not provided or empty, the description from the source dataflow will be copied.

Maximum length: 4000 characters

displayName

string

maxLength: 200

Optional display name for the new artifact. If not provided or empty, the system will generate a name based on the source dataflow name with a suffix like "_copy1", "_copy2", etc. to avoid naming conflicts.

Maximum length: 200 characters

includeSchedule

boolean

Whether to include the refresh schedule from the source dataflow in the migration. If true, attempts to copy the existing schedule to the new artifact in disabled state. If false, the new artifact will be created without a schedule.

targetWorkspaceId

string (uuid)

Optional target workspace ID where the new artifact will be created. If not provided or empty, the new artifact will be created in the same workspace as the source dataflow.

SaveAsNativeDataflowResponse

Response from the dataflow migration operation

Name Type Description
artifactMetadata

ArtifactMetadata

Complete metadata of the newly created Gen2(CI/CD) artifact

errors

SaveAsNativeDataflowErrorCode[]

List of non-fatal errors that occurred during the migration process. The migration is considered successful even if these errors occur, but some features may not have been migrated properly.