switch to typeIds and attrIds, add SystemMV126, TutanotaMV86, BaseMV2

Refactor our instance deserialization/serialization pipeline, both on
TypeScript and on Rust [sdk] to use typeId and attributeIds instead of
typeNames and attributeNames. We furthermore ignore cardinalities
on associations until the instance layer and always
store associations as arrays. This commit introduces **eventual
consistency** on the client, i.e. we are from now on always storing data
in the newest schema format (activeApplicationVersionsForWritingSum)
which ensures that all data is already available on the client after
updating the client to a newer version. This removes the need for
offline migrations on the client and also removes backward migrations
on the server. Furthermore, the server model types are now available
on the client, retrievable through the ApplicationTypesFacade. This is
our first step towards FastSync.

Co-authored-by: nig <nig@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
This commit is contained in:
Kinan 2025-03-10 16:19:11 +01:00 committed by abp
parent f5856740d5
commit edbf281b88
No known key found for this signature in database
GPG key ID: 791D4EC38A7AA7C2
328 changed files with 89155 additions and 82351 deletions

View file

@ -90,9 +90,10 @@ o.spec("MailModelTest", function () {
return Object.assign(
{},
{
type: MailTypeRef.type,
typeId: MailTypeRef.typeId,
application: MailTypeRef.app,
instanceId: "instanceId",
type: "Mail",
},
arg,
)