Skip to content
This repository has been archived by the owner on Jul 12, 2023. It is now read-only.

v0.20.0

Compare
Choose a tag to compare
@mikehelmick mikehelmick released this 19 Jan 02:33
· 647 commits to main since this release
4021fea

Release notes for exposure-notifications-verification-server v0.20.0

Documentation

Changelog since v0.19.0

⚠️ Upgrade notes ⚠️

Deployment Notes

This version introduces both Binary Authorization and multiple new services. To help ensure a successful upgrade, operators should taint the build step before running Terraform. This will ensure new services are built and existing services are attested with the proper signatures for authorization.

terraform taint module.en.null_resource.build

Note this will increase the duration of the Terraform run to about 10 minutes. Upon a successful run, continue with the upgrade process as normal.

Key rotation

This release introduces unattended signing key rotation for both verification token and verification certificate signing.

All key rotation is done, by default, every 30 days.

Verification token key rotation

Keys are now backed by the database, seeded by the key ring that the current token signing key version is on.
Until the new rotate job runs, the legacy key version will be used for signing. Once the rotate job has been
run, there will be a new signing key used to sign new verification tokens. The legacy signing key will be honored
as long as it is still configured. v0.21.0 will move to only database-backed token signing keys.

Verification certificate key rotation

In this release, realm admins will be allowed to configure their signing keys for automatic rotation.
It is important that this realm's key server be configured to use the JWKS public key discovery document
for the health authority signing keys.

Verification signing keys are created, but not made active for at least 1 hour so that there is time
for the key server to import the public key.

Changes by Kind

Breaking changes

  • Potentially breaking! - Source token signing keys from the database. This completes the move of system token signing keys from environment variables to the database. This change attempts to be backward compatible, but server are encouraged to test changes in an isolated environment before upgrading production systems. (#1602, @sethvargo)

Features

  • Add intelligence for redirecting post-login (#1550, @sethvargo)
  • Add audits for saving a Token Signing Key (#1601, @sethvargo)
  • Add password-reset and email-verification email templates to realm settings (#1555, @whaught)
  • Add rotation service and schema for rotating token signing keys (#1597, @sethvargo)
  • Added support for Twilio messaging services (#1526, @whaught)
  • Adds database column for realm level auto key rotation settings. (#1594, @mikehelmick)
  • Adds the stats-puller service to run every hour. (#1603, @whaught)
  • Advanced searching is a new feature for user search that allows for more granular searching. It's backwards-compatible with the former search syntax, but now includes the ability to filter searches by fields. Specifically, you can now query like "name:foo" or "can:APIKeyWrite" to perform advanced queries. Bulk permission management is a new feature that allows people with UserWrite permissions to modify other users' permissions in bulk in their realm. (#1525, @sethvargo)
  • Allow JWK lookup URLs to work with region codes in addition to IDs (#1559, @sethvargo)
  • Allow for legacy signing key config for tokens to be used during the upgrade to DB backed tokens. (#1624, @mikehelmick)
  • Allow for realm admins to enable automatic verification certificate key rotation. Keys are rotated every 30 days, and given 1h soak time for upstream key servers to pull public keys via public key discovery. (#1614, @mikehelmick)
  • Realm stats: Slider control to select date range to display. Trend lines are shown for codes issued and codes claimed. (#1598, @mikehelmick)
  • Stop bulk-issue client if the Twilio SMS queue is full (#1571, @whaught)
  • Support testType field as input for bulk-upload (#1531, @whaught)
  • The bulk-uploader will skip conflict or already-succeeded lines when re-using a log csv from a previous attempt (#1530, @whaught)

General bug fixes and improvements

Infrastructure improvements

  • Actually delete e2e API keys and mobile apps (#1588, @sethvargo)
  • Add Binary Authorization enforcement for Cloud Run. Please taint the Terraform builders before running Terraform: terraform taint module.en.null_resource.build. This only needs to be done once to force the images to re-build with the proper attestations. (#1572, @sethvargo)
  • Add Binauthz envvars to Terraform builder (#1579, @sethvargo)
  • Add api/issue latency to the verification dashboard (#1576, @whaught)
  • App sync will run no more than once every 5 minutes, controlled via database. (#1593, @mikehelmick)
  • Build all cmd binaries at once in CI (#1620, @sethvargo)
  • Create metrics for when humans access secrets or decrypt values (#1552, @sethvargo)
  • DEV: Overall test coverage displayed on presubmit. (#1540, @mikehelmick)
  • DOCS: Add procedure for adding new ENX redirect domains. (#1570, @mikehelmick)
  • Document enx-redirector for realm and system admins (#1551, @sethvargo)
  • ENX redirect, add new sub-domains without outage. (#1561, @mikehelmick)
  • Ensure bin dir exists on builds (#1626, @sethvargo)
  • Fire alerts when humans do secret things (#1556, @sethvargo)
  • Give rotate job permissions to admin crypto key ring (#1617, @mikehelmick)
  • Monitoring: Add ClouldSchedulerJobFailed alert. (#1527, @yegle)
  • Move appsync warning to debug level (#1563, @sethvargo)
  • Restore user re-created metric and alert (#1606, @sethvargo)
  • Simplified alerting configuration to accommodate low-traffic services (#1535, @yuriatgoogle)
  • Simply shared end-to-end runner configurations (#1583, @sethvargo)
  • Switch modeler logs to debug (#1522, @sethvargo)
  • Updated exposure-notifications-sever dependency to v0.20.0 (#1627, @mikehelmick)

Dependencies

Added

Nothing has changed.

Changed

Removed

Nothing has changed.