* feat(build): allow version name injection into the outline manager
* add default version name
* ah?
* this?
* this works on other platforms?
* lmao
* try this
* oops i meant this
* put back
* ah
In this PR, I integrated Outline Manager with the latest Sentry library and re-enabled the user feedback form. Sentry was not working because of two reasons:
1. Electron enabled sandbox to its `preload.js` script, therefore calling `Sentry.init` in `preload` is not enough (and not necessary), we must call `Sentry.init` in every renderer process as well
2. `SENTRY_DSN` is not injected into electron, we read it from `process.env.SENTRY_DSN`, but this is a runtime environment variable (which will be `undefined`)
So basically my fix is straightforward:
1. Calling `Sentry.init` in `web_app/app.ts`, which is the entrypoint of renderer process
2. Use `webpack` to inject `SENTRY_DSN_` variable into `electron_app/index.ts` during build
In order to be consistent (and to minify the result js file), I also introduced webpack to build the `preload.ts` script as well.
Finally I upgraded electron to the latest version that does not have [API restrictions](https://www.electronjs.org/docs/latest/breaking-changes#default-changed-renderers-without-nodeintegration-true-are-sandboxed-by-default) to `preload` script (we are using `crypto` package which will be forbidden). A refactoring is required in order to upgrade to any newer versions of electron.
In this PR, I added the support of the following languages to Outline Manager:
- `af`: Afrikaans
- `bn`: Bengali
- `is`: Icelandic
- `ms`: Malay
- `mr`: Marathi
- `sw`: Swahili (Outline only)
- `ta`: Tamil
- `lo`: Lao
- `mn`: Mongolian
- `ne`: Nepali
- `si`: Sinhala
According to #1250 , we are not allowed to include binaries in this repository. In this PR, I removed `./third_party/jsign/jsign-4.2.jar`, it will be downloaded during build process on demand. The workflow is:
* If we are not building for Windows, nothing happens
* If we are building for Windows but not signing the binaries (for example dev builds), nothing happens
* If we are building and signing Windows binaries:
* If `jsign-4.2.jar` already exists and matches checksum, nothing happens
* otherwise, we will download it from [jsign's official GitHub releases](https://github.com/ebourg/jsign/releases)
* Fixes#999. Specify a higher per_page for DigitalOcean API call to get droplets.
* Review feedback: Add TODOs for proper pagination, extend other 'droplets' DO API call to use 100 as well. 100 is the tested limit, and a sane default until proper pagination
Changes the behavior of the local server for receiving oauth callbacks
from Digital Ocean by not closing it on invalid requests. This avoids
the problem where a malicious actor prematurely closes the
callback-handling server (a DoS of the authentication flow).
Also added a timeout to close the server after 30 seconds.
* initial commit - need to test
* update en.json
* update messages
* revert my access key event rerouting
* type errors
* add message descriptions
* good enough
* just one block o' text
* almost there
* put back pre-wrap
* switch to <br>
* line break to master messages
In this PR, I switched `electron-updater`'s checking-update-url to Amazon S3, so [`outline-releases` GitHub repository](https://github.com/Jigsaw-Code/outline-releases/tree/master/manager) can be deprecated (but we still need to update the yaml files for backward compatibility).
There is an Electron IPC event 'open-image' that accepts any path,
including relative paths that would expose system filenames such as
/etc/passwd. This change resolves all paths to be rooted at the base
directory for ...server_manager/web_app.