GoAlert v0.33.0
After a significant hiatus since our last release, we're thrilled to announce GoAlert v0.33.0! This release lays the groundwork for some exciting future features while also delivering numerous fixes and stability improvements to enhance your current experience.
GraphQL API Keys
GraphQL API Keys are now fully supported and out of the experimental phase! We've introduced a dedicated editor to manage your API keys more efficiently, simplifying the process of creating, editing, and organizing your keys.
4 PRs by @mastercactapus
- gql-api-keys: only setState once when duplicating key by @mastercactapus in #3792
- gql-api-keys: Takes GQL API keys out of experimental state by @mastercactapus in #3797
- gqlapi: Ensure stable hash for API key policy by @mastercactapus in #3941
- admin/apikeys: add CodeMirror editor for editing keys by @mastercactapus in #4149
Alert Metadata
Introducing Alert Metadata: You can now attach arbitrary key-value metadata to alerts, enhancing the context and flexibility of your alerting workflow. This feature allows for more detailed and informative alerts, facilitating better incident management.
To add metadata to an alert, include it in your request parameters or JSON body. For example:
Via URL parameters:
bash
Copy code
/api/v2/generic/incomming?token=<token>&meta=example_key=example_value&meta=example_key2=example_value2
Or in a JSON body:
{
"summary": "test",
"details": "test",
"meta": {
"example_key": "example_value",
"example_key2": "example_value2"
}
}
Refer to the documentation (/docs
) on your GoAlert instance for more details.
1 PR by @shivanishendge
- Add alert metadata by @shivanishendge in #3764
Miscellaneous Enhancements
We've introduced several improvements to enhance usability and reliability:
-
Custom End Time for Service Maintenance Mode: You can now specify a custom end time when putting a service into maintenance mode, giving you more control over maintenance scheduling.
-
Externally Managed Integration Keys: Integration keys can now be marked as "externally managed," allowing seamless integration with external systems that manage keys.
-
Improved SMTP Reliability: The remote monitor will now retry sending emails if the SMTP server is unavailable, increasing the robustness of email notifications.
3 PRs by @mastercactapus, @nimjor
- service maint: allow specifying a custom end time by @mastercactapus in #3815
- int keys: Add support for externally-managed integration keys by @mastercactapus in #3818
- add smtp retries by @nimjor in #4115
Bug Fixes
This release includes numerous UI bug fixes and log improvements to enhance stability and user experience. We've addressed issues related to alert details, markdown links, schedule notifications, and more, reducing log noise and fixing various edge-case bugs.
20 PRs by @Forfold, @allending313, @cuishuang, @mastercactapus
- fix: alert detail markdown link bug by @allending313 in #3683
- util/Markdown: fix handling of links with URL-escapable characters by @mastercactapus in #3721
- sched/notif: retain time and weekday filter if swapping radio options by @mastercactapus in #3741
- graphql: Convert empty UUID strings to NullUUID by @mastercactapus in #3744
- intkeys: fix site24x7 label bug by @mastercactapus in #3763
- graphql: use tx with create alert by @mastercactapus in #3776
- util/sqlutil: fix handling of block delimiters in SplitQuery by @mastercactapus in #3775
- engine/statusmgr: Skip status updates without an associated log entry by @mastercactapus in #3794
- webworker: add check on worker method name by @mastercactapus in #3795
- profile: fix flicker when opening dialogs by @mastercactapus in #3790
- ui/list: padding and console fixes by @Forfold in #3850
- list pages: fix conditional create button rendering by @mastercactapus in #3855
- ui: fix step number display for EP step delay text by @Forfold in #3916
- ui: fix edit empy temp sched bug by @Forfold in #4019
- Fix no-rows bug with last message status by @mastercactapus in #4061
- test contact method: Fix verification dialog, and refactor send test dialog by @mastercactapus in #4062
- fix: fix slice init length by @cuishuang in #4090
- log: cleanup erroneous log messages by @mastercactapus in #4122
- util/timeutil: Ensure exponents are never encoded into the output String() by @mastercactapus in #4123
- engine: update advisory lock handling and add locked transaction support by @mastercactapus in #4152
Admin Features
Pprof Profiling Support
Administrators can now create Go pprof
profiles for performance analysis. By setting the --listen-pprof
flag, you can access profiling data to help diagnose and optimize GoAlert's performance.
1 PR by @mastercactapus
- Pprof endpoint by @mastercactapus in #3686
Future Features
A significant portion of this release is dedicated to laying the groundwork for upcoming major features:
- Programmable Integration Keys
- Plugin System for Outgoing Messages
- Job Queue System for Processing Tasks
Universal Integration Keys (Experimental)
We are excited to introduce Universal Integration Keys, currently available behind the univ-keys
experimental flag. This powerful feature allows you to use Expr expressions to define custom rules for handling incoming messages, providing unprecedented flexibility in configuring alert processing.
With Universal Integration Keys, you can programmatically control how alerts are created, modified, or suppressed based on dynamic conditions. Additionally, you can send "signals" for less critical payloads and pipe a request directly to a Slack message, for example.
For more information, please refer to the Universal Integration Keys documentation.
33 PRs by @Forfold, @mastercactapus
- univ-keys: add Expr <-> Condition support by @mastercactapus in #3778
- add type universal to integration keys by @Forfold in #3836
- intkey: update old code to use API-driven key types by @mastercactapus in #3837
- ui: add route for universal integration keys by @Forfold in #3838
- uik: add basic CRUD operations by @mastercactapus in #3847
- expr: use scalar GraphQL types to handle validation by @mastercactapus in #3849
- ui: update breadcrumbs to handle doubly nested routes by @Forfold in #3848
- uik: add bounds/limits on int key config by @mastercactapus in #3851
- uik: add token generation and rotation by @mastercactapus in #3873
- uik: add deleteSecondaryToken mutation by @mastercactapus in #3877
- uik: add methods of updating single rules by @mastercactapus in #3880
- uik: implement new endpoint and authorization by @mastercactapus in #3879
- uik: add token rotation dialogs and controls by @mastercactapus in #3894
- uik: add dynamic actions api by @mastercactapus in #3898
- ui: add DynamicActionField component by @mastercactapus in #3909
- uik: switch from global to per-rule continue option by @mastercactapus in #3924
- dest/action: simplify error flow in forms by @mastercactapus in #3926
- Update DynamicParams to use ExprStringMap by @mastercactapus in #3944
- Add Universal Key Actions management forms by @mastercactapus in #3945
- Add default action edit and rule management dialogs by @mastercactapus in #3946
- uik: Add ability to edit and manage rules by @mastercactapus in #3950
- uik: Add
pending_signals
table by @mastercactapus in #3959 - uik: Enhance channel creation and rule compilation by @mastercactapus in #3960
- engine/signal: Add signal manager module and support for sending signal messages by @mastercactapus in #3975
- uik: Add
defaultValue
to dynamic action params by @mastercactapus in #3976 - uik: Refactor config to use specific UIK types by @mastercactapus in #3978
- ui: combine create and edit uik dialogs by @Forfold in #3994
- ui: universal integration keys by @Forfold in #3947
- ui: add tooltip to formdialog action buttons, use for universal keys by @Forfold in #4000
- graphql: Improve error handling for validation for arg and param types by @mastercactapus in #4054
- Add documentation for Universal Integration Keys by @mastercactapus in #4025
- integrationkey/uik: Wrap error in validation for HTTP response by @mastercactapus in #4073
- integrationkey/uik: refactor eval logic by @mastercactapus in #4142
Plugin System for Outgoing Messages
We have made significant progress towards developing a plugin system for outgoing messages. This new system will allow you to extend GoAlert's notification capabilities by integrating with custom or third-party services.
As part of this effort, all destination structures have been normalized, providing a central registry to manage and register notification destinations. This lays the groundwork for a more modular and extensible notification system, paving the way for future enhancements and custom integrations.
71 PRs by @Forfold, @allending313, @ethan-haynes, @mastercactapus, @tony-tvu
- ep: destinations: update step list/actions to use dest-types by @mastercactapus in #3665
- dest: return proper data in graphql errors by @mastercactapus in #3676
- users: use generic destinations for user contact method list component by @tony-tvu in #3684
- dest: fix error handling for user contact method form by @mastercactapus in #3685
- dest api: Clean up error API by @mastercactapus in #3698
- users: use generic destinations for user CM create dialog component by @tony-tvu in #3664
- dest/graphql: convert comments to description strings by @mastercactapus in #3702
- users: use generic destinations for User Notification Rule List component by @ethan-haynes in #3701
- dest: add API support to create EP step with destinations by @tony-tvu in #3700
- dest/graphql: normalize schema fields by @mastercactapus in #3703
- dev: fix PR merge conflict by @mastercactapus in #3706
- dest: add sched notif form by @mastercactapus in #3704
- dev: format graphql files with prettier by @mastercactapus in #3715
- dest: sched notifications create dialog by @mastercactapus in #3705
- dest/escalation-policies: use destinations for EP step form by @tony-tvu in #3717
- dest: add dest version of schedule notification edit dialog by @mastercactapus in #3719
- dest/escalation-policies: use destinations for EP step create dialog by @tony-tvu in #3718
- user contact method edit dialog dest by @ethan-haynes in #3720
- dest: Remove disabled message by @mastercactapus in #3761
- graphql: remove experimental directive for dest-types by @mastercactapus in #3777
- dest: use destinations for EP step edit dialog by @allending313 in #3772
- dest: Destination display error handling by @mastercactapus in #3779
- ui/config: always request dest types by @mastercactapus in #3800
- ui/sched: always use Dest API by @mastercactapus in #3785
- ui: update material select tests by @Forfold in #3874
- ui/profile: add helpers and move notification rule tests to playwright by @mastercactapus in #3876
- profile: optimize on-call query by @mastercactapus in #3871
- ui/policy: always use Dest API by @mastercactapus in #3867
- ui/profile: always use Dest API by @mastercactapus in #3875
- ui: update escalation policy step button text by @Forfold in #3878
- playwright: fix flaky contact method tests by @mastercactapus in #3882
- expflag: remove dest-types flag by @mastercactapus in #3881
- ui/on-call notifications: always show quick link, show error on no days by @Forfold in #3893
- dev/test-components: fix race when waiting for chips to appear in ep step test by @mastercactapus in #3896
- storybook: allow for per-story graphql mocking by @mastercactapus in #3899
- ui/chore: remove "Dest" suffix from relevant UI files by @Forfold in #3895
- ui: update EP step form destination UX by @Forfold in #3897
- graphql: add StringMap for destinations by @mastercactapus in #3938
- Add ErrorConsumer by @mastercactapus in #3939
- DestinationField StringMap update by @mastercactapus in #3940
- dest: update user forms to use StringMap instead of FieldValuePair[] by @mastercactapus in #3943
- dest: update user_contact_methods and notification_channels to have a
dest
column by @mastercactapus in #3951 - engine: fix for notification channel deduplication migration by @mastercactapus in #3971
- dest: Refactor param handling and standardize field names by @mastercactapus in #3973
- ErrorConsumer: Support function-based error handling and cleanup by @mastercactapus in #3974
- dest: use gadb.DestV1 for Destination and DestinationInput by @mastercactapus in #3977
- notification/dest: refactor to allow future map values by @mastercactapus in #3979
- dest: move desttypes to nfydest package by @mastercactapus in #3981
- dest: use single "registry" for slack channel destination type by @mastercactapus in #3982
- dest: move slack DM to
nfydest.Registry
by @mastercactapus in #3983 - nfydest: move slack usergroup support to registry by @mastercactapus in #3992
- nfydest: move webhook to
nfydest.Registry
by @mastercactapus in #3993 - dest: Validate actions and add alert destination to registry by @mastercactapus in #3995
- dest: move user to nfydest.Registry by @mastercactapus in #3996
- dest: move schedule and rotation to
nfydest.Registry
by @mastercactapus in #3998 - ep: use dest/actions instead of targets by @mastercactapus in #3999
- dest: bugfix on error paths by @mastercactapus in #4001
- dest: move remaining EP code away from targets and to dest by @mastercactapus in #4002
- escalation: Remove unused step target methods by @mastercactapus in #4003
- Transition OnCallNotificatonRule to use 'Dest' field by @mastercactapus in #4004
- dest: migrate remaining contact method destinations to the
nfydest.Registry
by @mastercactapus in #4005 - dest: switch UI and alertlog from type/val to dest by @mastercactapus in #4013
- dest: move to DestV1 away from DestType by @mastercactapus in #4020
- dest: use DestV1 in notification.Message by @mastercactapus in #4021
- notification: remove DestType and Dest by @mastercactapus in #4022
- notificationchannel: Remove Type and Value in favor of Dest from struct by @mastercactapus in #4023
- user/contactmethod: Add Dest field directly to struct, prefer over Type/Value by @mastercactapus in #4024
- user/contactmethod: Remove Type and Value fields for ContactMethod by @mastercactapus in #4026
- notification: move message definitions to nfymsg package by @mastercactapus in #4027
- dest: cleanup message types and add send and status methods to nfydest.Registry by @mastercactapus in #4028
- notification: migrate from
notification.Sender
tonfydest.MessageSender
by @mastercactapus in #4033
Job Queue System
We have implemented a job queue system to manage background tasks more effectively. This new system enhances the reliability and scalability of GoAlert, especially in environments with multiple engine instances.
With the job queue, tasks are processed asynchronously, reducing the risk of conflicts and improving overall performance. This advancement also means that the --api-only
flag may no longer be necessary in future releases, simplifying deployment configurations.
5 PRs by @mastercactapus
- db: use pgxpool.Pool for database connections by @mastercactapus in #4125
- migrate: Use SplitQuery for migration parsing by @mastercactapus in #4126
- pgxpool: Don't use idle connections with stdlib when doing pooling by @mastercactapus in #4137
- engine: river job queue by @mastercactapus in #4135
- signals: use job queue to handle processing by @mastercactapus in #4140
Development Updates
GitHub Workflow Improvements
We've enhanced our GitHub workflows to streamline development and contribution processes:
- Migration Validation Workflow: A new workflow has been added to automatically validate new database migrations, ensuring consistency and reliability in schema changes.
- Custom PR Labeler: We've developed a custom labeler script to more accurately calculate and label pull request sizes, improving our review process and helping contributors get timely feedback.
7 PRs by @mastercactapus
- github: labeler: enable fail_if_xl flag by @mastercactapus in #3677
- dev: ignore deleted files when calculating pr size by @mastercactapus in #3786
- dev: fix labeler bug by @mastercactapus in #3787
- labeler: switch to using git diff for labeling by @mastercactapus in #4052
- migrate: Add GH action workflow to validate new migrations by @mastercactapus in #4053
- Add permissions to labeler by @mastercactapus in #4070
- Switch to
pull_request_target
in labeler workflow by @mastercactapus in #4101
Tooling Enhancements
We've made several improvements to our development tooling:
- Switch to Mailpit: Replaced MailHog with Mailpit for better email testing during development.
- Load Testing with K6: Integrated K6 for load testing, allowing for more comprehensive performance testing and benchmarking.
- Structured Logging with slog.Logger: Introduced
slog.Logger
for improved structured logging, enhancing log readability and analysis. - Improved pgdump-lite: Updated
pgdump-lite
to use connection pooling and CSV output forCOPY
commands, increasing efficiency when working with large datasets.
5 PRs by @mastercactapus
- devtools/pgdump-lite: use pool for pgdump-lite, csv output for COPY by @mastercactapus in #3770
- Update README with local development instructions by @mastercactapus in #4034
- test/smoke/harness: migrate from MailHog to Mailpit by @mastercactapus in #4091
- logging: introduce slog.Logger by @mastercactapus in #4124
- test/load: Add K6 for load testing and example scripts by @mastercactapus in #4138
Codebase Migrations
TypeScript Migration
Our ongoing effort to migrate the frontend codebase from JavaScript to TypeScript continues, improving code quality, type safety, and maintainability.
1 PR by @mastercactapus
- ts: convert PolicyStepCard to ts by @mastercactapus in #3796
SQLC Migration
We are progressively migrating our SQL queries to sqlc, a tool that generates type-safe Go code from SQL queries. This enhances code reliability and eases database interactions.
5 PRs by @mastercactapus
- engine/message: start migrating to sqlc by @mastercactapus in #3948
- Refactor notification channels handling by @mastercactapus in #3949
- notification: move message status lookups to sqlc by @mastercactapus in #4012
- engine/schedulemanager: convert to sqlc by @mastercactapus in #4116
- engine/processinglock: migrate to sqlc by @mastercactapus in #4106
URQL Migration
We are transitioning our GraphQL client from Apollo to URQL, aiming for a lighter and more flexible solution. This change improves performance and simplifies state management in the frontend.
10 PRs by @KatieMSB, @mastercactapus
- ep: switch policy steps to use urql by @mastercactapus in #3799
- urql: convert remaining schedule files to urql by @KatieMSB in #3822
- urql: Convert UserList to use urql by @mastercactapus in #3823
- urql: move service list to urql by @mastercactapus in #3825
- urql: move policy list to urql by @mastercactapus in #3826
- urql: move schedule list to urql by @mastercactapus in #3827
- urql: move rotation list to ListPageControls by @mastercactapus in #3828
- urql: PolicyCreateDialog and UserContactMethodEditDialog by @mastercactapus in #3856
- urql: move schedule override list to ListPageControls by @mastercactapus in #3853
- urql: move admin message logs to ListPageControls by @mastercactapus in #3854
Testing Improvements
We've made significant enhancements to our testing infrastructure:
- Better Organization: Restructured test suites for clarity and maintainability.
- Flaky Tests Fixed: Addressed and resolved intermittent test failures to ensure reliable build pipelines.
- Playwright Migration: Migrated some tests to use Playwright for more robust end-to-end testing capabilities.
10 PRs by @c0d33ngr, @mastercactapus, @testwill
- storybook: add exp flags helper by @mastercactapus in #3678
- Update Makefile and development-setup files by @c0d33ngr in #3680
- Breakdown service.spec.ts test logically by @c0d33ngr in #3639
- dev: CST/CDT changes, use testid by @mastercactapus in #3743
- dev: update demo container for integration test usage by @mastercactapus in #3734
- dev: update to storybook 8 by @mastercactapus in #3746
- test/smoke: add migratetest package by @mastercactapus in #3774
- dev: refactor migrations_test to use new migrationtest package by @mastercactapus in #3784
- playwright: Fix tooltip hover check by @mastercactapus in #3824
- chore: pkg imported more than once by @testwill in #3852
Dependency Updates
We've updated numerous dependencies to their latest versions, ensuring security patches and performance improvements are included. This includes updates to Go modules, JavaScript packages, and development tools.
169 PRs by @Forfold, @KatieMSB, @dependabot, @mastercactapus
- build(deps-dev): bump msw-storybook-addon from 2.0.0--canary.122.b3ed3b1.0 to 2.0.0--canary.122.06f0c92.0 by @dependabot in #3674
- build(deps-dev): bump @apollo/client from 3.8.5 to 3.9.4 by @dependabot in #3675
- build(deps): bump golang.org/x/term from 0.16.0 to 0.17.0 by @dependabot in #3666
- build(deps): bump golangci/golangci-lint-action from 3 to 4 by @dependabot in #3670
- build(deps-dev): bump stylelint from 15.11.0 to 16.2.1 by @dependabot in #3672
- build(deps-dev): bump eslint-plugin-n from 16.5.0 to 16.6.2 by @dependabot in #3671
- build(deps): bump golang.org/x/crypto from 0.18.0 to 0.19.0 by @dependabot in #3669
- build(deps): bump github.com/emersion/go-smtp from 0.20.1 to 0.20.2 by @dependabot in #3637
- dev: update Go to 1.22 by @mastercactapus in #3679
- build(deps): bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 by @dependabot in #3667
- go: fix toolchain error with go by @Forfold in #3682
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.18.1 to 7.0.1 by @dependabot in #3696
- build(deps): bump github.com/jackc/pgtype from 1.14.1 to 1.14.2 by @dependabot in #3689
- build(deps): bump github.com/99designs/gqlgen from 0.17.43 to 0.17.44 by @dependabot in #3690
- build(deps): bump google.golang.org/grpc from 1.61.0 to 1.61.1 by @dependabot in #3688
- build(deps-dev): bump @dnd-kit/sortable from 7.0.2 to 8.0.0 by @dependabot in #3695
- build(deps-dev): bump @apollo/client from 3.9.4 to 3.9.5 by @dependabot in #3693
- build(deps): bump github.com/slack-go/slack from 0.12.3 to 0.12.4 by @dependabot in #3692
- build(deps): bump golang.org/x/tools from 0.17.0 to 0.18.0 by @dependabot in #3691
- dev: Update tool versions by @mastercactapus in #3687
- build(deps-dev): bump semver from 7.5.4 to 7.6.0 by @dependabot in #3694
- build(deps): bump ip from 2.0.0 to 2.0.1 by @dependabot in #3699
- build(deps-dev): bump react-markdown from 9.0.0 to 9.0.1 by @dependabot in #3713
- build(deps-dev): bump mdi-material-ui from 7.7.0 to 7.8.0 by @dependabot in #3712
- build(deps): bump github.com/nyaruka/phonenumbers from 1.3.1 to 1.3.2 by @dependabot in #3711
- build(deps-dev): bump @types/react-transition-group from 4.4.7 to 4.4.10 by @dependabot in #3708
- build(deps): bump honnef.co/go/tools from 0.4.6 to 0.4.7 by @dependabot in #3710
- build(deps): bump google.golang.org/grpc from 1.61.1 to 1.62.0 by @dependabot in #3709
- build(deps-dev): bump prettier from 3.2.4 to 3.2.5 by @dependabot in #3707
- build(deps): bump github.com/slack-go/slack from 0.12.4 to 0.12.5 by @dependabot in #3730
- build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by @dependabot in #3729
- build(deps): bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 by @dependabot in #3728
- build(deps-dev): bump @mui/x-data-grid from 6.19.3 to 6.19.6 by @dependabot in #3726
- build(deps-dev): bump vite from 5.0.12 to 5.1.4 by @dependabot in #3724
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.0.1 to 7.1.0 by @dependabot in #3723
- build(deps): bump github.com/jackc/pgx/v4 from 4.18.1 to 4.18.2 by @dependabot in #3742
- build(deps): bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @dependabot in #3733
- chore: update go.sum by @Forfold in #3745
- build(deps): bump github.com/jackc/pgx/v5 from 5.5.3 to 5.5.5 by @dependabot in #3738
- build(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1 by @dependabot in #3740
- build(deps): bump golang.org/x/crypto from 0.19.0 to 0.21.0 by @dependabot in #3731
- build(deps-dev): bump @babel/core from 7.23.9 to 7.24.0 by @dependabot in #3735
- build(deps-dev): bump @types/react-dom from 18.2.18 to 18.2.22 by @dependabot in #3748
- build(deps): bump golang.org/x/tools from 0.18.0 to 0.19.0 by @dependabot in #3739
- build(deps): bump follow-redirects from 1.15.5 to 1.15.6 by @dependabot in #3750
- build(deps): bump github.com/99designs/gqlgen from 0.17.44 to 0.17.45 by @dependabot in #3758
- build(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.0 to 5.2.1 by @dependabot in #3757
- build(deps): bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 by @dependabot in #3756
- build(deps-dev): bump eslint-plugin-storybook from 0.6.15 to 0.8.0 by @dependabot in #3754
- dev: update protoc to latest version by @mastercactapus in #3760
- build(deps-dev): bump @mui/icons-material from 5.14.9 to 5.15.13 by @dependabot in #3752
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.1.1 to 2.2.0 by @dependabot in #3769
- build(deps): bump github.com/coreos/go-oidc/v3 from 3.9.0 to 3.10.0 by @dependabot in #3768
- build(deps-dev): bump @types/node from 20.10.5 to 20.11.30 by @dependabot in #3766
- build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.34.1 by @dependabot in #3765
- build(deps): bump github.com/nyaruka/phonenumbers from 1.3.2 to 1.3.4 by @dependabot in #3755
- build(deps): bump express from 4.18.2 to 4.19.2 by @dependabot in #3773
- build(deps-dev): bump eslint from 8.56.0 to 8.57.0 by @dependabot in #3737
- build(deps): bump github.com/jackc/pgtype from 1.14.2 to 1.14.3 by @dependabot in #3767
- build(deps-dev): bump react-error-boundary from 4.0.12 to 4.0.13 by @dependabot in #3781
- build(deps-dev): bump vite from 5.1.4 to 5.1.7 by @dependabot in #3793
- build(deps): bump github.com/emersion/go-smtp from 0.20.2 to 0.21.0 by @dependabot in #3782
- build(deps-dev): bump esbuild from 0.19.10 to 0.20.2 by @dependabot in #3807
- build(deps-dev): bump @storybook/types from 8.0.0 to 8.0.6 by @dependabot in #3806
- build(deps): bump golang.org/x/crypto from 0.21.0 to 0.22.0 by @dependabot in #3805
- build(deps): bump golang.org/x/term from 0.18.0 to 0.19.0 by @dependabot in #3804
- build(deps): bump golang.org/x/tools from 0.19.0 to 0.20.0 by @dependabot in #3803
- build(deps-dev): bump @storybook/test from 8.0.0 to 8.0.8 by @dependabot in #3814
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.0 to 2.2.1 by @dependabot in #3813
- build(deps): bump github.com/emersion/go-smtp from 0.21.0 to 0.21.1 by @dependabot in #3811
- build(deps): bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 by @dependabot in #3801
- build(deps): bump tar from 6.2.0 to 6.2.1 by @dependabot in #3810
- build(deps-dev): bump @types/chance from 1.1.4 to 1.1.6 by @dependabot in #3821
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.1.0 to 7.7.0 by @dependabot in #3820
- dev: update ui dependencies by @KatieMSB in #3817
- build(deps): bump google.golang.org/grpc from 1.62.1 to 1.63.2 by @dependabot in #3812
- build(deps-dev): bump eslint-plugin-prettier from 5.0.0 to 5.1.3 by @dependabot in #3834
- build(deps-dev): bump @apollo/client from 3.9.5 to 3.10.1 by @dependabot in #3833
- build(deps-dev): bump storybook from 8.0.0 to 8.0.9 by @dependabot in #3830
- build(deps): bump golangci/golangci-lint-action from 4 to 5 by @dependabot in #3829
- build(deps): bump ejs from 3.1.9 to 3.1.10 by @dependabot in #3835
- build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by @dependabot in #3841
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.1 to 2.2.2 by @dependabot in #3842
- build(deps-dev): bump @types/lodash from 4.14.202 to 4.17.1 by @dependabot in #3844
- build(deps-dev): bump react-virtualized-auto-sizer from 1.0.20 to 1.0.24 by @dependabot in #3845
- build(deps-dev): bump eslint-plugin-react-hooks from 4.6.0 to 4.6.2 by @dependabot in #3846
- build(deps): bump github.com/expr-lang/expr from 1.16.3 to 1.16.5 by @dependabot in #3840
- build(deps): bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 by @dependabot in #3862
- build(deps): bump github.com/fullstorydev/grpcui from 1.3.3 to 1.5.0 by @dependabot in #3819
- build(deps-dev): bump glob from 10.3.10 to 10.3.14 by @dependabot in #3860
- build(deps-dev): bump stylelint-config-standard from 34.0.0 to 36.0.0 by @dependabot in #3859
- build(deps): bump golangci/golangci-lint-action from 5 to 6 by @dependabot in #3857
- build(deps): bump github.com/99designs/gqlgen from 0.17.45 to 0.17.46 by @dependabot in #3863
- build(deps-dev): bump msw from 2.0.11 to 2.3.0 by @dependabot in #3858
- build(deps): bump github.com/emersion/go-smtp from 0.21.1 to 0.21.2 by @dependabot in #3864
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 by @dependabot in #3865
- build(deps): bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 by @dependabot in #3885
- build(deps): bump golang.org/x/term from 0.19.0 to 0.20.0 by @dependabot in #3886
- build(deps-dev): bump msw-storybook-addon from 2.0.0--canary.122.06f0c92.0 to 2.0.2 by @dependabot in #3889
- build(deps-dev): bump @mui/lab from 5.0.0-alpha.162 to 5.0.0-alpha.170 by @dependabot in #3890
- build(deps-dev): bump @mui/system from 5.15.6 to 5.15.15 by @dependabot in #3888
- build(deps): bump github.com/fullstorydev/grpcui from 1.3.3 to 1.5.0 by @dependabot in #3883
- build(deps): bump github.com/99designs/gqlgen from 0.17.46 to 0.17.47 by @dependabot in #3884
- build(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 by @dependabot in #3903
- build(deps): bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 by @dependabot in #3905
- build(deps): bump github.com/slack-go/slack from 0.12.5 to 0.13.0 by @dependabot in #3906
- build(deps): bump github.com/fatih/color from 1.16.0 to 1.17.0 by @dependabot in #3907
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.7.0 to 7.11.0 by @dependabot in #3913
- build(deps-dev): bump react-big-calendar and @types/react-big-calendar by @dependabot in #3900
- build(deps-dev): bump diff and @types/diff by @dependabot in #3922
- build(deps-dev): bump @mui/material from 5.15.15 to 5.15.19 by @dependabot in #3921
- build(deps): bump golang.org/x/crypto from 0.23.0 to 0.24.0 by @dependabot in #3919
- build(deps-dev): bump @storybook/test-runner from 0.17.0 to 0.18.2 by @dependabot in #3911
- build(deps): bump ws from 6.2.2 to 6.2.3 by @dependabot in #3935
- build(deps-dev): bump classnames from 2.3.2 to 2.5.1 by @dependabot in #3933
- build(deps-dev): bump @emotion/styled from 11.11.0 to 11.11.5 by @dependabot in #3931
- build(deps): bump github.com/vektah/gqlparser/v2 from 2.5.12 to 2.5.16 by @dependabot in #3930
- build(deps): bump github.com/99designs/gqlgen from 0.17.47 to 0.17.49 by @dependabot in #3929
- build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @dependabot in #3917
- update go deps by @Forfold in #3958
- build(deps-dev): bump @mui/icons-material from 5.15.13 to 5.15.21 by @dependabot in #3955
- build(deps-dev): bump typescript from 5.2.2 to 5.5.2 by @dependabot in #3937
- build(deps-dev): bump recharts from 2.9.2 to 2.12.7 by @dependabot in #3861
- build(deps): bump golang.org/x/term from 0.21.0 to 0.22.0 by @dependabot in #3967
- build(deps-dev): bump @storybook/addon-links from 8.0.0 to 8.1.11 by @dependabot in #3970
- build(deps-dev): bump @dnd-kit/core from 6.0.8 to 6.1.0 by @dependabot in #3969
- build(deps-dev): bump @types/prop-types from 15.7.11 to 15.7.12 by @dependabot in #3968
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0 by @dependabot in #3964
- build(deps): bump golang.org/x/crypto from 0.24.0 to 0.25.0 by @dependabot in #3963
- build(deps): bump golang.org/x/oauth2 from 0.19.0 to 0.21.0 by @dependabot in #3966
- build(deps-dev): bump @storybook/addon-essentials from 8.0.0 to 8.1.11 by @dependabot in #3956
- build(deps): bump github.com/coreos/go-oidc/v3 from 3.10.0 to 3.11.0 by @dependabot in #3986
- build(deps): bump github.com/rubenv/sql-migrate from 1.6.1 to 1.7.0 by @dependabot in #3984
- build(deps-dev): bump stylelint from 16.2.1 to 16.7.0 by @dependabot in #3991
- build(deps-dev): bump @mui/system from 5.15.15 to 5.16.1 by @dependabot in #3989
- build(deps-dev): bump react-dom and @types/react-dom by @dependabot in #3987
- build(deps): bump github.com/emersion/go-smtp from 0.21.2 to 0.21.3 by @dependabot in #3985
- build(deps): bump github.com/slack-go/slack from 0.13.0 to 0.13.1 by @dependabot in #4010
- build(deps): bump github.com/nyaruka/phonenumbers from 1.3.6 to 1.4.0 by @dependabot in #4011
- build(deps-dev): bump react-redux from 8.1.3 to 9.1.2 by @dependabot in #4008
- build(deps-dev): bump @apollo/client from 3.10.1 to 3.10.8 by @dependabot in #4007
- build(deps-dev): bump vite from 5.1.7 to 5.3.4 by @dependabot in #4006
- build(deps-dev): bump eslint-plugin-n from 16.6.2 to 17.10.2 by @dependabot in #4041
- build(deps): bump golang.org/x/tools from 0.23.0 to 0.24.0 by @dependabot in #4040
- build(deps): bump golang.org/x/sys from 0.22.0 to 0.24.0 by @dependabot in #4037
- build(deps): bump github.com/slack-go/slack from 0.13.1 to 0.14.0 by @dependabot in #4048
- build(deps): bump axios from 1.7.2 to 1.7.4 by @dependabot in #4045
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.2 to 2.2.3 by @dependabot in #4047
- build(deps): bump golang.org/x/oauth2 from 0.21.0 to 0.22.0 by @dependabot in #4038
- build(deps-dev): bump @storybook/preview-api from 8.2.5 to 8.3.2 by @dependabot in #4075
- build(deps): bump google.golang.org/grpc from 1.65.0 to 1.67.0 by @dependabot in #4074
-
- Update Go dependencies and tools by @mastercactapus in #4063
- deps: bulk update minor JS dependencies by @mastercactapus in #4080
- deps: bulk update JS libraries by @mastercactapus in #4082
- build(deps): bump github.com/hashicorp/yamux from 0.1.1 to 0.1.2 by @dependabot in #4088
- build(deps): bump github.com/vektah/gqlparser/v2 from 2.5.16 to 2.5.17 by @dependabot in #4089
- build(deps-dev): bump eslint-plugin-storybook from 0.8.0 to 0.9.0 by @dependabot in #4087
- build(deps-dev): bump diff from 5.2.0 to 7.0.0 by @dependabot in #4086
- build(deps-dev): bump @storybook/addon-links from 8.3.3 to 8.3.6 by @dependabot in #4109
- build(deps-dev): bump @storybook/addon-essentials from 8.3.3 to 8.3.6 by @dependabot in #4108
- build(deps-dev): bump @storybook/blocks from 8.3.3 to 8.3.6 by @dependabot in #4107
- build(deps-dev): bump @storybook/types from 8.3.3 to 8.3.6 by @dependabot in #4113
- build(deps-dev): bump eslint-plugin-n from 17.10.3 to 17.11.1 by @dependabot in #4111
- build(deps-dev): bump @storybook/addon-links from 8.3.6 to 8.4.1 by @dependabot in #4119
- build(deps-dev): bump vite from 5.4.7 to 5.4.10 by @dependabot in #4118
- go: update Go to 1.23.3 and dependencies by @mastercactapus in #4136
- build(deps): bump github.com/nyaruka/phonenumbers from 1.4.1 to 1.4.2 by @dependabot in #4148
- build(deps-dev): bump @storybook/types from 8.3.6 to 8.4.4 by @dependabot in #4146
- build(deps): bump cross-spawn from 6.0.5 to 6.0.6 by @dependabot in #4150
New Contributors
We are grateful to the new contributors who have joined the GoAlert community:
- @c0d33ngr made their first contribution in #3680
- @shivanishendge made their first contribution in #3764
- @testwill made their first contribution in #3852
- @cuishuang made their first contribution in #4090
Thank you for your contributions!
Full Changelog: v0.32.0...v0.33.0-rc.0