Improve security and reliability of macOS updates
This commit introduces several improvements to the macOS update process, primarily focusing on enhancing security and reliability: - Add data integrity checks to ensure downloaded updates haven't been tampered with. - Optimize update progress logging in `streamWithProgress` by limiting amount of logs during the download process. - Improve resource management by ensuring proper closure of file read/write streams. - Add retry logic with exponential back-off during file access to handle occassionally seen file system preparation delays on macOS. - Improve decision-making based on user responses. - Improve clarity and informativeness of log messages. - Update error dialogs for better user guidance when updates fail to download, unexpected errors occur or the installer can't be opened. - Add handling for unexpected errors during the update process. - Move to asynchronous functions for more efficient operation. - Move to scoped imports for better code clarity. - Update `Readable` stream type to a more modern variant in Node. - Refactor `ManualUpdater` for improved separation of concerns. - Document the secure update process, and log directory locations. - Rename files to more accurately reflect their purpose. - Add `.DS_Store` in `.gitignore` to avoid unintended files in commits.
This commit is contained in:
@@ -1,34 +1,52 @@
|
||||
# Desktop vs. Web Features
|
||||
|
||||
This table outlines the differences between the desktop and web versions of `privacy.sexy`.
|
||||
This table highlights differences between the desktop and web versions of `privacy.sexy`.
|
||||
|
||||
| Feature | Desktop | Web |
|
||||
| ------- |---------|-----|
|
||||
| ------- | ------- | --- |
|
||||
| [Usage without installation](#usage-without-installation) | 🔴 Not available | 🟢 Available |
|
||||
| [Offline usage](#offline-usage) | 🟢 Available | 🟡 Partially available |
|
||||
| [Auto-updates](#auto-updates) | 🟢 Available | 🟢 Available |
|
||||
| [Logging](#logging) | 🟢 Available | 🔴 Not available |
|
||||
| [Script execution](#script-execution) | 🟢 Available | 🔴 Not available |
|
||||
|
||||
## Feature Descriptions
|
||||
## Feature descriptions
|
||||
|
||||
### Usage without installation
|
||||
|
||||
The web version can be used directly in a browser without any installation, whereas the desktop version requires downloading and installing the software.
|
||||
You can use the web version directly in a browser without installation.
|
||||
The desktop version requires download and installation.
|
||||
|
||||
> **Note for Linux:** For Linux users, privacy.sexy is available as an AppImage, which is a portable format that does not require traditional installation. This means Linux users can use the desktop version without installation, similar to the web version.
|
||||
> **Note for Linux users:** On Linux, privacy.sexy is available as an `AppImage`, a portable format that doesn't need traditional installation.
|
||||
> This allows Linux users to use the desktop version without full installation, akin to the web version.
|
||||
|
||||
### Offline usage
|
||||
|
||||
Once loaded, the web version can be used offline. The desktop version inherently supports offline usage.
|
||||
The web version, once loaded, supports offline use.
|
||||
Desktop version inherently allows offline usage.
|
||||
|
||||
### Auto-updates
|
||||
|
||||
Both versions automatically update to ensure you have the latest features and security enhancements.
|
||||
Both the desktop and web versions of privacy.sexy provide timely access to the latest features and security improvements. The updates are automatically deployed from source code, reflecting the latest changes for enhanced security and reliability. For more details, see [CI/CD documentation](./ci-cd.md).
|
||||
|
||||
The desktop version ensures secure delivery through cryptographic signatures and version checks.
|
||||
|
||||
[Security is a top priority](./../SECURITY.md#update-security-and-integrity) at privacy.sexy.
|
||||
|
||||
> **Note for macOS users:** On macOS, the desktop version's auto-update process involves manual steps due to Apple's code signing costs.
|
||||
> Users get notified about updates but might need to complete the installation manually.
|
||||
> Your [support through donations](https://github.com/sponsors/undergroundwires) can help improve this process ❤️.
|
||||
|
||||
### Logging
|
||||
|
||||
The desktop version supports logging of activities to aid in troubleshooting. This feature is not available in the web version.
|
||||
The desktop version supports logging of activities to aid in troubleshooting.
|
||||
This feature is not available in the web version.
|
||||
|
||||
Log file locations vary by operating system:
|
||||
|
||||
- macOS: `$HOME/Library/Logs/privacy.sexy`
|
||||
- Linux: `$HOME/.config/privacy.sexy/logs`
|
||||
- Windows: `%APPDATA%\privacy.sexy\logs`
|
||||
|
||||
### Script execution
|
||||
|
||||
|
||||
Reference in New Issue
Block a user