Closed ssimic2 closed 2 years ago
@skylerjokiel @ChumpChief @heliocliu would love to hear your feedback on this ticket.
This flow requires storage to support creation of files from summary with arbitrary sequence number. Today, SPO supports only creation of files with sequence # = 0. I'm not sure about FRS, but I'd think it's the same.
Similar, all the DDSs today assume that detached file creation starts with zero. There might be other differences in state. I'm sure complex DDSs like Sequence will not be happy with this flow. It would be great to understand full design here.
This flow requires storage to support creation of files from summary with arbitrary sequence number. Today, SPO supports only creation of files with sequence # = 0. I'm not sure about FRS, but I'd think it's the same.
Similar, all the DDSs today assume that detached file creation starts with zero. There might be other differences in state. I'm sure complex DDSs like Sequence will not be happy with this flow. It would be great to understand full design here.
I have moved design considerations to https://github.com/microsoft/FluidFramework/issues/9442. It talks about these 2 topics as well. On the call today, I'd like us to talk about (1), (2) vs (3) options listed there and discuss any general constraints & principles we don't want to violate here. We may not have a long leap here for DDSes to support non-zero seq. num. I'll share more on Sequence in particular today, but some of these observations will apply to other DDSes.
Overview
As discussed in #9442, the core goal of this API is to provide ability to extract document data from corrupted container. For V1, this API will not go into details on what user does with recovered data, or ability to rollback existing documents.
Features / APIs
We will expose two new APIs on Azure Client as a part of v1.0 efforts.
public async getContainerVersions( id: string, ): Promise<ContainerVersion[]>
public async reCreateContainer( containerSchema: ContainerSchema, documentId: string, version: string, ): Promise<{ container: IFluidContainer; services: AzureContainerServices; }>