This also adds a test to ensure we are capturing usage of $set/$set_once
at the top level of the event, as posthog-js uses this method.
This was initiated by the issue mentioned
[here](https://github.com/PostHog/posthog-js/issues/615).
This commit adds the CDP destination APIs. Key changes include:
- use `db-migrate` for migrations
- jest for functional_tests (although I would be happy to use vitest or
alternatives if we want to, I didn't want to change too much at once)
- pnpm for package management
- koajs for the server
- Ajv for validation
- A separate PostgreSQL logical database for the destination APIs
persistence.
Things still to do:
- add some delivery mechanism that takes events from Kafka and puts
them to the destinations.
- add CI
- add to Helm Chart
- add some method of authentication. I've added the API here but it
might be that I just end up putting that in the main app in the end,
depending on how much momentum there is to try out separating the API
a bit, and the logistics of that.
* docs(capture): add spec for capture endpoints
This adds an OpenAPI specification for the capture endpoints. This is
useful for documenting the API, and further can be used e.g. in tests to
validate that both clients and the API are behaving as expected.