Skip to main content

Admin Settings

The admin's own profile and the editable system settings: read them, change them, or reset them to the environment values.

Get the current admin profile

GET/api/admin/profile

Authentication: Admin session token (Authorization: Bearer <token>)

Responses

StatusDescriptionBody
200Admin profile.AdminProfileResponseDto
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Update the admin profile

PATCH/api/admin/profile

Only preferredName is writable. Send null to clear it; omit it to leave it unchanged. Discord-owned fields cannot be changed here.

Authentication: Admin session token (Authorization: Bearer <token>)

Request body (JSON, required): UpdateAdminProfileDto schema.

Responses

StatusDescriptionBody
200Updated profile.AdminProfileResponseDto
400Invalid field.
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Get effective system settings

GET/api/admin/settings

Returns settings grouped by category. Each value carries editable; secrets are represented only as { isSet }.

Authentication: Admin session token (Authorization: Bearer <token>)

Responses

StatusDescriptionBody
200Current settings.EffectiveSettingsDto
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Update editable settings

PATCH/api/admin/settings

Persists the provided editable knobs and applies them without a restart. Any non-editable key is rejected by the validation pipe.

Authentication: Admin session token (Authorization: Bearer <token>)

Request body (JSON, required): UpdateSettingsDto schema.

Responses

StatusDescriptionBody
200Updated settings.EffectiveSettingsDto
400Invalid or non-editable field.
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Reset editable settings to environment defaults

POST/api/admin/settings/reset

Clears every stored override; read-only config is untouched.

Authentication: Admin session token (Authorization: Bearer <token>)

Responses

StatusDescriptionBody
200Settings after reset.EffectiveSettingsDto
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Schemas

AdminProfileResponseDto schema

FieldTypeRequiredDescription
avatarstring or nullyes
displayNamestring or nullyesDiscord guild nickname, rewritten on every sync
emailstring or nullyes
globalNamestring or nullyes
idstringyes
isSystemAdminbooleanyes
preferredNamestring or nullyesAdmin-set override; takes precedence in the UI when present
usernamestringyes

CacheSettingsDto schema

FieldTypeRequiredDescription
permissionTtlMsSettingValueDtoyes
projectAccessTtlMsSettingValueDtoyes
projectAuthTtlMsSettingValueDtoyes
statsTtlMsSettingValueDtoyes

DiscordSettingsDto schema

FieldTypeRequiredDescription
callbackUrlSettingValueDtoyes
clientIdSettingValueDtoyes
clientSecretSecretSettingDtoyes
guildIdSettingValueDtoyes
tokenSecretSettingDtoyes

EffectiveSettingsDto schema

FieldTypeRequiredDescription
cacheCacheSettingsDtoyes
discordDiscordSettingsDtoyes
metaSettingsMetaDtoyes
preferencesPreferencesSettingsDtoyes
rateLimitRateLimitSettingsDtoyes
securitySecuritySettingsDtoyes

PreferencesSettingsDto schema

FieldTypeRequiredDescription
memberActivityThresholdDaysSettingValueDtoyes

RateLimitSettingsDto schema

FieldTypeRequiredDescription
globalLimitSettingValueDtoyes
globalTtlMsSettingValueDtoyes
maxWebhooksPerProjectSettingValueDtoyes

SecretSettingDto schema

FieldTypeRequiredDescription
editablefalseyesSecrets are never editable here
isSetbooleanyesWhether a non-empty value is configured

SecuritySettingsDto schema

FieldTypeRequiredDescription
sessionTtlSecSettingValueDtoyes
ssoTtlSecSettingValueDtoyes
webhookEncryptionKeySecretSettingDtoyes

SettingValueDto schema

FieldTypeRequiredDescription
editablebooleanyesWhether PATCH /api/admin/settings accepts it
valueobjectyesCurrent effective value

SettingsMetaDto schema

FieldTypeRequiredDescription
updatedAtstring or nullyesWhen a knob was last written
updatedBystring or nullyesAdmin member id of last writer

UpdateAdminProfileDto schema

FieldTypeRequiredDescription
preferredNamestring or nullnoLocal display-name override (1-255 chars). Send null to clear it and fall back to the Discord-synced name. Omit the key to leave it unchanged.

UpdateCacheSettingsDto schema

FieldTypeRequiredDescription
permissionTtlMsnumberno
statsTtlMsnumberno

UpdatePreferencesSettingsDto schema

FieldTypeRequiredDescription
memberActivityThresholdDaysnumberno

UpdateRateLimitSettingsDto schema

FieldTypeRequiredDescription
maxWebhooksPerProjectnumberno

UpdateSettingsDto schema

FieldTypeRequiredDescription
cacheUpdateCacheSettingsDtono
preferencesUpdatePreferencesSettingsDtono
rateLimitUpdateRateLimitSettingsDtono

Source: apps/api/openapi.json.