Dataiku · Arazzo Workflow

Dataiku Provision DSS User

Version 1.0.0

Create a DSS user, confirm it by reading the user back, and assign groups via update.

1 workflow 1 source API 1 provider
View Spec View on GitHub AnalyticsArtificial IntelligenceData PlatformData ScienceMachine LearningArazzoWorkflows

Provider

dataiku

Workflows

provision-user
Create a DSS user, confirm it, and assign groups.
Creates a user, reads it back to confirm, then updates group membership and profile.
3 steps inputs: apiKey, displayName, email, groups, login, password, userProfile outputs: login, user
1
createUser
createUser
Create the new DSS user with a login and initial password.
2
confirmUser
getUser
Read the user back to confirm it was created.
3
assignGroups
updateUser
Update the user to apply the desired groups and profile.

Source API Descriptions

Arazzo Workflow Specification

dataiku-provision-user-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Dataiku Provision DSS User
  summary: Create a DSS user, confirm it by reading the user back, and assign groups via update.
  description: >-
    Onboards a new user onto a Dataiku DSS instance. The workflow creates a user
    with a login and initial password, reads the user back to confirm it was
    created, and then updates the user to apply the desired group memberships
    and profile. Every step inlines its request so the flow can be executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: dssPublicApi
  url: ../openapi/dataiku-public-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-user
  summary: Create a DSS user, confirm it, and assign groups.
  description: >-
    Creates a user, reads it back to confirm, then updates group membership and
    profile.
  inputs:
    type: object
    required:
    - apiKey
    - login
    - password
    properties:
      apiKey:
        type: string
        description: DSS API key passed as a Bearer token in the Authorization header.
      login:
        type: string
        description: Login name for the new user.
      password:
        type: string
        description: Initial password for the new user.
      displayName:
        type: string
        description: Display name for the user.
      email:
        type: string
        description: Email address for the user.
      groups:
        type: array
        description: Groups to assign to the user.
        items:
          type: string
      userProfile:
        type: string
        description: User profile to assign.
  steps:
  - stepId: createUser
    description: Create the new DSS user with a login and initial password.
    operationId: createUser
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        login: $inputs.login
        password: $inputs.password
        displayName: $inputs.displayName
        email: $inputs.email
        groups: $inputs.groups
        userProfile: $inputs.userProfile
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      login: $inputs.login
  - stepId: confirmUser
    description: Read the user back to confirm it was created.
    operationId: getUser
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: login
      in: path
      value: $steps.createUser.outputs.login
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      user: $response.body
  - stepId: assignGroups
    description: Update the user to apply the desired groups and profile.
    operationId: updateUser
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: login
      in: path
      value: $steps.createUser.outputs.login
    requestBody:
      contentType: application/json
      payload:
        login: $inputs.login
        displayName: $inputs.displayName
        email: $inputs.email
        groups: $inputs.groups
        userProfile: $inputs.userProfile
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    login: $steps.createUser.outputs.login
    user: $steps.confirmUser.outputs.user