Schema Enforcer

Last updated:

|Edit this page

The transformation enables you to enforce a schema on events in PostHog as they are ingested. It does this by preventing ingestion if the event:

  • Is missing a required property
  • Has a property with the wrong type
  • Is not included in the file and onlyIngestEventsFromFile is true

It also:

  • Removes all other properties from an event except selected ones if acceptOnlySchemaProps is true
  • Configuration is done via a JSON file uploaded as an attachment

Requirements

Using this requires either PostHog Cloud with the data pipeline add-on, or a self-hosted PostHog instance running version 1.30.0 or later.

Self-hosting and not running 1.30.0? Find out how to update your self-hosted PostHog deployment.

Installation

  1. Log in to your PostHog instance
  2. Click "Data pipeline" in the left sidebar
  3. Search for 'Schema Enforcer'
  4. Select the transformation, press 'Install' and follow the on-screen instructions

Configuration

Below is an example configuration file:

{
"onlyIngestEventsFromFile": true,
"eventSchemas": {
"testEvent": {
"acceptOnlySchemaProps": true,
"schema": {
"foo": {
"type": "string",
"required": false
},
"bar": {
"type": "number",
"required": true
},
"baz": {
"type": "boolean",
"required": false
}
}
}
}
}

Additional configuration

OptionDescription
Event Schema JSON File
Type: attachment
Required: True
A valid JSON file

FAQ

Is the source code for this transformation available?

PostHog is open-source and so are all transformations on the platform. The source code for the Schema Enforcer is available on NPM.

Who created this transformation?

A lot of people worked on this app! We'd like to thank the following PostHog team members...

For creating the Schema Enforcer. Thank you, all!

Who maintains this?

This is maintained by PostHog. If you have issues with it not functioning as intended, please let us know!

What if I have feedback on this destination?

We love feature requests and feedback. Please tell us what you think..

What if my question isn't answered above?

We love answering questions. Ask us anything via our community forum.

Questions?

Was this page useful?

Next article

Taxonomy Standardizer

This transformation standardizes all your event names into a single pattern, so that data becomes more consistent and marketing teams aren't driven wild. Supported taxonomies This transformation can convert from any of these taxonomies, to any other. Camel Case: helloThereHedgehog Pascal Case: HelloThereHedgehog Snake Case: hello_there_hedgehog Kebab Case: hello-there-hedgehog Spaces: hello there hedgehog Installation In PostHog, click the " Data pipeline " tab in the left sidebar. Search…

Read next article