ZenML · Arazzo Workflow

ZenML Bootstrap Project Pipeline

Version 1.0.0

Identify the caller, resolve a project workspace, register a pipeline, and confirm it.

1 workflow 1 source API 1 provider
View Spec View on GitHub AIMachine LearningMLOpsLLMOpsPipelinesOpen SourcePythonArazzoWorkflows

Provider

zenml

Workflows

bootstrap-project-pipeline
Resolve a project workspace and register a pipeline under it, confirming both.
Reads the current user, lists projects to resolve a workspace, creates a pipeline under that project, and reads the pipeline back by id.
4 steps inputs: accessToken, description, pipelineName, projectName outputs: pipelineId, projectId, userId
1
whoami
getCurrentUser
Read the current authenticated user for ownership context.
2
resolveWorkspace
listProjects
List projects to resolve the named project workspace that will host the pipeline.
3
createPipeline
createPipeline
Create the pipeline under the resolved project workspace.
4
confirmPipeline
getPipeline
Read the new pipeline back by id to confirm it persisted under the project.

Source API Descriptions

Arazzo Workflow Specification

zenml-bootstrap-project-pipeline-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ZenML Bootstrap Project Pipeline
  summary: Identify the caller, resolve a project workspace, register a pipeline, and confirm it.
  description: >-
    Bootstraps a pipeline into a project workspace in a single pass. ZenML
    models the workspace concept as a project, so this workflow resolves a
    project to act as the workspace, reads the current user for ownership
    context, creates the pipeline under the project, and reads the pipeline back
    to confirm it persisted. Every step spells out its request inline, including
    the bearer Authorization header, so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: zenmlApi
  url: ../openapi/zenml-openapi.yml
  type: openapi
workflows:
- workflowId: bootstrap-project-pipeline
  summary: Resolve a project workspace and register a pipeline under it, confirming both.
  description: >-
    Reads the current user, lists projects to resolve a workspace, creates a
    pipeline under that project, and reads the pipeline back by id.
  inputs:
    type: object
    required:
    - accessToken
    - projectName
    - pipelineName
    properties:
      accessToken:
        type: string
        description: ZenML JWT access token obtained from the login endpoint.
      projectName:
        type: string
        description: The name of the project workspace to host the pipeline.
      pipelineName:
        type: string
        description: The name to give the new pipeline.
      description:
        type: string
        description: Optional description of the pipeline.
  steps:
  - stepId: whoami
    description: >-
      Read the current authenticated user for ownership context.
    operationId: getCurrentUser
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
  - stepId: resolveWorkspace
    description: >-
      List projects to resolve the named project workspace that will host the
      pipeline.
    operationId: listProjects
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: page
      in: query
      value: 1
    - name: size
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projectId: $response.body#/items/0/id
  - stepId: createPipeline
    description: >-
      Create the pipeline under the resolved project workspace.
    operationId: createPipeline
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.pipelineName
        description: $inputs.description
        project_id: $steps.resolveWorkspace.outputs.projectId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      pipelineId: $response.body#/id
  - stepId: confirmPipeline
    description: >-
      Read the new pipeline back by id to confirm it persisted under the
      project.
    operationId: getPipeline
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: pipeline_id
      in: path
      value: $steps.createPipeline.outputs.pipelineId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pipelineId: $response.body#/id
      projectId: $response.body#/project_id
  outputs:
    userId: $steps.whoami.outputs.userId
    projectId: $steps.resolveWorkspace.outputs.projectId
    pipelineId: $steps.confirmPipeline.outputs.pipelineId