Data Contract

drn:decathlon-com:member::consents:UserConsentApiEvent:sha256/242c7801b5d4bae54654cd63e71db587c6d184436fed2a050f615ca585d3a9ce Data Contract Specification v1.1.0
Decathlon

Info

Information about the data contract

Title
com.decathlon.member.consent.streaming:consent-public-avro-schema
Version
1.28.0-SNAPSHOT
Status
active
Owner
Decathlon | Consent Team
groupId
com.decathlon.member.consent.streaming
artifactId
consent-public-avro-schema

Servers

Servers of the data contract

  • Server
    preproduction-europe
    Environment
    preproduction
    Type
    kafka
    Host
    ${member_streaming_platform_kafka_preprod_europe_url}
    Topic
    europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
    Format
    avro
  • Server
    load-europe
    Environment
    load
    Type
    kafka
    Host
    ${member_streaming_platform_kafka_load_eu_url}
    Topic
    europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
    Format
    avro
  • Server
    production-europe
    Environment
    production
    Type
    kafka
    Host
    ${member_streaming_platform_kafka_prod_europe_url}
    Topic
    europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
    Format
    avro

Entity Relationship Diagram

Visual representation of data model relationships

                    erDiagram
	"**UserConsentApiCreatePreferencesPayload**" {
	user_id string
	preferences record
}


                  

Data Model

The logical data model

UserConsentApiCreatePreferencesPayload None
Record representing a user's consent preferences payload
topics: [{'name': 'europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro', 'compatibility': 'BACKWARD', 'retention': '30d'}]
user_id
string
The user ID is a unique identifier attached to a member or a lead
format:uuid
preferences
record
User's consent preferences
name:Preferences
 
purposes
array
List of purposes for a user
 
 
items
object
Purpose preference
name:PurposePreference
 
 
 
id
string
ID of the purpose
 
 
 
is_accepted
boolean
Whether the purpose is accepted
 
 
 
status
string
Status of the purpose (e.g., CONFIRMED, PENDING)
 
channels
array
List of channels for a user
 
 
items
object
Channel preferences
name:ChannelPreference
 
 
 
id
string
ID of the channel
 
 
 
is_activated
boolean
Whether the channel is activated
 
country_code
string
ISO country code of the user
 
created_by
string
Origin of the preferences creation
 
created_at
string
Timestamp of preferences creation (ISO 8601 format)
 
created_from
string
Client or system responsible for creating the preferences
Created at 21 Apr 2026 14:16:34 UTC with Data Contract CLI v0.10.35
dataContractSpecification: 1.1.0
id: drn:decathlon-com:member::consents:UserConsentApiEvent:sha256/242c7801b5d4bae54654cd63e71db587c6d184436fed2a050f615ca585d3a9ce
info:
  title: com.decathlon.member.consent.streaming:consent-public-avro-schema
  version: 1.28.0-SNAPSHOT
  status: active
  owner: Decathlon | Consent Team
  contact:
    name: CE-MEMBER-CONSENTS
    url: https://decathlondigital.slack.com/archives/C043NC82JCR
    email: [email protected]
  groupId: com.decathlon.member.consent.streaming
  artifactId: consent-public-avro-schema
servers:
  preproduction-europe:
    type: kafka
    environment: preproduction
    format: avro
    host: ${member_streaming_platform_kafka_preprod_europe_url}
    topic: europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
  load-europe:
    type: kafka
    environment: load
    format: avro
    host: ${member_streaming_platform_kafka_load_eu_url}
    topic: europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
  production-europe:
    type: kafka
    environment: production
    format: avro
    host: ${member_streaming_platform_kafka_prod_europe_url}
    topic: europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
models:
  UserConsentApiCreatePreferencesPayload:
    description: Record representing a user's consent preferences payload
    namespace: com.decathlon.member.consent.streaming.infrastructure
    fields:
      user_id:
        type: string
        format: uuid
        required: false
        description: The user ID is a unique identifier attached to a member or a
          lead
        config:
          avroType: string
          avroLogicalType: uuid
          avroDefault: null
      preferences:
        type: record
        required: false
        description: User's consent preferences
        fields:
          purposes:
            type: array
            required: false
            description: List of purposes for a user
            items:
              type: object
              description: Purpose preference
              fields:
                id:
                  type: string
                  required: false
                  description: ID of the purpose
                  config:
                    avroDefault: null
                is_accepted:
                  type: boolean
                  required: false
                  description: Whether the purpose is accepted
                  config:
                    avroDefault: null
                status:
                  type: string
                  required: false
                  description: Status of the purpose (e.g., CONFIRMED, PENDING)
                  config:
                    avroDefault: null
              name: PurposePreference
            config:
              avroDefault: null
          channels:
            type: array
            required: false
            description: List of channels for a user
            items:
              type: object
              description: Channel preferences
              fields:
                id:
                  type: string
                  required: false
                  description: ID of the channel
                  config:
                    avroDefault: null
                is_activated:
                  type: boolean
                  required: false
                  description: Whether the channel is activated
                  config:
                    avroDefault: null
              name: ChannelPreference
            config:
              avroDefault: null
          country_code:
            type: string
            required: false
            description: ISO country code of the user
            config:
              avroDefault: null
          created_by:
            type: string
            required: false
            description: Origin of the preferences creation
            config:
              avroDefault: null
          created_at:
            type: string
            required: false
            description: Timestamp of preferences creation (ISO 8601 format)
            config:
              avroDefault: null
          created_from:
            type: string
            required: false
            description: Client or system responsible for creating the preferences
            config:
              avroDefault: null
        config:
          avroDefault: null
        name: Preferences
    config:
      topics:
      - name: europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
        compatibility: BACKWARD
        retention: 30d
    topics:
    - name: europe.dkt-member.consents.private.stream.user-consent-api-event.normalized.v1.avro
      compatibility: BACKWARD
      retention: 30d
links:
  repo: https://github.com/dktunited/consent-management-streaming-avro-schemas
tags:
- Decathlon