Releases: growthbook/growthbook
v4.1.0
Release Highlights
Holdouts
Holdout experiments measure the long-term impact of features by maintaining a control group that doesn't receive new functionality. While most users experience your latest features and improvements, a small percentage remains on the original version, providing a baseline to measure cumulative effects over time.
Experiment Dashboards
Experiment Dashboards let you create tailored views of an experiment. Highlight key insights, add context, and share a clear story with your team. Dashboards are available for all Enterprise customers. We have a lot planned for this in the future, so stay tuned!
Vercel Native Integration
We're excited to announce that GrowthBook is now available as a native integration in the Experimentation category on the Vercel Marketplace! This integration makes it easier than ever to add feature flagging and A/B testing to your Vercel projects, with streamlined setup, unified billing, and ultra-low latency performance.
AI Features
This release deeply integrates AI to help accelerate your workflows within GrowthBook. Auto-summarize experiment results, get help writing SQL, improve hypotheses, and detect similar past experiments, and more. These features are available to everyone, even self-hosted (just supply an OpenAI key).
Pre-computed Dimensions
You can now pick a set of key experiment dimensions and pre-compute them along with the main experiment results. This allows for more efficient database queries, and instant dimension breakdowns in the UI.
FerretDB Support
FerretDB is a MongoDB-compatible database that is open source and free to use. It serves as a drop-in replacement for MongoDB, converting MongoDB wire protocol queries to SQL and using PostgreSQL as its backend storage engine.
Sanity CMS Integration
Sanity is a real-time content backend for all your text and assets. You can now use GrowthBook feature flags to seamlessly test different content variations within Sanity.
MCP Updates
We've updated our MCP Server to allow creating experiments directly from your AI tool of choice without needing to context switch to GrowthBook. This change unlocks a bunch of new exciting workflows and we can't wait to see how you use it!
New Experiment Results Tooltip
We've completely redesigned the tooltip when mousing over experiment results. The new design provides more context and insights at a glance, making it easier to understand the impact of your experiments.
SQL Auto-Complete
We've added context-aware SQL auto-complete suggestions for table and column names to help you write queries faster and with fewer errors.
Official Segments and Dimensions
You can now mark specific segments and user dimensions as Official via the GrowthBook API. This will give them a little badge in the UI and lock down editing to prevent unwanted changes. Use this to differentiate important segments and dimensions from ad-hoc or exploratory ones.
Self-Hosting Improvements
For anyone self-hosting GrowthBook, we've greatly improved observability and customization. We now support full monitoring and tracing of all background jobs, plus distributed tracing within the Python stats engine. We also added a number of new env vars to more easily split the GrowthBook monolith into microservices for those that need extra scalability.
SDK Updates
- React - Full React 19 Typescript support
- Golang - SSE streaming fixes
- PHP - sticky bucketing fixes
- Java - new caching and refresh options, memory optimizations
- Flutter - many bug fixes and updates
- C sharp - SSE streaming, attribute targeting fixes
- Swift - sticky bucket fixes, support for bearer auth, logging improvements, and memory optimization
- Kotlin - async-safe sticky bucketing, new streamingHost setting, suspend entry points to avoid blocking
- Flutter - TTL-based fetch option, cache improvements, attribute targeting fixes
- Edge - many new options for advanced integrations
REST API Updates
- New
GET /settingsendpoint to fetch all of your organization's current settings - Fix
PUT /metric/:idendpoint that was ignoring thearchivedsetting - New
GET /feature/:id/revisionsendpoint to fetch all revisions for a specific feature with pagination - New endpoints to create, update, and delete dimensions and segments
- Ability to archive fact tables and fact metrics
Plus a lot more
- New
is:watchedfilter on experiment search - Enable encryption option for back-end SDKs
- Add user-agent header to all HTTP requests (webhooks, etc.)
- Various date and timezone fixes
- Various SQL editing and schema browser fixes
- Properly close MySQL connections
- Ability to remove
LIMIT 5when testing SQL queries - Use Webhook Secrets by default for new webhooks
- ClickHouse - add support for new JSON data types
- Wrap user-supplied SQL in parentheses to avoid edge cases
- Fix divide-by-zero bug in stats engine
- Jira integration update to support a custom field
- Fix stale feature detection logic
- New Big Number visualization type in the SQL Explorer
- Enable the schema browser for self-hosted orgs that use config.yml
- Improve fact metric query performance by filtering rows earlier
- Fix broken SRM check when one variation has 0 users
- Fix bugs with quantile and percentile capped metric settings
- Audit log entries now show the full date time instead of "X days ago"
- Power calculator fixes
- Allow manual seed selection for feature rollout rules
- Skip feature.updated webhooks until draft changes are actually published
- Improve handling of unit quantiles when "ignore zero" is set
- Persist last viewed tab on the experiment list
New Contributors
- @nodirnasirov made their first contribution in #4296
- @kweic made their first contribution in #4315
- @denisov-vlad made their first contribution in #4351
- @Khrol made their first contribution in #4339
- @benruehl made their first contribution in #4254
Plus a ton of returning contributors: @jdorn @royalfig @tzjames @ahdriel @mknowlton89 @madhuchavva @bryce-fitzsimons @natasha-growthbook @Auz @lukesonnet @Kevin-Chant @lukebrawleysmith @Hephaest @gazzdingo @ari-party @msamper @itsgrimetime
Full Changelog: v4.0.0...v4.1.0
v4.0.0
Release Highlights
GrowthBook MCP Server
AI tools like Cursor can now interact with GrowthBook via our new MCP server. Create feature flags, check the status of running experiments, clean up stale code, and more.
Safer Rollouts
Building upon our Safe Rollouts release last version, we added gradual traffic ramp up, auto rollback, a smart update schedule, and a time series view of results. All of these combine to add even more safety around your feature releases.
Decision Criteria
You can now customize the shipping recommendation logic for experiments. Choose from a “Clear Signals” model, a “Do No Harm” model, or define your own from scratch.
Search Filters
We’ve revamped the search experience within GrowthBook to make it easier to find feature flags, metrics, and experiments. Easily filter by project, owner, tag, type, and more.
Insights Section
We added a brand new left nav section called “Insights” with a bunch of tools to help you learn from your past experiments.
- The Dashboard shows velocity, win rate, and scaled metric impact by project.
- Learnings is a searchable knowledge base of all of your completed experiments.
- The Experiment Timeline shows when experiments were running and how they overlapped with each other.
- Metric Effects lists the experiments that had the biggest impact on a specific metric.
- Metric Correlations let you see how two metrics move in relation to each other.
SQL Explorer
We launched a lightweight SQL console and BI tool to explore and visualize your data directly within GrowthBook, without needing to switch to another platform like Looker.
Managed Warehouse
GrowthBook Cloud now offers a fully managed ClickHouse database that is deeply integrated with the product. It’s the fastest way to start collecting data and running experiments on GrowthBook. You still get raw SQL access and all the benefits of a warehouse native product, without the setup and maintenance cost.
Feature Flag Usage
See analytics about how your feature flags are being evaluated in your app in real time. This is built on top of the new Managed Warehouse on GrowthBook Cloud and is a game changer for debugging and QA.
Vercel Flags SDK
GrowthBook now has an official provider for the Vercel Flags SDK. This is now the easiest way to add server-side feature flags to any Next.js project. We have an even deeper Vercel integration coming soon to make this experience even more seamless.
Official Framer Plugin
You can now easily run GrowthBook experiments inside of your Framer projects. Assign visitors to different versions of your design (like layouts, headlines, or calls to action), track results, and confidently choose the best experience for your audience.
Personalized Landing Page
There’s a new landing page when you first log into GrowthBook. Quickly see any features or experiments that need your attention, pick up where you left off, and learn about advanced GrowthBook functionality to get the most out of the platform.
Experimentation Left Nav
There’s a new “Experimentation” section in the left nav. Experiments and Bandits now live within this section, along with our Power Calculator, Experiment Templates, and Namespaces. We’ll be expanding this section soon with Holdouts and more, so stay tuned!
REST API Updates
- Filter the listFeatures endpoint by clientKey
- Support partial rule updates in the putFeature endpoint
- New Queries endpoint to retrieve raw SQL queries and results from an experiment
- Added Custom Field support to feature and experiment endpoints
- New endpoints for getting feature code refs
- New endpoint to revert a feature to a specific revision
Performance Improvements
We’ve drastically improved the CPU and memory usage when self-hosting GrowthBook at scale. On GrowthBook Cloud, we’ve seen a roughly 50% reduction during peak load, leading to lower latency and virtually eliminating container failures in production.
New Contributors
- @paigeruppel-upstart made their first contribution in #3992
- @jrnold made their first contribution in #4056
- @devcodes9 made their first contribution in #4109
- @kabam-blambert made their first contribution in #4070
- @matttenenbaum-qz made their first contribution in #4172
- @edisonmoy made their first contribution in #4266
Plus a ton of returning contributors: @ahdriel @gazzdingo @Auz @lukesonnet @tzjames @mknowlton89 @lukebrawleysmith @jdorn @romain-growthbook @natasha-growthbook @Kevin-Chant @royalfig @august-growthbook @msamper @bryce-fitzsimons @Hephaest @madhuchavva
Full Changelog: v3.6.0...v4.0.0
v3.6.0
Highlights
- Safe Rollouts by @msamper @lukebrawleysmith @gazzdingo @lukesonnet @ahdriel in #3556 and many more
- Time Series on Experiment Results by @ahdriel @lukesonnet in #3779 and many more
- Official Jira Integration by @Kevin-Chant in #3944 #3956 #4012
- Dev Tools for Back-end by @bryce-fitzsimons in #3911 #3958
- Decision Framework Notifications by @lukesonnet in #3762 #3909
- Fact Table JSON Columns by @jdorn in #3768
Other Changes
- JS/React SDK version 1.5.0 by @bryce-fitzsimons @jdorn in #4009
- Add metric overrides to reports and bandits by @lukesonnet in #3764 #3875
- Added Microsoft Clarity Heatmap integration guide by @Auz in #3782
- Make metrics links on overview page by @lukesonnet in #3797
- Enable duplicating metrics from details page by @Kevin-Chant in #3999
- Remove hypothesis check from bandit pre-launch checklist by @lukesonnet in #3796
- [api] Add user filter to fact metric API and add validation by @lukesonnet in #3798
- Add prerequisite targeting as auto checklist item by @lukesonnet in #3811
- REST API: add "withRevisions" option to getFeature endpoint by @bryce-fitzsimons in #3808
- Allow creation of Experiments with no DataSource specified via API by @ahdriel in #3819
- Allow editing variation metadata for running experiments by @lukesonnet in #3832
- Only show reweighted events for bandit SRM graph by @lukesonnet in #3834
- Add heartbeat update when starting query execution by @Kevin-Chant in #3771 #3881
- Enrich metrics with project names for project search by @lukesonnet in #3853
- Expose more fields in the various REST API experiment endpoints by @bryce-fitzsimons in #3861 #3864
- Add detail to make changes usage by @lukesonnet in #3866
- Adding more classes to facilitate science work data processing by @lukebrawleysmith in #3546
- adding 'RegressionAdjustedRatioStatistics' to gbstats by @lukebrawleysmith in #3885
- Rework bandit SRM to run in SQL by @lukesonnet in #3845
- Render abs. differences in proportion metrics with pp notation by @lukesonnet in #3891
- Add number field for rollouts (allow fractional percentages) by @bryce-fitzsimons in #3901
- Decision Criteria model and creator by @lukesonnet in #3847
- Update how we calculate readAccess for Metric Groups by @mknowlton89 in #3905
- Move visual editor / redirect paywall to publish step by @jdorn in #3898
- Add decision criteria data to getExperiment api endpoint by @Kevin-Chant in #3945
- Give old portals priority over radix portals by @bryce-fitzsimons in #3954
- show feature dependent warnings by @bryce-fitzsimons in #3964
- Ensure p-value adjustment applied to analysisSummary by @lukesonnet in #3972
- Auto closes pre launch checklist when complete by @mknowlton89 in #3975
- [stats] changing condition for theta == 0 to theta < 1e-8 by @lukebrawleysmith in #3795
- Advanced feature discoverability by @mknowlton89 in #3951 #3969 #3920
Bug Fixes
- Fix: Hide exp data if exp doesn't have enough data by @mknowlton89 in #3744
- Fix: Prevent metrics without a data source from being used as North Stars by @jdorn in #3763
- CUPED ratio bug fixes by @lukebrawleysmith in #3767
- UI Updates by @Kevin-Chant @lukesonnet in #3897 #3773
- Force auto-updates for bandits by @lukesonnet in #3807
- Fix next update status by @lukesonnet in #3786
- Fix notification text bug for multiple exposures by @lukesonnet in #3831
- fixing bug in degrees of freedom for bandits srm by @lukebrawleysmith in #3826
- Fix difference type in reports by @lukesonnet in #3854
- fix(BaseModel): Ensure index exists before dropping by @ahdriel in #3868
- Fix date in Health Tab graph being always interpreted as UTC by @ahdriel in #3872
- experiment overview: fix attribute targeting wrapping by @bryce-fitzsimons in #3877
- Fix live sql preview to show >= exposure timestamp by @lukesonnet in #3890
- Fix: Add metrics in metric groups to override by @lukesonnet in #3983
- Fix: ignore CR character for group csv import by @bryce-fitzsimons in #3985
- Fix redirect checkbox state for nodejs sdk connections by @bryce-fitzsimons in #3948
Docs and Misc
- Linking tooltip for risk thresholds being violated to docs by @lukebrawleysmith in #3746
- Add percentile language to quantile docs by @lukesonnet in #3789
- Lint Some Docs by @alai97 in #3800
- Various doc updates by @natasha-growthbook @august-growthbook @royalfig in #3840 #3842 #3957 #3818 #3784 #3793 #3940 #3980
- Performance improvements by @jdorn in #3932 #3930
- Add new Query Optimization docs and updates to "View Docs" link by @jdorn in #3805
- Remove duplicated word "the" in docs/guide/nextjs-app-router.mdx by @DanieleGrizzi in #3939
- Dependency and Security Updates by @ahdriel @Auz @jdorn @bryce-fitzsimons in #3836 #3827 #3839 #3812 #3791 #3855 #3912 #3998
- Performance and Observability improvements by @romain-growthbook in #3863 and many more
- Billig updates for GrowthBook Cloud by @mknowlton89 @tzjames and others
- Update latest SDK versions and docs by @madhuchavva @royalfig @ahdriel in #3904 #3962 #3803 #3820 #3828 #3833 #3857
New Contributors
- @alai97 made their first contribution in #3800
- @choshsh made their first contribution in #3803
- @DanieleGrizzi made their first contribution in #3939
Full Changelog: v3.5.0...v3.6.0
v3.5.0
Highlights
- New Dev Tools Browser Extension by @Kevin-Chant @bryce-fitzsimons @gazzdingo in #3618 #3739 #3696
- Experiment Decision Framework by @ahdriel @lukebrawleysmith in #3540 #3683 #3557
- Power Calculator by @lukesonnet in #3695 #3638 #3564
- CUPED for Ratio Metrics by @lukebrawleysmith in #3649 #3698 #3727 #3724 #3733 #3610
- Major JS, Go, Java, Python, C# SDK Updates by @madhuchavva @mkurkov in #3566 #3635 #3688 #3662 #3631
- UX Improvements by @Auz and others across 30+ commits
Other Changes
- Add API endpoints for Archetypes by @Kevin-Chant in #3577
- Athena enable query reuse by @Kevin-Chant in #3126
- Add support to key-pair authentication for Snowflake data source by @ahdriel in #3729
- Added custom fields to new experiment ref flow by @Auz in #3608
- Add CDN Usage graphs to GrowthBook Cloud by @jdorn in #3636
- Enable 'Edit status' escape hatch for drafts with data by @jdorn in #3756
- Introduce Edit Info Modal for Experiments by @mknowlton89 in #3462
- fix(LinkedChanges): Allow changes to be deleted by @ahdriel in #3702
- Added project selector to feature modal by @mohammedyunus2002 in #3534
- Feature environment selector improvements by @Kevin-Chant in #3560 #3590 #3544 #3717
- Compare Feature Environments by @Kevin-Chant in #3490
- Start experiments when publishing a feature draft by @jdorn in #3422 #3687 #3607
- Only refresh fact table columns when needed by @jdorn in #3757
- Add rule ids to SDK payload by @jdorn in #3665
- Filter /reports by project by @mknowlton89 in #3731
- New onboarding flow by @tzjames in #3614 #3633 #3626
- Support experiment/bandit sharing in the REST API by @bryce-fitzsimons in #3745
- Added savedgroups syntaxic search for features and experiments by @Auz in #3533
- Update saved group edit flow by @Kevin-Chant in #3547
- Ability to edit visual editor changes directly by @Auz in #3684
- Add Ctrl-F Functionality to CodeTextArea by @mknowlton89 in #3736
- Change directory location of enterprise code by @jdorn in #2869
Bug Fixes
- Fix bandit periods for funnel metrics by @lukesonnet in #3667 #3669
- Added way to see the change set regardless of the experiment state by @Auz in #3682
- [api] Change datasource validation for update experiment by @lukesonnet in #3651
- Allow undefined project stats engine to inherit org default by @lukesonnet in #3652
- Don't allow deleting the only experiment phase by @gazzdingo in #3714
- Fix experiment creation flow bugs, consistently include metrics page on creation flow by @bryce-fitzsimons in #3569
- Allow empty lists for feature $in and $nin conditions by @Kevin-Chant in #3719
- Fixed issue with duplicate feature and custom fields by @Auz in #3599
- Rename form input to get LastPass/other password managers to ignore it by @tzjames in #3741
- Improve saved group reference checks by @Kevin-Chant in #3528
- Bugfix for mixpanel EAQ selection by @lukesonnet in #3587
- Metric selector reordering bug fix by @Auz in #3603
- [api] Allow update fact metric to go from ratio to non-ratio by @lukesonnet in #3743
- Remove upper bound on pagination offset by @Kevin-Chant in #3615
- Fix delete segment bug showing related ideas that werent related by @mknowlton89 in #3732
- Fix remote evaluation by adding missing await (#3654) by @vadzimsharai in #3655
- sdk: Prevent overly-eager early exit when evaluating prereqs by @bryce-fitzsimons in #3542
- Fixes Add Experiment Template DropdownMenuItem by @mknowlton89 in #3567
- Fix presentations page error card margin by @ari-party in #3606
- Fix wrong text color on tooltips by @Hephaest in #3656
- Remove add implementation when no options remain by @bryce-fitzsimons in #3730
- Use correct reference for visual editor status check by @bryce-fitzsimons in #3721
Docs and Misc
- Feature usage analytics - dogfooding by @tzjames in #3711 #3453
- Updates archetype docs by @mknowlton89 in #3700
- Add docs on cluster experiments by @lukesonnet in #3568
- Fix formatting by @royalfig in #3663
- Fix grammar user-permissions.mdx by @tzjames in #3671
- Move Impact on Dashboard (pseudo a/a test) by @lukesonnet in #3584
- Upgrade from actions/cache from v2 to v4 by @mknowlton89 in #3621
- Docs/image-update by @royalfig in #3675 #3617
- Add env var customization for default log event properties by @Kevin-Chant in #3694
- Add SDK resources box to docs by @royalfig in #3647
- Add definition of one-sided rule by @august-growthbook in #3632
- Update gitBranch logo by @royalfig in #3699
- Update node.mdx by @joostfroon in #3573
- add markdown location, organize guides, add yt video to strapi by @royalfig in #3553
- update json & docs for edge versions 0.2.1 by @bryce-fitzsimons in #3602
- updating docs so links go to specific troubleshooting sections by @lukebrawleysmith in #3538
- add feedback widget to docs by @royalfig in #3629
- Improved GTM instructions by @royalfig @Auz in #3748 #3582 #3497 #3583
New Contributors
- @mohammedyunus2002 made their first contribution in #3534
- @joostfroon made their first contribution in #3573
- @ari-party made their first contribution in #3606
- @vadzimsharai made their first contribution in #3655
Full Changelog: v3.4.0...v3.5.0
v3.4.0
Highlights
- Experiment Templates by @msamper in #3442
- Custom Fields by @Auz in #557
- Shareable Experiments by @bryce-fitzsimons in #3445 #3351
- New metric types: Retention, Count Distinct, and Max by @lukesonnet in #3384 #3415
- Environment Forking by @Kevin-Chant in #3322
- Contentful and Strapi Integrations by @tzjames and @royalfig in #3271 #3444
- Major updates to Node.js and Edge SDKs by @jdorn and @bryce-fitzsimons in #3328 #3357 #3500
- Simulate Features Page by @Auz in #2952
Other Changes
- Various UI improvements by @ahdriel and others
- Add has:tempRollout advanced search for experiments by @jdorn in #3292
- Ability to export data in experiment monthly graphs by @Auz in #3092
- Don't automatically refresh import experiment list when updating queries by @lukesonnet in #3409
- Project-scope segments by @mknowlton89 in #3344
- Make experiment owners editable by @Auz in #3398
- Allow conversion window/delay to go down to minute granularity by @lukesonnet in #3439
- Add Delete Feature Rest API Endpoint by @mknowlton89 in #3383
Bug Fixes
- Increase non-test snowflake timeout by @lukesonnet in #3282
- Fix currency in metric analysis cards by @lukesonnet in #3306
- Fix bug with simulate features and scheduled rules by @Auz in #3299
- Make schema browser robust to switching databases by @lukesonnet in #3330
- Improve API endpoint validation by @mknowlton89 in #3354 #339 #3423 #3359
- Support legacy "inline experiment" rule editing by @bryce-fitzsimons in #3355
- Fix cumulative ratio + quantile date cohort graph by @lukesonnet in #3386
- Fix user filters missing field by @jdorn in #3434
- Re-allow activation metric to be joined to query by @lukesonnet in #3417
- Change user agent for webhooks by @msamper in #3441
- Get actual list of envs affected by experiment by @mknowlton89 in #2835
- Fix bug with metric tag filter and pagination by @lukesonnet in #3479
- Fix setting stats engine in new reports by @lukesonnet in #3520
- Fix empty saved groups when generating SDK payloads by @Kevin-Chant in #3499
Docs and Misc
- Various doc updates by @lukesonnet, @royalfig and others
- Deno Hono tutorial by @royalfig in #3284
- Tutorial for Express.js by @jdorn in #3390
- Bump TS version by @romain-growthbook in #3148
- Update DataDog instructions by @ahdriel in #3319 #3455
- Work for upcoming built-in warehouse by @tzjames
- PR Preview environment by @ahdriel in #3378 #3379
- Mid-experiment power core science code by @lukebrawleysmith in #3414
- Change demo exp to single goal metric by @lukesonnet in #3518
Full Changelog: v3.3.0...v3.4.0
v3.3.0
Highlights
- Multi-Arm Bandits by @bryce-fitzsimons @lukebrawleysmith @lukesonnet in #2807 and many other commits
- Metric Groups by @Auz @bryce-fitzsimons in #3028 #3263
- Inline and User Filters for Fact Metrics by @jdorn in #3127 #3038
- Migrate to New Design System (ongoing work) by @msamper @ahdriel @gazzdingo and many others
Other Changes
- API endpoints to kick off experiment snapshot and check status by @lukesonnet in #2980
- "Generate Fact Tables" will now also create metrics for GA4, Segment, and Rudderstack by @jdorn in #3062
- Add pagination to metric list and team members page by @jdorn in #3233
- Add fact metric support to North Star configuration by @lukesonnet in #3100
- Feature kill switch confirmation is now enabled by default for new orgs by @jdorn in #3208
- Fact Metrics default projects now come from fact table instead of data source by @jdorn in #3209
- Snowflake improvements when using a proxy by @lukesonnet in #3094
- Enable OpenTelemetry logs in addition to traces/metrics by @romain-growthbook in #3052
- New toggle for experiments to disable sticky bucketing by @bryce-fitzsimons in #3200
- Improved UI for enum attributes and list operators by @Kevin-Chant in #3184
Bug Fixes
- Add null typeguard for window history by @Kevin-Chant in #3192
- Assume a webhook is raw (legacy) when no payload types are specified. by @romain-growthbook in #3172
- Typo bug fixes by @romain-growthbook in #3235
- Fix ClickHouse NULL date in Metric Analysis query by @lukesonnet in #3196
- Fix analysis settings bar flicker by @lukesonnet in #3239
- Fix copy/paste metrics in the Analysis settings screen by @ahdriel in #3247
- Fix loading flicker on features, metrics, and other pages by @jdorn in #3269
- Fix race condition when DISABLE_TELEMETRY is set by @jdorn in #3077
- Fix saved group bug by @jdorn in #3037
- Fix savedGroups sometimes hashing non-securestring attributes by @Kevin-Chant in #3143
- Fix typos by @august-growthbook in #3194
- Fix typos in openapi definition by @Kevin-Chant in #3182
- Fix useFeaturesList changing object pointers every rerender by @Kevin-Chant in #3141
- Fix webhook link. by @romain-growthbook in #3042
- Improve sticky bucket service by @bryce-fitzsimons in #3040
- Make sure targeting is copied when duplicating an experiment by @bryce-fitzsimons in #3234
- More graceful handling of fact table failure by @lukesonnet in #3240
- Prevent empty experiment names by @romain-growthbook in #3112
- Remove unsupported query changes by @msamper in #3171
- Update dependencies for SDKs (1.2.1) by @bryce-fitzsimons in #3087
- fix for sdk count by @gazzdingo in #3254
- fixed saved group deleting by @gazzdingo in #3251
- user lookup mem perf improvement by @tzjames in #3095
- Add snapshot type and configure notifications by @lukesonnet in #3065
- Block dimension analyses from firing significance events by @lukesonnet in #3061
- Fix result group for dimension results by @lukesonnet in #3080
Docs and Misc
- Telemetry data fixes by @jdorn @lukesonnet @bryce-fitzsimons in #3193 #3149 #3134 #3151 #3174 #3173
- Update caniuse-lite version by @ahdriel in #3227
- bump edge sdk versions by @bryce-fitzsimons in #3262
- fixing typo around quotes by @lukebrawleysmith in #3256
- Add bullet to no traffic debugging kb doc by @lukesonnet in #3147
- Add saved groups yt vid to docs by @royalfig in #3059
- Docs updates [override rules, multiple comparisons] by @lukesonnet in #3189
- Documentation for self-hosted CDNs by @jdorn in #3070
- Improve Fact Metric and Experiment API documentation by @lukesonnet in #3197
- Rewrite AA test KB article by @lukesonnet in #3078
- Better sentry stack traces by @romain-growthbook in #3103 #3099 #3106 #3027 #3032 #3101 #3104 #3105
- Remove unused file by @lukesonnet in #3084
- Update mysql2 dependency by @jdorn in #3068
- Enable source maps when running as dev by @itsgrimetime in #2060
- Fix yarn dev by @jdorn in #3044
New Contributors
Full Changelog: v3.2.0...v3.3.0
v3.2.0
Highlights
- Saved group improvements (project-scoping, CSV upload) by @Kevin-Chant @msamper in #2953 #2616
- Experiment significance webhook events by @romain-growthbook in #2923 #2922 #2836
- Add graphs to Fact Metric pages by @lukesonnet in #2748 #2909 #2920
- View metric impact by experiment by @lukesonnet in #2937 #2847
- Visual Editor UX improvements by @gazzdingo @Auz @bryce-fitzsimons in #2826 #2947
- Vercel Edge Config and Feature Flag integration by @jdorn @royalfig in #2943 #2998
- Azure SCIM provisioning support by @mknowlton89 in #2821 #2931
Other Changes
- Add Vertica DB as a supported data source by @lukesonnet in #2857
- Query concurrency limits, configurable per data source by @Kevin-Chant in #2513 #2912
- Secondary metrics by @jdorn in #2620 #2863
- Make it possible to duplicate/archive fact metrics & archive fact tables by @msamper in #2911
- Performance improvements for large orgs by @jdorn @tzjames @itsgrimetime in #2820 #2859 #2888 #2881 #2856
- ISO Country Code attribute format by @Kevin-Chant in #2981
- Project-scoped Archetypes for testing feature values by @Auz in #2841
- Improve super admin page by @jdorn @tzjames @Auz in #2117 #2849 #2775
- Add REST endpoints for attributes by @romain-growthbook in #2973
- Add REST endpoints for managing organization members by @mknowlton89 in #2851
- Show attribute references on attribute list page by @bryce-fitzsimons in #2930
- Add Access URL to Snowflake data source connections by @lukesonnet in #2890
- Deep nested diff of JSON feature flag values by @brentdur in #1407
- Add support for Fact Segments on upgraded Segment Model by @mknowlton89 in #2701
- Support fallbackAttribute when creating experiments by @madhuchavva @bryce-fitzsimons in #2964 #2932
- Changes to support WebLens Hypothesis Generator by @bryce-fitzsimons @bttf in #2845 #2579 #2815
- New streamlined setup flow for new organizations by @msamper in #2940
- Create Phases with a UUID seed instread of the Tracking Key by @gazzdingo in #2811
- Add missing fields to experiment/metric REST endpoints by @itsgrimetime @Kevin-Chant in #2781 #2927 #2794
- Allow for a second user-defined tracking callback in script tag SDK by @Kevin-Chant in #2971
- Release JS/React SDKs version 1.2.0 with several bug fixes by @bryce-fitzsimons in #2877 #2770
- Change experiment temp rollouts to force coverage to 100% by @bryce-fitzsimons in #2882
- Add advanced search to metrics list by @jdorn in #2866
- Advanced search improvements by @Auz in #2804 #3001 #2988
- Add support for serving robots.txt in packages/back-end by @Kevin-Chant in #2957 #2961
Bug Fixes
- Change permission level for creating experiments by @Kevin-Chant in #2906
- Enable remote eval tag for supported sdks by @bryce-fitzsimons in #3012
- Improve whitespace handling in feature flag rules by @bryce-fitzsimons in #2872
- Fix 'undefined' appearing in nodeSDK instructions by @tzjames in #2946
- Fix div by zero error from prior rescaling by @lukesonnet in #2901
- Fix the plan name for self-hosted Pro by @tzjames in #3008
- Improving URLs in markdown by @Auz in #2928
- Remove confusing Stop Time field when stopping an experiment by @jdorn in #2819
- Report minor fixes by @lukesonnet in #2984
- Always show the disable toggle if something is hidden, fix rule render by @bryce-fitzsimons in #2883
- Treat pending review linked FFs the same as draft by @bryce-fitzsimons in #2884
- Fix DateGraph datapoint alignment by @itsgrimetime @bryce-fitzsimons in #2838 #2802
- Remove invite info from GET /organization response by @jdorn in #2948
- Added border to borderless box by @Auz in #2902
Docs and Misc
- Various typo and spelling fixes in docs by @mattdp @lukebrawleysmith @Hephaest @royalfig @Alletkla
- Add dashboard and impact documentation by @lukesonnet in #2805
- Add docs for pre-launch checklist by @royalfig in #2816
- Add documentation for Custom Markdown by @msamper in #2783
- Add docs for troubleshooting SRM errors with URL Redirect tests by @august-growthbook in #2897 #2873
- Docs/version updates for various SDKs by @madhuchavva in #3025
- Chrome extension docs by @Auz in #3014
- [tech debt] Cleanup toInterface by @romain-growthbook in #2918
- Generate webhook docs from code by @romain-growthbook in #2893
- Remove @Back-end imports by @tzjames in #2982
- Remove beta tag from REST API and Fact Tables by @lukesonnet in #3002
- Update AI bot styling for better contrast by @royalfig in #2886
- Added CI workflow for auto approving doc changes by @gazzdingo in #3021
- Telemetry data updates by @lukesonnet @Kevin-Chant @gazzdingo
- Include winston transport for open telemetry by @bryce-fitzsimons in #2806
- Add service name/namespace/version to open telemetry tracing by @romain-growthbook in #3024
New Contributors
- @Hephaest made their first contribution in #2833
- @brentdur made their first contribution in #1407
- @madhuchavva made their first contribution in #2964
- @Alletkla made their first contribution in #2970
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Highlights
- Auto Fact Tables by @mknowlton89 in #2623 #2641 #2749
- Impact Analysis by @lukesonnet in #2192 #2367
- REST Endpoints for Projects, Environments, and more by @romain-growthbook in #2529 #2505 #2542 #2609 #2733
- Major App Performance Improvements by @tzjames and @jdorn in #2646 #2634 #2639 #2692
- Advanced Search Filter Syntax by @Auz in #2604 #2548
- Multi-Org Improvements by @tzjames in #2629 #2568 #2607 #2590 #2621
Other Changes
- Date format option for String targeting attributes (easier before/after conditions) by @msamper in #2667
- Ability to disable roles (enterprise custom roles) by @mknowlton89 in #2537
- Databricks Pipeline Mode by @lukesonnet in #2598
- Added namespace ids and label by @Auz in #2670
- Copy rule to environment(s) by @bryce-fitzsimons in #2688 #2697
- Add guardrails to CSV export by @lukesonnet in #2576
- Add setting to limit data used for test queries by @lukesonnet in #2724
- Added clientId to allow customers to track GrowthBook calls in Databricks by @Auz in #2628
- Added option to only show active rules by @Auz in #2730
- Add SDK Webhook payload formatters, update docs by @bryce-fitzsimons in #2721
- Added member sorting and searching by @Auz in #2704
- Added SQL Server request timeout settings by @Auz in #2493
- Super admin improvements by @Auz in #2078 #2588
- Bump gbstats to 0.8.0 for pypi and new stats engine by @lukesonnet in #2632
- Save/display owner in fact tables by @romain-growthbook in #2767
- Improve date display for features, experiments, and metrics by @bryce-fitzsimons in #2627 #2684
- Added additional auth options for Presto by @Auz in #2720
- Custom Markdown by @msamper in #2753 #2769
- Event webhook / audit log improvements by @romain-growthbook in #2752 #2622 #2705 #2756 #2743 #2732 #2763
- Bayesian power analysis by @lukebrawleysmith in #2507
- Fire webhook when SDK Connection is created by @gazzdingo in #2592
- Allow pull-only GrowthBook Cloud Proxy use cases by @bryce-fitzsimons in #2679
Bug Fixes
- [back-end] Inject template variables for entire fact table SQL by @lukesonnet in #2686
- [back-end] SDK Payload bugs by @msamper @jdorn in #2690 #2593
- [back-end] Datasource bugs by @tzjames @lukesonnet in #2571 #2606
- [back-end] Various permission fixes by @mknowlton89 in #2555 #2587 #2596
- [back-end] Various bug fixes with enterprise organizations by @tzjames in #2772 #2642 #2643 #2656 #2645
- [back-end] Fixed feature revision data in REST api response by @gazzdingo in #2683
- [back-end] Fix experiment notification by @romain-growthbook in #2725
- [back-end] Fix legacy webhooks bug by @jdorn in #2569
- [back-end] Fix experiment updates when schedule = never by @jdorn in #2682
- [back-end] Fix conversion window logic for Mixpanel by @lukesonnet in #2774
- [ui] Various UI bugs by many contributors
- [sdk] JS SDK version 1.1.0 by @Kevin-Chant and others in #2685 #2638 #1719 #2516 #2709 #2717 #2708 #2637
Docs and Misc
- Copy updates to various doc pages by many contributors
- Add glossary to docs by @royalfig in #2746
- Add google analytics to docs site by @royalfig in #2700
- Add hypgen params to auth redirect by @bryce-fitzsimons in #2744
- Add useArchetype, use it to mutate/refetch when needed by @romain-growthbook in #2377
- Dev env cleanup by @tzjames in #2653 #2751 #2599
- BaseClass improvements by @mknowlton89 @jdorn in #2662 #2591 #2317
- Remove update environments from putOrganization by @mknowlton89 in #2564
- Fix code typo in React Native docs by @carlosen14 in #2702
- More Open Telemetry metrics and better tags by @tzjames in #2619 #2615
- Prepare new Radix-based design system by @gazzdingo in #2338
- Use Stripe Smokescreen for SSRF protection on GrowthBook Cloud by @tzjames in #2711 #2675 #2750 #2647
- Docusaurus version bump by @lukesonnet in #2578 #2605
New Contributors
- @Bohdan-Kim made their first contribution in #1424
- @natasha-growthbook made their first contribution in #2583
- @akash-ind made their first contribution in #2565
- @royalfig made their first contribution in #2698
- @ken-browning made their first contribution in #1719
- @carlosen14 made their first contribution in #2702
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Highlights
- Edge SDKs for Cloudflare, Fastly, and Lambda by @bryce-fitzsimons in #2243 #2450
- Bayesian priors and CUPED by @lukesonnet in #2406 #2371 #2531 #2519 #2514 #2518 #2379
- Custom Roles by @mknowlton89 in #2552 + 40 more PRs
- JSON Feature Validation and Editing Improvements by @jdorn in #2389
- SRM, Failed Query, and Multiple Exposure Slack/Discord Alerts by @romain-growthbook in #2378 #2431
- New Get Started Flow by @msamper in #2523 #2559 #2558
Plus, major SDK updates for JS, React, Python, Ruby, Java, C#, Flutter, Kotlin, Swift, and Elixir!
Other Changes
- Project-scoped feature approval settings by @gazzdingo in #2445
- Power Calculator (alpha release) by @romain-growthbook @lukebrawleysmith in #2395 #2455 #2446 #2497 #2489
- Improve past experiment imports by @jdorn in #2437
- Add a queries page to view all queries run on a Data Source by @msamper in #2323
- Added Support for performing Assume role with Athena Connections by @thatguyfig in #2471
- Upgrade ClickHouse client; add request_timeout by @lukesonnet in #2349
- Allow uppercase letters in feature keys by @jdorn in #2491
- Change Default feature value to OFF instead of foo by @cameronmoten in #2436
- Feature Regex Validator - Validate Name of Feature Id's with custom rules by @cameronmoten in #2479
- Must select value type of new feature instead of defaulting to Boolean by @jdorn in #2553
- Track last login date for users by @bttf in #2357
- Add attribute name to delete modal by @Auz in #2366
- Ability to edit owner for fact metrics by @lukesonnet in #2540
- Added description to attributes by @Auz in #2530
- Added metric description to metric selector for experiments by @Auz in #2521
- Adds difference type chooser to Reports by @lukesonnet in #2403
- Allow copying and pasting metrics in analysis settings by @bttf in #2368
- Create new admin putOrg endpoint by @tzjames in #2509
- Grant first user on a new installation super admin access by @bttf in #2520
- Add extra settings to fact metric REST API by @lukesonnet in #2405
- Experiment REST improvements by @bttf in #2435 #2453
- Update to Node.js v20 by @gazzdingo in #2397 #2408 #2190 #2401 #2410
Bug Fixes
- SDK Webhooks Refactor by @jdorn in #2483 #2533 #2510
- Try to prevent automatic hyperlinks in email messages by @bryce-fitzsimons in #2411
- Bump OTEL auto-instrumentation library; Fix metrics by @bttf in #2387
- Add pagination support for LaunchDarkly Importer by @jdorn in #2428
- Add typeguard for filtering out undefined by @Kevin-Chant in #2502
- Bug: Not showing duplicate experiment option by @mknowlton89 in #2477
- Fix feature draft base revision bug by @jdorn in #2400
- Fix handling incorrect login method errors by @tzjames in #2393
- Fix namespace usage includes inactive experiments by @jdorn in #2343
- Fix project roles missing when invitation accepted by @jdorn in #2394
- Fix sticky bucket assignment lookup (not strict enough), update tests by @bryce-fitzsimons in #2358
- Fixed up colors for dark mode on modal by @gazzdingo in #2424
- Hide value column when the sql no longer has it by @tzjames in #2440
- Move highlightExp to resolve dashboard crashes by @lukesonnet in #2501
- Only rely on stats.denominator for true ratio metrics in Results UI by @lukesonnet in #2470
- OpenVisualEditorLink - Ensure we send creds msg when bypassing checks by @bttf in #2350
- Quick fix to check for multiple values that are pasted into the invite modal by @Auz in #2458
- Set results UI denominator correctly when it is 0 by @lukesonnet in #2448
- Undo re-flipping risk for inverse metrics by @lukesonnet in #2356
- Update copy on experiment without results by @Kevin-Chant in #2498
- hotfix: refreshing archetype view/data when archetypes change by @bryce-fitzsimons in #2369
- Remove percent rollouts with 0% from SDK Payload by @jdorn in #2415
Docs and Misc
- Major docs updates by @jdorn, @mattdp, @tzjames, @chuchuva, and others in #2473 + 12 more PRs
- Zero-downtime GrowthBook Cloud deploys by @tzjames in #2476
- Add yarn generate-sdk-report command by @mkurkov in #2197
- Added a main GitHub profile image for readme by @Auz in #2392
- Split out general settings by @romain-growthbook in #2462
- Update json-shema-to-zod to 2.1.0 by @lukesonnet in #2464
- Various License Server Fixes by @tzjames in #2404 + 15 more PRs
New Contributors
- @mkurkov made their first contribution in #2197
- @cameronmoten made their first contribution in #2436
- @Kevin-Chant made their first contribution in #2498
- @thatguyfig made their first contribution in #2471
- @chuchuva made their first contribution in #2517
Full Changelog: v2.9.0...v3.0.0
v2.9.0
Highlights
- URL Redirect Tests by @msamper in #2272 #2121 #2062 #2261
- Feature Flag Approvals by @gazzdingo in #2120 #2282 #2245 #2322
- Quantile Metrics (Median, P99, etc.) by @lukebrawleysmith, @lukesonnet in #2266 #2289 #2274 #2300 #2223
- Project-scoped Attributes and Environments by @mknowlton89, @bryce-fitzsimons in #2179 #2226 #2187 #2258
- New HTML Script Tag SDK by @jdorn in #2241 #2156 #2210
- Webhook Improvements with Slack and Discord Support by @romain-growthbook in #2150 #2312 #2239 #2204
- New LaunchDarkly Importer by @jdorn, @bryce-fitzsimons in #2094 #2227
Other Changes
- Support sticky bucketing for remote eval by @bryce-fitzsimons in #2202
- Remove old experiment UI by @bryce-fitzsimons in #2214 #2222
- Add hashing v1 notifications/selector when SDK doesn't support v2 by @bryce-fitzsimons in #2097
- Expose user impact of experiment changes in "Make Changes" flow by @bryce-fitzsimons in #2313
- Removes auto metric form from new data source modal. by @mknowlton89 in #1919
- Update Pre-Launch Checklist for experiments by @mknowlton89 in #2138 #2303
- Update the SQL editor for identifier joins by @Sai-Karthik-Tumu in #2307
- Switch to official ClickHouse client by @lukesonnet in #2251 #2236
- IdP-Initiated Flow for Cloud Enterprise SSO by @jdorn in #2208
- Improve members UI by @bryce-fitzsimons in #2247
- CSP and header update to disallow framing by @bryce-fitzsimons in #2191
- Impose a max password length (for DDOS) by @bryce-fitzsimons in #2189
- Removing logs with auth tokens by @jdziat in #2327
Bug Fixes
- Add custom aggregation to config yaml export by @lukesonnet in #2297
- Adds word-wrapping to data type column on attribute table. by @mknowlton89 in #2285
- Adjusted dashboard legend to handle organizations with 17+ projects by @Auz in #2275
- Bugfix: Error for updating Visual Changeset URL patterns by @bttf in #2296
- Ensure secondary cta gets displayed in Modal by @lukesonnet in #2291
- Escape single quotes in Traffic SQL query by @lukesonnet in #2186
- Fix bug when adding rule to feature in a new environment by @jdorn in #2281
- Fix default GA4 binomial SQL to not reference value_params by @jdorn in #2216
- Minor report fixes by @lukesonnet in #2221
- Trigger SDK Payload update when JS snippets change for visual changesets by @bryce-fitzsimons in #2212
- When generating the SDK payload, always use context w/ full read access by @jdorn in #2196
- Remove double navigation in the experiments list by @BarreiroT in #2270
- Various permission bug fixes by @mknowlton89 in #2233 #2234 #2232 #2195 #2172 #2235 #2259 #2173 #2215
- Fixed SDK Webhook signature when the payload body is empty by @gazzdingo in #2334
Docs and Misc
- Holdout docs by @lukesonnet in #2207
- A/A Testing and Troubleshooting docs by @lukesonnet in #2230
- Add Activation Metric as potential SRM cause by @lukesonnet in #2250
- Add discriminator field to OpenAPI schema by @jdorn in #2268
- Added documentation for getting GrowthBook to work with GTM and GA4's dataLayer by @Auz in #2170
- Update project-scoped docs by @mknowlton89 in #2198 #2199
- Code refs - Add'l docs by @bttf in #2178 #2185
- Fix alpha in sequential testing doc by @lukesonnet in #2262
- Fix metric window graphic and add second example by @lukesonnet in #2181
- Update swift version to 1.0.47 by @bryce-fitzsimons in #2213
- Trial/license overhaul by @tzjames in #2295 #2205 #2271 #2188 #2294 #2308 #2284 #2314 #2310 #2315 #2304
- Dependency updates - Typescript, Next.js, and lots of others by @jdorn in #2218 #2059
- Begin Permissions overhaul by @mknowlton89 in #2277 #2206 #2263 #2183
- Begin Data model overhaul by @jdorn in #2092 #2298
- Finish removing relative imports in the front-end by @romain-growthbook in #2140
- Sample data generator improvements by @romain-growthbook in #2267 #2273
- Remove Visual Editor V1 by @romain-growthbook in #2256
- Clean up General Settings page code by @bttf in #2162
- Ts expect error cleanup by @romain-growthbook in #2254
- Update webhooks and approval flow docs by @romain-growthbook in #2328 #2306
New Contributors
- @Sai-Karthik-Tumu made their first contribution in #2307
- @jdziat made their first contribution in #2327
Note: 2.9.0 Docker tag updated on Apr 15 to fix self-hosted enterprise license bugs
Full Changelog: v2.8.0...v2.9.0