Adafruit IO · Arazzo Workflow

Adafruit IO Issue and Verify Token

Version 1.0.0

Create a device token for the user, then read it back to confirm it was issued.

1 workflow 1 source API 1 provider
View Spec View on GitHub IoTInternet of ThingsMQTTMakerHobbyistCircuitPythonArduinoESP32FeatherDashboardsTime SeriesArazzoWorkflows

Provider

adafruit-io

Workflows

issue-and-verify-token
Create a token and read it back by its id.
Issues a new token for the user, then fetches it by id to verify the creation succeeded.
2 steps inputs: aioKey, token, username outputs: tokenId, verifiedToken
1
createToken
createToken
Create a new token for the user, optionally with a supplied token value.
2
verifyToken
getToken
Read the token back by its id to confirm it was issued.

Source API Descriptions

Arazzo Workflow Specification

adafruit-io-issue-and-verify-token-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Adafruit IO Issue and Verify Token
  summary: Create a device token for the user, then read it back to confirm it was issued.
  description: >-
    Provisions a scoped device token so hardware can authenticate without the
    account master key. The workflow creates a token and then reads it back by id
    to confirm it was issued, giving the caller a verified handle to the new
    credential. Every step spells out its request inline — including the username
    path parameter and the X-AIO-Key authentication header. Note: the Token
    response schema in the OpenAPI description documents only the `token` field,
    but the token `id` returned by the create call is required as the id path
    parameter on read, so it is captured here from the response body.
  version: 1.0.0
sourceDescriptions:
- name: adafruitIoApi
  url: ../openapi/adafruit-io-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: issue-and-verify-token
  summary: Create a token and read it back by its id.
  description: >-
    Issues a new token for the user, then fetches it by id to verify the
    creation succeeded.
  inputs:
    type: object
    required:
    - username
    - aioKey
    properties:
      username:
        type: string
        description: A valid Adafruit IO username.
      aioKey:
        type: string
        description: The Adafruit IO API key, sent in the X-AIO-Key header.
      token:
        type: string
        description: Optional token value to set; the service generates one if omitted.
  steps:
  - stepId: createToken
    description: >-
      Create a new token for the user, optionally with a supplied token value.
    operationId: createToken
    parameters:
    - name: username
      in: path
      value: $inputs.username
    - name: X-AIO-Key
      in: header
      value: $inputs.aioKey
    requestBody:
      contentType: application/json
      payload:
        token: $inputs.token
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tokenId: $response.body#/id
      tokenValue: $response.body#/token
  - stepId: verifyToken
    description: >-
      Read the token back by its id to confirm it was issued.
    operationId: getToken
    parameters:
    - name: username
      in: path
      value: $inputs.username
    - name: id
      in: path
      value: $steps.createToken.outputs.tokenId
    - name: X-AIO-Key
      in: header
      value: $inputs.aioKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      verifiedToken: $response.body#/token
  outputs:
    tokenId: $steps.createToken.outputs.tokenId
    verifiedToken: $steps.verifyToken.outputs.verifiedToken