arazzo: 1.0.1
info:
title: Auth0 Find User by Email and Assign Role
summary: Look up a user by email and, when found, assign tenant roles to that user.
description: >-
A find-then-act access flow. The workflow searches for an existing user by
email address and branches on the result: when a matching user is found it
assigns the supplied tenant roles, and when no user matches it ends without
making changes. 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
x-realizes-capability-ids:
- BC-620.20
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-620.20
capability_name: Identity & Access Management
spec: auth0-users-by-email-api-openapi.yml
confidence: 0.75
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: usersApi
url: ../openapi/auth0-users-api-openapi.yml
type: openapi
- name: usersByEmailApi
url: ../openapi/auth0-users-by-email-api-openapi.yml
type: openapi
workflows:
- workflowId: find-user-assign-role
summary: Resolve a user by email then grant roles when the user exists.
description: >-
Searches users by email, and only when a match is found assigns the
supplied role ids to the matched user.
inputs:
type: object
required:
- email
- roles
properties:
email:
type: string
description: Email address to look the user up by (case-sensitive).
roles:
type: array
description: List of existing role ids to assign when the user is found.
items:
type: string
steps:
- stepId: findUser
description: >-
Search for a user by email address, returning at most the matching
records.
operationId: get_users-by-email
parameters:
- name: email
in: query
value: $inputs.email
successCriteria:
- condition: $statusCode == 200
outputs:
matchedUserId: $response.body#/0/user_id
onSuccess:
- name: userFound
type: goto
stepId: assignRoles
criteria:
- context: $response.body
condition: $.length > 0
type: jsonpath
- name: userMissing
type: end
criteria:
- context: $response.body
condition: $.length == 0
type: jsonpath
- stepId: assignRoles
description: >-
Assign the supplied role ids to the matched user.
operationId: post_user_roles
parameters:
- name: id
in: path
value: $steps.findUser.outputs.matchedUserId
requestBody:
contentType: application/json
payload:
roles: $inputs.roles
successCriteria:
- condition: $statusCode == 204
outputs:
matchedUserId: $steps.findUser.outputs.matchedUserId
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.