Vital · Arazzo Workflow

Vital Provision a User and Hand Off a Mobile Sign-In Token

Version 1.0.0

Create a Vital user, mint a mobile sign-in token, and read back the user's connected providers.

1 workflow 1 source API 1 provider
View Spec View on GitHub Health DataWearablesLab TestingDigital HealthHealthtechHealthcareHIPAAHealthKitHealth ConnectEHREMRBiomarkersDiagnosticsContinuous Glucose MonitoringSleepActivityHeart RateWebhooksPhlebotomyLab OrdersArazzoWorkflows

Provider

vital-io

Workflows

mobile-signin-token-handoff
Create a user, mint a sign-in token, and list connected providers for a mobile SDK.
Creates a Vital user, generates a mobile sign-in token, and lists the user's connected providers for the SDK to display.
3 steps inputs: apiKey, clientUserId outputs: connectedProviders, signInToken, userId
1
createUser
create_user_v2_user_post
Create a Vital user tied to your client_user_id.
2
getSignInToken
get_user_sign_in_token_v2_user__user_id__sign_in_token_post
Generate a sign-in token the mobile SDK can use to authenticate as this user.
3
getConnectedProviders
get_connected_providers_v2_user_providers__user_id__get
Read the user's connected providers so the mobile app can render the current connection state.

Source API Descriptions

Arazzo Workflow Specification

vital-io-mobile-signin-token-handoff-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Vital Provision a User and Hand Off a Mobile Sign-In Token
  summary: Create a Vital user, mint a mobile sign-in token, and read back the user's connected providers.
  description: >-
    The handoff flow for Vital's mobile SDKs. The workflow creates a Vital user
    for your client_user_id, generates a sign-in token your mobile app can use to
    authenticate the SDK as that user, and reads the user's connected providers
    so the app can render the current connection state on launch. Every step
    spells out its request inline, including the x-vital-api-key header, so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: vitalUsersApi
  url: ../openapi/vital-users-api-openapi.yml
  type: openapi
workflows:
- workflowId: mobile-signin-token-handoff
  summary: Create a user, mint a sign-in token, and list connected providers for a mobile SDK.
  description: >-
    Creates a Vital user, generates a mobile sign-in token, and lists the user's
    connected providers for the SDK to display.
  inputs:
    type: object
    required:
    - apiKey
    - clientUserId
    properties:
      apiKey:
        type: string
        description: Your Vital API key, sent in the x-vital-api-key header.
      clientUserId:
        type: string
        description: A unique ID representing the end user in your application.
  steps:
  - stepId: createUser
    description: Create a Vital user tied to your client_user_id.
    operationId: create_user_v2_user_post
    parameters:
    - name: x-vital-api-key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        client_user_id: $inputs.clientUserId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/user_id
  - stepId: getSignInToken
    description: >-
      Generate a sign-in token the mobile SDK can use to authenticate as this
      user.
    operationId: get_user_sign_in_token_v2_user__user_id__sign_in_token_post
    parameters:
    - name: x-vital-api-key
      in: header
      value: $inputs.apiKey
    - name: user_id
      in: path
      value: $steps.createUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      signInToken: $response.body#/sign_in_token
  - stepId: getConnectedProviders
    description: >-
      Read the user's connected providers so the mobile app can render the
      current connection state.
    operationId: get_connected_providers_v2_user_providers__user_id__get
    parameters:
    - name: x-vital-api-key
      in: header
      value: $inputs.apiKey
    - name: user_id
      in: path
      value: $steps.createUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      providers: $response.body#/providers
  outputs:
    userId: $steps.createUser.outputs.userId
    signInToken: $steps.getSignInToken.outputs.signInToken
    connectedProviders: $steps.getConnectedProviders.outputs.providers