Didomi · Arazzo Workflow

Didomi Deploy a Consent Notice

Version 1.0.0

Create a consent notice, deploy a notice configuration to production, and confirm the deployment.

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

Provider

didomi

Workflows

deploy-notice
Create a notice then deploy a notice configuration to production for an organization.
Creates a consent notice owned by the organization, deploys a previously prepared notice configuration to production, and reads the resulting deployment back to confirm it exists.
3 steps inputs: deploymentMessage, noticeName, organizationId, productionConfigId, token outputs: deploymentId, noticeId
1
createNotice
{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices/post
Create a new consent notice owned by the organization. Only the organization_id and name are required by the NoticeInput schema.
2
createDeployment
{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices~1deployments/post
Deploy the supplied production notice configuration for the new notice. notice_id, organization_id and production_config_id are all required by the NoticeDeploymentInput schema.
3
getDeployment
{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices~1deployments~1{id}/get
Read the deployment back by its ID to confirm it was registered.

Source API Descriptions

Arazzo Workflow Specification

didomi-deploy-notice-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Didomi Deploy a Consent Notice
  summary: Create a consent notice, deploy a notice configuration to production, and confirm the deployment.
  description: >-
    A core Didomi CMP publishing pattern. The workflow creates a new consent
    notice for an organization, creates a production deployment that points the
    notice at a prepared notice configuration, and then reads the deployment
    back to confirm it was registered. 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: deploy-notice
  summary: Create a notice then deploy a notice configuration to production for an organization.
  description: >-
    Creates a consent notice owned by the organization, deploys a previously
    prepared notice configuration to production, and reads the resulting
    deployment back to confirm it exists.
  inputs:
    type: object
    required:
    - token
    - organizationId
    - noticeName
    - productionConfigId
    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 that owns the notice and deployment.
      noticeName:
        type: string
        description: Internal name of the notice used to distinguish it in your account.
      productionConfigId:
        type: string
        description: The ID of the notice configuration to deploy to production.
      deploymentMessage:
        type: string
        description: Optional human-readable description of the deployment content.
  steps:
  - stepId: createNotice
    description: >-
      Create a new consent notice owned by the organization. Only the
      organization_id and name are required by the NoticeInput schema.
    operationPath: '{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices/post'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
        name: $inputs.noticeName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      noticeId: $response.body#/id
  - stepId: createDeployment
    description: >-
      Deploy the supplied production notice configuration for the new notice.
      notice_id, organization_id and production_config_id are all required by
      the NoticeDeploymentInput schema.
    operationPath: '{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices~1deployments/post'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    requestBody:
      contentType: application/json
      payload:
        notice_id: $steps.createNotice.outputs.noticeId
        organization_id: $inputs.organizationId
        production_config_id: $inputs.productionConfigId
        message: $inputs.deploymentMessage
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deploymentId: $response.body#/id
  - stepId: getDeployment
    description: >-
      Read the deployment back by its ID to confirm it was registered.
    operationPath: '{$sourceDescriptions.didomiApi.url}#/paths/~1widgets~1notices~1deployments~1{id}/get'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: id
      in: path
      value: $steps.createDeployment.outputs.deploymentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deploymentId: $response.body#/id
      noticeId: $response.body#/notice_id
  outputs:
    noticeId: $steps.createNotice.outputs.noticeId
    deploymentId: $steps.getDeployment.outputs.deploymentId