Seismic · Arazzo Workflow

Seismic Onboard a User

Version 1.0.0

Create a user account, confirm it, and assign its group memberships.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArazzoWorkflows

Provider

seismic

Workflows

onboard-user
Provision a new user and assign their group memberships.
Creates a user account, reads the created user back to confirm the account, and replaces the user's group memberships with the supplied set of groups.
3 steps inputs: email, firstName, groupIds, lastName, roleId, title outputs: email, userId
1
createUser
createUser
Create the user account, sending an invitation email.
2
getUser
getUser
Read the created user back to confirm the account exists.
3
setGroups
setUserGroups
Replace the user's group memberships with the supplied set of groups.

Source API Descriptions

Arazzo Workflow Specification

seismic-onboard-user-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Seismic Onboard a User
  summary: Create a user account, confirm it, and assign its group memberships.
  description: >-
    A standard provisioning flow. The workflow creates a new user account with
    a role, reads back the created user to confirm it, and then sets the user's
    full group membership in one call. Every 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: userManagementApi
  url: ../openapi/seismic-user-management-openapi.yml
  type: openapi
workflows:
- workflowId: onboard-user
  summary: Provision a new user and assign their group memberships.
  description: >-
    Creates a user account, reads the created user back to confirm the account,
    and replaces the user's group memberships with the supplied set of groups.
  inputs:
    type: object
    required:
    - email
    - firstName
    - lastName
    - groupIds
    properties:
      email:
        type: string
        description: Email address for the new user account.
      firstName:
        type: string
        description: First name of the user.
      lastName:
        type: string
        description: Last name of the user.
      title:
        type: string
        description: Optional job title of the user.
      roleId:
        type: string
        description: Optional ID of the role to assign to the user.
      groupIds:
        type: array
        description: IDs of the groups the user should belong to.
        items:
          type: string
  steps:
  - stepId: createUser
    description: Create the user account, sending an invitation email.
    operationId: createUser
    requestBody:
      contentType: application/json
      payload:
        email: $inputs.email
        firstName: $inputs.firstName
        lastName: $inputs.lastName
        title: $inputs.title
        roleId: $inputs.roleId
        sendInvitation: true
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      userId: $response.body#/id
      email: $response.body#/email
  - stepId: getUser
    description: Read the created user back to confirm the account exists.
    operationId: getUser
    parameters:
    - name: userId
      in: path
      value: $steps.createUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
  - stepId: setGroups
    description: Replace the user's group memberships with the supplied set of groups.
    operationId: setUserGroups
    parameters:
    - name: userId
      in: path
      value: $steps.getUser.outputs.userId
    requestBody:
      contentType: application/json
      payload:
        groupIds: $inputs.groupIds
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      groupCount: $response.body#/items
  outputs:
    userId: $steps.getUser.outputs.userId
    email: $steps.createUser.outputs.email