The Auth Wall feature allows you to restrict access to your deployments by requiring a login. This is particularly useful for protecting sensitive environments, such as staging or preview deployments, ensuring that only authorized people can access them.
Auth Wall is managed per team: open your team and select Auth Wall in the top menu. Personal teams have the page too. Each environment's header shows whether its wall is on, and links to this page filtered to the app.
Auth Wall vs. Stormkit Auth: The Auth Wall gates access to a deployment for your team and the people you share it with (staging, previews, sensitive environments). To add sign-in for your application's own users — email and password, magic links, or Google / X OAuth — see Authentication instead.
The Environments tab lists the team's apps, their environments and the mode of each environment's wall:
To change the mode, select one or more environments (click a row or its checkbox), pick a mode in the bar above the table and click Apply. The change applies immediately.
Every member of the team can change the mode of an environment.
The Logins tab lists the people who can pass the walls of the team's apps. Only team owners and admins can see and manage it; other members see only the Environments tab.
A login has:
Click the New login button (the person icon), enter the email and password, and choose the apps.
Click the pencil icon next to a login to change its password, metadata or apps. Leave the password empty to keep the current one.
A removed login can't log in again. Visitors who are already logged in keep access until their session expires, at most 24 hours later. The same applies when you take away a login's access to an app.
A login that allows magic links can sign in without a password. On the login page, the visitor enters their email and clicks Email me a sign-in link. Stormkit emails a link that works once, within 15 minutes. Opening it shows a Continue button, and continuing signs the visitor in for up to 24 hours, the same as a password login.
The Continue step is there because some email providers open links to scan them before you do. Without it, the scan would use the link up.
After a visitor logs in, Stormkit adds two headers to the requests it forwards to your app's server side (serverless functions, server-side rendering and proxied backends):
X-Auth-Wall-Email: the email of the login.X-Auth-Wall-Metadata: the login's metadata, when it has any.Stormkit removes these headers from incoming requests, so a visitor can't set them. Static files can't read request headers.
The metadata is captured when the visitor logs in: a change reaches your app on the visitor's next login. Admins can see it, so don't put secrets in it.
Periodic triggers pass the wall of their own environment without a login. When a trigger calls one of the environment's Stormkit URLs or verified custom domains over HTTPS, Stormkit signs the request, and the wall lets it through. Signed requests don't follow redirects, so point the trigger at the final URL.
Your app receives the trigger's ID in the X-Auth-Wall-Trigger header. As with the login headers, Stormkit removes it from incoming requests, so a visitor can't set it.
Triggers that call any other host, another environment of the same app, or a plain HTTP URL are not signed and still hit the wall.
https:// and is a Stormkit URL or a verified custom domain of the trigger's own environment.