Description
Now that we are going to use GrowthBook to register new experiments, we will need to make sure that its UI and related logic can provide all we need. There are some easy findings like Custom Fields, which allow us to extend the UI by adding additional fields to the registration form in GB. That way experiment owners could add the URL for phabricator ticket or the team that owns the corresponding experiment, as they are doing right now via Test Kitchen UI. But there are also some features we currently have with Test Kitchen UI that don't have a corresponding one in GrowthBook, like some validation rules, the ability to set traffic per wiki and some others.
Because of the above, this spike aims to collect all we have and/or need, check whether GrowthBook is providing that thing somehow and, when not, try to make a request to have it working in future releases. We can also consider to remove some current features in case we find that something is not needed anymore. This is not about mapping exactly Test Kitchen UI features to GrowthBook one. We could also find a different approach when moving to GrowthBook.
Open Questions
- Would we need to have all the current features working in GrowthBook?
- Do we need to keep all the existing form fields we currently have in Test Kitchen UI?
- Are the current validation rules needed also in GrowthBook?
- What could we validate via GrowthBook UI/logic? Is it enough?
- Which features can/should we request?
Some of the questions above could be answered via T422528: [GrowthBook Integration][SPIKE] Define a valid config
Spike Goals
- Define a list of what the platform needs
- Some ideas based on what we have currently with Test Kitchen UI:
- Validation based on specific patterns for textfields like name, machine-readable name, variation name, . . .
- Additional fields that currently exist in Test Kitchen: End date, phabricator task, contact email, owner, stream name, contextual attributes, . . .
- Traffic per wiki and the corresponding validation rules we currently have in Test Kitchen UI
- Validation rules for start/end dates
- Validation for risk level based on the specific combination of contextual attributes defined in https://wikitech.wikimedia.org/wiki/Test_Kitchen/Contextual_attributes#Privacy_considerations
- Other needs:
- Some ideas based on what we have currently with Test Kitchen UI:
- Define a list of which customization ways GrowthBook provides
- Request for features to GrowthBook are included in this step
- Map the needs and the available customization ways
Technical notes
Current known customization ways for GrowthBook:
- Custom fields: https://docs.growthbook.io/using/growthbook-best-practices#custom-fields
- Attributes/Targeting conditions: https://docs.growthbook.io/features/targeting#attributes
- Custom markdown: https://docs.growthbook.io/using/growthbook-best-practices#custom-markdown
- This enables: https://handlebarsjs.com/guide/#simple-expressions
- Pre-launch Checklist: https://docs.growthbook.io/app/pre-launch-checklist
- Custom Hooks: https://docs.growthbook.io/features/custom-hooks (only available for features)
