Auth0 · Arazzo Workflow

Auth0 Create User and Assign Direct Permissions

Version 1.0.0

Create a database user, assign direct API permissions, then list those permissions.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI AgentsAuthenticationAuthorizationFGAIdentity ManagementMCPOAuthOktaOpenID ConnectSAMLSecuritySCIMArazzoWorkflows

Provider

auth0

Workflows

create-user-assign-permissions
Create a user and grant direct API permissions.
Creates a user in a database connection, assigns the supplied direct permissions, and lists the user's permissions to verify.
3 steps inputs: connection, email, password, permissions outputs: permissions, userId
1
createUser
post_users
Create a new user in the supplied database connection.
2
assignPermissions
post_permissions
Assign the supplied direct permissions to the new user.
3
listPermissions
get_permissions
List the user's permissions to confirm the direct assignments.

Source API Descriptions

Arazzo Workflow Specification

auth0-create-user-assign-permissions-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Auth0 Create User and Assign Direct Permissions
  summary: Create a database user, assign direct API permissions, then list those permissions.
  description: >-
    Provisions a user and grants them direct permissions without going through a
    role. The workflow creates a user in a database connection, assigns one or
    more resource-server/permission pairs directly to the user, and lists the
    user's permissions to confirm. Each step spells out its request inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: auth0ManagementApi
  url: ../openapi/auth0-management-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-user-assign-permissions
  summary: Create a user and grant direct API permissions.
  description: >-
    Creates a user in a database connection, assigns the supplied direct
    permissions, and lists the user's permissions to verify.
  inputs:
    type: object
    required:
    - connection
    - email
    - password
    - permissions
    properties:
      connection:
        type: string
        description: Name of the database connection the user should be created in.
      email:
        type: string
        description: Email address for the new user.
      password:
        type: string
        description: Initial password for the new user.
      permissions:
        type: array
        description: Array of resource_server_identifier / permission_name pairs to assign directly to the user.
        items:
          type: object
          required:
          - resource_server_identifier
          - permission_name
          properties:
            resource_server_identifier:
              type: string
            permission_name:
              type: string
  steps:
  - stepId: createUser
    description: >-
      Create a new user in the supplied database connection.
    operationId: post_users
    requestBody:
      contentType: application/json
      payload:
        connection: $inputs.connection
        email: $inputs.email
        password: $inputs.password
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      userId: $response.body#/user_id
  - stepId: assignPermissions
    description: >-
      Assign the supplied direct permissions to the new user.
    operationId: post_permissions
    parameters:
    - name: id
      in: path
      value: $steps.createUser.outputs.userId
    requestBody:
      contentType: application/json
      payload:
        permissions: $inputs.permissions
    successCriteria:
    - condition: $statusCode == 201
  - stepId: listPermissions
    description: >-
      List the user's permissions to confirm the direct assignments.
    operationId: get_permissions
    parameters:
    - name: id
      in: path
      value: $steps.createUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      permissions: $response.body
  outputs:
    userId: $steps.createUser.outputs.userId
    permissions: $steps.listPermissions.outputs.permissions