* events: initial alerting implementation
* policies: move error handling to process, ensure policy UUID is saved
* policies: add tests for error handling in PolicyProcess
* events: improve loop detection
* events: add API for action and trigger
* policies: ensure http_request is not used in context
* events: adjust unittests for user handling
* policies/event_matcher: add policy type
* events: add API tests
* events: add middleware tests
* core: make application's provider not required
* outposts: allow blank kubeconfig
* outposts: validate kubeconfig before saving
* api: fix formatting
* stages/invitation: remove invitation_created signal as model_created functions the same
* stages/invitation: ensure created_by is set when creating from API
* events: rebase migrations on master
* events: fix missing Alerts from API
* policies: fix unittests
* events: add tests for alerts
* events: rename from alerting to notifications
* events: add ability to specify severity of notification created
* policies/event_matcher: Add app field to match on event app
* policies/event_matcher: fix EventMatcher not being included in API
* core: use objects.none() when get_queryset is used
* events: use m2m for multiple transports, create notification object in task
* events: add default triggers
* events: fix migrations return value
* events: fix notification_transport not being in the correct queue
* stages/email: allow sending of email without backend
* events: implement sending via webhook + slack/discord + email
* root: make global email settings configurable
* stages/email: add use_global_settings
* stages/email: add test_email command to test email sending
* stages/email: update email template
* stages/email: simplify email template path
* stages/email: add support for user-supplied email templates
* stages/email: add tests for sending and templates
* stages/email: only add custom template if permissions are correct
* docs: add custom email template docs
* root: add /templates volume in docker-compose by default
* stages/email: fix form not allowing custom templates
* stages/email: use relative path for custom templates
* stages/email: check if all templates exist on startup, reset
* docs: add global email docs for docker-compose
* helm: add email config to helm chart
* helm: load all secrets with env prefix
* helm: move s3 and smtp secret to secret
* stages/email: fix test for relative name
* stages/email: add argument to send email from existing stage
* stages/email: set uid using slug of message id
* stages/email: ensure template validation ignores migration runs
* docs: add email troubleshooting docs
* stages/email: fix long task_name breaking task list
* events: rename audit to events
* policies/expression: log expression exceptions as event
* policies/expression: add ExpressionPolicy Model to event when possible
* lib/expressions: ensure syntax errors are logged too
* lib: fix lint error
* policies: add execution_logging field
* core: add property mapping tests
* policies/expression: add full test
* policies/expression: fix attribute name
* policies: add execution_logging
* web: fix imports
* root: update swagger
* policies: use dataclass instead of dict for types
* events: add support for dataclass as event param
* events: add special keys which are never cleaned
* policies: add tests for process, don't clean full cache
* admin: create event when new version is seen
* events: move utils to separate file
* admin: add tests for admin tasks
* events: add .set_user method to ensure users have correct attributes set
* core: add test for property_mapping errors with user and request