Available schemas
Streammachine schema definition
{ "schema": { "schema_type": "avro", "schema_registry_ref": "strmcatalog-clickstream/latest" }, "validations": [ { "field": "customer/id", "type": "regex", "value": "^.+$" }, { "field": "url", "type": "regex", "value": "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]" } ], "key_field": "producerSessionId", "pii_fields": { "customer/id": 0, "producerSessionId": 1 } }
Serialization schema, type: avro
{ "name": "ClickstreamEvent", "type": "record", "namespace": "io.streammachine.schemas.strmcatalog.clickstream", "strmSchemaId": "clickstream", "fields": [ { "name": "strmMeta", "type": { "name": "StrmMeta", "type": "record", "fields": [ { "name": "schemaId", "type": "string" }, { "name": "nonce", "type": "int" }, { "name": "timestamp", "type": "long", "logicalType": "date" }, { "name": "keyLink", "type": [ "null", "int" ], "default": null }, { "name": "billingId", "type": [ "null", "string" ], "default": null }, { "name": "consentLevels", "type": { "type": "array", "items": "int" } } ] } }, { "name": "producerSessionId", "type": "string" }, { "name": "url", "type": "string" }, { "name": "eventType", "type": "string" }, { "name": "referrer", "type": "string" }, { "name": "userAgent", "type": "string" }, { "name": "conversion", "type": "int" }, { "name": "customer", "type": { "name": "Customer", "type": "record", "fields": [ { "name": "id", "type": "string" } ] } }, { "name": "abTests", "type": { "type": "array", "items": "string" } } ] }
Streammachine schema definition
{ "schema": { "schema_type": "avro", "schema_registry_ref": "strmcatalog-demo_v1/latest" }, "validations": [], "key_field": "consistent_value", "pii_fields": { "unique_identifier": 1, "consistent_value": 2, "some_sensitive_value": 3 } }
Serialization schema, type: avro
{ "type": "record", "name": "DemoEvent", "namespace": "io.streammachine.schemas.demo.v1", "fields": [ { "name": "strmMeta", "type": { "type": "record", "name": "StrmMeta", "fields": [ { "name": "schemaId", "type": [ "null", "string" ], "default": null }, { "name": "nonce", "type": [ "null", "int" ], "default": null }, { "name": "timestamp", "type": [ "null", "long" ], "default": null, "logicalType": "date" }, { "name": "keyLink", "type": [ "null", "int" ], "default": null }, { "name": "billingId", "type": [ "null", "string" ], "default": null }, { "name": "consentLevels", "type": { "type": "array", "items": "int" } } ] }, "doc": "TODO strmMeta will be nullable eventually, but Gateway functionality needs to be verified first!" }, { "name": "unique_identifier", "type": [ "null", "string" ], "default": null, "doc": "any value. For illustration purposes: use a value that is consistent over time like a customer or device ID." }, { "name": "consistent_value", "type": "string", "doc": "any value. For illustration purposes: use a value that is consistent over a limited period like a session." }, { "name": "some_sensitive_value", "type": [ "null", "string" ], "default": null, "doc": "any value. For illustration purposes: use a value that could identify a user over time based on behavior, like browsing behavior (e.g. urls)." }, { "name": "not_sensitive_value", "type": [ "null", "string" ], "default": null, "doc": "any value. For illustration purposes: use a value that is not sensitive at all, like the rank of an item in a set." } ] }
Streammachine schema definition
{ "schema": { "schema_type": "avro", "schema_registry_ref": "strmcatalog-dpg_nps_unified_v1/latest" }, "validations": [], "key_field": "session_id", "pii_fields": { "device_id": 0, "customer_id": 0, "session_id": 0 } }
Serialization schema, type: avro
{ "type": "record", "name": "KioskEvent", "namespace": "io.streammachine.schemas.dpg.nps.unified.v1", "fields": [ { "name": "strmMeta", "type": { "type": "record", "name": "StrmMeta", "fields": [ { "name": "schemaId", "type": [ "null", "string" ], "default": null }, { "name": "nonce", "type": [ "null", "int" ], "default": null }, { "name": "timestamp", "type": [ "null", "long" ], "default": null, "logicalType": "date" }, { "name": "keyLink", "type": [ "null", "int" ], "default": null }, { "name": "billingId", "type": [ "null", "string" ], "default": null }, { "name": "consentLevels", "type": { "type": "array", "items": "int" } } ] }, "doc": "TODO strmMeta will be nullable eventually, but Gateway functionality needs to be verified first!" }, { "name": "brand_source", "type": [ "null", "string" ], "default": null, "doc": "Brand or media source like Kiosk" }, { "name": "platform", "type": [ "null", "string" ], "default": null, "doc": "Viewer platform, any value as long as consistent" }, { "name": "os", "type": [ "null", "string" ], "default": null, "doc": "OS Release Number. TODO details" }, { "name": "version", "type": [ "null", "string" ], "default": null, "doc": "App version number" }, { "name": "device_id", "type": [ "null", "string" ], "default": null, "doc": "(allowed) device ID. UUID, GUID, PII?" }, { "name": "customer_id", "type": [ "null", "string" ], "default": null, "doc": "Existing or generated ID?, PII" }, { "name": "consent_level", "type": [ "null", "string" ], "default": null, "doc": "TODO what does this mean?" }, { "name": "session_id", "type": "string", "doc": "Session ID as set by producer, e.g. the browser cookie, or app open ID" }, { "name": "swimlane_id", "type": [ "null", "string" ], "default": null, "doc": "A unique identifier for the lane" }, { "name": "swimlane_rank", "type": [ "null", "int" ], "default": null, "doc": "Displayed rank of the swimlane. TBD start at 1" }, { "name": "swimlane_header", "type": [ "null", "string" ], "default": null }, { "name": "swimlane_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. Implementation tbd." }, { "name": "swimlane_action", "type": [ "null", "string" ], "default": null, "doc": "Pin or unpin, or opt-in in e.g. Volkskrant" }, { "name": "article_id", "type": [ "null", "string" ], "default": null }, { "name": "article_rank", "type": [ "null", "int" ], "default": null, "doc": "TBD start at 1" }, { "name": "article_title", "type": [ "null", "string" ], "default": null }, { "name": "article_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. TODO tbd." }, { "name": "article_action", "type": [ "null", "string" ], "default": null, "doc": "click, ..." }, { "name": "followable_id", "type": [ "null", "string" ], "default": null, "doc": "A server-set item id for that specific item" }, { "name": "followable_rank", "type": [ "null", "int" ], "default": null, "doc": "Displayed rank of the item. TBD start at 1" }, { "name": "followable_title", "type": [ "null", "string" ], "default": null, "doc": "The item title as displayed to a user" }, { "name": "followable_type_value", "type": [ "null", "boolean" ], "default": null, "doc": "The value that corresponds to the followable type, e.g. Stentor for type Brand" }, { "name": "followable_type", "type": [ "null", "string" ], "default": null, "doc": "The Followable type, e.g. manually, article, author, brand" }, { "name": "followable_context", "type": [ "null", "string" ], "default": null, "doc": "The Followable context, e.g. article+user, specific user, user-defined followable" }, { "name": "followable_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. Implementation tbd" }, { "name": "followable_clicked", "type": [ "null", "boolean" ], "default": null, "doc": "Set to true if click event captured" }, { "name": "followable_action", "type": [ "null", "string" ], "default": null, "doc": "Follow or Unfollow" } ] }
Streammachine schema definition
{ "schema": { "schema_type": "avro", "schema_registry_ref": "strmcatalog-nps_unified_v1/latest" }, "validations": [], "key_field": "session_id", "pii_fields": { "device_id": 1, "customer_id": 1, "session_id": 1 } }
Serialization schema, type: avro
{ "type": "record", "name": "KioskEvent", "namespace": "io.streammachine.schemas.nps.unified.v1", "fields": [ { "name": "strmMeta", "type": { "type": "record", "name": "StrmMeta", "fields": [ { "name": "schemaId", "type": [ "null", "string" ], "default": null }, { "name": "nonce", "type": [ "null", "int" ], "default": null }, { "name": "timestamp", "type": [ "null", "long" ], "default": null, "logicalType": "date" }, { "name": "keyLink", "type": [ "null", "int" ], "default": null }, { "name": "billingId", "type": [ "null", "string" ], "default": null }, { "name": "consentLevels", "type": { "type": "array", "items": "int" } } ] }, "doc": "TODO strmMeta will be nullable eventually, but Gateway functionality needs to be verified first!" }, { "name": "brand_source", "type": [ "null", "string" ], "default": null, "doc": "Brand or media source like Kiosk" }, { "name": "platform", "type": [ "null", "string" ], "default": null, "doc": "Viewer platform, any value as long as consistent" }, { "name": "os", "type": [ "null", "string" ], "default": null, "doc": "OS Release Number. TODO details" }, { "name": "version", "type": [ "null", "string" ], "default": null, "doc": "App version number" }, { "name": "device_id", "type": [ "null", "string" ], "default": null, "doc": "(allowed) device ID. UUID, GUID, PII?" }, { "name": "customer_id", "type": [ "null", "string" ], "default": null, "doc": "Existing or generated ID?, PII" }, { "name": "consent_level", "type": [ "null", "string" ], "default": null, "doc": "TODO what does this mean?" }, { "name": "session_id", "type": "string", "doc": "Session ID as set by producer, e.g. the browser cookie, or app open ID" }, { "name": "swimlane_id", "type": [ "null", "string" ], "default": null, "doc": "A unique identifier for the lane" }, { "name": "swimlane_rank", "type": [ "null", "int" ], "default": null, "doc": "Displayed rank of the swimlane. TBD start at 1" }, { "name": "swimlane_header", "type": [ "null", "string" ], "default": null }, { "name": "swimlane_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. Implementation tbd." }, { "name": "swimlane_action", "type": [ "null", "string" ], "default": null, "doc": "Pin or unpin, or opt-in in e.g. Volkskrant" }, { "name": "article_id", "type": [ "null", "string" ], "default": null }, { "name": "article_rank", "type": [ "null", "int" ], "default": null, "doc": "TBD start at 1" }, { "name": "article_title", "type": [ "null", "string" ], "default": null }, { "name": "article_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. TODO tbd." }, { "name": "article_action", "type": [ "null", "string" ], "default": null, "doc": "click, ..." }, { "name": "followable_id", "type": [ "null", "string" ], "default": null, "doc": "A server-set item id for that specific item" }, { "name": "followable_rank", "type": [ "null", "int" ], "default": null, "doc": "Displayed rank of the item. TBD start at 1" }, { "name": "followable_title", "type": [ "null", "string" ], "default": null, "doc": "The item title as displayed to a user" }, { "name": "followable_type_value", "type": [ "null", "boolean" ], "default": null, "doc": "The value that corresponds to the followable type, e.g. Stentor for type Brand" }, { "name": "followable_type", "type": [ "null", "string" ], "default": null, "doc": "The Followable type, e.g. manually, article, author, brand" }, { "name": "followable_context", "type": [ "null", "string" ], "default": null, "doc": "The Followable context, e.g. article+user, specific user, user-defined followable" }, { "name": "followable_in_view", "type": [ "null", "int" ], "default": null, "doc": "Contains time > x% of item was in viewport. Implementation tbd" }, { "name": "followable_clicked", "type": [ "null", "boolean" ], "default": null, "doc": "Set to true if click event captured" }, { "name": "followable_action", "type": [ "null", "string" ], "default": null, "doc": "Follow or Unfollow" } ] }