Skip to content

Update the auth configuration

PATCH
/admin/system/auth

Persists the password policy and SSO provider list. The providers are stored but NOT enforced for login yet — enforcement (LDAP/SAML/OAuth login flows) is its own future phase. Per-provider config (config map) is opaque here; the integration code validates the shape at use time.

Authentication + SSO configuration. Persisted under the sysconfig key auth. The password policy applies only to local accounts; SSO logins are validated by the upstream identity provider. SSO providers are STORED here but not yet USED at login time — enforcement lands in a follow-up phase.

object
password_policy
required
object
min_length
required
integer
0 <= 256
require_upper
required
boolean
require_number
required
boolean
require_symbol
required
boolean
disallow_common
required

Reject common-password list (“password”, “123456”, …).

boolean
max_age_days
required

0 = passwords never expire.

integer
0 <= 36500
sso_providers
required
Array<object>
object
id

Stable identifier assigned by the admin UI on create. Empty on a freshly-added provider; the handler fills it in. Used as OAuth state and as the row key for later edits.

string
kind
required
string
Allowed values: ldap saml google github x
enabled
required
boolean
display_name
required
string
config

Per-kind opaque config. For LDAP: server URL, base DN, bind credentials, search filter. For SAML: IdP metadata URL, SP entity ID, certs. For OAuth (Google/GitHub/X): client_id, client_secret, redirect_uri, scopes. Validated at use time by the integration code, not by this endpoint.

object
key
additional properties
any
self_registration

Self-service signup tunables. Default zero-valued (disabled, verification on, role “Base”) so installs upgrading without opting in stay closed.

object
enabled

Master switch. /auth/register returns 403 when false.

boolean
require_email_verification

When true (recommended), new accounts must click a verification link before they can sign in. Disable only for closed-network installs where outbound SMTP isn’t available.

boolean
default_role

Role name assigned to fresh signups. Default “Base”. Operators can point this at a more restricted role for moderated communities.

string

Updated auth config

Authentication + SSO configuration. Persisted under the sysconfig key auth. The password policy applies only to local accounts; SSO logins are validated by the upstream identity provider. SSO providers are STORED here but not yet USED at login time — enforcement lands in a follow-up phase.

object
password_policy
required
object
min_length
required
integer
0 <= 256
require_upper
required
boolean
require_number
required
boolean
require_symbol
required
boolean
disallow_common
required

Reject common-password list (“password”, “123456”, …).

boolean
max_age_days
required

0 = passwords never expire.

integer
0 <= 36500
sso_providers
required
Array<object>
object
id

Stable identifier assigned by the admin UI on create. Empty on a freshly-added provider; the handler fills it in. Used as OAuth state and as the row key for later edits.

string
kind
required
string
Allowed values: ldap saml google github x
enabled
required
boolean
display_name
required
string
config

Per-kind opaque config. For LDAP: server URL, base DN, bind credentials, search filter. For SAML: IdP metadata URL, SP entity ID, certs. For OAuth (Google/GitHub/X): client_id, client_secret, redirect_uri, scopes. Validated at use time by the integration code, not by this endpoint.

object
key
additional properties
any
self_registration

Self-service signup tunables. Default zero-valued (disabled, verification on, role “Base”) so installs upgrading without opting in stay closed.

object
enabled

Master switch. /auth/register returns 403 when false.

boolean
require_email_verification

When true (recommended), new accounts must click a verification link before they can sign in. Disable only for closed-network installs where outbound SMTP isn’t available.

boolean
default_role

Role name assigned to fresh signups. Default “Base”. Operators can point this at a more restricted role for moderated communities.

string

Malformed request

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Authentication required, missing, or invalid

object
error
required

Human-readable error summary

string
Example
the request could not be completed
Example
{
"error": "authentication required: sign in and retry with a valid session or API token"
}

Authenticated but missing required capabilities

object
error
required

Human-readable error summary

string
Example
the request could not be completed