Skip to main content
Version: v1.7.3-14 🚧

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.
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 SMTP_ENABLED environment variable.
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.

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.
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 (0 = unlimited)api_rate_limit_per_hourintYesYesMaximum API requests per user per hour. Set to 0 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 (0 = unlimited)ws_rate_limit_per_hourintYesYesMaximum WebSocket messages per user per hour. Set to 0 to disable rate limiting.
Orphaned Document Retention Period (days)orphaned_document_retention_daysintNoNoNumber of days to retain orphaned documents before deletion. Minimum: 1 day.

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.
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_llmsjsonNoYesJSON array of available LLM configurations. Overridable per role via REST API to control model access. Not available as a user-level override or through the System Dashboard UI.
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.

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