JSON schema of RUM events send by SDKs
The format must stay backward compatible in order to be able to validate old events, so:
- New fields must not be set as required
- Fields definition must not be updated, new fields must be created instead
Breaking changes to the format must be reflected by a major version update in _dd.format_version property.
After editing any schema, you must re-generate the JS + TS definitions (see below).
This repository accommodates various usages, specifically:
-
The Browser SDK:
-
Generates TypeScript types from
schemas/rum-events-browser-schema.json,schemas/telemetry-events-schema.jsonandschemas/session-replay-browser-schema.json. -
Validates data within unit and e2e tests against
schemas/rum-events-schema.json.
-
-
The iOS SDK generates native data models based on
schemas/rum-events-mobile-schema.jsonandschemas/session-replay-mobile-schema.json. -
The Android SDK generates native data models based on schemas coming from
rum/,session-replay/andtelemetry/folders. -
The Datadog App is using TypeScript types by including the
lib/folder as a package dependency.
yarn
yarn validate
yarn build
yarn generate
yarn format -w