ZenML · Arazzo Workflow

ZenML Provision Secret

Version 1.0.0

Confirm the caller identity, create a scoped secret, and confirm it appears in the secret store.

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

Provider

zenml

Workflows

provision-secret
Create a scoped secret and confirm it is registered in the secret store.
Reads the current user, creates a secret with the supplied scope and values, and lists secrets to confirm registration.
3 steps inputs: accessToken, scope, secretName, values outputs: ownerId, secretId, secretName
1
whoami
getCurrentUser
Read the current authenticated user to anchor ownership context for the secret being created.
2
createSecret
createSecret
Create the secret with the supplied name, scope, and key/value pairs.
3
confirmSecret
listSecrets
List secrets (metadata only) to confirm the new secret is registered.

Source API Descriptions

Arazzo Workflow Specification

zenml-provision-secret-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ZenML Provision Secret
  summary: Confirm the caller identity, create a scoped secret, and confirm it appears in the secret store.
  description: >-
    Provisions an encrypted secret in the ZenML secret store. The workflow reads
    the current authenticated user to anchor ownership context, creates the
    secret with the supplied scope and key/value pairs, and lists secrets to
    confirm the new secret is registered. Secret values are never returned by
    the listing endpoint, so only metadata is confirmed. 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: provision-secret
  summary: Create a scoped secret and confirm it is registered in the secret store.
  description: >-
    Reads the current user, creates a secret with the supplied scope and
    values, and lists secrets to confirm registration.
  inputs:
    type: object
    required:
    - accessToken
    - secretName
    - values
    properties:
      accessToken:
        type: string
        description: ZenML JWT access token obtained from the login endpoint.
      secretName:
        type: string
        description: The name to register the secret under.
      scope:
        type: string
        description: The secret scope, either user or workspace.
      values:
        type: object
        description: Map of secret key to secret string value.
  steps:
  - stepId: whoami
    description: >-
      Read the current authenticated user to anchor ownership context for the
      secret being created.
    operationId: getCurrentUser
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
  - stepId: createSecret
    description: >-
      Create the secret with the supplied name, scope, and key/value pairs.
    operationId: createSecret
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.secretName
        scope: $inputs.scope
        values: $inputs.values
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      secretId: $response.body#/id
      secretName: $response.body#/name
  - stepId: confirmSecret
    description: >-
      List secrets (metadata only) to confirm the new secret is registered.
    operationId: listSecrets
    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:
      total: $response.body#/total
  outputs:
    secretId: $steps.createSecret.outputs.secretId
    secretName: $steps.createSecret.outputs.secretName
    ownerId: $steps.whoami.outputs.userId