PropelAuth · Arazzo Workflow

PropelAuth Invite Existing User By ID

Version 1.0.0

Resolve an existing user by email, create a new org, and invite that user in by ID.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AuthenticationIdentityB2BMulti-TenancyAuthorizationRBACSSOSCIMMCPAPI KeysArazzoWorkflows

Provider

propelauth

Workflows

invite-existing-user-by-id
Resolve a user by email, create an org, then invite that user in by ID.
Looks up an existing user by email, provisions a new organization, and invites the resolved user into it by user ID with the requested role.
3 steps inputs: backendApiKey, email, orgName, role outputs: orgId, userId
1
findUser
fetchUserByEmail
Resolve the existing user by email to obtain their user ID.
2
createOrg
createOrg
Create the organization the user will be invited into.
3
inviteById
inviteUserToOrgById
Invite the resolved existing user into the new organization by ID.

Source API Descriptions

Arazzo Workflow Specification

propelauth-invite-existing-user-by-id-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: PropelAuth Invite Existing User By ID
  summary: Resolve an existing user by email, create a new org, and invite that user in by ID.
  description: >-
    Brings an existing user into a brand new tenant. The workflow resolves the
    user by email to obtain their user ID, creates a new organization, and then
    invites that existing user into the organization by ID with the supplied
    role. Each step inlines its request, including the Backend Integration API
    key as a bearer token, so the flow reads and runs without the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: userApi
  url: ../openapi/propelauth-user-api-openapi.yml
  type: openapi
- name: orgApi
  url: ../openapi/propelauth-org-api-openapi.yml
  type: openapi
workflows:
- workflowId: invite-existing-user-by-id
  summary: Resolve a user by email, create an org, then invite that user in by ID.
  description: >-
    Looks up an existing user by email, provisions a new organization, and
    invites the resolved user into it by user ID with the requested role.
  inputs:
    type: object
    required:
    - backendApiKey
    - email
    - orgName
    - role
    properties:
      backendApiKey:
        type: string
        description: PropelAuth Backend Integration API key presented as a bearer token.
      email:
        type: string
        description: Email address of the existing user to invite.
      orgName:
        type: string
        description: Name of the new organization to create.
      role:
        type: string
        description: The role the invited user will hold in the organization.
  steps:
  - stepId: findUser
    description: Resolve the existing user by email to obtain their user ID.
    operationId: fetchUserByEmail
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    - name: email
      in: query
      value: $inputs.email
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/user_id
  - stepId: createOrg
    description: Create the organization the user will be invited into.
    operationId: createOrg
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.orgName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      orgId: $response.body#/org_id
  - stepId: inviteById
    description: Invite the resolved existing user into the new organization by ID.
    operationId: inviteUserToOrgById
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.backendApiKey"
    requestBody:
      contentType: application/json
      payload:
        user_id: $steps.findUser.outputs.userId
        org_id: $steps.createOrg.outputs.orgId
        role: $inputs.role
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      invitedStatus: $statusCode
  outputs:
    userId: $steps.findUser.outputs.userId
    orgId: $steps.createOrg.outputs.orgId