* api: fix types for config API
* api: remove broken swagger UI
* admin: re-fix system task enum
* events: make event optional
* events: fix Schema for notification transport test
* flows: use APIView for Flow Executor
* core: fix schema for Metrics APIs
* web: rewrite to use generated API client
* web: generate API Client in CI
* admin: use x_cord and y_cord to prevent yaml issues
* events: fix linting errors
* web: don't lint generated code
* core: fix fields not being required in TypeSerializer
* flows: fix missing permission_classes
* web: cleanup
* web: fix rendering of graph on Overview page
* web: cleanup imports
* core: fix missing background image filter
* flows: fix flows not advancing properly
* stages/*: fix warnings during get_challenge
* web: send Flow response as JSON instead of FormData
* web: fix styles for horizontal tabs
* web: add base chart class and custom chart for application view
* root: generate ts client for e2e tests
* web: don't attempt to connect to websocket in selenium tests
* web: fix UserTokenList not being included in the build
* web: fix styling for static token list
* web: fix CSRF Token missing
* stages/authenticator_static: fix error when disable static tokens
* core: fix display issue when updating user info
* web: fix Flow executor not showing spinner when redirecting
* managed: add base manager and Ops
* core: use ManagedModel for Token and PropertyMapping
* providers/saml: implement managed objects for SAML Provider
* sources/ldap: migrate to managed
* providers/oauth2: migrate to managed
* providers/proxy: migrate to managed
* *: load .managed in apps
* managed: add reconcile task, run on startup
* providers/oauth2: fix import path for managed
* providers/saml: don't set FriendlyName when mapping is none
* *: use ObjectManager in tests to ensure objects exist
* ci: use vmImage ubuntu-latest
* providers/saml: add new mapping for username and user id
* tests: remove docker proxy
* tests/e2e: use updated attribute names
* docs: update SAML docs
* tests/e2e: fix remaining saml cases
* outposts: make tokens as managed
* *: make PropertyMapping SerializerModel
* web: add page for property-mappings
* web: add codemirror to common_styles because codemirror
* docs: fix member-of in nextcloud
* docs: nextcloud add admin
* web: fix refresh reloading data two times
* web: add loading lock to table to prevent double loads
* web: add ability to use null in QueryArgs (value will be skipped)
* web: add hide option to property mappings
* web: fix linting
* 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
* flows: initial diagram implementation
* web: install flowchart.js, add flow diagram page
* web: adjust diagram colours for dark mode
* flows: add permission checks for diagram
* flows: fix formatting
* web: fix formatting for web
* flows: add fix when last stage has policy
* flows: add test for diagram
* web: flows/diagram: add support for light mode
* flows: make Flows's Diagram API return json, add more tests and fix swagger response
* core: fix application API always being sorted by name
* web: add sorting to tables
* web: add search to TablePage
* core: add search to applications API
* core: add MetaNameSerializer
* *: fix signature for non-modal serializers
* providers/*: implement MetaNameSerializer
* web: implement full app list page, use as default in sidebar
* web: fix linting errors
* admin: remove old application list
* web: fix default sorting for application list
* web: fix spacing for search element in toolbar