Skip to content

Releases: target/goalert

v0.25.0

23 Jul 19:04
249132c
Compare
Choose a tag to compare

GoAlert v0.25.0

This release primarily focused on stability & refactor work, however there have been a number of welcome improvements and helpful new features too!

API Changes/Deprecation

While the /v1 endpoints have been deprecated for awhile, there is now a switch in the admin config to allow disabling the old /v1/graphql endpoint. It will be disabled by default in a future version, and removed completely in a yet further version.

Quick Links

image

On wide displays, links have been moved to the side to better use available screen space.

Carrier Lookup Tool

image

There is now a Toolbox page under Admin with a tool that will allow looking up carrier information about a phone number by an admin.
This is part of a collection of tools added to handle infrequent, but problematic, carrier filtering of SMS messages.

Send SMS Tool

image

The Send SMS tool can be used to test sending messages from alternate numbers, with or without URLs, etc.. in order to detect if carrier filtering is taking place, and available workarounds (like disabling URLs in SMS messages, or using an alternate From number).

From Number Override

image

Admins now have the ability to override the From number for SMS messages per-carrier. This is helpful in the case that a specific carrier is blocking SMS message delivery and can be used as a temporary workaround without a new deployment or code change.

System Limits Configuration

image

A new admin page was added to allow configuring and viewing current system limits.

Live Alert Log Updates

image

The alert log has been enhanced to show current status of message delivery.

image

Issues like failures to send, or disabled contact methods, will also show up in the log.

image

Additionally, things like having nobody on call, or users without immediate rules, will be reflected in the log.

Calendar Subscriptions

image

It is now possible for users to subscribe to their own shifts via a calendar subscription. This allows viewing when you're on call for a schedule from apps like Google Calendar or iCalendar

Subscriptions may be accessed from your Profile page, additionally they can be created from any schedule's details page.

Multi-Alert Creation

image

The create alert dialog has been reworked allowing for creating identical alerts across multiple services. This is intended to help operations teams that may need to notify multiple teams about a wide-impact incident.

New Devtools

  • Added a new sendit tool that is similar to ngrok that can be self hosted.
  • Added postgresql:// support to the waitfor tool

Other Improvements

  • The alerts list will now show any alerts you have been notified for, in addition to favorite services.
  • All valid SMS START/STOP commands are now handled appropriately and logged.
  • Alert log timestamps should now render in the same format as the rest of the application.
  • GoAlert can now be run with a URL path prefix.
  • Quicker details page loading from list pages.
  • Data refetch -- fixed a lot of issues with page data being out-of-date after editing.
  • Lots of refactor/stabilization work.
  • Fixed behavior of search select clearing.
  • Fixed various gotchas in the switchover shell code.

v0.24.1

10 Dec 20:17
Compare
Choose a tag to compare

Hotfix

This hotfix release fixes a critical bug in the rotation/schedule calculation code that could cause an infinite loop (more context here).

Additionally, when trying to create an override that conflicts with an existing one, users will now receive a descriptive error, indicating the conflicting user, instead of a generic "unexpected error" message.

v0.24.0

21 Nov 19:55
17adbdd
Compare
Choose a tag to compare

Getting Ready For Peak

This release has a lot of bug fixes, features, and hardening in prep for the peak season!

Message Bundling!!

No more SMS/call per-second during alert storms!!

When you have more than 1 scheduled message for a given contact method (e.g. 5 alerts pending for SMS)
you will now get an SMS reading "Svc: 'foobar' has 5 unacked alerts" with an option to ack or close all. This also works for voice and Slack!

Additionally, you will only ever receive up to 1 message per 60-seconds for an individual contact method (confirmation/replies excluded).

You can enable bundling from the Admin page under the General section.

Short URL Support

GoAlert now supports generating shorter URLs, optionally from an alternate domain.

You can enable ShortURL in the Admin page under the General section.

Alert Cleanup

You can now have GoAlert automatically cleanup closed alerts that are older than a configurable amount of days.

This can be enabled by setting a non-zero value for Alert Cleanup Days in the Maintenance section of the Admin page.

New Database Driver

We switched to the github.com/jackc/pgx driver to solve a swath of bugs and issues (e.g. where context deadlines were not respected) we ran into with the old driver. We also put a lot of work in to handle DB/connection hiccups more gracefully. In most cases, this means even if the DB is restarted, no requests will fail (assuming it comes back within a reasonable time).

More importantly, network edge cases that could cause a connection or query to hang (sometimes indefinitely) will now properly terminate and respect context deadlines using the new driver.

Heartbeat Monitors

Heartbeat monitors are a new feature that will generate an Alert if they do not receive a POST request within the specified time period. This means you can have a cronjob checking in hourly, and if it fails, fails to run, or loses network access, GoAlert will still create an alert once the timeout is reached.

You can find the link on the Service Details page to manage these.

System Limits

We've introduced a default set of system limits for things like max rules on a schedule, max unacked alerts per service, etc.. These are intended to give some type of bounds or upper-limit on different resources.

They can be tweaked in the config_limits table. A page will be added to the Admin panel in a future version.

Prioritization Refactor

The logic around prioritizing messages has been replaced with a version that is unit-testable and flexible. Services that have not received any notifications will have their first notification prioritized above all else for example.

Priority is also re-calculated per-message making it fairer during alert storms.

Misc Other Changes

  • Site24x7 integration (#96, thanks @sco-pi for the contribution!)
  • lots and lots of bugfixes
  • lots of dependency updates
  • updated Go and React
  • started migrating lots of code to use React hooks
  • fixed issue that blocked messages being sent to many country codes

v0.23.0

24 Jul 19:34
be59611
Compare
Choose a tag to compare

Fix all the things!

This release primarily focused on fixing bugs and barriers that were reported in v0.22.0.

High Level Changes

  • Validation for things like Slack and Mailgun keys has been adjusted to allow all valid keys
  • Favorite support for rotations and schedules
  • The goalert/goalert docker container now listens on the wildcard address by default
  • All valid country codes should now be supported for contact methods
  • DB switchover code has been cleaned up, hardened, and tested more info here
  • A bunch of accessibility improvements
  • Verification and opt-out/opt-in flow for new and disabled contact methods
  • Dependency updates
  • Lots of bug fixes

Everything

  • build: Dockerfile update (#66)
  • search: focus fix (#65)
  • dialogs: fix cases where errors were not displayed (#64)
  • profile: contact method management fixes (#63)
  • contact methods: hide reactivate button on mobile/always have option within other actions (#60)
  • add key to elements rendered from a map (#59)
  • contact methods: allow all country codes and return formatted numbers (#53)
  • contact methods: disable and require verification after creating or editing (#54)
  • dev: change smoketest dep from generate to install (#58)
  • return fragments in favor of arrays (#57)
  • update tab title (#56)
  • profile: show warning and option to reactivate when contact method is disabled (#28)
  • ui: accessibility upgrades
  • http: request queue and timeouts (#48)
  • ui dependencies: upgrade lodash-es to 4.17.14 (#50)
  • app: don't sanitize search param for list pages (#49)
  • Search: update validation for search strings containing spaces (#47)
  • config: loosen key validation & guide updates (#44)
  • schedules: add user favorites support (#26)
  • allow 10-digit sections in slack tokens (#41)
  • dev: easily run integration tests by cli (#39)
  • alerts: add createAlert mutation (#37)
  • rotations: add user favorites support (#27)
  • ep step: allow user selection when Slack is disabled (#36)
  • alertlog: graphql2 endpoint (#16)
  • switchover: hardening & refactor instrumentation (#23)
  • services: favorites test code improvements (#31)
  • make fake slack creds look more fake (#32)
  • ui-dependencies: organize package.json dependencies (#20)
  • contactmethod: allow UK (+44) numbers (#22)
  • ui dependencies: non-breaking change package updates (#18)
  • docker: fix default listen address in container (#17)
  • ui dependencies: material-ui-pickers update to @material-ui/pickers v3.1.0 (#14)
  • ui dependencies: upgrade material-ui and react (#13)
  • ui dependencies: webpack-dev-server upgrade to stable version (#11)
  • chore: update Go dependencies (#12)

v0.22.0

10 Jun 13:59
Compare
Choose a tag to compare

Initial open source release!