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: authApi
url: ../openapi/zenml-auth-api-openapi.yml
type: openapi
- name: secretsApi
url: ../openapi/zenml-secrets-api-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
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.