Adds schemaVersion for cube to automatically detect schema change
What does this MR do and why?
This adds a schema version to cube definition so that data model can be recompiled for dynamic funnels.
Relates to: gitlab-org/gitlab#460034 (closed)
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
-
Run cube in production mode by setting
CUBEJS_DEV_MODE
tofalse
and cacheAndQueueDriver option in cube config tomemory
. Run docker compose up. -
Create a new funnel or update existing funnel by making an api call to
/funnel-schemas
endpoint in configuratorPOST http://{analytics-configurator-endpoint}/funnel-schemas Authorization: Basic [AUTH_USERNAME] [AUTH_PASSWORD] Content-Type: application/json { "project_ids": ["gitlab_project_20001"], "funnels": [ { "name": "completed_purchase", "schema": "SELECT (SELECT max(derived_tstamp) FROM gitlab_project_20001.snowplow_events) as x, windowFunnel(3600)(toDateTime(derived_tstamp), page_urlpath = ''/page1.html'', page_urlpath = ''/page2.html'') as step FROM gitlab_project_20001.snowplow_events", "state": "created" } ] }
OR
Run GDK locally. Create a new funnel in any repository.
-
Make an API call to cubejs
/v1/meta
endpoint to see the cube schema defined. It should have the new cube funnel schema definition. -
Try updating/deleting a funnel too. It should be reflected immediately in the cubes (/v1/meta) endpoint without a restart.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.