Didomi · Arazzo Workflow

Didomi Data Subject Erasure Request

Version 1.0.0

Look up an end user by your internal ID and fulfil a right-to-erasure request by deleting their consent record.

1 workflow 1 source API 1 provider
View Spec View on GitHub AdvertisingAdTechCCPACMPConsentConsent ManagementDSARData PrivacyGDPRIAB TCFMarTechPreference ManagementPrivacyPrivacy RequestsRegulatory ComplianceArazzoWorkflows

Provider

didomi

Workflows

data-subject-erasure
Find an end user by internal ID and delete their consent record to fulfil an erasure request.
Looks up an end user by your organization's internal user ID and, when a match is found, deletes the user's consent record to fulfil a right-to-erasure request. When no user matches, the flow ends without deleting anything.
2 steps inputs: organizationId, organizationUserId, token outputs: deletedUserId
1
findUser
{$sourceDescriptions.didomiApi.url}#/paths/~1consents~1users/get
Retrieve the end user matching the supplied organization user ID. Branch on whether a user was returned: delete it when present, otherwise end.
2
deleteUser
{$sourceDescriptions.didomiApi.url}#/paths/~1consents~1users~1{id}/delete
Delete the matched user's consent record, fulfilling the right-to-erasure request. The deleted ConsentUser object is returned on success.

Source API Descriptions

Arazzo Workflow Specification

didomi-data-subject-erasure-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Didomi Data Subject Erasure Request
  summary: Look up an end user by your internal ID and fulfil a right-to-erasure request by deleting their consent record.
  description: >-
    The Didomi API has no dedicated data-subject-request resource, so this
    right-to-erasure (GDPR Article 17) flow is adapted onto the consent users
    resource. The workflow looks up an end user by your organization's internal
    user ID, branches on whether a matching user exists, and when one is found
    deletes the user's consent record to fulfil the erasure request. Each step
    spells out its request inline, including the bearer Authorization header, so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: didomiApi
  url: ../openapi/didomi-platform-api-openapi.yml
  type: openapi
workflows:
- workflowId: data-subject-erasure
  summary: Find an end user by internal ID and delete their consent record to fulfil an erasure request.
  description: >-
    Looks up an end user by your organization's internal user ID and, when a match
    is found, deletes the user's consent record to fulfil a right-to-erasure
    request. When no user matches, the flow ends without deleting anything.
  inputs:
    type: object
    required:
    - token
    - organizationId
    - organizationUserId
    properties:
      token:
        type: string
        description: A valid Didomi JWT used as the bearer token for the Authorization header.
      organizationId:
        type: string
        description: The ID of the organization the user belongs to.
      organizationUserId:
        type: string
        description: Your organization's internal user ID identifying the data subject (email, phone or client ID).
  steps:
  - stepId: findUser
    description: >-
      Retrieve the end user matching the supplied organization user ID. Branch on
      whether a user was returned: delete it when present, otherwise end.
    operationPath: '{$sourceDescriptions.didomiApi.url}#/paths/~1consents~1users/get'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: organization_id
      in: query
      value: $inputs.organizationId
    - name: organization_user_id
      in: query
      value: $inputs.organizationUserId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchedUserId: $response.body#/0/id
    onSuccess:
    - name: userFound
      type: goto
      stepId: deleteUser
      criteria:
      - context: $response.body
        condition: $.length > 0
        type: jsonpath
    - name: noUser
      type: end
      criteria:
      - context: $response.body
        condition: $.length == 0
        type: jsonpath
  - stepId: deleteUser
    description: >-
      Delete the matched user's consent record, fulfilling the right-to-erasure
      request. The deleted ConsentUser object is returned on success.
    operationPath: '{$sourceDescriptions.didomiApi.url}#/paths/~1consents~1users~1{id}/delete'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: id
      in: path
      value: $steps.findUser.outputs.matchedUserId
    - name: organization_id
      in: query
      value: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deletedUserId: $response.body#/id
  outputs:
    deletedUserId: $steps.deleteUser.outputs.deletedUserId