@fluidframework/datastore 2.23.0 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +285 -253
- package/api-report/datastore.legacy.alpha.api.md +1 -2
- package/dist/channelDeltaConnection.d.ts.map +1 -1
- package/dist/channelDeltaConnection.js +6 -19
- package/dist/channelDeltaConnection.js.map +1 -1
- package/dist/dataStoreLayerCompatState.d.ts +35 -0
- package/dist/dataStoreLayerCompatState.d.ts.map +1 -0
- package/dist/dataStoreLayerCompatState.js +74 -0
- package/dist/dataStoreLayerCompatState.js.map +1 -0
- package/dist/dataStoreRuntime.d.ts +8 -6
- package/dist/dataStoreRuntime.d.ts.map +1 -1
- package/dist/dataStoreRuntime.js +13 -19
- package/dist/dataStoreRuntime.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/channelDeltaConnection.d.ts.map +1 -1
- package/lib/channelDeltaConnection.js +6 -19
- package/lib/channelDeltaConnection.js.map +1 -1
- package/lib/dataStoreLayerCompatState.d.ts +35 -0
- package/lib/dataStoreLayerCompatState.d.ts.map +1 -0
- package/lib/dataStoreLayerCompatState.js +70 -0
- package/lib/dataStoreLayerCompatState.js.map +1 -0
- package/lib/dataStoreRuntime.d.ts +8 -6
- package/lib/dataStoreRuntime.d.ts.map +1 -1
- package/lib/dataStoreRuntime.js +15 -19
- package/lib/dataStoreRuntime.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +19 -20
- package/src/channelDeltaConnection.ts +8 -19
- package/src/dataStoreLayerCompatState.ts +85 -0
- package/src/dataStoreRuntime.ts +23 -25
- package/src/packageVersion.ts +1 -1
- package/prettier.config.cjs +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,46 @@
|
|
|
1
1
|
# @fluidframework/datastore
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- New ILayerCompatDetails property on FluidDataStoreRuntime, MockFluidDataStoreContext and MockFluidDataStoreRuntime ([#24166](https://github.com/microsoft/FluidFramework/pull/24166)) [fac75c8258](https://github.com/microsoft/FluidFramework/commit/fac75c8258c979a6b15a70b9cf84df09f62b3e93)
|
|
8
|
+
|
|
9
|
+
A new optional property, `ILayerCompatDetails`, has been added to `FluidDataStoreRuntime`. This property is used by
|
|
10
|
+
`FluidDataStoreContext` in the Runtime layer to validate that the Runtime and DataStore layers are compatible.
|
|
11
|
+
|
|
12
|
+
`ILayerCompatDetails` has also been added to `MockFluidDataStoreRuntime` and `MockFluidDataStoreContext` which are used for
|
|
13
|
+
testing.
|
|
14
|
+
|
|
15
|
+
Important: this property is intended for use by Fluid Framework code only. No code outside the Fluid Framework should use or depend on this property in any way.
|
|
16
|
+
|
|
17
|
+
## 2.30.0
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- The process and processDocumentSchemaOp functions have been removed ([#24018](https://github.com/microsoft/FluidFramework/pull/24018)) [bc35d543d5](https://github.com/microsoft/FluidFramework/commit/bc35d543d58c7e4bf28944b09d645cc26bf28a29)
|
|
22
|
+
|
|
23
|
+
`process` has been replaced by `processMessages` from the following:
|
|
24
|
+
|
|
25
|
+
- `FluidDataStoreRuntime`
|
|
26
|
+
- `IDeltaHandler`
|
|
27
|
+
- `IFluidDataStoreChannel`
|
|
28
|
+
- `MockFluidDataStoreRuntime`
|
|
29
|
+
- `MockDeltaConnection`
|
|
30
|
+
|
|
31
|
+
`processDocumentSchemaOp` has been replaced by `processDocumentSchemaMessages` from `DocumentsSchemaController`.
|
|
32
|
+
|
|
33
|
+
See the [deprecation release note](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.5.0#user-content-the-process-function-on-ifluiddatastorechannel-ideltahandler-mockfluiddatastoreruntime-and-mockdeltaconnection-is-now-deprecated-22840) for more details.
|
|
34
|
+
|
|
3
35
|
## 2.23.0
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
|
6
38
|
|
|
7
|
-
-
|
|
39
|
+
- The FluidDataStoreRuntime.process function is now deprecated ([#23866](https://github.com/microsoft/FluidFramework/pull/23866)) [3f44d43e985](https://github.com/microsoft/FluidFramework/commit/3f44d43e985fea02ea349d024d3ae5d85f7eddd6)
|
|
8
40
|
|
|
9
|
-
|
|
41
|
+
A new function `processMessages` has been added in place of `process`. The new function will be called to process multiple messages instead of a single one on the data store runtime. This is part of a feature called "op bunching" where contiguous ops of a given type and to a given data store / DDS are bunched and sent together for processing.
|
|
10
42
|
|
|
11
|
-
|
|
43
|
+
Note that `process` may still be called in scenarios where this data store runtime (Datastore layer) is running with an older version of data store context (Runtime layer) in the same client. This is to support Fluid layer compatibility.
|
|
12
44
|
|
|
13
45
|
## 2.22.0
|
|
14
46
|
|
|
@@ -22,18 +54,18 @@ Dependency updates only.
|
|
|
22
54
|
|
|
23
55
|
### Minor Changes
|
|
24
56
|
|
|
25
|
-
-
|
|
57
|
+
- The createDataStoreWithProps APIs on ContainerRuntime and IContainerRuntimeBase have been removed ([#22996](https://github.com/microsoft/FluidFramework/pull/22996)) [bd243fb292](https://github.com/microsoft/FluidFramework/commit/bd243fb2927915d87c42486e21ee0c990962a9a7)
|
|
26
58
|
|
|
27
|
-
|
|
28
|
-
|
|
59
|
+
`ContainerRuntime.createDataStoreWithProps` and `IContainerRuntimeBase.createDataStoreWithProps`
|
|
60
|
+
were [deprecated in version 0.25.0](https://github.com/microsoft/FluidFramework/blob/main/BREAKING.md#icontainerruntimebase_createdatastorewithprops-is-removed) and have been removed.
|
|
29
61
|
|
|
30
|
-
|
|
31
|
-
|
|
62
|
+
Replace uses of these APIs with `PureDataObjectFactory.createInstanceWithDataStore` and pass in props via the `initialState`
|
|
63
|
+
parameter.
|
|
32
64
|
|
|
33
|
-
|
|
65
|
+
These changes were originally announced in version 0.25.0. See the following issues for more details:
|
|
34
66
|
|
|
35
|
-
|
|
36
|
-
|
|
67
|
+
- [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
|
|
68
|
+
- [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
|
|
37
69
|
|
|
38
70
|
## 2.13.0
|
|
39
71
|
|
|
@@ -51,19 +83,19 @@ Dependency updates only.
|
|
|
51
83
|
|
|
52
84
|
### Minor Changes
|
|
53
85
|
|
|
54
|
-
-
|
|
86
|
+
- The inbound and outbound properties have been removed from IDeltaManager ([#22282](https://github.com/microsoft/FluidFramework/pull/22282)) [45a57693f2](https://github.com/microsoft/FluidFramework/commit/45a57693f291e0dc5e91af7f29a9b9c8f82dfad5)
|
|
55
87
|
|
|
56
|
-
|
|
88
|
+
The inbound and outbound properties were [deprecated in version 2.0.0-rc.2.0.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.0.0-rc.2.0.0.md#container-definitions-deprecate-ideltamanagerinbound-and-ideltamanageroutbound) and have been removed from `IDeltaManager`.
|
|
57
89
|
|
|
58
|
-
|
|
90
|
+
`IDeltaManager.inbound` contained functionality that could break core runtime features such as summarization and processing batches if used improperly. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
59
91
|
|
|
60
|
-
|
|
92
|
+
Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
|
|
61
93
|
|
|
62
|
-
|
|
94
|
+
#### Alternatives
|
|
63
95
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
96
|
+
- Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
|
|
97
|
+
- Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
|
|
98
|
+
- Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
|
|
67
99
|
|
|
68
100
|
## 2.5.0
|
|
69
101
|
|
|
@@ -89,153 +121,153 @@ Dependency updates only.
|
|
|
89
121
|
|
|
90
122
|
### Minor Changes
|
|
91
123
|
|
|
92
|
-
-
|
|
124
|
+
- Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
|
|
93
125
|
|
|
94
|
-
|
|
126
|
+
Update package implementations to use TypeScript 5.4.5.
|
|
95
127
|
|
|
96
128
|
## 2.0.0-rc.4.0.0
|
|
97
129
|
|
|
98
130
|
### Minor Changes
|
|
99
131
|
|
|
100
|
-
-
|
|
132
|
+
- Type Erase IFluidDataStoreRuntime.deltaManager [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
|
|
101
133
|
|
|
102
|
-
|
|
103
|
-
|
|
134
|
+
Make IFluidDataStoreRuntime.deltaManager have an opaque type.
|
|
135
|
+
Marks the following types which were reachable from it as alpha:
|
|
104
136
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
137
|
+
- IConnectionDetails
|
|
138
|
+
- IDeltaSender
|
|
139
|
+
- IDeltaManagerEvents
|
|
140
|
+
- IDeltaManager
|
|
141
|
+
- IDeltaQueueEvents
|
|
142
|
+
- IDeltaQueue
|
|
143
|
+
- ReadOnlyInfo
|
|
112
144
|
|
|
113
|
-
|
|
145
|
+
As a temporary workaround, users needing access to the full delta manager API can use the `@alpha` `toDeltaManagerInternal` API to retrieve its members, but should migrate away from requiring access to those APIs.
|
|
114
146
|
|
|
115
|
-
|
|
147
|
+
Implementing a custom `IFluidDataStoreRuntime` is not supported: this is now indicated by it being marked with `@sealed`.
|
|
116
148
|
|
|
117
149
|
## 2.0.0-rc.3.0.0
|
|
118
150
|
|
|
119
151
|
### Major Changes
|
|
120
152
|
|
|
121
|
-
-
|
|
153
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
122
154
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
155
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
156
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
157
|
+
TypeScript types and implementation code.
|
|
126
158
|
|
|
127
|
-
|
|
159
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
128
160
|
|
|
129
|
-
|
|
130
|
-
|
|
161
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
162
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
131
163
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
164
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
165
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
166
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
167
|
+
regarding the module and moduleResolution options.
|
|
136
168
|
|
|
137
|
-
|
|
138
|
-
|
|
169
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
170
|
+
to distinguish stable APIs from those that are in development.**
|
|
139
171
|
|
|
140
172
|
## 2.0.0-rc.2.0.0
|
|
141
173
|
|
|
142
174
|
### Minor Changes
|
|
143
175
|
|
|
144
|
-
-
|
|
176
|
+
- container-runtime: New feature: ID compression for DataStores & DDSs ([#19859](https://github.com/microsoft/FluidFramework/issues/19859)) [51f0d3db73](https://github.com/microsoft/FluidFramework/commits/51f0d3db737800e1c30ea5e3952d38ff30ffc7da)
|
|
145
177
|
|
|
146
|
-
|
|
178
|
+
### Key changes
|
|
147
179
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
180
|
+
1. A new API IContainerRuntimeBase.generateDocumentUniqueId() is exposed. This API will opportunistically generate IDs in short format (non-negative numbers). If it can't achieve that, it will return UUID strings. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required. I.e. any place that uses uuid() and stores data in container is likely candidate to start leveraging this API.
|
|
181
|
+
2. Data store internal IDs (IDs that are auto generated by FF system) will opportunistically be generated in shorter form. Data stores created in detached container will always have short IDs, data stores created in attached container will opportunistically be short (by using newly added IContainerRuntimeBase.generateDocumentUniqueId() capability)
|
|
182
|
+
3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
|
|
151
183
|
|
|
152
|
-
|
|
184
|
+
### Implementation details
|
|
153
185
|
|
|
154
|
-
|
|
186
|
+
1. Container level ID Compressor can now be enabled with delay. With such setting, only new IContainerRuntimeBase.generateDocumentUniqueId() is exposed (ID Compressor is not exposed in such case, as leveraging any of its other capabilities requires future container sessions to load ID Compressor on container load, for correctness reasons). Once Container establishes connection and any changes are made in container, newly added API will start generating more compact IDs (in most cases).
|
|
155
187
|
|
|
156
|
-
|
|
188
|
+
### Breaking changes
|
|
157
189
|
|
|
158
|
-
|
|
190
|
+
1. DDS names can no longer start with "\_" symbol - this is reserved for FF needs. I've validated that's not an issue for AzureClient (it only creates root object by name, everything else is referred by handle). Our main internal partners almost never use named DDSs (I can find only 4 instances in Loop).
|
|
159
191
|
|
|
160
|
-
|
|
192
|
+
### Backward compatibility considerations
|
|
161
193
|
|
|
162
|
-
|
|
163
|
-
|
|
194
|
+
1. Data store internal IDs could collide with earlier used names data stores. Earlier versions of FF framework (before DataStore aliasing feature was added) allowed customers to supply IDs for data stores. And thus, files created with earlier versions of framework could have data store IDs that will be similar to names FF will use for newly created data stores ("A", ... "Z", "a"..."z", "AA", etc.). While such collision is possible, it's very unlikely (almost impossible) if user-provided names were at least 4-5 characters long.
|
|
195
|
+
2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
|
|
164
196
|
|
|
165
|
-
|
|
197
|
+
### Minor changes
|
|
166
198
|
|
|
167
|
-
|
|
168
|
-
|
|
199
|
+
1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
|
|
200
|
+
2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
|
|
169
201
|
|
|
170
|
-
-
|
|
202
|
+
- Deprecated error-related enums have been removed ([#19067](https://github.com/microsoft/FluidFramework/issues/19067)) [59793302e5](https://github.com/microsoft/FluidFramework/commits/59793302e56784cfb6ace0e6469345f3565b3312)
|
|
171
203
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
204
|
+
Error-related enums `ContainerErrorType`, `DriverErrorType`, `OdspErrorType` and `RouterliciousErrorType` were previously
|
|
205
|
+
deprecated and are now removed. There are replacement object-based enumerations of `ContainerErrorTypes`,
|
|
206
|
+
`DriverErrorTypes`, `OdspErrorTypes` and `RouterliciousErrorTypes`. Refer to the release notes of [Fluid Framework version
|
|
207
|
+
2.0.0-internal.7.0.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.0.0-internal.7.0.0) for details
|
|
208
|
+
on the replacements.
|
|
177
209
|
|
|
178
|
-
-
|
|
210
|
+
- container-definitions: ILoaderOptions no longer accepts arbitrary key/value pairs ([#19306](https://github.com/microsoft/FluidFramework/issues/19306)) [741926e225](https://github.com/microsoft/FluidFramework/commits/741926e2253a161504ecc6a6451d8f15d7ac4ed6)
|
|
179
211
|
|
|
180
|
-
|
|
212
|
+
ILoaderOptions has been narrowed to the specific set of supported loader options, and may no longer be used to pass arbitrary key/value pairs through to the runtime.
|
|
181
213
|
|
|
182
214
|
## 2.0.0-rc.1.0.0
|
|
183
215
|
|
|
184
216
|
### Minor Changes
|
|
185
217
|
|
|
186
|
-
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
218
|
+
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
219
|
+
|
|
220
|
+
The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
|
|
221
|
+
|
|
222
|
+
- @fluidframework/gitresources
|
|
223
|
+
- @fluidframework/server-kafka-orderer
|
|
224
|
+
- @fluidframework/server-lambdas
|
|
225
|
+
- @fluidframework/server-lambdas-driver
|
|
226
|
+
- @fluidframework/server-local-server
|
|
227
|
+
- @fluidframework/server-memory-orderer
|
|
228
|
+
- @fluidframework/protocol-base
|
|
229
|
+
- @fluidframework/server-routerlicious
|
|
230
|
+
- @fluidframework/server-routerlicious-base
|
|
231
|
+
- @fluidframework/server-services
|
|
232
|
+
- @fluidframework/server-services-client
|
|
233
|
+
- @fluidframework/server-services-core
|
|
234
|
+
- @fluidframework/server-services-ordering-kafkanode
|
|
235
|
+
- @fluidframework/server-services-ordering-rdkafka
|
|
236
|
+
- @fluidframework/server-services-ordering-zookeeper
|
|
237
|
+
- @fluidframework/server-services-shared
|
|
238
|
+
- @fluidframework/server-services-telemetry
|
|
239
|
+
- @fluidframework/server-services-utils
|
|
240
|
+
- @fluidframework/server-test-utils
|
|
241
|
+
- tinylicious
|
|
242
|
+
|
|
243
|
+
- Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
244
|
+
|
|
245
|
+
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
|
|
246
|
+
changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
|
|
215
247
|
|
|
216
248
|
## 2.0.0-internal.8.0.0
|
|
217
249
|
|
|
218
250
|
### Major Changes
|
|
219
251
|
|
|
220
|
-
-
|
|
252
|
+
- datastore: Removed `FluidDataStoreRuntime.load(...)` [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
221
253
|
|
|
222
|
-
|
|
223
|
-
|
|
254
|
+
The static method `FluidDataStoreRuntime.load(...)` has been removed. Please migrate all usage of this method to
|
|
255
|
+
`FluidDataStoreRuntime` constructor.
|
|
224
256
|
|
|
225
|
-
-
|
|
257
|
+
- container-definitions: Fix ISnapshotTreeWithBlobContents and mark internal [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
226
258
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
259
|
+
`ISnapshotTreeWithBlobContents` is an internal type that should not be used externally. Additionally, the type didn't
|
|
260
|
+
match the usage, specifically in runtime-utils where an `any` cast was used to work around undefined blobContents. The
|
|
261
|
+
type has been updated to reflect that blobContents can be undefined.
|
|
230
262
|
|
|
231
|
-
-
|
|
263
|
+
- runtime-definitions: Removed IFluidRouter from IFluidDataStoreChannel and FluidDataStoreRuntime [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
|
|
232
264
|
|
|
233
|
-
|
|
234
|
-
|
|
265
|
+
The `IFluidRouter` property has been removed from `IFluidDataStoreChannel` and `FluidDataStoreRuntime`. Please migrate
|
|
266
|
+
all usage to the `IFluidDataStoreChannel.entryPoint` API.
|
|
235
267
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
268
|
+
See
|
|
269
|
+
[Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
270
|
+
for more details.
|
|
239
271
|
|
|
240
272
|
## 2.0.0-internal.7.4.0
|
|
241
273
|
|
|
@@ -257,74 +289,74 @@ Dependency updates only.
|
|
|
257
289
|
|
|
258
290
|
### Major Changes
|
|
259
291
|
|
|
260
|
-
-
|
|
292
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
261
293
|
|
|
262
|
-
|
|
294
|
+
This included the following changes from the protocol-definitions release:
|
|
263
295
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
296
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
297
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
298
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
299
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
300
|
+
ISignalMessageBase interface that contains common members.
|
|
301
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
270
302
|
|
|
271
|
-
-
|
|
303
|
+
- runtime-definitions: `bindToContext` API removed [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
272
304
|
|
|
273
|
-
|
|
274
|
-
|
|
305
|
+
`bindToContext` has been removed from `FluidDataStoreRuntime`, `IFluidDataStoreContext` and
|
|
306
|
+
`MockFluidDataStoreContext`. This has been deprecated for several releases and cannot be used anymore.
|
|
275
307
|
|
|
276
|
-
-
|
|
308
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
277
309
|
|
|
278
|
-
|
|
310
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
279
311
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
312
|
+
- @fluidframework/gitresources: 2.0.1
|
|
313
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
314
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
315
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
316
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
317
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
318
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
319
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
320
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
321
|
+
- @fluidframework/server-services: 2.0.1
|
|
322
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
323
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
324
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
325
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
326
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
327
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
328
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
329
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
330
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
331
|
+
- tinylicious: 2.0.1
|
|
300
332
|
|
|
301
|
-
-
|
|
333
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
302
334
|
|
|
303
|
-
|
|
335
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
304
336
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
337
|
+
- `BaseContainerRuntimeFactory`
|
|
338
|
+
- `RuntimeFactory`
|
|
339
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
340
|
+
- `FluidDataStoreRuntime`
|
|
309
341
|
|
|
310
|
-
|
|
311
|
-
|
|
342
|
+
See [testContainerRuntimeFactoryWithDefaultDataStore.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/test/test-utils/src/testContainerRuntimeFactoryWithDefaultDataStore.ts) for an example implemtation of `provideEntryPoint` for ContainerRuntime.
|
|
343
|
+
See [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L83) for an example implementation of `provideEntryPoint` for DataStoreRuntime.
|
|
312
344
|
|
|
313
|
-
|
|
345
|
+
Subsequently, various `entryPoint` and `getEntryPoint()` endpoints have become required. Please see [containerRuntime.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/containerRuntime.ts) for example implementations of these APIs.
|
|
314
346
|
|
|
315
|
-
|
|
347
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
316
348
|
|
|
317
|
-
-
|
|
349
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
318
350
|
|
|
319
|
-
|
|
351
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
320
352
|
|
|
321
353
|
## 2.0.0-internal.6.4.0
|
|
322
354
|
|
|
323
355
|
### Minor Changes
|
|
324
356
|
|
|
325
|
-
-
|
|
357
|
+
- Some stack traces are improved ([#17380](https://github.com/microsoft/FluidFramework/issues/17380)) [34f2808ee9](https://github.com/microsoft/FluidFramework/commits/34f2808ee9764aef21b990f8b48860d9e3ce27a5)
|
|
326
358
|
|
|
327
|
-
|
|
359
|
+
Some stack traces have been improved and might now include frames for async functions that weren't previously included.
|
|
328
360
|
|
|
329
361
|
## 2.0.0-internal.6.3.0
|
|
330
362
|
|
|
@@ -334,32 +366,32 @@ Dependency updates only.
|
|
|
334
366
|
|
|
335
367
|
### Minor Changes
|
|
336
368
|
|
|
337
|
-
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
369
|
+
- Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
|
|
370
|
+
|
|
371
|
+
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
372
|
+
imported from the **@fluidframework/core-interfaces** package:
|
|
373
|
+
|
|
374
|
+
- interface IDisposable
|
|
375
|
+
- interface IErrorEvent
|
|
376
|
+
- interface IErrorEvent
|
|
377
|
+
- interface IEvent
|
|
378
|
+
- interface IEventProvider
|
|
379
|
+
- interface ILoggingError
|
|
380
|
+
- interface ITaggedTelemetryPropertyType
|
|
381
|
+
- interface ITelemetryBaseEvent
|
|
382
|
+
- interface ITelemetryBaseLogger
|
|
383
|
+
- interface ITelemetryErrorEvent
|
|
384
|
+
- interface ITelemetryGenericEvent
|
|
385
|
+
- interface ITelemetryLogger
|
|
386
|
+
- interface ITelemetryPerformanceEvent
|
|
387
|
+
- interface ITelemetryProperties
|
|
388
|
+
- type ExtendEventProvider
|
|
389
|
+
- type IEventThisPlaceHolder
|
|
390
|
+
- type IEventTransformer
|
|
391
|
+
- type ReplaceIEventThisPlaceHolder
|
|
392
|
+
- type ReplaceIEventThisPlaceHolder
|
|
393
|
+
- type TelemetryEventCategory
|
|
394
|
+
- type TelemetryEventPropertyType
|
|
363
395
|
|
|
364
396
|
## 2.0.0-internal.6.1.0
|
|
365
397
|
|
|
@@ -369,47 +401,47 @@ Dependency updates only.
|
|
|
369
401
|
|
|
370
402
|
### Major Changes
|
|
371
403
|
|
|
372
|
-
-
|
|
404
|
+
- Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
373
405
|
|
|
374
|
-
|
|
406
|
+
The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
|
|
375
407
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
408
|
+
- `IRuntime` and `ContainerRuntime`
|
|
409
|
+
- `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
|
|
410
|
+
- `IFluidDataStoreChannel`
|
|
411
|
+
- `MockFluidDataStoreRuntime`
|
|
412
|
+
- `TestFluidObject`
|
|
381
413
|
|
|
382
|
-
|
|
414
|
+
Please migrate usage to the corresponding `entryPoint` or `getEntryPoint()` of the object. The value for these "entryPoint" related APIs is determined from factories (for `IRuntime` and `IFluidDataStoreRuntime`) via the `initializeEntryPoint` method. If no method is passed to the factory, the corresponding `entryPoint` and `getEntryPoint()` will be undefined.
|
|
383
415
|
|
|
384
|
-
|
|
416
|
+
For an example implementation of `initializeEntryPoint`, see [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/blob/next/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L84).
|
|
385
417
|
|
|
386
|
-
|
|
418
|
+
More information of the migration off the request pattern, and current status of its removal, is documented in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md).
|
|
387
419
|
|
|
388
|
-
-
|
|
420
|
+
- `initializeEntryPoint` will become required [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
389
421
|
|
|
390
|
-
|
|
422
|
+
The optional `initializeEntryPoint` method has been added to a number of constructors. **This method argument will become required in an upcoming release** and a value will need to be provided to the following classes:
|
|
391
423
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
424
|
+
- `BaseContainerRuntimeFactory`
|
|
425
|
+
- `ContainerRuntimeFactoryWithDefaultDataStore`
|
|
426
|
+
- `RuntimeFactory`
|
|
427
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
428
|
+
- `FluidDataStoreRuntime`
|
|
397
429
|
|
|
398
|
-
|
|
430
|
+
For an example implementation of `initializeEntryPoint`, see [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/blob/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L84).
|
|
399
431
|
|
|
400
|
-
|
|
432
|
+
This work will replace the request pattern. See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more info on this effort.
|
|
401
433
|
|
|
402
|
-
-
|
|
434
|
+
- FluidDataStoreRuntime.getChannel throws for channels that do not exist [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
403
435
|
|
|
404
|
-
|
|
436
|
+
Previously, calling `FluidDataStoreRuntime.getChannel(id)` for a channel that does not exist would wait for the channel to be created (possibly waiting indefinitely if never created). However, there is no safe means to dynamically create a channel in this manner without risking data corruption. The call will instead now throw for non-existent channels.
|
|
405
437
|
|
|
406
|
-
-
|
|
438
|
+
- Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
407
439
|
|
|
408
|
-
|
|
440
|
+
Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
|
|
409
441
|
|
|
410
|
-
-
|
|
442
|
+
- IDeltaManager members disposed and dispose() removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
|
|
411
443
|
|
|
412
|
-
|
|
444
|
+
IDeltaManager members disposed and dispose() were deprecated in 2.0.0-internal.5.3.0 and have now been removed.
|
|
413
445
|
|
|
414
446
|
## 2.0.0-internal.5.4.0
|
|
415
447
|
|
|
@@ -431,22 +463,22 @@ Dependency updates only.
|
|
|
431
463
|
|
|
432
464
|
### Major Changes
|
|
433
465
|
|
|
434
|
-
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
466
|
+
- The `@fluidframework/garbage-collector` package was deprecated in version 2.0.0-internal.4.1.0. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
|
|
467
|
+
It has now been removed with the following functions, interfaces, and types in it.
|
|
468
|
+
|
|
469
|
+
- `cloneGCData`
|
|
470
|
+
- `concatGarbageCollectionData`
|
|
471
|
+
- `concatGarbageCollectionStates`
|
|
472
|
+
- `GCDataBuilder`
|
|
473
|
+
- `getGCDataFromSnapshot`
|
|
474
|
+
- `IGCResult`
|
|
475
|
+
- `removeRouteFromAllNodes`
|
|
476
|
+
- `runGarbageCollection`
|
|
477
|
+
- `trimLeadingAndTrailingSlashes`
|
|
478
|
+
- `trimLeadingSlashes`
|
|
479
|
+
- `trimTrailingSlashes`
|
|
480
|
+
- `unpackChildNodesGCDetails`
|
|
481
|
+
- `unpackChildNodesUsedRoutes`
|
|
450
482
|
|
|
451
483
|
## 2.0.0-internal.4.4.0
|
|
452
484
|
|
|
@@ -456,31 +488,31 @@ Dependency updates only.
|
|
|
456
488
|
|
|
457
489
|
### Minor Changes
|
|
458
490
|
|
|
459
|
-
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
491
|
+
- GC interfaces removed from runtime-definitions ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
|
|
492
|
+
|
|
493
|
+
The following interfaces available in `@fluidframework/runtime-definitions` are internal implementation details and have been deprecated for public use. They will be removed in an upcoming release.
|
|
494
|
+
|
|
495
|
+
- `IGarbageCollectionNodeData`
|
|
496
|
+
- `IGarbageCollectionState`
|
|
497
|
+
- `IGarbageCollectionSnapshotData`
|
|
498
|
+
- `IGarbageCollectionSummaryDetailsLegacy`
|
|
499
|
+
|
|
500
|
+
- @fluidframework/garbage-collector deprecated ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
|
|
501
|
+
|
|
502
|
+
The `@fluidframework/garbage-collector` package is deprecated with the following functions, interfaces, and types in it.
|
|
503
|
+
These are internal implementation details and have been deprecated for public use. They will be removed in an upcoming
|
|
504
|
+
release.
|
|
505
|
+
|
|
506
|
+
- `cloneGCData`
|
|
507
|
+
- `concatGarbageCollectionData`
|
|
508
|
+
- `concatGarbageCollectionStates`
|
|
509
|
+
- `GCDataBuilder`
|
|
510
|
+
- `getGCDataFromSnapshot`
|
|
511
|
+
- `IGCResult`
|
|
512
|
+
- `removeRouteFromAllNodes`
|
|
513
|
+
- `runGarbageCollection`
|
|
514
|
+
- `trimLeadingAndTrailingSlashes`
|
|
515
|
+
- `trimLeadingSlashes`
|
|
516
|
+
- `trimTrailingSlashes`
|
|
517
|
+
- `unpackChildNodesGCDetails`
|
|
518
|
+
- `unpackChildNodesUsedRoutes`
|