Skip to content

v0.33.0

Latest
Compare
Choose a tag to compare
@mastercactapus mastercactapus released this 27 Nov 17:28
· 40 commits to master since this release
2d3f9f2

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.
image

4 PRs by @mastercactapus

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

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

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

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

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

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

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

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

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 for COPY commands, increasing efficiency when working with large datasets.
5 PRs by @mastercactapus

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

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

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

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

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
  • 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:

Thank you for your contributions!


Full Changelog: v0.32.0...v0.33.0-rc.0