goalert

Open source on-call scheduling, automated escalations, and notifications so you never miss a critical alert

APACHE-2.0 License

Stars
2.2K

Bot releases are visible (Hide)

goalert - v0.32.0 Latest Release

Published by KatieMSB 7 months ago

GoAlert v0.32.0

Welcome to the unveiling of GoAlert v0.32.0! This release is a comprehensive package, featuring a range of exciting new features, critical bug fixes, and essential developer improvements to elevate your alert management experience.

Experimental Features

API Key Support

The 'API Keys' feature is currently an experimental feature. To explore this functionality, administrators must opt in by configuring GoAlert with EXPERIMENTAL=gql-api-keys. As an experimental feature, it may change, and your feedback is appreciated. Caution is advised in production, and expect updates as we refine and enhance its capabilities.

Explore an up-and-coming new feature of GoAlert while it's still in its experimental stage! Once activated, discover the new 'API Keys' option in the admin sidebar, allowing administrators to create and tailor access using GraphQL queries or mutations for a more secure and customizable integration.

More information on implementation details and the decisions around this new feature can be found in an ADR here.

New Features

Monthly Rotations

Simplify your team's schedule with monthly handoffs! The new 'Monthly' option in Rotations enhances scheduling convenience, ensuring smooth handoffs once a month in GoAlert.

Service Metrics

Elevate service monitoring with new comprehensive metrics in GoAlert. Admins can now keep an eye on service health, check for setup issues, and review notification channels—all in one place for better awareness and management.

Full Calendar Subscription

Users can now opt into subscribe to all shifts on a schedule in GoAlert. Get a complete view of your commitments and your teammates for more comprehensive schedule management.

User Profile Calendar

The user profile page now renders a calendar for all on-call schedule shifts (broken down by schedule)

image

Misc Improvements

We've made a number of QOL improvements including a new splash screen, fixed favicon, labels are visible on services, and improved timestamp support in markdown.

Admin Options

There were a few new config options and tweaks added for admins, like requiring labels on services and closing stale alerts.

Bug Fixes

Temporary Schedules Improvements

A number of bug fixes for the Temporary Schedules features have been addressed and some new features!. Soft limits for start and end dates provide better control, default values are now set accurately, and temporary schedules seamlessly merge as intended.

Schedules are now broken down by a default shift length, and while custom shifts remain supported, this intends to make it easier to create and manage even handoffs amongst team members.
image

Additionally, if you need to edit a temporary schedule, you will now be prompted to confirm the changes, so you know EXACTLY what is being changed before saving!
image

Misc Bug Fixes

Lots of bugs were squashed in this update to improve the overall GoAlert experience! Enhancements include improved linter and formatting, optimized search functionalities, enhanced concurrency and performance, streamlined dependency management, meticulous timestamp handling, and robust error handling.

Dev Improvements

Architectural Decision Records (ADRs)

Introducing Architectural Decision Records (ADRs) in GoAlert! We now document key decisions around new and complex features, providing transparent insights into our development process. ADRs serve as a valuable resource for understanding the rationale behind design choices and enhancing collaboratoin within the GoAlert community.

Learn more about ADRs here.

Some of our current ADRs include decisions on tech migrations and the new API key architecture, and can be found here.

Migrations

We've invested significant efforts in addressing technical debt by migrating to new technologies. This includes transitions to TypeScript, SQLc, URQL, React Suspense, and React Hooks.

Misc Dev Improvements

We've fine-tuned user interactions, enriched logging, and polished alert management for an even smoother GoAlert experience. Notable updates, including refined canonical zone names, the addition of an ExpFlag component for conditional rendering, and enhanced alert noise reduction.

Misc Updates

Work Towards Plugin Support

We've started making significant progress towards plugin support in GoAlert. This doesn't yet have any user impact, but some new API endpoints and internal changes have been made to support this in the future.

New Contributors

Full Changelog: https://github.com/target/goalert/compare/v0.31.1...v0.32.0

goalert - v0.31.1

Published by mastercactapus about 1 year ago

GoAlert v0.31.1

This point release fixes some regressions present in the v0.31.0 release. Additionally, containers and binaries for this version were built with Go 1.21.1.

Bug Fixes

  • Fixed issue with SMTP server when multiple RCPT TO addresses were sent
  • Added a missing column for the alerts feature that prevented switchover from working properly
  • Fixed an issue that prevented adding webhooks to escalation policies when Slack is disabled
  • Fixed search behavior when matching multiple words

Misc

  • The Google Analytics feature was re-introduced and updated
  • Dependency and driver updates
  • New TypeScript conversion

Full Changelog: https://github.com/target/goalert/compare/v0.31.0...v0.31.1

goalert - v0.31.0

Published by mastercactapus about 1 year ago

GoAlert v0.31.0

Unveiling the latest GoAlert update with enhanced alert tracking, seamless system migration, and more. Experience greater control and efficiency in your alert management.

Container image: goalert/goalert:v0.31.0

New Features

Alert Noise Tracking

Users may now mark alerts as "noisy" and see the overall counts and escalations on the Alert Metrics page.


Message Logs Frequency Graph

There is now a graph to visualize sent messages:

Switchover UI

You can now migrate a live system from one DB server to another without downtime.
More information is available in the Switchover Guide.

Email Integration Keys via Built-In SMTP

Alerts created by email are now supported by pointing an MX record directly to GoAlert documentation available here.

Set/Update User Password

Users and admins are now able to update passwords from the UI

Slack DM Contact Method

Users can now add Slack direct messages as a contact method on their profile when Slack is enabled.

Alert Auto-Close

You can now set a global auto-close time for unacknowledged alerts under Maintenance on the Admin -> Config page.

Twilio Voice Customization

Configuring the Twilio voice name and language from the admin panel is now possible.

Webhook Support

Webhooks can now be set as a destination for scheduled on-call notifications and directly on an escalation policy step! Additionally, the service name is now included for alerts.

Escalate via Voice and SMS

You can now escalate an alert by voice and SMS.

Update Slack Usergroup

Slack usergroups can now automatically be updated by setting an on-call notification on a schedule!

Generic Alert API

It is now possible to get the alert and service ID when creating an alert via a Generic API key by setting the Accept header to application/json

Backend & API

We hardened security, expanded maintenance mode, and fixed some cleanup issues.

Improvements

We moved the add buttons on wide-screen devices from a floating-action button to a named button at the top to reduce confusion for new users.

We also made various improvements around accessibility, typography, and inputs around the application. Notably:

  • disabled notification options will now be shown (as disabled) to users rather than being hidden
  • Users can now enter heartbeat intervals as hours, days, or weeks.
  • Service descriptions can now be up to 6KiB
  • Calendar subscriptions now include the app and schedule name with shifts
  • Alert log now indicate delivery delays
  • improved the draggable list UX on EP and rotation pages

Time Component

We've introduced a new Time component to normalize the display and accessibility of timestamps and durations across the application.

Bug Fixes

We squashed a whole lot of bugs! Most notably those with long public URLs will no longer get errors when sending SMS messages as multi-segment messages are now supported.

Dev Changes

We made a lot of various improvements to the development tools and processes. Lots of tech-debt resolution, testing improvements, and documentation fixes!

GORM -> SQLC

We decided to end the experiment with GORM and instead adopt sqlc.

Linting Fixes

We added additional linting checks and fixes to our CI pipeline.

Feature Flags for Experimental Features

There is now support for experimental feature flags to allow breaking more extensive features into smaller pieces aiding in review and testing.

The list of current flags is available with goalert --list-experimental

Dependency Updates

Various dependency updates including a switch to Yarn pnp making installs and switching branches much faster.

TypeScript Conversions

Lots of progress made on the TypeScript conversion in https://github.com/target/goalert/issues/2318

New Contributors

Full Changelog: https://github.com/target/goalert/compare/v0.30.1...v0.31.0

goalert - v0.30.1

Published by mastercactapus almost 2 years ago

GoAlert v0.30.1

Minor release with bug and stability fixes for peak season.

Notable Changes

Misc Fixes

Dev Improvements

New Contributors

Full Changelog: https://github.com/target/goalert/compare/v0.30.0...v0.30.1

goalert - v0.30.0

Published by m17ch about 2 years ago

GoAlert v0.30.0

This version has many improvements and features that have been in the works for a while for users, admins, and developers!

In addition to the binary release below, this release is also available in container image form: goalert/goalert:v0.30.0

Note to Admins: Public URL Configuration is Changing

First and foremost, no breaking changes. Without configuration updates, the new version should behave like the old. However, the global Public URL config is now deprecated.

We added a new --public-url flag (or GOALERT_PUBLIC_URL env var), which is now the preferred way to configure the public address for things like auth, Twilio/Slack callbacks, SMS URLs, and redirects. You should test and update your environments accordingly. Most users can simply start GoAlert with --public-url set to their current Public URL config value; additional notes are below under "Migration Notes"

Things of note:

  • GoAlert will start without the new flag set and fall back to the old behavior. Upgrading to 0.30.0 should be as safe as all other versions with no breaking/behavioral change without explicit opt-in.
  • The new flag replaces all uses of Public URL (in config under General), Referrer URLs (in config under Auth), and the --http-prefix flag. Using it will cause said deprecated settings to be ignored.

This was done to simplify fragile code that caused problems, particularly with various reverse-proxy setups and confusion around deployments behind a route prefix. Redirects and validation no longer use the host header to guess the environment and will always assume it is available at the configured URL.

Migration Notes

  • If you have multiple required Auth Referrer URLs, run separate instances connected to the same DB, one for each URL.
  • If you are using --http-prefix, just ensure the same prefix is set as the path of your --public-url value

New Paint!

A long time coming, we finally added some color to the application and dark-mode support! Changing the color for yourself from the new settings popover is now possible (can be useful for those that use multiple environments).

new-ui

  • Adds a Current User Avatar to the top app bar. (#2212)
  • Adds a button for dark-mode to the user profile. (#2174)
  • Adds a color picker to the Theme Mode (now renamed to Appearance) ButtonGroup in the Settings Popover. (#2393)

Slack Account Linking

Slack account linking is finally supported without running the goalert-slack-email-sync tool. Linking allows a user to close or acknowledge an alert from Slack that previously needed to be maintained by an admin.

When a user attempts to interact with an alert for the first time in Slack, a private message will prompt them to link their account. After confirming in GoAlert, their initial action will be taken (e.g., close or ack), and their account will remain linked for future interactions.

Note: in response to feedback, we've updated the Slack notifier to only include the summary in messages, reducing channel noise.

slack-flow

  • Updates the Slack notification sender to only include the summary in the message payload. (#2478)
  • Adds the ability to link accounts directly from Slack in response to user interaction (#2564)

Maintenance Mode

We've made it possible to put a service in a temporary maintenance mode, which will still allow alerts to be created/acknowledged/closed but prevents escalations (including the first) so your phone isn't going off while you're working to fix an issue :)

image

  • Adds maintenance mode option to snooze alert notifications (#2512)

Alert Metrics for Services

We've added a metrics page for services so you can visualize alert counts, escalations, and time to acknowledge and close. It also allows you to export up to one year of alert data (including timing information) as a CSV.

You can find Alert Metrics under Quick Links on your service details page.

image

  • Adds Alert Metrics dashboard feature accessible from a Service Details quick link. (#2085)
  • Introduces a new engine module for creating and populating a new alert_metrics table. (#2177)
  • Styles the alert metrics graph using our MUI theme and MUI Paper, Typography elements for the graph's tooltip. (#2323)
  • Adds a new chart for visualizing time to acknowledge and time to close averages for daily alerts. (#2347)
  • Moves graph and CSV processing to a web worker when supported. (#2465)
  • Adds escalated alert count to the metrics graph and the information to the table and CSV export. (#2430)
  • Adds new daily_alert_metrics table that aggregates metrics from alert_metrics. (#2272)
  • Use alerts query as the source of truth. Additionally, closedAt is added to the table and CSV export. (#2448)
  • Use autosizer for rechart graphs (#2529)
  • Adds loading status to web worker (#2542)

Grafana Integration

Grafana Alerting is now supported, along with support for images!

image

  • Adds ImageURL to alert details, when available, for Grafana-generated alerts. (#2468)
  • Adds support for Grafana 8.x webhooks. (#2087)

Admin: Message Logs

A new Message Logs page allows admins to view metadata about recently sent notifications.

image

  • Adds Outgoing Logs view from the Admin page. (#2061)
  • Adds debugMessages query that an admin can use to retrieve a list of recent messages from the outgoing_messages table. (#2052)

Admin: Alert Counts Visualization

The new Alert Counts page will help admins find "busy" services and correlate high-alert events when necessary.

image

  • Adds records to the alert_logs table when running make regendb. (#2150)
  • Updates resetdb to include randomly generated escalation logs. (#2430)
  • Adds admin Alert Counts page (#2509)

Admin: Twilio Key Rotation

It is now possible to do a smooth key rotation with Twilio:

  1. Generate secondary auth token
  2. Set secondary as auth token
  3. Set primary as alt. auth token
  4. promote secondary to primary
  5. clear alt auth token

image

  • Add alternate auth token for use during key rotation (#2588)

Developer Experience Improvements

There is now a Dev link in the main navigation menu when starting in development mode (i.e., make start), giving quick access to tools and configuration for local development. In addition, there were several process improvements and paid tech debt with this release, such as a huge speed improvement with the switch to esbuild.

Some of these tools have been available and running with make start but the new dashboard will hopefully make it a lot easier to discover and use the bundled tools!

image

  • Adds "Dev" page in dev mode (#2555)
  • Adds runproc tool, a simpler alternative to runjson. (#2080)
  • Fixes some noise issues in the make start log output. (#2172)
  • Adds the ability to manipulate time within the confines of a Postgres database. (#2438)
  • Updates build-env image to have the necessary dependencies to run Cypress tests, allowing all build steps to be run in the same container. (#2400)
  • Adds a new tool, slowproxy that can simulate network latency, jitter, and throughput constraints for testing. (#2307)
  • Replaces webpack with esbuild for building app.js. (#2314)
  • Replaces the use of webpack-dev-server and the required proxy with a method that will serve files from the local filesystem or in memory. (#2246)
  • Removes old GraphQL code that has been deprecated/unmaintained for the past few releases. (#2051)
  • Allow setting PUBLIC_URL in dev (#2553)
  • Add testing section and move smoketests to test/smoke (#2590)

Bug Fixes/Misc

  • Fixes an issue where invalid int. keys returned 400 instead of 401 (#2546)
  • Add --public-url flag and strictly validate URLs (#2421)
  • Many accessibility improvements & javascript conversions to typescript. (#2318)
  • Some deadlock issues around rotations were fixed by introducing rather aggressive locks. (#2491)
  • Fix for user deletion causing rotation advancement. (#2375)
  • Increase maximum alert summary length to 1 KiB. (#2073)
  • Adds alert summary to status update messages. (#2074)
  • Increase the calendar subscription window of calculated shifts from 1 month to 1 year. (#2388)
  • Removes unmaintained tracing code and dependencies. (#2420)
  • Replaces the use of react-router-dom with wouter. (#2415)
  • Adds support for application/json in incoming webhook. (#2161)
  • Fixes an issue preventing switchover (#2552)
  • Fix/cleanup for Go 1.19 (#2563)
  • Fix make start issue when restarting postgres (#2580)
  • Allow setting SIZE= with make regendb to test various data sizes (#2580)
  • Fixed first-startup race conditions, as well as quick shutdown ones (#2580)
  • Add speedbump as a devtool to replace slowproxy (#2580)
  • Fixed a display bug with contact method verification when using message SIDs (#2580)
  • Update voice code to use encoding/xml (#2582)
  • Update SMS country-code restrictions (#2607)

Version Updates:

  • go -> 1.18.2 (#2354), (#2400)
  • material-ui -> v5 (#1946)
goalert - v0.29.0

Published by dctalbot almost 3 years ago

GoAlert v0.29.0

This release includes several new features in addition to general maintenance and bug fixes.

UI/UX Enhancements

  • The Application Name (configured in GoAlert admin dashboard) now appears in notifications where applicable. (#1881)
  • Text fields now use the Material UI OutlinedInput style in anticipation of MUIv5.
  • Schedule calendars now display events for overrides. (#1901)
  • If an alert has been in a pending state for more than 15 seconds, a notice is displayed on the Alert Details page. (#1779)
  • Users can favorite other users such that they appear first in lists, much like Schedules or Services. (#1864)

Temporary Schedules

  • A general "OVERRIDE" button has replaced the "TEMP SCHED" button located in the Schedule calendar toolbar. To create a Temporary Schedule, click this and select the Temporary Schedule option. (#1857)
  • The Temporary Schedules dialog has been consolidated into a single step. (#1912)
  • An error is now rendered when trying to create a Temporary Schedule that has gaps in coverage. This error may be bypassed by checking a confirmation checkbox. (#1891)
  • Solved an issue in which coverage gap warning notices were rendered erroneously.

Twilio Integration

  • Outgoing messages can now be sent using a Messaging Service SID. To enable, set the Twilio Messaging Service SID field in the GoAlert admin dashboard. (#1899)
  • The voice menu experience has been improved to have better phrasing, slower speaking, and other minor fixes. (#1918)

Slack Integration

  • Alert messages render a colored status bar to indicate whether the alert is unacknowledged, acknowledged, or closed. (#2004)
  • Enable "Interactive Messages" from the GoAlert admin dashboard to have alert messages include a button for acknowledging, escalating, or closing the alert. (#2014)
  • The Slack App manifest has been updated to include a users:read.email permission scope. See the instructions on the Getting Started page for how to configure a Slack App using the generated manifest. (#2025)
  • Slack users and GoAlert users can now be linked by inserting records into the auth_subjects table. This allows for Slack mentions e.g. in On-Call Notifications and interactive messages.

GraphQL API

  • A new debugMessageStatus query provides the state of a message for a given provider message ID. (#1917)

Bug Fixes/Misc

  • An issue with searching for non-English characters was fixed. (#1951)
  • Message bundling is enabled by default. (#1942)
  • Fixed a UI navigation issue when using an HTTP path prefix. (#1976)

Version Updates:

  • go 1.16.4 -> 1.17.2 (#2005)
  • react-markdown 6 -> 7 (#1854)
  • graphql 15 -> 16 (#2008)
goalert - v0.28.0

Published by dctalbot about 3 years ago

GoAlert v0.28.0

This release includes several new features in addition to general maintenance and bug fixes.

Many thanks to our new contributors!
@voromahery
@Voninkazo
@NateBigStone
@ganamavo
@wesley-dean-flexion

Slack Improvements

On-Call notifications

You can now have GoAlert notify Slack channels of on-call changes on a schedule. Notifications can be configured for any change, or at specific times of the day.
notifications-menu-scaled notifications-dialog

Other Improvements

  • The config page now has a "Create New Slack App" button that will generate a Slack app manifest pre-filled with GoAlert config
  • Alert notifications after the first will be broadcast to the channel from a thread reply (#1566)
  • Alerts will now have status updates posted in-thread to the original notification message (#1785)

slack-manifest-scaled slack-thread-scaled

UI/UX Enhancements

  • Search behavior has changed to use a root-word-based search. For user name searching, a word prefix algorithm was implemented more information is available in the PRs (#1860, #1872)
    word-search user-search-scaled

  • Actions have been moved from the top bar to MUI card actions
    mui-redesign-scaled

  • Calendar toolbar has been updated and loading status added to the calendar
    cal-toolbar-scaled

Webhook as a Contact Method

Users may now add webhooks as contact methods. They can be used similarly to email, SMS, and voice. More information can be found under "Using Webhooks" under /docs within the GoAlert application.

Must be enabled in the Admin -> Config page.

webhook-enable-scaled webhook-create-scaled
webhook-docs-scaled

User Management UI

Based on feedback in our community slack channel, we implemented some in-app user management solutions:

  • Admins can create a user from the user list (#1536)
  • Admins can edit a user's role from the user profile (#1506)
  • Admins can delete a user from the user profile (#1493)

create-user-scaled

gRPC SysAPI

A new experimental gRPC API server is now included (disabled by default).

      --listen-sysapi string             (Experimental) Listen address:port for the system API (gRPC).
      --sysapi-ca-file string            (Experimental) Specifies a path to a PEM-encoded certificate(s) to authorize connections from plugin services.
      --sysapi-cert-file string          (Experimental) Specifies a path to a PEM-encoded certificate to use when connecting to plugin services.
      --sysapi-key-file string           (Experimental) Specifies a path to a PEM-encoded private key file use when connecting to plugin services.

Currently supported API methods are AuthSubjects and DeleteUser allowing an external tool to enumerate and delete/cleanup users. (e.g., compare OIDC users with an Active Directory server).

Protobuf definition and certificate information can be found under pkg/sysapi

Bug Fixes/Misc

  • Application Name can now be set to change the page title, in the future this will be applied to messaging as well (like SMS) (#1803)
  • Escalation policies can now be favorited (#1567)
  • Rotations in which a user participates more than once can now be re-ordered safely (#1478)
  • GraphQL v1 endpoint is now disabled by default (#1584)
  • Removed a race condition that allowed for duplicate overrides (#1594)
  • Accessibility: screen reader will no longer stutter on "Quick Links" (#1618)
  • Safari: fixed an issue rendering a user's contact method list (#1500)
  • Fixed an issue where searching by phone number could return duplicate user results (#1646)
  • Fixed an issue with the service label dialog form validation (#1635)
  • Querying for an integration key that doesn't exist would return an "unexpected error". It now returns null (#1640)
  • Many React class components converted to hooks
  • Began removing Material UI v4 deprecated props in anticipation of v5

Version Updates:

goalert - v0.27.0

Published by m17ch over 3 years ago

GoAlert v0.27.0

This release has a lot of long-anticipated awesome new features and improvements! Most of the work of this release was done under the covers to enable these as well as new features currently in the pipeline.

Thanks to our new contributors @kanish671 and @phoenix6561 for help with the React Hooks conversions Issue #923

Temporary Schedules

Temporary schedules allow replacing the entire on-call schedule for a fixed timeframe. It should help situations where a team requires fine-grained control of on-call responsibility for a few days (e.g. peak week).

To get started using this feature, click the "Temp Sched" button from the schedule details page calendar:
image

A dialog will open allowing you to configure the time span of the schedule and associated shifts:
image image

Temporary schedules will appear green on the calendar:
image

Email (SMTP) as an User Contact Method

A new user contact method type EMAIL has been introduced. This allows an additional avenue for users to receive alert notifications.
image

The SMTP server details can be configured from the Admin page.
image

Prioritize Schedules on Escalation Policies

Schedules now appear at the top of the Edit Step dialog. Many users had trouble with overrides before realizing a rotation was used instead of schedule. This change was found to encourage users to use schedules (instead of rotations) when configuring a policy.

image

Prometheus Metrics

You can now enable Prometheus metrics at startup. This allows for monitoring some of the internals and health of GoAlert.

To enable, set the --listen-prometheus flag or the GOALERT_LISTEN_PROMETHEUS environment variable.

A new endpoint at <listen_address>/metrics will include:

  • Total number of created alerts
  • Number of in-flight HTTP server requests
  • Total number of requests by status code
  • Duration of outgoing HTTP requests
  • Number of active outgoing HTTP requests
  • Number of engine cycles
  • Engine cycle duration by module
  • GraphQL resolver method statistics
  • Sent notifications by contact method type and message type
  • Received response count by destination and response (e.g. ack, close, stop, start)

Contact Method Throttling

GoAlert now implements bucketed throttling of notifications, per contact method. This is to avoid spamming devices due to misconfiguration or a noisy/broken healthcheck.

For reference, new rules are:

Message Type Contact Method Type Rules
All All 1 per minute
Status All 1 per 3 minutes 3 per 20 minutes (burst) 8 per 2 hours
Alert SMS 5 per 15 minutes (burst) 11 per 1 hour 21 per 3 hours
Alert Voice 3 per 15 minutes (burst) 7 per 1 hour 15 per 3 hours

Bug Fixes/Misc

  • Updated GoAlert in-app documentation at /docs: Now supports rendering multiple markdown documents.
  • ui/schedules: monthly views are fixed to include the correct out-of-bounds shifts when viewing the schedule calendar.
  • ui/forms: fixed an issue where the schedule rule weekday filter couldn't be edited

Version Updates:

  • Golang 1.15.3 -> 1.16.4
  • Postgres 11 -> 13
  • Typescript 3.9.7 -> 4.0.3
  • Apollo 3.1.5 -> 3.3.15
  • Webpack 4.44.2 to 5.13.0
goalert - v0.26.0

Published by arurao almost 4 years ago

GoAlert v0.26.0

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

New Version Toast

A version check has now been added to GoAlert's UI that will display a persistent snackbar notification when a new version is detected.

image

Prometheus Alertmanager Support

A new integration key type for Prometheus Alertmanager has been added.
image

Config Enhancements

The config page has a new condensed/summary view to make finding items easier:
image

User Session Management

Users may now manage active login sessions from the profile page, including the ability to easily end/cleanup ones no longer used.
(Admin note: Initial last access time will start as the time of your deployment when introducing this feature.)

image

Full timestamps on Alerts List Page

A toggle was added to the alerts list filter to switch between displaying the duration since created or the full timestamp when created.

image

Phone Number in Use Enhancement

When adding a new contact method with a number that is already in-use, users will now have more helpful messaging with a link to the existing users' profile.

image

Alert Log Message Status

The alert log status entries will now indicate failures for things like provider "Twilio" is disabled.

image

Support for Warnings/Notices

A new notices API has been added within the GraphQL schema for a Notice. Currently, a notice will be displayed if an escalation policy is unused, in the future, this will be expanded to other common issues.

Notice Design

Test Message Delivery Status

A new status dialog has been added that displays real-time delivery details and the status of test notifications.

image

Other Improvements/ Bug Fixes:

  • Updated to Go 1.15.3, which adds the ability to embed TZ information as well as new vet rules
  • Updated Cypress to 5.5.0, which adds built-in test retries
  • User session cleanup - user sessions greater than 30 days are removed from the database
  • Arm Support was added, making it possible to build and publish multi-platform docker images for GoAlert.
  • Fix for an issue with RequireConfig where integration keys using Mailgun were always display as disabled, even if Mailgun is enabled.
  • Address validation fix for mailgun invalid recipient address would cause a 500 response instead of expected 406.
  • Updated gqlgen to 0.13.0 and error handling (e.g. validation error responses fixed)
  • Fixed goimports command in Makefile so that using go run ... will automatically pull the tool, as well as using the correct version, rather than requiring the user to install it manually.
  • Updated Makefile and Dockerfile to use embedded TZ data instead of relying on the system package. This was to resolve an issue where DST values were no longer calculated properly in TZ versions 2020b onwards (e.g. latest in the alpine build). This should help to ensure that binaries and container images are more consistent with regard to calculated times.
  • Added a section of recommended tools for development to the docs.
  • Updated the admin config page to use accordions for the individual sections.
  • Extended the alerts query by adding fields to AlertSearchOptions that allows for querying alerts by date.
  • Bug fix for Schedules > Shifts > Filter > Time Limit > Specify, now has the capability to backspace numerical values along with a conditional check defaulting users input values between 1-30 appropriately.
goalert - v0.25.0

Published by mastercactapus about 4 years ago

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.
goalert - v0.24.1

Published by mastercactapus almost 5 years ago

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.

goalert - v0.24.0

Published by mastercactapus almost 5 years ago

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
goalert - v0.23.0

Published by m17ch about 5 years ago

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)
goalert - v0.22.0

Published by mastercactapus over 5 years ago

Initial open source release!