|
| 1 | +# Changelog |
| 2 | + |
| 3 | +This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 4 | + |
| 5 | +## v3.2.0 (`latest`) |
| 6 | + |
| 7 | +## New |
| 8 | + |
| 9 | +- Set customizations for an embedded chart with `setRenderingSpecOverride` method. |
| 10 | +- Set customizations for an embedded chart for the initial render with `renderingSpec` property in `EmbedChartOptions`. |
| 11 | +- Get customizations set on an embedded chart with `getRenderingSpecOverride` method. |
| 12 | +- Get chart channels for an embedded chart with `getChannels` method. |
| 13 | +- Get customizable chart axes for an embedded chart with `getCustomizableAxes` method. |
| 14 | + |
| 15 | +## v3.2.0-beta.1 (`beta`) |
| 16 | + |
| 17 | +## New |
| 18 | + |
| 19 | +- Set customizations for an embedded chart with `setRenderingSpecOverride` method. |
| 20 | +- Set customizations for an embedded chart for the initial render with `renderingSpec` property in `EmbedChartOptions`. |
| 21 | +- Get customizations set on an embedded chart with `getRenderingSpecOverride` method. |
| 22 | +- Get chart channels for an embedded chart with `getChannels` method. |
| 23 | +- Get customizable chart axes for an embedded chart with `getCustomizableAxes` method. |
| 24 | + |
| 25 | +## v3.1.0 |
| 26 | + |
| 27 | +## Dashboard embedding new methods and embedding options |
| 28 | + |
| 29 | +- Get an image of an embedded dashboard by using the new `getImage()` method to get PNG in `base64` or `binary` encoding |
| 30 | +- Get the chart data from an embedded dashboard chart by using the new method `getData()` for dashboard charts |
| 31 | +- Added a new `charts` field in the dashboard embedding options for `createDashboard()` that allows you to configure the charts individually in an embedded dashboard. For now, you can specify a different filter for every chart in the embedded dashboard. |
| 32 | + |
| 33 | +## v3.1.0-beta.0 |
| 34 | + |
| 35 | +## Dashboard embedding new methods and embedding options |
| 36 | + |
| 37 | +- Get an image of an embedded dashboard by using the new `getImage()` method to get PNG in `base64` or `binary` encoding |
| 38 | +- Get the chart data from an embedded dashboard chart by using the new method `getData()` for dashboard charts |
| 39 | +- Added a new `charts` field in the dashboard embedding options for `createDashboard()` that allows you to configure the charts individually in an embedded dashboard. For now, you can specify a different filter for every chart in the embedded dashboard. |
| 40 | + |
| 41 | +## v3.0.0 |
| 42 | + |
| 43 | +## Breaking Changes |
| 44 | + |
| 45 | +- Minimum `refresh tolerance` when `autoRefresh` is enabled for embedded chart and dashboard is increased from 10 seconds to 60 seconds. Please see [API doc](https://www.npmjs.com/package/@mongodb-js/charts-embed-dom?activeTab=readme#API) for more information under `Refresh Tolerance` section. |
| 46 | +- `setFilter` method for embedded chart and dashboard now will only accept a `JavaScript plain object` with valid [query operators](https://www.mongodb.com/docs/manual/reference/operator/query/#query-selectors). If an array is supplied, an exception will be raised. |
| 47 | +- The return format of `getFilter` and `getHighlight` methods for embedded chart is updated from EJSON to deserialised EJSON. E.g.`{ beds: {$gt: {$numberInt: '2'}}} ` will now become `{ beds: {$gt: 2}}`. |
| 48 | + |
| 49 | +## New |
| 50 | + |
| 51 | +### Dashboard Embedding |
| 52 | + |
| 53 | +- Dashboard |
| 54 | + |
| 55 | + - You can now set filter on a dashboard level for embedded dashboard through: |
| 56 | + - `setFilter` method for embedded dashboard. |
| 57 | + - `filter` option during embedded dashboard initialisation |
| 58 | + - Added `getFilter` method to retrieve the current filter set to the embedded dashboard |
| 59 | + |
| 60 | +### Chart Embedding |
| 61 | + |
| 62 | +- `getImage` method to get png of the embedded chart in `base64` or `binary` encoding. `Table Chart` is not supported for this method. |
| 63 | + |
| 64 | +## v3.0.0-beta.0 |
| 65 | + |
| 66 | +## Breaking Changes |
| 67 | + |
| 68 | +- Minimum `refresh tolerance` when `autoRefresh` is enabled for embedded chart and dashboard is increased from 10 seconds to 60 seconds. Please see [API doc](https://www.npmjs.com/package/@mongodb-js/charts-embed-dom?activeTab=readme#API) for more information under `Refresh Tolerance` section. |
| 69 | +- `setFilter` method for embedded chart and dashboard now will only accept a `JavaScript plain object` with valid [query operators](https://www.mongodb.com/docs/manual/reference/operator/query/#query-selectors). If an array is supplied, an exception will be raised. |
| 70 | +- The return format of `getFilter` and `getHighlight` methods for embedded chart is updated from EJSON to deserialised EJSON. E.g.`{ beds: {$gt: {$numberInt: '2'}}} ` will now become `{ beds: {$gt: 2}}`. |
| 71 | + |
| 72 | +## New |
| 73 | + |
| 74 | +### Dashboard Embedding |
| 75 | + |
| 76 | +- Dashboard |
| 77 | + |
| 78 | + - You can now set filter on a dashboard level for embedded dashboard through: |
| 79 | + - `setFilter` method for embedded dashboard. |
| 80 | + - `filter` option during embedded dashboard initialisation |
| 81 | + - Added `getFilter` method to retrieve the current filter set to the embedded dashboard |
| 82 | + |
| 83 | +- Dashboard Chart |
| 84 | + - N/A |
| 85 | + |
| 86 | +### Chart Embedding |
| 87 | + |
| 88 | +- `getImage` method to get png of the embedded chart in `base64` or `binary` encoding. `Table Chart` is not supported for this method. |
| 89 | + |
| 90 | +## v2.3.1 |
| 91 | + |
| 92 | +## Fixed |
| 93 | + |
| 94 | +- Security patch to update `jsonwebtoken` package version to `v9.0.0`. |
| 95 | + |
| 96 | +## v2.3.0 |
| 97 | + |
| 98 | +## Dashboard embedding new methods |
| 99 | + |
| 100 | +- Set/Get a filter for a chart in an embedded dashboard. |
| 101 | + - `setFilter` and `getFilter` for embedded dashboard charts. |
| 102 | +- Set/Get a highlight for a chart in an embedded dashboard. |
| 103 | + - `setHighlight` and `getHighlight` for embedded dashboard charts |
| 104 | + |
| 105 | +## Authenticated Embedding |
| 106 | + |
| 107 | +- Add support for authenticated chart and dashboard embedding with [`realm-web`](https://www.npmjs.com/package/realm-web) SDK. |
| 108 | + |
| 109 | +## v2.3.0-beta.2 (`beta`) |
| 110 | + |
| 111 | +### Dashboard embedding new methods |
| 112 | + |
| 113 | +- Set or get a highlight for a chart in an embedded dashboard with the new methods we added - `setHighlight` and `getHighlight` for embedded dashboard charts |
| 114 | + |
| 115 | +### Authenticated embedding |
| 116 | + |
| 117 | +- Added support for authenticated embedding with `realm-web` SDK |
| 118 | + |
| 119 | +## v2.3.0-beta.1 |
| 120 | + |
| 121 | +### Dashboard embedding new methods |
| 122 | + |
| 123 | +- Set or get a filter for a chart in an embedded dashboard with the new methods we added - `setFilter` and `getFilter` for embedded dashboard charts. |
| 124 | + |
| 125 | +## v2.2.0 |
| 126 | + |
| 127 | +### 🎉 Dashboard embedding |
| 128 | + |
| 129 | +- Embed dashboard in authenticated or unauthenticated way by using `sdk.createDashboard` |
| 130 | + |
| 131 | +### Chart embedding |
| 132 | + |
| 133 | +- Added support for getting chart data via `chart.getData()` |
| 134 | + |
| 135 | +## v2.2.0-beta.2 |
| 136 | + |
| 137 | +### Dashboard embedding (beta) |
| 138 | + |
| 139 | +- Added functionality to embed dashboard |
| 140 | + |
| 141 | +## v2.1.0 |
| 142 | + |
| 143 | +### 🎉 Interactive click events and applying chart highlights |
| 144 | + |
| 145 | +- Subscribe to click events on an embedded chart using `chart.addEventListener`. The `payload` |
| 146 | + parameter in the event callback contains details on the chart element clicked. |
| 147 | +- Apply a highlight on an embedded chart using `chart.setHighlight` |
| 148 | + |
| 149 | +### 🛠 Performance Improvements |
| 150 | + |
| 151 | +- Improved performance for authenticated embedded charts, by eliminating redundant API calls. |
| 152 | + |
| 153 | +## v2.1.0-beta.1 |
| 154 | + |
| 155 | +### Interactive click events (beta) |
| 156 | + |
| 157 | +- Added the ability to filter click events by role to ensure the "hand" mouse cursor only appears over interactive elements. |
| 158 | + |
| 159 | +### Performance Improvements |
| 160 | + |
| 161 | +- Improved performance for authenticated embedded charts, by eliminating redundant API calls. |
| 162 | + |
| 163 | +## v2.0.1 |
| 164 | + |
| 165 | +### Bug fixes |
| 166 | + |
| 167 | +- fix: Publish the UMD bundle of `@mongodb-js/charts-embed-dom` that was mistakenly omitted from the `v2.0.0` release. |
| 168 | + |
| 169 | +## v2.0.0 |
| 170 | + |
| 171 | +### Breaking Changes |
| 172 | + |
| 173 | +Changed the [Content-Security-Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) of the `iframe` created by the SDK to include the following `sandbox` directive flags: |
| 174 | + |
| 175 | +- **`allow-popups`**: Allows popups to function (eg: `window.open`, `target="_blank"`). |
| 176 | +- **`allow-popups-to-escape-sandbox`**: Allows a sandboxed document to open new windows without forcing the sandboxing flags upon them. |
| 177 | + |
| 178 | +This change fixes the issue that prevented hyperlinks within the `iframe` document from opening a new tab/window. While this change does not change an explicit SDK API, it does change the implicit behaviour of the security model, and therefore warranted a major version bump. |
| 179 | + |
| 180 | +## v1.2.0-beta.1 |
| 181 | + |
| 182 | +### Interactive click events (beta) |
| 183 | + |
| 184 | +- Subscribe to click events on a chart using `chart.addEventListener('click', eventHandler);` The `payload` |
| 185 | + parameter in the event callback contains details on the chart element clicked. In this beta release, not |
| 186 | + all chart types are supported, and the payload format is subject to change. |
| 187 | + |
| 188 | +## v1.1.3 |
| 189 | + |
| 190 | +### Bug Fixes |
| 191 | + |
| 192 | +- Fixed an issue (#14) where types for `mongodb-stitch-browser-sdk` were missing causing builds with TSC to fail. |
| 193 | + |
| 194 | +## v1.1.2 |
| 195 | + |
| 196 | +### Improved API Documentation |
| 197 | + |
| 198 | +In this release, we've added generated API docs to the NPM package bundle in the `docs` folder. We've also corrected some minor typos and omissions in the README. |
| 199 | + |
| 200 | +### Bug Fixes |
| 201 | + |
| 202 | +- We fixed a minor bug in the `maxAgeData` prop where it would ignore when the prop was set to `0`. This resulted in cached data still being served to the client. |
| 203 | + |
| 204 | +## v1.1.1 |
| 205 | + |
| 206 | +### Improved Rollup documentation |
| 207 | + |
| 208 | +We've now added an example `rollup.config.js` to the package README to help Rollup users get started with the SDK. |
| 209 | + |
| 210 | +## v1.1.0 |
| 211 | + |
| 212 | +### Chart Caching Support |
| 213 | + |
| 214 | +In the latest Charts cloud release, we’ve given developers more control over the caching and refresh behaviour, which can improve performance and user experience. The new `maxDataAge` option allows you to specify when data should be retrieved from the cache or re-queried from the database. This can also be combined with the `autoRefresh` option to ensure charts are always kept current. |
| 215 | + |
| 216 | +Note: as part of this change, we have deprecated the `refreshInterval` property, as the same functionality is accessible through the new `autoRefresh` and `maxDataAge` properties. |
| 217 | + |
| 218 | +### Minor fixes |
| 219 | + |
| 220 | +- Moved `ts-node` to a dev-dependency |
| 221 | + |
| 222 | +## v1.0.0 |
| 223 | + |
| 224 | +### Highlights |
| 225 | + |
| 226 | +- 🎉 First release of the Charts Embedding SDK |
| 227 | +- 🛠 Dynamically set the current theme, refresh interval, and filter |
| 228 | +- 🔒 Support for embedding authentication providers (Custom / Realm / Google) |
| 229 | + |
| 230 | +### 🎉 First release of the Charts Embedding SDK |
| 231 | + |
| 232 | +We're excited to show you the first v1.0.0 release of the embedding SDK. For comprehensive documentation and guides, head on over to https://github.com/mongodb-js/charts-embed-sdk, or https://docs.mongodb.com/charts/master/embedding-charts-sdk/. |
| 233 | + |
| 234 | +### 🛠 Embedding SDK Commands |
| 235 | + |
| 236 | +The SDK unlocks interactivity in your charts that simply wasn't possible with IFrame embedding. |
| 237 | + |
| 238 | +- You can now dynamically toggle between dark mode using `setTheme` |
| 239 | +- Adjust how frequently your chart refreshes using `setRefreshInterval` |
| 240 | +- Control what data is shown in your chart using `setFilter` |
| 241 | + |
| 242 | +### 🔒 Support for Embedding Authentication Providers |
| 243 | + |
| 244 | +You can now control who can view your embedded charts by enabling authenticated embedding. With this setting enabled, you will need to pass in a function to `getUserToken` that returns a JWT with claims |
| 245 | +representing the user attempting to view the Chart. For more information, check out our authenticated embedding example here: https://github.com/mongodb-js/charts-embed-sdk/tree/master/examples/charts/authenticated-custom-jwt |
0 commit comments