Send meta.type and meta.version with wide events - #9359
Draft
lmac012 wants to merge 3 commits into
Draft
Conversation
The wide event format requires two common parameters identifying the event definition an event validates against. Both are now persisted per event and sent by both transports: meta.type derived from the flow name as android-<name> with underscores normalized to hyphens, and meta.version at the initial 1.0.0. A Room migration adds the columns, leaving events that are still in flight with a derived type and the initial version. https://app.asana.com/1/137249556945/task/1213817723602340 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds meta.type and meta.version to the params dictionary and references them from all 12 wide event pixel definitions, so the parameters the client now sends are documented and validated. Folds the two inline declarations that wide_post_idle_session already carried into the shared dictionary entries. https://app.asana.com/1/137249556945/task/1213817723602340 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds an optional definition parameter to flowStart so a feature can declare the event definition its flow conforms to. Both fields default to what the client already sent: the type to android-<name> derived from the flow name, and the version to the initial 1.0.0, so no call site has to change. Callers declare only the MINOR and PATCH components, matching what an event definition itself declares. MAJOR tracks the base template shared by every wide event and stays owned by the client. API proposal: https://app.asana.com/1/137249556945/task/1217024679030254 https://app.asana.com/1/137249556945/task/1213817723602340 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Task/Issue URL: https://app.asana.com/1/137249556945/task/1213817723602340
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable): https://app.asana.com/1/137249556945/task/1217024679030254
Description
Wide events now send the two required common parameters that identify the event definition they validate against:
meta.type(derived from the flow name asandroid-<name>) andmeta.version(initially1.0.0). Both are persisted per event, sent by both transports, declared in the pixel definitions, and settable per event through a new optionaldefinitionparameter onflowStart.Reviewable in three commits: the wire format and storage, the pixel definitions, then the public API.
Steps to test this PR
Wide events carry the meta parameters
data-clearingflowwide_data-clearing_cpixel carriesmeta.type=android-data-clearingandmeta.version=1.0.0, and that the POST body has a top-levelmetaobjectEvents in flight survive the DB migration
develop, start a flow (e.g. begin a subscription purchase) and background the app without finishing it1.0.0UI changes