Skip to main content
Version: v1.7.5

All settings and configurations

This page provides a complete reference for every administrator-configurable setting in Enterprise h2oGPTe, organized by category. It covers what each setting controls, whether it can be overridden at the user or role level, and how to manage settings programmatically.

For step-by-step instructions on managing settings, user overrides, role overrides, and API keys through the System Dashboard UI, see System Settings.

note

The System Dashboard is the administration area in Enterprise h2oGPTe where administrators manage system-wide settings, roles, collections, and monitoring. It is also referred to as the Admin Center in some contexts.

Choosing a management surface​

Enterprise h2oGPTe provides settings through three interfaces. Use the following table to choose the right one for your task:

InterfaceBest for
System Dashboard UIAd-hoc changes, exploration, and one-time configuration.
REST APIScripting, Terraform/IaC pipelines, and automated provisioning.
Python SDKEmbedding configuration management in Python applications and tooling.

Manage settings from System Dashboard UI​

The following tables list all administrator-configurable settings organized by category. Each setting can be managed through the System Dashboard UI, the REST API, or the Python SDK.

Feature settings​

SettingIdentifierTypeUser overrideRole overrideDescription
Enable guardrails for new collections by defaultdefault_guardrails_enabledboolNoNoEnable PII detection and content filtering guardrails on new collections by default. Individual collections can override this setting.
Enable guardrails for all new chats by defaultdefault_chat_guardrails_enabledboolNoNoEnable guardrails for all new chats by default.
Allow users to remove default guardrails from their collectionsallow_users_to_remove_default_guardrailsboolNoNoAllow users, including administrators, to turn off or remove the default guardrail categories on collections that inherited them. Default: true.
Public Modepublic_modeboolNoNoEnable public mode for the deployment. Read-only. Set at deployment time.
Whether the system SMTP server is configuredsmtp_configuredboolNoNoWhether the system SMTP server is configured. Read-only. Set via the H2OGPTE_MUX_SMTP_ENABLED environment variable on the mux service, which also sends scheduled-task notification emails (H2OGPTE_MUX_SMTP_HOST, _PORT, _USERNAME, _PASSWORD, _FROM, _USE_TLS). The unprefixed SMTP_* variables configure the separate AI-assistant and file-server senders in the chat and core services and are not read by mux.
Enable the AI Assistants featureshow_ai_assistantsboolYesYesEnable the AI Assistants feature. Can be overridden per role and per user. Default: false. The same setting also controls access to Assistant Forums.
Allow users to configure their own Gmail SMTP for scheduled task email notificationsscheduled_task_user_gmail_enabledboolYesYesAllow users to configure their own Gmail SMTP for scheduled task email notifications.
User's Gmail address for email notificationsuser_notification_gmail_emailstringYesYesUser's Gmail address for email notifications. Stored as a per-user preference.
User's Gmail app password for email notificationsuser_notification_gmail_app_passwordstringYesYesUser's Gmail app password for email notifications. Stored as a per-user preference.
note

Some guardrails settings aren't in these tables. An administrator sets H2OGPTE_CORE_PROMPT_GUARD_BACKEND, H2OGPTE_CORE_PROMPT_GUARD_FAIL_CLOSED, and H2OGPTE_CORE_GUARDRAILS_SCAN_FAILURE_ACTION as environment variables at deployment time. See Prompt guard backend and Unreadable guardrail verdicts.

Limit settings​

SettingIdentifierTypeUser overrideRole overrideDescription
System-Wide Collection Limitcollection_limitintNoNoSystem-wide maximum number of collections.
Collection Limit Per Usercollection_limit_per_userintYesYesMaximum collections per user.
Document Limit Per Userdocument_limit_per_userintYesYesMaximum documents per user.
Agents Document Limit Per Useragents_document_limit_per_userintYesYesMaximum agent-created documents per user.
Max LLM Cost Per User Per 24hmax_llm_cost_per_user_per_24hfloatYesYesRolling 24-hour LLM cost cap per user. Set to -1 to disable.
Max LLM Cost Per Usermax_llm_cost_per_userfloatYesYesLifetime LLM cost cap per user. Set to -1 to disable.
Max LLM Cost Per Guestmax_llm_cost_per_guestfloatYesYesLLM cost cap for guest users. Set to -1 to disable.
LLM Cost Unitsllm_cost_unitsstringNoNoCurrency unit for cost tracking (for example, USD).
Collection Expiration Limit (days)expiration_limit_daysintNoNoNumber of days before expiring collections are archived.
Collection Inactivity Limit (days)default_collection_inactivity_daysintNoNoDays of inactivity before a collection begins the expiration process. Set to -1 to disable.
Collection Size Limitdefault_collection_size_limitint64NoNoDefault maximum storage per collection (in bytes). Range: 1 MB to 10 GB.
Chat Session Inactivity Limit (days)chat_session_inactivity_daysintNoNoDays of inactivity before a chat session becomes eligible for auto-archive. Set to -1 to turn off inactivity-based auto-archive. Upper bound: 365. See Chat lifecycle.
Chat Session Expiration Limit (days)chat_expiration_limit_daysintNoNoWarning window before h2oGPTe archives a chat session, grace period before it deletes an archived chat session, and the ceiling on user-set chat expiry dates. Range: 1 to 365. Changing it re-evaluates every chat session status. See Chat lifecycle.
Global API Key Expiry Limit (days)global_api_key_expiry_daysintNoNoMaximum lifetime for API keys (in days). Recommended: 90–365 days to match common security policies.
Max New OIDC Signups Per 24hmaximum_new_users_24hintNoNoMaximum new user signups allowed within a 24-hour period.
Max Total Users (System Cap)maximum_new_usersintNoNoTotal user account cap for the system.
Max Signups Per IP Per Windowsignup_rate_limit_per_ipintNoNoMaximum signups per IP address within the rate limit window.
Signup Rate Limit Window (Minutes)signup_rate_limit_window_minutesintNoNoDuration (in minutes) of the signup rate limit window.
Output Token Limitruntime_max_new_tokensintYesYesMaximum output tokens per LLM response.
Max API Requests Per User Per Hour (-1 = unlimited)api_rate_limit_per_hourintYesYesMaximum API requests per user per hour. Set to -1 to disable rate limiting.
Rate-Limited API Endpoint Patternsapi_rate_limit_endpointsstringNoNoComma-separated API endpoint patterns subject to rate limiting. Supports prefix matching with *.
Max WebSocket Messages Per User Per Hour (-1 = unlimited)ws_rate_limit_per_hourintYesYesMaximum WebSocket messages per user per hour. Set to -1 to disable rate limiting.
Orphaned Document Retention Period (days)orphaned_document_retention_daysintNoNoNumber of days to retain orphaned documents before deletion. Minimum: 1 day.
Max Concurrent Ingestion Jobs Per User (-1 = unlimited)crawl_max_concurrent_per_userintYesYesMaximum concurrent document ingestion (crawl) jobs per user. Default: 25. Maximum allowed value: 10000. Enforced independently of crawl_fairness_enabled; cached per user — see Rate Limits and Fairness.
Max Concurrent Chat Sessions Per User (-1 = unlimited)chat_max_concurrent_per_userintYesYesMaximum simultaneous active chat sessions per user. Default: 100000. Maximum allowed value: 1000000. Enforced independently of chat_fairness_enabled; cached per user — see Rate Limits and Fairness.
Scheduled Task History Retention (days); 0 disables pruningscheduled_task_execution_retention_daysintNoNoNumber of days to keep scheduled task execution history. Default: 0, which disables pruning. Maximum allowed value: 365.
Chunks used for auto-generated document descriptions (0 disables)runtime_auto_gen_description_num_chunksintNoNoSet to 0 to turn off description auto-generation; regeneration requests then fail—see Regenerating a description. Default: 10.

OAuth settings​

SettingIdentifierTypeEncryptedDescription
SharePoint OAuth Client IDruntime_sharepoint_oauth_client_idstringNoSharePoint Online OAuth Client ID.
SharePoint OAuth Client Secretruntime_sharepoint_oauth_client_secretstringYesSharePoint Online OAuth Client Secret. Stored encrypted.
SharePoint OAuth Tenant IDruntime_sharepoint_oauth_tenant_idstringNoAzure AD Tenant ID for SharePoint. Set to your organization's specific tenant ID.
SharePoint OAuth Redirect URLruntime_sharepoint_oauth_redirect_urlstringNoOAuth redirect URL. Must match the Azure AD app registration.
SharePoint OAuth Scopesruntime_sharepoint_oauth_scopesstringNoOAuth scopes for SharePoint access.
Confluence OAuth Client IDruntime_confluence_oauth_client_idstringNoConfluence Cloud OAuth Client ID.
Confluence OAuth Client Secretruntime_confluence_oauth_client_secretstringYesConfluence Cloud OAuth Client Secret. Stored encrypted.
Confluence OAuth Redirect URLruntime_confluence_oauth_redirect_urlstringNoOAuth redirect URL. Must match the Atlassian app registration.
Confluence OAuth Scopesruntime_confluence_oauth_scopesstringNoOAuth scopes for Confluence access.
Snowflake OAuth Client IDruntime_snowflake_oauth_client_idstringNoSnowflake OAuth Client ID.
Snowflake OAuth Client Secretruntime_snowflake_oauth_client_secretstringNoSnowflake OAuth Client Secret.
Snowflake Account Identifierruntime_snowflake_account_identifierstringNoSnowflake Account Identifier (for example, xy12345.us-east-1).
Snowflake OAuth Scopesruntime_snowflake_oauth_scopesstringNoOAuth scopes for Snowflake access.
Snowflake OAuth Redirect URLruntime_snowflake_oauth_redirect_urlstringNoOAuth redirect URL for Snowflake.
Slack OAuth Client IDruntime_slack_oauth_client_idstringNoSlack OAuth Client ID. An empty value hides the Slack card on the Data Connectors page.
Slack OAuth Client Secretruntime_slack_oauth_client_secretstringYesSlack OAuth Client Secret. Stored encrypted.
Slack OAuth Redirect URLruntime_slack_oauth_redirect_urlstringNoOAuth redirect URL. When unset, falls back to <base URL>/api/v1/connectors/slack/callback. Must match the redirect URL configured in your Slack app.
Slack OAuth Bot Scopesruntime_slack_oauth_scopes_botstringNoComma-separated bot token scopes. Set this and/or the user scopes; users need at least one to connect Slack.
Slack OAuth User Scopesruntime_slack_oauth_scopes_userstringNoComma-separated user token scopes. Set this and/or the bot scopes; users need at least one to connect Slack.
note

Settings marked as Encrypted are stored securely using AES-GCM encryption. These values are displayed masked in the System Dashboard with a reveal option.

Security settings​

SettingIdentifierTypeDescription
Secure Connectors Enabledsecure_connectors_enabledboolEnable secure connector mode. Read-only. Set at deployment time.
Secret Manager Enabledsecret_manager_enabledboolEnable the secret manager feature. Read-only. Set at deployment time.
Enable signup abuse preventionsignup_abuse_prevention_enabledboolTop-level toggle for signup abuse prevention. When enabled, this activates IP rate limiting, daily signup caps, and disposable email blocking.
Enable Disposable Email Blockingdisposable_email_blocking_enabledboolBlock signups from known disposable or temporary email domains. Active only when signup abuse prevention is also enabled.
Additional Disposable Email Domains (Comma-Separated)disposable_email_domains_extrastringComma-separated list of additional email domains to block during signup.

System settings​

SettingIdentifierTypeUser overrideRole overrideDescription
Auto-generated Collection Expiration (days)adhoc_collection_expiration_daysintNoNoNumber of days before agent-created (ad-hoc) collections expire.
Enable Auto-generated Collection Expirationenable_adhoc_collection_expirationboolNoNoEnable automatic expiration for agent-created collections.
Company Logo URLcompany_logo_urlstringYesYesURL for the company or organization logo displayed in the header.
Chat Logo URLchat_logo_urlstringYesYesURL for the logo displayed in the chat interface.
Default Long Job Processing Timeout (secs)default_long_job_timeout_secfloatYesYesTimeout (in seconds) for long-running jobs.
Default Short Job Processing Timeout (secs)default_short_job_timeout_secfloatYesYesTimeout (in seconds) for short-running jobs.
LLMs Configurationruntime_llmsjsonNoNoThe list of available LLMs, derived from the LLM registry. Not shown in System Settings. Manage models as described in Configure custom models, and control role access with LLM grants.
Product Nameruntime_product_namestringYesYesProduct name displayed in the UI and system prompts.
Company Nameruntime_company_namestringYesYesCompany name displayed in the UI and system prompts.
System Prompt Addendum (LLM)runtime_system_prompt_addendum_llmstringNoNoText appended to every chat-completion system prompt. Leave empty to disable.
System Prompt Addendum (Agent)runtime_system_prompt_addendum_use_agentstringNoNoText appended to every agent system prompt. Leave empty to disable.
Custom HTML Email Notification Templateemail_notification_template_htmlstringNoNoCustom HTML template for email notifications.
Configuration Cache TTL (seconds)config_cache_ttl_secondsintNoNoCache TTL for settings flagged as needing per-user propagation (currently show_ai_assistants, crawl_max_concurrent_per_user, chat_max_concurrent_per_user, api_rate_limit_per_hour, and ws_rate_limit_per_hour). Lower values propagate administrator edits faster across mux replicas; higher values reduce database load. Default: 60. Maximum allowed value: 3600.

Manage settings with the REST API​

API response fields​

Each configuration item returned from the API includes the following fields:

FieldTypeDescription
key_namestringConfiguration key (for example, collection_limit_per_user).
string_valuestringCurrent value represented as a string.
value_typestringOne of: string, bool, int, int64, float, json.
can_overwriteboolWhether per-user or per-role overrides are allowed for this setting.
is_publicboolWhether non-admin users can see this setting.
is_read_onlyboolWhether the setting can be changed at runtime.
upper_boundint64Maximum allowed value. -1 indicates no upper bound.
is_encryptedboolWhether the value is stored encrypted (applies to OAuth secrets).
categorystringOne of: SECURITY, FEATURES, LIMITS, SYSTEM, OAUTH.

List all settings​

Retrieve all global configurations with admin-level visibility:

curl -X GET "https://<YOUR_DOMAIN>/api/v1/configurations?as_admin=true" \
-H "Authorization: Bearer <API_KEY>"

Set a setting​

Update a configuration setting by key name:

curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/{key_name}" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value": "<NEW_VALUE>"}'

Reset a setting to default​

Remove a configured value and restore the system default for that setting:

curl -X DELETE "https://<YOUR_DOMAIN>/api/v1/configurations/{key_name}" \
-H "Authorization: Bearer <API_KEY>"

Manage settings with the Python SDK​

from h2ogpte import H2OGPTE

client = H2OGPTE(address="https://<YOUR_DOMAIN>", api_key="<API_KEY>")

# List all settings
configs = client.get_global_configurations_by_admin()
for c in configs:
print(f"{c.key_name} = {c.string_value} (type={c.value_type}, overridable={c.can_overwrite})")

# Set a setting
client.set_global_configuration(
"default_guardrails_enabled", "true", can_overwrite=False, is_public=True
)

The following settings are recommended for new deployments to establish a strong security posture. Apply them in the order listed for a complete baseline configuration.

Enable guardrails​

Enable PII detection and content filtering for all new collections:

curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/default_guardrails_enabled" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"true"}'
note

To learn more about guardrails configuration and enforcement hierarchy, see Global Guardrails.

Set API key expiration​

Set the global API key expiration window:

curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/global_api_key_expiry_days" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"365"}'

Enable signup abuse prevention​

Control user provisioning with rate limiting and disposable email blocking:

# Enable signup abuse prevention
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/signup_abuse_prevention_enabled" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"true"}'

# Set maximum new users per 24 hours
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/maximum_new_users_24h" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"100"}'

# Set signup rate limit per IP
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/signup_rate_limit_per_ip" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"3"}'

Configure collection lifecycle​

Enable automatic data cleanup to manage retention and storage:

# Set collection expiration window
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/expiration_limit_days" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"90"}'

# Enable inactivity-based cleanup
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/default_collection_inactivity_days" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"90"}'

# Enable automatic cleanup for agent-created collections
curl -X PUT "https://<YOUR_DOMAIN>/api/v1/configurations/enable_adhoc_collection_expiration" \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{"string_value":"true"}'

Feedback