The database key is stored and encrypted alongside the user's stored credentials
we depend on our own fork of Signal's fork of better-sqlite3 which replaces sqlite3 with sqlcipher. Our fork was necessary in order to obtain the newest version of better-sqlite-3. This fork also has a modification that makes it not try to resolve the nativeBindingPath into an absolute path, because otherwise it was not possible to make it load the native module from within the bundled app
In Desktop, we don't know what kind of storage to use until the use is logging in, so we want to delay initialisation until then by using a proxy storage implementation. The loginfacade may not use the cache in this case.
This commit not only sets up the build for windows on jenkins,
it also consolidates how we get prebuilt binaries for native modules i.e. keytar and better-sqlite3
and generally has some refactorings
Compiling keytar in postinstall is problematic because we need node-gyp
to successfully finish installation. Because of that it is hard to
depend on tutanota-3 (e.g. in admin client).
Doing this on demand avoids the issue.
The dist build was refactored in commit:
916ee1ed1d
The format of the desktop options was changed from a raw object to a map,
but the usages in DesktopBuilder weren't adapted. This change adapts them
and also tidies it up a bit.
reviewed with sas
previously, the exe was located via its GUID/AppID.
this ID is different for test/snapshot/release.
now, the exe registers itself next to the dll path
#2968
- pin electron-builder to v22.11.4 because of incompatibilities with node 16
- use fs.rm instead of fs.rmdir because of deprecation
- fetch prebuild keytar if cross-platform build is detected
close#3196
to create these signatures, run the dist script with the environment
variable DEBUG_SIGN set to a directory containing a self-signed code
signing cert file test.p12
close#2918
the help text for the auto updater setting now includes a button to
check for an update for the desktop client / install the update if it
is already available
this label will be automatically updated if the updater downloads an
update while the settings menu is opened
close#2151
Move entity types out of flow directory into the entity files.
Rename TutanotaFile into File.
Rename CalendarEventBubble attrs onEventClicked -> click because it
doesn't have access to the event.
Use domInput in Dropdown when selecting filtered result because that's
what DropdownN does.
Our current build system is not aware about any recent Flow syntax and
it doesn't know that it should transpile functionCall<type>() into
functionCall(). We have to avoid such syntax for now
- automatically build for current platform if no platform flag is given
- disable notarization on mac
- disable code signing for custom builds without updates
adds some options to the dist.js build script:
--unpacked
disables the building of installers (dir target for all platforms)
--out-dir <outDir>
move the built installers (or dirs) into the path outDir after building.
Defaults to build/desktop and build/desktop-test
--custom-release
disable autoUpdate in the release target by not including an update url.