 cf58c5617a
			
		
	
	cf58c5617a
	
	
	
		
			
			core: Tidy contributor onboarding. - Fixes typos. - Fixes stale links. - Tidies Makefile so that Poetry env is optional for hygiene commands. - Remove mismatched YAML naming. - Uses shebang on Python scripts. - Document semver usage. - Redirect OpenAPI schema. Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>
		
			
				
	
	
		
			1122 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			1122 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
| [[redirects]]
 | |
|   from = "/blog/*"
 | |
|   to = "https://goauthentik.io/blog/:splat"
 | |
| 
 | |
| # Migration from docs to separate directory
 | |
| [[redirects]]
 | |
|   from = "/docs/integrations/*"
 | |
|   to = "/integrations/:splat"
 | |
| 
 | |
| # Docusaurus update removes index
 | |
| [[redirects]]
 | |
|   from = "/docs/:firstPart/index"
 | |
|   to = "/docs/:firstPart/"
 | |
|   status = 302
 | |
|   force = true
 | |
| [[redirects]]
 | |
|   from = "/docs/:firstPart/:secondPart/index"
 | |
|   to = "/docs/:firstPart/:secondPart/"
 | |
|   status = 302
 | |
|   force = true
 | |
| [[redirects]]
 | |
|   from = "/integrations/:firstPart/index"
 | |
|   to = "/integrations/:firstPart/"
 | |
|   status = 302
 | |
|   force = true
 | |
| [[redirects]]
 | |
|   from = "/integrations/:firstPart/:secondPart/index"
 | |
|   to = "/integrations/:firstPart/:secondPart/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[headers]]
 | |
|   for = "/*"
 | |
|   [headers.values]
 | |
|     X-Frame-Options = "DENY"
 | |
| 
 | |
| [dev]
 | |
|   command = "npm run watch"
 | |
|   targetPort = 3000
 | |
|   publish = "build"
 | |
| 
 | |
| # Moving doc files
 | |
| [[redirects]]
 | |
|   from = "/docs/core/applications"
 | |
|   to = "/docs/applications"
 | |
|   status = 302
 | |
| 
 | |
| # Moved Sources from Integrations to Docs
 | |
| [[redirects]]
 | |
|   from = "/integrations/sources/*"
 | |
|   to = "/docs/sources/:splat"
 | |
|   status = 302
 | |
| 
 | |
| # Split Property Mappings docs between Providers and Sources
 | |
| [[redirects]]
 | |
|   from = "/docs/property-mappings/"
 | |
|   to = "/docs/providers/property-mappings/"
 | |
|   status = 302
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/property-mappings/expression"
 | |
|   to = "/docs/providers/property-mappings/expression"
 | |
|   status = 302
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/add-secure-apps/flows-stages/flow/layouts.md"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/executors/if-flow.md"
 | |
|   status = 302
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| # Migration to new structure with script Sept 2025
 | |
| [[redirects]]
 | |
|   from = "/docs/advanced/tenancy"
 | |
|   to = "/docs/sys-mgmt/tenancy"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/applications/"
 | |
|   to = "/docs/add-secure-apps/applications/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/applications/manage_apps"
 | |
|   to = "/docs/add-secure-apps/applications/manage_apps"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/core/brands"
 | |
|   to = "/docs/customize/brands"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/core/certificates"
 | |
|   to = "/docs/sys-mgmt/certificates"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/core/geoip"
 | |
|   to = "/docs/install-config/geoip"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/core/settings"
 | |
|   to = "/docs/sys-mgmt/settings"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/events/"
 | |
|   to = "/docs/sys-mgmt/events/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/events/notifications"
 | |
|   to = "/docs/sys-mgmt/events/notifications"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/events/transports"
 | |
|   to = "/docs/sys-mgmt/events/transports"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/context/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/context/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/examples/flows"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/examples/flows"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/examples/snippets"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/examples/snippets"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/executors/headless"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/executors/headless"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/executors/if-flow"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/executors/if-flow"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/executors/sfe"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/executors/sfe"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/executors/user-settings"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/executors/user-settings"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/inspector"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/inspector"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/layouts"
 | |
|   to = "/docs/add-secure-apps/flows-stages/flow/layouts"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_duo/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages//authenticator_duo/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_sms/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/authenticator_sms/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_static/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/authenticator_static/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_totp/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/authenticator_totp/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_validate/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/authenticator_validate/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/authenticator_webauthn/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/authenticator_webauthn/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/captcha/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/captcha/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/deny"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/deny"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/email/x"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/email/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/identification/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/identification/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/invitation/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/invitation/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/password/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/password/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/prompt/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/prompt/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/source/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/source/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/user_delete"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/user_delete"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/user_login/"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/user_login/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/user_logout"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/user_logout"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/flow/stages/user_write"
 | |
|   to = "/docs/add-secure-apps/flows-stages/stages/user_write"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/air-gapped"
 | |
|   to = "/docs/install-config/air-gapped"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/automated-install"
 | |
|   to = "/docs/install-config/automated-install"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/beta"
 | |
|   to = "/docs/install-config/beta"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/configuration"
 | |
|   to = "/docs/install-config/configuration/configuration"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/docker-compose"
 | |
|   to = "/docs/install-config/install/docker-compose"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/x"
 | |
|   to = "/docs/install-config/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/kubernetes"
 | |
|   to = "/docs/install-config/install/kubernetes"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/monitoring"
 | |
|   to = "/docs/sys-mgmt/ops/monitoring"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/reverse-proxy"
 | |
|   to = "/docs/install-config/reverse-proxy"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/storage-s3"
 | |
|   to = "/docs/install-config/storage-s3"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/installation/upgrade"
 | |
|   to = "/docs/install-config/upgrade"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/interfaces/_global/customcss"
 | |
|   to = "/docs/customize/interfaces/_global/customcss"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/interfaces/_global/global"
 | |
|   to = "/docs/customize/interfaces/_global/global"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/interfaces/admin/customization"
 | |
|   to = "/docs/customize/interfaces/admin/customization"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/interfaces/flow/customization"
 | |
|   to = "/docs/customize/interfaces/flow/customization"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/interfaces/user/customization"
 | |
|   to = "/docs/customize/interfaces/user/customization"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/_config"
 | |
|   to = "/docs/add-secure-apps/outposts/_config"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/embedded/embedded"
 | |
|   to = "/docs/add-secure-apps/outposts/embedded/embedded"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/x"
 | |
|   to = "/docs/add-secure-apps/outposts/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/integrations/docker"
 | |
|   to = "/docs/add-secure-apps/outposts/integrations/docker"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/integrations/kubernetes"
 | |
|   to = "/docs/add-secure-apps/outposts/integrations/kubernetes"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/manual-deploy-docker-compose"
 | |
|   to = "/docs/add-secure-apps/outposts/manual-deploy-docker-compose"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/manual-deploy-kubernetes"
 | |
|   to = "/docs/add-secure-apps/outposts/manual-deploy-kubernetes"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/outposts/upgrading"
 | |
|   to = "/docs/add-secure-apps/outposts/upgrading"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/policies/expression"
 | |
|   to = "/docs/customize/policies/expression"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/policies/"
 | |
|   to = "/docs/customize/policies/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/policies/working_with_policies/unique_email"
 | |
|   to = "/docs/customize/policies/expression/unique_email"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/customize/policies/working_with_policies/unique_email"
 | |
|   to = "/docs/customize/policies/expression/unique_email"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/policies/working_with_policies/whitelist_email"
 | |
|   to = "/docs/customize/policies/expression/whitelist_email"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/customize/policies/working_with_policies/whitelist_email"
 | |
|   to = "/docs/customize/policies/expression/whitelist_email"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/policies/working_with_policies/working_with_policies"
 | |
|   to = "/docs/customize/policies/working_with_policies/working_with_policies"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/entra/add-entra-provider"
 | |
|   to = "/docs/add-secure-apps/providers/entra/add-entra-provider"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/entra/"
 | |
|   to = "/docs/add-secure-apps/providers/entra/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/entra/setup-entra"
 | |
|   to = "/docs/add-secure-apps/providers/entra/setup-entra"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/gws/add-gws-provider"
 | |
|   to = "/docs/add-secure-apps/providers/gws/add-gws-provider"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/gws/"
 | |
|   to = "/docs/add-secure-apps/providers/gws/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/gws/setup-gws"
 | |
|   to = "/docs/add-secure-apps/providers/gws/setup-gws"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/x"
 | |
|   to = "/docs/add-secure-apps/providers/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/ldap/generic_setup"
 | |
|   to = "/docs/add-secure-apps/providers/ldap/generic_setup"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/ldap/"
 | |
|   to = "/docs/add-secure-apps/providers/ldap/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/oauth2/client_credentials"
 | |
|   to = "/docs/add-secure-apps/providers/oauth2/client_credentials"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/oauth2/device_code"
 | |
|   to = "/docs/add-secure-apps/providers/oauth2/device_code"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/oauth2/"
 | |
|   to = "/docs/add-secure-apps/providers/oauth2/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/property-mappings/expression"
 | |
|   to = "/docs/add-secure-apps/providers/property-mappings/expression"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/property-mappings/"
 | |
|   to = "/docs/add-secure-apps/providers/property-mappings/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/__placeholders"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/__placeholders"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_caddy_standalone"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_caddy_standalone"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_envoy_istio"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_envoy_istio"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_nginx_ingress"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_nginx_ingress"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_nginx_proxy_manager"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_nginx_proxy_manager"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_nginx_standalone"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_nginx_standalone"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_traefik_compose"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_traefik_compose"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_traefik_ingress"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_traefik_ingress"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/_traefik_standalone"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/_traefik_standalone"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/custom_headers"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/custom_headers"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/forward_auth"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/forward_auth"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/header_authentication"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/header_authentication"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/server_caddy"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/server_caddy"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/server_envoy"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/server_envoy"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/server_nginx"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/server_nginx"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/proxy/server_traefik"
 | |
|   to = "/docs/add-secure-apps/providers/proxy/server_traefik"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/rac/how-to-rac"
 | |
|   to = "/docs/add-secure-apps/providers/rac/how-to-rac"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/rac/"
 | |
|   to = "/docs/add-secure-apps/providers/rac/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/radius/"
 | |
|   to = "/docs/add-secure-apps/providers/radius/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/saml/"
 | |
|   to = "/docs/add-secure-apps/providers/saml/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/providers/scim/"
 | |
|   to = "/docs/add-secure-apps/providers/scim/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/2023-06-cure53"
 | |
|   to = "/docs/security/audits-and-certs/2023-06-cure53"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2022-23555"
 | |
|   to = "/docs/security/cves/CVE-2022-23555"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2022-46145"
 | |
|   to = "/docs/security/cves/CVE-2022-46145"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2022-46172"
 | |
|   to = "/docs/security/cves/CVE-2022-46172"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2024-42490"
 | |
|   to = "/docs/security/cves/CVE-2024-42490"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2023-26481"
 | |
|   to = "/docs/security/cves/CVE-2023-26481"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2023-36456"
 | |
|   to = "/docs/security/cves/CVE-2023-36456"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2023-39522"
 | |
|   to = "/docs/security/cves/CVE-2023-39522"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2023-48228"
 | |
|   to = "/docs/security/cves/CVE-2023-48228"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2024-21637"
 | |
|   to = "/docs/security/cves/CVE-2024-21637"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2024-23647"
 | |
|   to = "/docs/security/cves/CVE-2024-23647"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2024-37905"
 | |
|   to = "/docs/security/cves/CVE-2024-37905"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/CVE-2024-38371"
 | |
|   to = "/docs/security/cves/CVE-2024-38371"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/security/GHSA-rjvp-29xq-f62w"
 | |
|   to = "/docs/security/cves/GHSA-rjvp-29xq-f62w"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/active-directory/"
 | |
|   to = "/docs/users-sources/sources/directory-sync/active-directory/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/apple/"
 | |
|   to = "/docs/users-sources/sources/social-logins/apple/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/azure-ad/"
 | |
|   to = "/docs/users-sources/sources/social-logins/azure-ad/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/discord/"
 | |
|   to = "/docs/users-sources/sources/social-logins/discord/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/facebook/"
 | |
|   to = "/docs/users-sources/sources/social-logins/facebook/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/freeipa/"
 | |
|   to = "/docs/users-sources/sources/directory-sync/freeipa/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/github/"
 | |
|   to = "/docs/users-sources/sources/social-logins/github/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/google/"
 | |
|   to = "/docs/users-sources/sources/social-logins/google/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/"
 | |
|   to = "/docs/users-sources/sources/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/ldap/"
 | |
|   to = "/docs/users-sources/sources/protocols/ldap/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/mailcow/"
 | |
|   to = "/docs/users-sources/sources/social-logins/mailcow/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/oauth/"
 | |
|   to = "/docs/users-sources/sources/protocols/oauth/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/plex/"
 | |
|   to = "/docs/users-sources/sources/social-logins/plex/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/property-mappings/expressions"
 | |
|   to = "/docs/users-sources/sources/property-mappings/expressions"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/property-mappings/"
 | |
|   to = "/docs/users-sources/sources/property-mappings/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/saml/"
 | |
|   to = "/docs/users-sources/sources/protocols/saml/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/scim/"
 | |
|   to = "/docs/users-sources/sources/protocols/scim/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/twitch/"
 | |
|   to = "/docs/users-sources/sources/social-logins/twitch/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/sources/twitter/"
 | |
|   to = "/docs/users-sources/sources/social-logins/twitter/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/access-control/x"
 | |
|   to = "/docs/users-sources/access-control/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/access-control/manage_permissions"
 | |
|   to = "/docs/users-sources/access-control/manage_permissions"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/access-control/permissions"
 | |
|   to = "/docs/users-sources/access-control/permissions"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/groups/group_ref"
 | |
|   to = "/docs/users-sources/groups/group_ref"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/groups/x"
 | |
|   to = "/docs/users-sources/groups/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/groups/manage_groups"
 | |
|   to = "/docs/users-sources/groups/manage_groups"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/roles/x"
 | |
|   to = "/docs/users-sources/roles/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/roles/manage_roles"
 | |
|   to = "/docs/users-sources/roles/manage_roles"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/user/x"
 | |
|   to = "/docs/users-sources/user/x"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/user/invitations"
 | |
|   to = "/docs/users-sources/user/invitations"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/user/user_basic_operations"
 | |
|   to = "/docs/users-sources/user/user_basic_operations"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/user-group-role/user/user_ref"
 | |
|   to = "/docs/users-sources/user/user_ref"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| # Manual redirects, moved Dev Docs into regular docs Sept 2024
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/"
 | |
|   to = "/docs/developer-docs/"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/setup/full-dev-environment"
 | |
|   to = "/docs/developer-docs/setup/full-dev-environment"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/setup/frontend-dev-environment"
 | |
|   to = "/docs/developer-docs/setup/frontend-dev-environment"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/setup/website-dev-environment"
 | |
|   to = "/docs/developer-docs/setup/website-dev-environment"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/schema.yaml"
 | |
|   to = "/schema.yml"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/api"
 | |
|   to = "/docs/developer-docs/api/api"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/reference/*"
 | |
|   to = "/docs/developer-docs/api/reference/:splat"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/flow-executor"
 | |
|   to = "/docs/developer-docs/api/flow-executor"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/making-schema-changes"
 | |
|   to = "/docs/developer-docs/api/making-schema-changes"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/websocket"
 | |
|   to = "/docs/developer-docs/api/websocket"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/api/clients"
 | |
|   to = "/docs/developer-docs/api/clients"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/blueprints"
 | |
|   to = "/docs/customize/blueprints"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/writing-documentation"
 | |
|   to = "/docs/developer-docs/docs/writing-documentation"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/style-guide"
 | |
|   to = "/docs/developer-docs/docs/style-guide"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/templates/index"
 | |
|   to = "/docs/developer-docs/docs/templates/index"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/templates/procedural"
 | |
|   to = "/docs/developer-docs/docs/templates/procedural"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/templates/conceptual"
 | |
|   to = "/docs/developer-docs/docs/templates/conceptual"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/templates/reference"
 | |
|   to = "/docs/developer-docs/docs/templates/reference"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/docs/templates/combo"
 | |
|   to = "/docs/developer-docs/docs/templates/combo"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/releases/index"
 | |
|   to = "/docs/developer-docs/releases/index"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/developer-docs/translation"
 | |
|   to = "/docs/developer-docs/translation"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| 
 | |
| # Moved GeoIP and S3 under System Management/user_basic_operations
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/install-config/storage-s3"
 | |
|   to = "/docs/sys-mgmt/ops/storage-s3"
 | |
|   status = 302
 | |
|   force = true
 | |
| 
 | |
| 
 | |
| [[redirects]]
 | |
|   from = "/docs/install-config/geoip"
 | |
|   to = "/docs/sys-mgmt/ops/geoip"
 | |
|   status = 302
 | |
|   force = true
 |