Previously suspension handling was not working because SDK was
expecting the headers to be lowercased. This was not the case
for Swift impl of RestClient.
Additionally, fix logging errors from notification extension by
setting correct privacy modifier when interpolating.
Close#9740
Co-authored-by: hrb-hub <hrb-hub@users.noreply.github.com>
Since mobile clients are fetching mails using the SDK and putting them
in offlineStorage, we have to insert them as `ServerParsedInstance`.
However, notifications need the mail instances to be deserialized and
mapped. So this commit breaks down the mail pipeline in the SDK into
two steps.
Co-authored-by: sug <sug@tutao.de>
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>
After URLSession refactoring we did not pass the headers that SDK passed
to the RestClient to the actual HTTP request.
Additionally, change NotificationService so that the errors do not cause
timeout and are logged.
Co-authored-by: wrd <wrd@tutao.de>
Hooks up the previously added iOS actions to the SDK so they work.
Co-authored-by: BijinDev <BijinDev@users.noreply.github.com>
Co-authored-by: hrb-hub <hrb-hub@users.noreply.github.com>
We changed the point at which the credentials are fixed in the sdk. Now
they are passed in to login() method and not when creating SDK. This
makes for a cleaner separation of a stateless, shared SDK and stateful,
account-bound LoggedInSDK. Rest resources are now always bound to a
session which allows for parallel logins and prevents accidental bugs
Add encryptedPassphraseKey to stored credentials to avoid doing KDF in
notification process which is not possible on iOS due to memory limit.
Co-authored-by: paw <paw-hub@users.noreply.github.com>
Implemented extended notifications which include the sender.
Re-implemented credential encryption and storage, moved credential
data to the native storage, changed credential encryption on mobile to
always be device lock + implement app lock independently of encryption.
Re-implemented SSE on desktop in a more modular way.
Re-organized iOS app to share the code between the main app code and
app extensions.
Close#6608
Co-authored-by: wec43 <wec@tutao.de>