* Update `update_mmdb.sh` script to download ASN database.
* Provide the `ASN` db file to `outline-ss-server`.
* Add an API to opt-in to the ASN metrics.
* Remove unused import.
* Add the ASN setting to the persisted server config.
* Continue trying to find other database if 1 of them fails.
* Resolve lint warning
* Use `outline-ss-server` v1.5.0.
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)
- Upgrade Prometheus to 2.37.1
- Upgrade outline-ss-server to 1.4.0
- Fetch Prometheus and outline-ss-server binaries on demand. Remove from repo because of file size limit
- Upgrade base node image.
#### Description
In this PR, I introduced the cross-platform Windows binary signing tools to the server manager. [Jsign](https://ebourg.github.io/jsign/) is included as one of the `third_party` dependencies. In the future, we can leverage GCP KMS based certificate to do the signing as well.
#### Environment Variables
- `WINDOWS_SIGNING_CERT_TYPE`: `none|pfx|digicert-usb`
- `WINDOWS_SIGNING_CERT_PASSWORD`: password of the certificate (store)
- `WINDOWS_SIGNING_PFX_CERT`: ".pfx" certificate path if the type is `pfx`
- `WINDOWS_SIGNING_EV_CERT_SUBJECT`: [optional] subject of the EV certificate if type is `digicert-usb` (in our case, you can use `Jigsaw Operations LLC`)
* attempt upgrade over CI
update shadowbox build node version
wild guess
try other image, not holding my breath
switch image back, try no --upgrade? lol
whoops wrong SHA
trying this tip out of hand - will make platform a env var next
apparently buildx is supposed to detect the platform - lets see
find replace yarn w/ npm
fix git hook
cache npm deps
proper lock and enforce engine
licenses are... generated by yarn lmao
some weird leftovers
explode out test workflow jobs
Title Case and check for cache hit
upgrade NPM
check version...
eh, worth a try
reinstall deps for now so we can debug downstream issues
use root bin
fix npm workspace, merge lint w/ setup
HMMM
attempt cache load
fix keys
remove restore-keys
regular install
attempt more "correct" npm approach
annoyingly caching ~/.npm doesn't cache the global npm version
less correct node_module cache, will roll back if doesn't work
er... node 15 :/, restore keys
changing key...?
permission setting so cache can properly hit
separate dependecy permission task
verbose chmod
fix sentry webhook
consistency thing
* print architecture
* attempt amd64-explicit node image
* attempt nodev16 upgrade
* ah, okay, let's try picking this hash
* fix node version reference and npm run clean
* revert untouched files caught in squash
* remove yarn from travis.yml
* testing ci
* npmrc comment, revert one of cis
* Update src/server_manager/web_app/run_gallery_action.sh
Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>
* Update src/server_manager/web_app/run_action.sh
Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>
* licenses change
* fix package-lock regression
* fix webpack-dev-server properly
* set install to ci in Dockerfile
* forgot to include the README
* add ci where it makes sense
* delete this part of the README
* missed one
* testing sub-node_modules
* better chmod
* prefer glob
* reset .github/workflows/test.yml
* oops, yarn in ci
* rename everything (#1006)
* Update test.yml
* check_requirements (#1008)
* reqcheck draft
* finish drafting script - need to test and add to hooks
* attempt to roll our own setup...
* remove setup script and rename a couple things
* remove this nightmare lol
* Update release_manager.yml
* Update test.yml
* 'do' -> 'action'
* run -> start
* Update src/shadowbox/docker/build.action.sh
Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>
* Update README.md
* Update README.md
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* rename 'action' to action
* add action list to run action itself
* Update src/shadowbox/README.md
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* Update README.md
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* Update scripts/run_action.sh
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* Update src/server_manager/scripts/fill_packaging_opts.sh
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* style guide fixes
* lower case fixes
* enforce major version
* Update scripts/run_action.sh
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* Update package.json
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
Co-authored-by: Vinicius Fortuna <fortuna@users.noreply.github.com>
Co-authored-by: Benjamin M. Schwartz <bemasc@google.com>
* Use DB-IP's free IP-to-Country database instead of MaxMind's
This avoids the necesseity to either (1) bundle MaxMind's database in
our docker image or (2) require server admins to individually create
MaxMind accounts due to the new requirements for using GeoLite2
databases. See https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/
* Add attribution to DB-IP for the GeoIP database
* Make sure that we deal with lag between the changeover of the current
month and release of new versions of the DB-IP database
* Respond to review comments
* Attribute DB-IP in the update script
* Respond to review comments
* Respond to review comments