Releases: growthbook/growthbook
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
v2.8.0
Highlights
- Prerequisite Feature Flags by @bryce-fitzsimons in #1993 #2153 #2142 #2146 #1987 #2147 #2149
- Feature Flag Code Refs by @bttf in #2081 #2075 #2066 #2151 #2152
- New "No Access" role by @mknowlton89 in #2087 #2048 #2055 #2076 #2046 #2126 #2108 #2065 #2074 #2073
- Official (Version Controlled) Metrics and new REST endpoints by @jdorn in #2007 #2054
- Webhooks for SDK Connections by @gazzdingo in #1894
- Easier Low Code Integration for Shopify, Wordpress, Webflow by @jdorn in #2113 #2114 #2103
Other Changes
- Add Metric Lookback Windows by @lukesonnet in #2058
- Option to ignore zeros in Percentile Capping by @lukesonnet in #2058
- JumpCloud SSO Support by @jdorn @Auz in #2109 #2107
- Add RA fields to config.yaml by @lukesonnet in #2100
- Allow no-auth smtp configuration by @xevgeny in #2122
- Make id join finder more efficient in how it picks needed joins by @lukesonnet in #2049 #2021
- Add OpenTelemetry instrumentation to background jobs by @bttf in #2119
- QueryRunner & error logging improvements by @itsgrimetime in #2083
- Add maxAge cache setting for JS SDK (default to 24 hours) by @jdorn in #2089 #2090
- Allow accessing or deleting visual changes during running or stopped experiments by @bttf in #2102
Bug Fixes
- Easier setup for BigQuery data sources - dropdown to choose data set by @mknowlton89 in #2095
- Fix broken preview links for multi-page Visual Editor experiments by @bttf in #1883
- Don't cache error responses in feature repository by @bryce-fitzsimons in #2115
- Add schema if specified in auto metrics SQL by @lukesonnet in #2141
- Change autometrics to have lowercase columns to work with Snowflake by @lukesonnet in #2148
- Fix saved group deletion when using config.yml by @gorkalaucirica in #2132
- Fix uncaught Postgres SASL error on empty password by @jdorn in #2098
- Fixes issue where MoreMenu wasn't being displayed due to a z-index issue by @mknowlton89 in #2110
- Make owner optional in experiment POST endpoint. by @romain-growthbook in #2133
- Make sure feature ID cannot be empty. by @romain-growthbook in #2134
- Redirect to register screen when login via our cloud and there is no prior account found in the client's local storage. by @romain-growthbook in #2139
- Remove extra check on licenses for SSO by @tzjames in #2155
- Switch variation chooser and baseline chooser around by @lukesonnet in #2129
- Hotfix: proxy errorTxt: fix typo by @bryce-fitzsimons in #2127
- Fix: commans not allowed in targeting condition "in list" values by @mknowlton89 in #2106
- Downgrade Snowflake SDK to fix proxy bugs by @jdorn in #2079
- Pass difference type through to results graph by @lukesonnet in #2088
- Pass through ra enabled to stats engine by @lukesonnet in #2093
- fix ui bug with proxy connection errors by @bryce-fitzsimons in #2067
- Fix health queries in clickhouse by @lukesonnet in #2080
- Add LIMIT to SQL queries by @jdorn in #2124
- Only show the latest 25 revisions for a feature by @jdorn in #2056
- REST API - Add missing permission checks for Visual changeset updates by @bttf in #2057
Docs & Miscellaneous
- New docs page on self-hosting GrowthBook in production by @jdorn in #2145
- Improve directions for using Namespaces by @august-growthbook in #2045
- Add carryover bias article to docs by @lukesonnet in #2050
- Add GitHub workflow to build and publish a branch to Docker Hub by @jdorn in #2053
- Add jupyter notebook command to repository by @lukesonnet in #2128
- Add optimized fact table test queries by @lukesonnet in #2071
- Bump allowable python versions to < 4.0 by @lukesonnet in #2118
- Cleanup curl doc examples. by @romain-growthbook in #2135
- Do not run preview environments for drafts by @bttf in #2068
- Fix enterprise package type error fragility by @jdorn in #2061
- Handle US Bank payment option by @tzjames in #2070
- Update rudderstack.mdx by @mattdp in #2144
- Updated the node version in the docs to be 16.x from 18.x by @gazzdingo in #2136
- Fixing typo, changing sigma2 to sigma by @lukebrawleysmith in #2125
New Contributors
- @xevgeny made their first contribution in #2122
- @lukebrawleysmith made their first contribution in #2125
- @gorkalaucirica made their first contribution in #2132
- @romain-growthbook made their first contribution in #2133
Full Changelog: v2.7.0...v2.8.0
v2.7.1
What's Changed
Fix for a high severity security vulnerability. Applies to all self-hosted GrowthBook installations that are not using SSO for authentication.
This release also includes several fully backwards compatible, non-breaking changes and new features that will be part of the upcoming 2.8 release.
Although there are no known exploits in the wild, we highly recommend updating as soon as possible.
v2.7.0
Highlights
- Sticky bucketing support in Javascript/React SDKs by @bryce-fitzsimons in #1818 #2026
- Re-usable targeting conditions via Saved Groups by @jdorn in #1978
- Fact Table query optimization (massive cost savings) by @jdorn @lukesonnet in #1923 #2032 #2008 #1975 #1804 #2011 #1671 #2023
- Experiment Health Tab by @msamper @lukesonnet in #1944 #1941 #1942 #1946 #1822 #1873
- New guided UI for making changes to live experiments by @bryce-fitzsimons in #1835
- New Best Practices Guide by @Auz in #1986 #1992
Other Changes
- Validate advanced targeting condition JSON before saving by @jdorn in #1985
- CPU and Memory performance improvements for stats engine by @jdorn @lukesonnet in #1823
- Secure uploaded files by @tzjames in #1686 #2024
- Ability to control roles through Okta SCIM by @mknowlton89 in #1909 #1779
- Debugging improvements for fact table filters by @jdorn in #1945
- Better error messages for Databricks by @lukesonnet in #1960
- Auto-recover from Athena SlowDown error by @jdorn in #1955
- Switch to official Snowflake SDK by @jdorn in #1936
- Add support for http_proxy env vars for SSO, licenses, and webhooks by @jdorn @tzjames in #1913 #2029
- SDK compatibility versioning by @bryce-fitzsimons in #1893 #2013 #2019 #1937 #1935
- Display helpful query stats for BigQuery (bytes scanned, execution time, etc.) by @jdorn in #2042
- Centralized License Server by @tzjames in #1980 #2022 #1977 #2000 #1895 #1979 #2009 #2035 #1839 #2010 #2030 #1984
- Initial support for a "No Access" role by @mknowlton89 in #1997 #1998 #2015
- Add Random On-Screen Celebration Service by @mknowlton89 in #1826
Bug Fixes
- Add metric overrides to mixpanel by @lukesonnet in #2016
- Added fix for new line errors on private keys when importing data sources by @Auz in #1951
- Always set snapshot analysis settings to default with new snapshot by @lukesonnet in #1958
- JS SDK - Wait for document.body to load by @bttf in #2002
- Fix blocked information schema endpoints by @lukesonnet in #1959
- Fix bug - metric capping cannot be updated on old metrics by @jdorn in #1930
- Fix bug: Changing defaultValue to empty string hides the "publish" CTA by @jdorn in #1890
- Fix environment permission bugs by @jdorn in #1899
- Fix experiments with broken namespaces by @jdorn in #1953
- Fix multiple exposures min percent percentage display on settings page by @bryce-fitzsimons in #1950
- Fix undefined property 'length' errors on experiments by @jdorn in #1991
- Fix unnecessary activation fact metric data retrieval (and two minor FE bugs) by @lukesonnet in #1922
- Fixed date off by one in graph by @gazzdingo in #1917
- Modify cascading window logic for excluding in-progress conversions by @lukesonnet in #1921
- Use non-deterministic quantile for ClickHouse capping by @lukesonnet in #1908
- Visual Editor - Append Query Params util - Fix util; Add tests by @bttf in #1897
- Ensure report FE knows difference type is relative by @lukesonnet in #2001
- Fix unnecessary formatting of proportion metrics by @lukesonnet in #1981
- Add existence check for settings by @tzjames in #1954
- Fix CUPED availability messaging on toggle by @bryce-fitzsimons in #1911
- Fix discrepancies with FF's sort, baseline row chooser, fix stats engine regression by @bryce-fitzsimons in #2014
- Fix styling issues with carousel buttons by @bryce-fitzsimons in #2006
- Fixed percent to be 1% for the multipleExposureMinPercent settings by @gazzdingo in #2031
Docs & Miscellaneous
- Add Shopify & Webflow How-To Docs Articles by @mknowlton89 in #1870 #1886
- Add docs for CUPED config.yaml spec by @lukesonnet in #1910
- CI/CD workflow improvements by @bttf in #1867 #1898 #1929
- Add semantic versioning docs by @bttf in #1885
- Added audit log information. Adjusted text for readability by @Auz in #1996
- GitHub Integration - Authentication by @bttf in #1926 #1971
- Replace Papercups with Pylon for in-app chat by @mknowlton89 in #1948
- Team Docs by @mknowlton89 in #1889
- Update README.md for docs site by @august-growthbook in #1900
- Update SCIM documentation to include groups by @msamper in #1887
- Dependency security updates by @bttf in #1963 #1931
- Add AI chatbot to the docs site by @august-growthbook in #1918 #1902
- Docs Typo: Seamlessly instead of seemlessly by @mattdp in #1969
New Contributors
Full Changelog: v2.6.0...v2.7.0
v2.6.0
Highlights
- Team-level Permissions by @msamper and @mknowlton89 in #1762 #1640 #1657 #1816
- Stale Feature Flag Detection by @bttf in #1806
- Pre-bundled script tag for low-code platforms like Webflow and Shopify by @jdorn in #1773 #1828
- Major visual editor improvements by @bttf in #1792 #1785 #1837
- Feature Drafts Refactor by @jdorn in #1763 #1832
- Customize the pre-launch checklist for experiments by @mknowlton89 in #1778
- Runtime Saved Groups and new Targeting UI by @jdorn in #1726 #1794
- View absolute and scaled impact on experiment results by @lukesonnet in #1766 #1827 #1784 #1824
Other Changes
- JS/React SDKs: Pause SSE stream when tab is out of focus by @bryce-fitzsimons in #1755
- Multi-Project SDK Connections by @jdorn in #1834
- Cancel link now actually cancels queries in BigQuery/Athena by @jdorn in #1847
- Ability to change the default role for new users by @mknowlton89 in #1737
- Env vars for log level, Mongo URL, and cache headers by @itsgrimetime, @tzjames, @gazzdingo in #1808 #1820
- Multi-org improvements by @tzjames and @bryce-fitzsimons in #1744 #1817 #1776 #1758
- Specifying a Snowflake Warehouse is now optional by @lukesonnet in #1764
- New welcome video introducing GrowthBook by @Auz in #1749
- Teams page now lists members in alphabetical order by @bttf in #1864
Bug Fixes
- Fix bug: SDK payloads not refreshing by @jdorn in #1815 #1796 #1780
- Add new SDK test cases for comparison operators by @jdorn in #1805
- Allow users to delete their own personal access tokens. by @mknowlton89 in #1754
- Correct typing of
useFeatureValue
for auto generate types by @ethanneff in #1730 - Fix JS SDK bug with $exists operator and undefined values by @jdorn in #1781
- Fix SDK connection form: payload security state change bug by @bryce-fitzsimons in #1813
- Various fact table fixes by @lukesonnet in #1850 #1761 #1759 #1713
- Fix Archetypes bug by @Auz in #1786
- Handle race conditions in the feature toggle endpoint by @jdorn in #1848
- Only show Out of Date when adding metrics not in the snapshot by @lukesonnet in #1829
- Small fix for undefined currency when editing advanced metrics options by @Auz in #1836
- Update putDataSource to handle removing description. by @mknowlton89 in #1765
- Adding ellipsis on tags when above 20 and adding wrapping by @gazzdingo in #1787
- bugfix: Add template variables on creation by @tzjames in #1803
- Fix Snowflake query tagging (add application name) by @Auz in #1777
- Allow ad-hoc analysis on experiment results with partial query failures by @bryce-fitzsimons in #1875
Documentation and Misc Changes
- "Chance to Win" not "Chance to Beat Control" by @mattdp in #1751
- (Docs) - Setup SCIM with Okta by @mknowlton89 in #1735
- Added Docs for Archetypes by @Auz in #1750
- Added notice about how results are calculated for assignment testing by @Auz in #1802
- Improved billing page on GrowthBook Cloud by @mknowlton89 in #1760
- Clarified language around tracking callbacks by @Auz in #1830
- Make the state of sticky-bucketing clearer on the Experiments page by @danicheg in #1783
- Update visual-editor.mdx by @august-growthbook in #1756
New Contributors
- @danicheg made their first contribution in #1783
- @gazzdingo made their first contribution in #1788
- @ethanneff made their first contribution in #1730
Full Changelog: v2.5.0...v2.6.0
v2.5.0
Highlights
- Metric Fact Tables by @jdorn in #1667 #1700 #1727
- SCIM support for Okta (other IdPs coming soon) by @mknowlton89 @msamper in #1731
- Remote Eval mode for Javascript/React SDKs by @bryce-fitzsimons in #1677 #1294
- Data Pipeline mode to reduce BigQuery/Snowflake costs by @lukesonnet in #1610 #1573 #1701 #1691 #1707 #1714
- AI copy suggestions in the Visual Editor by @bttf in #1307
- User Archetypes - simulate feature assignment directly within the UI by @Auz in #1687 #1712
- REST API endpoints to create and update feature flags by @bttf in #1478
- Support for self-hosted multi-org deployments (Enterprise Only) by @tzjames in #1706
Other Changes
- Improved Experiment velocity graphs by @Auz in #1733
- Stats engine selection for experiments by @bryce-fitzsimons in #1658
- Auto-metric improvements and bug fixes by @mknowlton89 in #1522 #1682 #1585 #1728
- Include intraday tables as part of the default GA4 queries by @tzjames in #1673
- Experiment search improvements by @jdorn in #1685
- Filter metrics on experiment results by tag by @bryce-fitzsimons in #1746
- Add scheduling back to feature experiment rules by @jdorn in #1660
- Invalidate other browser sessions when password is changed by @bryce-fitzsimons in #1669
- Top Nav layout and page title improvements by @jdorn in #1679
- More robust image uploading when using S3 or Google Cloud Storage by @tzjames in #1674
- Better cloning support for visual experiments by @bryce-fitzsimons in #1709
- Tag Snowflake queries for easier cost accounting by @Auz in #1703
- Show adjusted confidence intervals when using p-value correction by @lukesonnet in #1736 #1740
Bug Fixes
- Experiment result page UI fixes by @bryce-fitzsimons in #1663 #1668 #1665 #1662 #1676 #1678 #1681 #1689 #1695
- Fixed loading state not being set correctly in the welcome frame by @Auz in #1705
- Add UTC timezone to Clickhouse toDateTime by @m0003r in #1711
Documentation and Misc Changes
- Auto refresh instructions for react native by @tzjames in #1652
- Fix typos in Flickering section in experiments.mdx by @august-growthbook in #1672
- Hint that Url targeting attribute is required for visual editor URL targeting by @dazultra in #1697
- Make it clear Visual editor is compatible with GTM implementation by @dazultra in #1698
- Correct a typo in visual-editor.mdx by @august-growthbook in #1675
- Change admin -> superAdmin by @tzjames in #1699
- Self-Host docs improvement - Make a little less confusing by @bttf in #1656
- Update the side menu path to find attributes. by @tzjames in #1717
- Show rendered sql and error in EditSqlModal by @tzjames in #1595
- Remove role pill from TopNav by @mknowlton89 in #1659
New Contributors
- @august-growthbook made their first contribution in #1672
- @dazultra made their first contribution in #1697
- @m0003r made their first contribution in #1711
Full Changelog: v2.4.0...v2.5.0
v2.4.0
Highlights
- New experiment page layout and results table by @bryce-fitzsimons, @lukesonnet, @jdorn in #1515 #1631 #1639 #1627 #1611 #1625 #1621 #1624 #1649 #1540 #1638 #1614 #1629 #1562
- More powerful feature flag experiments by @jdorn in #1560 #1650 #1139 #1556 #1588 #1618
- Built-in sample data to quickly demo the full GrowthBook UI by @tinahollygb, @lukesonnet in #1499 #1487 #1486
- New streamlined onboarding process by @mknowlton89, @jdorn, @bttf in #1578 #1592 #1493
- DataDog feature flag integration by @mknowlton89 in #1653
- BigQuery performance and cost improvements by @lukesonnet in #1587 #1609
- Full Handlebars support for SQL template variables (+ other fixes) by @tzjames in #1541 #1568 #1616 #1559
Other Changes
- Multi-platform Docker image (x86 + arm) by @tzjames in #1533
- New organization setting to specify a default data source by @mknowlton89 in #1514
- Improvements to the GrowthBook CLI when used in a CI/CD environment by @tinahollygb in #1608
- Better UI when entering ids into saved groups by @msamper in #1476 #1613
- Revoke all active sessions when a password is reset by @jdorn in #1648
- SSE streaming support in the Java SDK by @tinahollygb in #1530
- Show partial experiment results if a small number of metric queries fail by @jdorn in #1557
- Project selector is now searchable by @bryce-fitzsimons in #1597
- Improvements to the experiment REST endpoints by @lukesonnet in #1563
Bug Fixes
- JS SDK - streaming updates only work on initial page load by @jdorn in #1603
- Visual editor with only javascript changes excluded from SDK payload by @jdorn in #1645
- Add missing athena table prefix by @tzjames in #1555
- Fix Databricks date_format for dimensions by @lukesonnet in #1564
- Don't show Slack link in SideBar if user doesn't have permission by @mknowlton89 in #1635
- Uncaught errors in SQL schema browser by @Auz in #1548
- Uncaught error when condition JSON is invalid by @jdorn in #1565
- GrowthBook Cloud SSE fixes by @bryce-fitzsimons in #1520
- Z-index bug with draft feature changes alert by @Auz in #1539
- Purge GrowthBook Cloud CDN after an SDK connection changes by @msamper in #1475
- Databricks did not require a default catalog by @mknowlton89 in #1566
- Various fixes and improvements with the connection info for BigQuery by @Auz in #1571
- Unable to delete tags with special URL characters by @Auz in #1546
- Broken test queries for GA by @tzjames in #1538
- LaunchDarkly import error when accessing optional _maintainer by @tinahollygb in #1583
- Allow for fractional metric conversion window hours by @bryce-fitzsimons in #1600
Documentation and Misc Changes
- Add databricks connection docs by @lukesonnet in #1598
- Add permission detail to docs by @mknowlton89 in #1602
- Add GA4 to list of data sources that support auto metrics by @mknowlton89 in #1516
- Add docs section on compound data source identifiers by @bttf in #1647
- Documentation site improvements and reorganization by @Auz in #1482
- GTM docs: add loadFeatures() to first code snippet to avoid confusion by @bryce-fitzsimons in #1551
- Location update for Saved Groups in docs by @tzjames in #1529
- Minor adjustment of docs by @Auz in #1626
- Recommendations for mongo by @tzjames in #1535
- Show all three BigQuery permissions in docs by @tzjames in #1527
- Update FAQ: user id -> hashAttribute by @bryce-fitzsimons in #1620
- Update bigquery.mdx to use project ids not names by @tzjames in #1576
- Update docs to mention change to emailDomains by @tzjames in #1510
- Updates docs to reflect new location of Namespaces in the SideNav. by @mknowlton89 in #1523
- Add options for url randomization to FAQ by @lukesonnet in #1594
- Add back-end support for team management by @msamper in #1582
- CI preview environment cleanup by @bttf in #1537 #1526
- Extract validateFeatureValue and related utils into shared by @bttf in #1525
- Fix & add ensureFloat implementations by @tzjames in #1579
- Refactor permissions by @mknowlton89 in #1543 #1553 #1630
- Refactor sql tests to be more descriptive by @tzjames in #1577
- Remove mongoose model exports for AuditModel and WatchModel and refactor by @msamper in #1542
- Remove old experiment page UI by @bryce-fitzsimons in #1552
- Remove unused SQL Integration functions by @tzjames in #1580
- Validate exposure queries by @tzjames in #1503
- New super admin page for managing organizations by @jdorn in #1591
- Support for Node.js 18 during local development by @jdorn in #1524
Full Changelog: v2.3.0...v2.4.0
v2.3.0
Highlights
- 🧪 Redesigned experiment page and left nav by @bryce-fitzsimons and @jdorn in #1145 #1403 #1446 #1450 #1474
- 🚀 New GrowthBook Cloud CDN with realtime purging and streaming by @jdorn, @bryce-fitzsimons in #1397 #1426
- 🧢 Percentile capping (Winsorization) by @lukesonnet in #1371
- 🏃 SQL performance improvements (up to 40% faster queries in some cases) by @lukesonnet in #1334 #1409 #1406
- 🔍 Automatic metric discovery when using Segment, Rudderstack, or GA4 by @mknowlton89 in #1412 #1423 #1419
- 🔪 Optional confirmation step for feature kill switches by @bryce-fitzsimons in #1381
- 💤 New REST endpoints for metrics and experiments by @bttf and @aresowj in #1361 #1388 #1466
- 🔭 Observability for self-hosted GrowthBook instances (OpenTelemetry) by @jdorn in #1441
- 🏴 Import feature flags from LaunchDarkly by @tinahollygb in #1404
- 📜 Restructured docs with new info on data source connection and configuration by @tzjames in #1425 #1438 #1464
- ⚡ Support for self-hosted GrowthBook Proxy in front of GrowthBook Cloud by @bryce-fitzsimons in #1429
- More control over how winning visual editor variations are released to users by @jdorn in #1501
- 🎯 New UI for managing targeting attributes by @bryce-fitzsimons in #1360
Bug Fixes
- Fix bugs with Update Data button on experiment results by @jdorn in #1373
- Fix when visual editor URL is relative (missing http://) by @jdorn in #1377
- GA4 BigQuery bug when using count or revenue metrics by @SGudbrandsson in #1463
- Fix imports in Hybrid SSR docs by @edgarlr in #1379
- Various bug fixes by @tinahollygb in #1418
- Gracefully handle SIGTERM and SIGINT by @bryce-fitzsimons in #1435
- Experiment results not showing in presentations by @Auz in #1459
- Custom report query errors not showing up by @mknowlton89 in #1507
- CI/CD fixes by @bttf in #1341 #1387 #1445 #1483 #1488 #1495
- Made organization field in the logs ECS-compliant by @themao in #1458
- Give more roles manageTags permissions by @lukesonnet in #1491
- Fix ratio metric display by @lukesonnet in #1465
Misc Changes
- Support deleting linked resources when deleting a project by @tinahollygb in #1432
- Better SQL editing experience for experiment assignment queries by @mknowlton89 in #1370
- Add GrowthBook label to BigQuery query jobs by @msamper in #1452
- Add env var for API rate limit max by @itsgrimetime in #1386
- Add descriptions to segments and dimensions by @mknowlton89 in #1496
- Import tags when using config.yml for metrics by @lukesonnet in #1395
- Improve Ruby and Java SDK docs by @tinahollygb in #1460 #1467
- Sticky column headers for features list by @Satyam-G5 in #1479
- Ability to view and edit visual editor changes within the GrowthBook App by @bttf in #1394 #1415
- Improved warning message when using version string targeting in a nonsupported SDK by @tzjames in #1508
- Link to Slack community in live chat widget by @mknowlton89 in #1384
- Update docs for secure attribute hashing, change order of salting by @bryce-fitzsimons in #1392
- Remove devcontainers and improve contributing guide by @tzjames in #1411 #1414 #1268
- Changes to prepare for improved Sample Dataset onboarding flows by @tinahollygb in #1477 #1484 #1494
- Update visual editor docs by @mattdp in #1471 #1511
License Change
We made some changes to clarify the license for GrowthBook. All files not within packages/enterprise
continue to use the permissive MIT license. Files within that enterprise directory have their own proprietary GrowthBook Enterprise license. This change will allow us to more clearly differentiate the Open Source core product and our Enterprise offerings.
We remain fully dedicated to Open Source and improving our core platform for everyone. In fact, all of the highlights listed above in this release are 100% free and open.
New Contributors
- @itsgrimetime made their first contribution in #1386
- @edgarlr made their first contribution in #1379
- @msamper made their first contribution in #1452
- @aresowj made their first contribution in #1388
- @Satyam-G5 made their first contribution in #1479
- @SGudbrandsson made their first contribution in #1463
- @themao made their first contribution in #1458
Full Changelog: v2.2.0...v2.3.0
v2.2.0
Highlights
- Visual Editor - Inject custom JavaScript and edit inline CSS properties by @bttf in #1278
- Version string comparison operators in client-side SDKs by @tinahollygb in #1286 #1321
- JSON Schema validation for feature flag values by @Auz in #1262 #1352
- SHA256 hashing for sensitive targeting attributes by @bryce-fitzsimons in #1270 #1351
- Personal Access Tokens and Readonly keys for the REST API by @tinahollygb in #1265 #1346
- Ability to change the currency for revenue metrics (default USD) by @mknowlton89 in #1275
- New FullStory data source integration by @Auz in #1271
- MongoDB 6.0 support by @tinahollygb in #1299 #1327 #1331 #1332 #1359
- Many new GrowthBook CLI commands by @tinahollygb in growthbook/growthbook-cli#31 growthbook/growthbook-cli#34
Breaking Changes
Most users should have no issues updating to version 2.2, but there are a few important changes to be aware of:
- MongoDB 3.4 and lower is no longer supported (3.4 was released in 2016 and reached end-of-life in 2020)
- Some uncommon MongoDB connection options are no longer supported and must be removed from your connection URL if present:
autoReconnect
,reconnectTries
,reconnectInterval
,ha
,haInterval
,secondaryAcceptableLatencyMS
,acceptableLatencyMS
,connectWithNoPrimary
,domainsEnabled
,bufferMaxEntries
. See a list of all supported connection options at https://www.mongodb.com/docs/drivers/node/v4.13/fundamentals/connection/connection-options/
Bug Fixes
- Unable to delete projects by @bryce-fitzsimons in #1354
- Fix MSSQL date format bug and add testing code by @lukesonnet in #1323
- JS SDK - fix import errors with Typescript 5 by @leachtucker in #1338
- JS SDK - localStorage cache not getting new TTL when updating features by @jdorn in #1295
- JS SDK - Make targeting condition
$in
and$nin
operators work with arrays by @jdorn in #1246 - Allow metric lookback window to be any number by @lukesonnet in #1280
- Allow 0 value p-values through to UI by @lukesonnet in #1296
- Add support for multiple MsSql Database Connections by @mknowlton89 in #1304
- Various front-end and query builder bugfixes by @lukesonnet in #1345
- Broken links in the experiment status emails by @Auz in #1348
- Show missing "unarchive" and "delete" options for archived experiments by @bryce-fitzsimons in #1358
- Datasource settings get wiped when hitting 'back' in the form by @mknowlton89 in #1357
Other Changes
- No longer able to create new Google Analytics UA data sources by @Auz in #1271
- Remove
|
prefix from production Docker logs by @bryce-fitzsimons in #1353 - Add mypy to gbstats by @lukesonnet in #1276
- Beta - Auto-detect metrics in your data source by @mknowlton89 in #1283
- Visual Editor - Add documentation around CSP requirements by @bttf in #1285
- Invite users, max seats reached: add generic failure modal by @bryce-fitzsimons in #1308 #1325
- Remove some ts-expect-error statements by @tinahollygb in #1314
- Snapshot refactor migration by @jdorn in #1284 #1329
- Update NextJS docs to work with App Router by @bttf in #1335
- Script to generate test cases for strictly typed SDKs by @tinahollygb in #1339
- SDK form: update encryption support, make settings more permissive with warnings by @bryce-fitzsimons in #1350
New Contributors
- @leachtucker made their first contribution in #1338
Full Changelog: v2.1.1...v2.2.0