Smarter Settings
Smarter common configuration module.
- pydantic model smarter.common.conf.Settings[source]
See: https://docs.pydantic.dev/latest/concepts/pydantic_settings/.
Smarter derived settings. This is intended to be instantiated as an immutable singleton object called smarter_settings. smarter_settings contains superseding, validated, and derived settings values for the platform.
This class implements a consistent set of rules for initializing configuration values from multiple sources, including environment variables, .env file, and default values defined in this class. It additionally ensures that all configuration values are strongly typed and validated.
Where applicable, smarter_settings supersede Django settings values. That is, smarter_settings should be used in preference to Django settings wherever possible. Django settings are initialized from smarter_settings values where applicable.
Notes:
smarter_settings values are immutable after instantiation.
Every property/attribute in smarter_settings has a value. If a value is None then it is intentionally None.
Sensitive values are stored as pydantic SecretStr types.
- smarter_settings values are initialized according to the following prioritization sequence:
constructor. This is discouraged. prefer to use .env file or environment variables.
.env file. When sourced, these override existing environment variables.
environment variables.
settings_defaults
The dump property returns a dictionary of all configuration values.
smarter_settings values should be accessed via the smarter_settings singleton instance when possible.
Show JSON schema
{ "title": "Settings", "description": "See: https://docs.pydantic.dev/latest/concepts/pydantic_settings/.\n\nSmarter derived settings. This is intended to be instantiated as\nan immutable singleton object called `smarter_settings`. smarter_settings\ncontains superseding, validated, and derived settings values for the platform.\n\nThis class implements a consistent set of rules for initializing configuration\nvalues from multiple sources, including environment variables, `.env` file,\nand default values defined in this class. It additionally ensures that all\nconfiguration values are strongly typed and validated.\n\nWhere applicable, smarter_settings supersede Django settings values. That is,\nsmarter_settings should be used in preference to Django settings wherever\npossible. Django settings are initialized from smarter_settings values where\napplicable.\n\nNotes:\n-----------------\n- smarter_settings values are immutable after instantiation.\n- Every property/attribute in smarter_settings has a value.\n If a value is None then it is intentionally None.\n- Sensitive values are stored as pydantic SecretStr types.\n- smarter_settings values are initialized according to the following prioritization sequence:\n 1. constructor. This is discouraged. prefer to use .env file or environment variables.\n 2. `.env` file. When sourced, these override existing environment variables.\n 3. environment variables.\n 4. settings_defaults\n- The dump property returns a dictionary of all configuration values.\n- smarter_settings values should be accessed via the smarter_settings singleton instance when possible.", "type": "object", "properties": { "init_info": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Init Info" }, "anthropic_api_key": { "default": "**********", "description": "API key for Anthropic services. Masked by pydantic SecretStr.", "examples": [ "sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "format": "password", "title": "Anthropic API Key", "type": "string", "writeOnly": true }, "api_description": { "default": "An enterprise class plugin-based AI chatbot platform", "description": "The description of the API.", "examples": [ "A declarative AI resource management platform and developer framework" ], "title": "API Description", "type": "string" }, "api_name": { "default": "Smarter API", "description": "The name of the API.", "examples": [ "Smarter API", "My Custom API" ], "title": "API Name", "type": "string" }, "aws_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "lawrence", "description": "The AWS profile to use for authentication. If present, this will take precedence over AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.", "examples": [ "default", "smarter-profile" ], "title": "AWS Profile" }, "aws_access_key_id": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The AWS access key ID for authentication. Used if AWS_PROFILE is not set. Masked by pydantic SecretStr.", "examples": [ "^AKIA[0-9A-Z]{16}$" ], "title": "AWS Access Key ID" }, "aws_secret_access_key": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The AWS secret access key for authentication. Used if AWS_PROFILE is not set. Masked by pydantic SecretStr.", "examples": [ "^[0-9a-zA-Z/+]{40}$" ], "title": "AWS Secret Access Key" }, "aws_regions": { "default": [ "ap-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northeast-2", "ap-northeast-1", "il-central-1", "ca-central-1", "sa-east-1", "ca-west-1", "mx-central-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ], "description": "A list of AWS regions considered valid for this platform.", "examples": [ "us-east-1", "us-west-2", "eu-west-1" ], "items": { "type": "string" }, "title": "AWS Regions", "type": "array" }, "aws_region": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "ca-central-1", "description": "The single AWS region in which all AWS service clients will operate.", "examples": [ "us-east-1", "us-west-2", "eu-west-1" ], "title": "AWS Region" }, "aws_eks_cluster_name": { "default": "smarter-ubc-ca-202602121853", "description": "The name of the AWS EKS cluster used for hosting applications.", "examples": [ "apps-hosting-service" ], "title": "AWS EKS Cluster Name", "type": "string" }, "aws_db_instance_identifier": { "default": "SET-ME-PLEASE", "description": "The RDS database instance identifier used for the platform's primary database.", "examples": [ "apps-hosting-service" ], "title": "AWS RDS DB Instance Identifier", "type": "string" }, "branding_corporate_name": { "default": "Lawrence P. McDaniel", "description": "The corporate name used for branding purposes throughout the platform.", "examples": [ "Acme Corporation" ], "title": "Branding Corporate Name", "type": "string" }, "branding_support_phone_number": { "default": "+1 (617) 555-6172", "description": "The support phone number used for branding purposes throughout the platform.", "examples": [ "+1-800-555-1234" ], "title": "Branding Support Phone Number", "type": "string" }, "branding_support_email": { "default": "lpm0073@gmail.com", "description": "The support email address used for branding purposes throughout the platform.", "format": "email", "title": "Branding Support Email", "type": "string" }, "branding_address1": { "default": "21 Remedios Road", "description": "The corporate address used for branding purposes throughout the platform.", "examples": [ "123 Main St, Anytown, USA" ], "title": "Branding Address", "type": "string" }, "branding_address2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "", "description": "The second line of the corporate address used for branding purposes throughout the platform.", "examples": [ "Suite 100" ], "title": "Branding Address Line 2" }, "branding_city": { "default": "Lamy", "description": "The corporate city used for branding purposes throughout the platform.", "examples": [ "Anytown" ], "title": "Branding City", "type": "string" }, "branding_state": { "default": "NM", "description": "The corporate state used for branding purposes throughout the platform.", "examples": [ "CA" ], "title": "Branding State", "type": "string" }, "branding_postal_code": { "default": "87540", "description": "The corporate postal code used for branding purposes throughout the platform.", "examples": [ "12345" ], "title": "Branding Postal Code", "type": "string" }, "branding_country": { "default": "USA", "description": "The corporate country used for branding purposes throughout the platform.", "examples": [ "USA" ], "title": "Branding Country", "type": "string" }, "branding_currency": { "default": "USD", "description": "The currency used for branding purposes throughout the platform.", "examples": [ "USD" ], "title": "Branding Currency", "type": "string" }, "branding_timezone": { "default": "America/Denver", "description": "The timezone used for branding purposes throughout the platform.", "examples": [ "America/New_York" ], "title": "Branding Timezone", "type": "string" }, "branding_contact_url": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://lawrencemcdaniel.com/contact/", "description": "The contact URL used for branding purposes throughout the platform.", "examples": [ "https://www.example.com/contact" ], "title": "Branding Contact URL" }, "branding_support_hours": { "default": "MON-FRI 9:00 AM - 5:00 PM GMT-6 (CST)", "description": "The support hours used for branding purposes throughout the platform.", "examples": [ "Mon-Fri 9am-5pm EST" ], "title": "Branding Support Hours", "type": "string" }, "branding_url_facebook": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://facebook.com", "description": "The Facebook URL used for branding purposes throughout the platform.", "examples": [ "https://www.facebook.com/example" ], "title": "Branding URL Facebook" }, "branding_url_twitter": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://x.com/fullstackwlarry", "description": "The Twitter URL used for branding purposes throughout the platform.", "examples": [ "https://www.twitter.com/example" ], "title": "Branding URL Twitter" }, "branding_url_linkedin": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://www.linkedin.com/in/lawrencemcdaniel/", "description": "The LinkedIn URL used for branding purposes throughout the platform.", "examples": [ "https://www.linkedin.com/company/example" ], "title": "Branding URL LinkedIn" }, "cache_expiration": { "default": 60, "description": "The cache expiration time in seconds for cached data.", "exclusiveMinimum": 0, "title": "Cache Expiration", "type": "integer" }, "chat_cache_expiration": { "default": 5, "description": "The prompt cache expiration time in seconds for cached prompt data.", "exclusiveMinimum": 0, "title": "Prompt Cache Expiration", "type": "integer" }, "llm_client_cache_expiration": { "default": 300, "description": "The llm_client cache expiration time in seconds for cached llm_client data.", "exclusiveMinimum": 0, "title": "LLMClient Cache Expiration", "type": "integer" }, "llm_client_max_returned_history": { "default": 25, "description": "The maximum number of prompt history messages to return from the llm_client.", "exclusiveMinimum": 0, "title": "LLMClient Max Returned History", "type": "integer" }, "llm_client_tasks_create_dns_record": { "default": true, "description": "True if DNS records should be created for llm_client tasks.", "title": "LLMClient Tasks Create DNS Record", "type": "boolean" }, "llm_client_tasks_create_ingress_manifest": { "default": true, "description": "True if ingress manifests should be created for llm_client tasks.", "title": "LLMClient Tasks Create Ingress Manifest", "type": "boolean" }, "llm_client_tasks_default_ttl": { "default": 600, "description": "Default TTL (time to live) for DNS records created in AWS Route53 during LLMClient deployment.", "minimum": 0, "title": "LLMClient Tasks Default TTL", "type": "integer" }, "llm_client_tasks_celery_max_retries": { "default": 3, "description": "Maximum number of retries for llm_client tasks in Celery.", "exclusiveMinimum": 0, "title": "LLMClient Tasks Celery Max Retries", "type": "integer" }, "llm_client_tasks_celery_retry_backoff": { "default": true, "description": "If True, enables exponential backoff for Celery task retries related to LLMClient deployment and management", "title": "LLMClient Tasks Celery Retry Backoff", "type": "boolean" }, "llm_client_tasks_celery_task_queue": { "default": "default_celery_task_queue", "description": "The Celery task queue name for llm_client tasks.", "title": "LLMClient Tasks Celery Task Queue", "type": "string" }, "plugin_max_data_results": { "default": 50, "description": "A global maximum number of data row results that can be returned by any Smarter plugin.", "exclusiveMinimum": 0, "title": "Plugin Max Data Results", "type": "integer" }, "sensitive_files_amnesty_patterns": { "default": [ "^/$", "^/static(/.*)?$", "^/api/v\\d+(\\.\\d+)?/.+", "^/dashboard(/.*)?$", "^/docs/manifest(/.*)?$", "^/docs/json-schema(/.*)?$", "^/config/?$", "^/login/?$", "^/logout/?$", "^/admin/?$" ], "description": "List of regex patterns for sensitive file amnesty.", "examples": [ "^/dashboard/account/password-reset-link/[^/]+/[^/]+/$", "^/api(/.*)?$", "^/admin(/.*)?$" ], "items": { "format": "regex", "type": "string" }, "title": "Sensitive Files Amnesty Patterns", "type": "array" }, "debug_mode": { "default": true, "description": "True if debug mode is enabled. This enables verbose logging and other debug features.", "title": "Debug Mode", "type": "boolean" }, "dump_defaults": { "default": false, "description": "True if default values should be dumped for debugging purposes.", "title": "Dump Defaults", "type": "boolean" }, "default_missing_value": { "default": "SET-ME-PLEASE", "description": "Default missing value placeholder string. Used for consistency across settings.", "examples": [ "SET-ME-PLEASE" ], "title": "Default Missing Value", "type": "string" }, "developer_mode": { "default": true, "description": "True if developer mode is enabled. Used as a means to configure a production Docker container to run locally for student use.", "title": "Developer Mode", "type": "boolean" }, "django_default_file_storage": { "default": "storages.backends.s3boto3.S3Boto3Storage", "description": "The default Django file storage backend.", "examples": [ "storages.backends.s3boto3.S3Boto3Storage", "django.core.files.storage.FileSystemStorage" ], "title": "Django Default File Storage Backend", "type": "string" }, "email_admin": { "default": "lpm0073@gmail.com", "description": "The administrator email address used for system notifications and alerts.", "examples": [ "admin@example.com" ], "format": "email", "title": "Administrator Email Address", "type": "string" }, "enable_dashboard_apply": { "default": true, "description": "True if the file drop zone feature is enabled based on the current environment.", "title": "Enable File Drop Zone", "type": "boolean" }, "enable_vectorstore": { "default": true, "description": "True if the vectorstore feature is enabled based on the current environment.", "title": "Enable Vectorstore", "type": "boolean" }, "enable_dashboard_server_logs": { "default": true, "description": "True if the terminal app feature is enabled based on the current environment.", "title": "Enabled Terminal App", "type": "boolean" }, "enable_dashboard_passthrough_prompt": { "default": true, "description": "True if the passthrough prompt feature is enabled based on the current environment.", "title": "Enable Passthrough Prompt", "type": "boolean" }, "environment": { "default": "local", "description": "The deployment environment for the platform.", "examples": [ "local", "alpha", "beta", "next", "prod" ], "title": "Deployment Environment", "type": "string" }, "fernet_encryption_key": { "default": "**********", "description": "The Fernet encryption key used for encrypting Smarter Secrets data.", "examples": [ "gAAAAABh..." ], "format": "password", "title": "Fernet Encryption Key", "type": "string", "writeOnly": true }, "file_drop_zone_enabled": { "default": true, "description": "True if the file drop zone feature is enabled based on the current environment.", "title": "File Drop Zone Enabled", "type": "boolean" }, "gemini_api_key": { "default": "**********", "description": "The API key for Google Gemini services. Masked by pydantic SecretStr.", "examples": [ "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "format": "password", "title": "Google Gemini API Key", "type": "string", "writeOnly": true }, "google_maps_api_key": { "default": "**********", "description": "The API key for Google Maps services. Masked by pydantic SecretStr. Used for geocoding, maps, and places APIs, for the OpenAI get_weather() example function.", "examples": [ "AIzaSy..." ], "format": "password", "title": "Google Maps API Key", "type": "string", "writeOnly": true }, "google_service_account": { "default": "**********", "description": "The Google service account credentials as a dictionary. Used for Google Cloud services integration.", "examples": [ { "...": "...", "project_id": "my-project", "type": "service_account" } ], "format": "password", "title": "Google Service Account Credentials", "type": "string", "writeOnly": true }, "internal_ip_prefixes": { "default": [ "192.168." ], "description": "A list of internal IP prefixes used for security and middleware features.", "examples": [ "192.168." ], "items": { "type": "string" }, "title": "Internal IP Prefixes", "type": "array" }, "log_level": { "default": 10, "description": "The logging level for the platform based on Python logging levels: logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL", "examples": [ 10, 20, 30, 40, 50 ], "maximum": 50, "minimum": 0, "title": "Logging Level", "type": "integer" }, "llama_api_key": { "default": "**********", "description": "The API key for LLaMA services. Masked by pydantic SecretStr.", "examples": [ "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "format": "password", "title": "LLaMA API Key", "type": "string", "writeOnly": true }, "local_hosts": { "default": [ "localhost", "127.0.0.1", "localhost:9357", "127.0.0.1:9357", "testserver" ], "description": "A list of hostnames considered local for development and testing purposes.", "examples": [ "localhost", "127.0.0.1", "localhost:9357", "127.0.0.1:9357", "testserver" ], "items": { "type": "string" }, "title": "Local Hosts", "type": "array" }, "langchain_memory_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "prompt_history", "description": "The key used for LangChain memory storage.", "examples": [ "langchain_memory" ], "title": "LangChain Memory Key" }, "llm_default_provider": { "default": "openai", "description": "The default LLM provider to use for language model interactions.", "examples": [ "openai", "anthropic", "gemini", "llama" ], "title": "Default LLM Provider", "type": "string" }, "llm_default_model": { "default": "gpt-4o-mini", "description": "The default LLM model to use for language model interactions.", "examples": [ "gpt-4o-mini", "claude-2", "gemini" ], "title": "Default LLM Model", "type": "string" }, "llm_default_system_role": { "default": "You are a helpful llm_client. When given the opportunity to utilize function calling, you should always do so. This will allow you to provide the best possible responses to the user. If you are unable to provide a response, you should prompt the user for more information. If you are still unable to provide a response, you should inform the user that you are unable to help them at this time.", "description": "The default system role prompt to use for language model interactions.", "examples": [ "You are a helpful llm_client..." ], "title": "Default LLM System Role", "type": "string" }, "llm_default_temperature": { "default": 0.5, "description": "The default temperature to use for language model interactions.", "examples": [ 0.0, 0.5, 1.0 ], "title": "Default LLM Temperature", "type": "number" }, "llm_default_max_tokens": { "default": 2048, "description": "The default maximum number of tokens to generate for language model interactions.", "examples": [ 256, 512, 1024, 2048 ], "minimum": 1, "title": "Default LLM Max Tokens", "type": "integer" }, "logo": { "anyOf": [ { "format": "uri", "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://cdn.smarter.sh/images/logo/smarter-crop.png", "description": "The URL to the platform's logo image.", "examples": [ "https://cdn.example.com/logo.png" ], "title": "Platform Logo URL" }, "mailchimp_api_key": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The API key for Mailchimp services. Masked by pydantic SecretStr.", "examples": [ "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "title": "Mailchimp API Key" }, "mailchimp_list_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "272208fe44", "description": "The Mailchimp list ID for managing email subscribers.", "examples": [ "a1b2c3d4e5" ], "title": "Mailchimp List ID" }, "marketing_site_url": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "null" } ], "default": "https://smarter.sh", "description": "The URL to the platform's marketing site.", "examples": [ "https://www.example.com" ], "title": "Marketing Site URL" }, "openai_api_organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "SET-ME-PLEASE", "description": "The OpenAI API organization ID.", "examples": [ "org-xxxxxxxxxxxxxxxx" ], "title": "OpenAI API Organization ID" }, "openai_api_key": { "default": "**********", "description": "The API key for OpenAI services. Masked by pydantic SecretStr.", "examples": [ "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ], "format": "password", "title": "OpenAI API Key", "type": "string", "writeOnly": true }, "openai_endpoint_image_n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 4, "description": "The number of images to generate per request to the OpenAI image endpoint.", "examples": [ 1, 2, 4 ], "title": "OpenAI Endpoint Image Number" }, "openai_endpoint_image_size": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "1024x768", "description": "The size of images to generate from the OpenAI image endpoint.", "examples": [ "256x256", "512x512", "1024x768" ], "title": "OpenAI Endpoint Image Size" }, "platform_subdomain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "local", "description": "The subdomain for the platform, used in constructing URLs and email addresses.", "examples": [ "platform", "ubc" ], "title": "Platform Subdomain" }, "pinecone_api_key": { "default": "**********", "description": "The API key for Pinecone services. Masked by pydantic SecretStr.", "examples": [ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ], "format": "password", "title": "Pinecone API Key", "type": "string", "writeOnly": true }, "root_domain": { "default": "smarter.sh", "description": "The root domain for the platform.", "examples": [ "example.com" ], "title": "Root Domain", "type": "string" }, "secret_key": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The Django secret key for cryptographic signing.", "examples": [ "your-django-secret-key" ], "title": "Django Secret Key" }, "settings_output": { "default": false, "description": "Flag to enable or disable output of settings for debugging purposes.", "examples": [ true, false ], "title": "Settings Output", "type": "boolean" }, "shared_resource_identifier": { "default": "smarter", "description": "Smarter 1-word identifier to be used when naming any shared resource.", "examples": [ "smarter", "mycompany", "myproject" ], "title": "Shared Resource Identifier", "type": "string" }, "smarter_mysql_test_database_secret_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "smarter_test_db", "description": "The secret name for the Smarter MySQL test database. Used for example Smarter Plugins that are pre-installed on new installations.", "examples": [ "smarter_test_db" ], "title": "Smarter MySQL Test Database Secret Name" }, "smarter_mysql_test_database_password": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The password for the Smarter MySQL test database. Used for example Smarter Plugins that are pre-installed on new installations.", "examples": [ "smarter_test_user" ], "title": "Smarter MySQL Test Database Password" }, "smarter_reactjs_app_loader_path": { "default": "/ui-chat/app-loader.js", "description": "The path to the ReactJS app loader script.", "examples": [ "/ui-prompt/app-loader.js" ], "title": "Smarter ReactJS App Loader Path", "type": "string" }, "social_auth_google_oauth2_key": { "default": "**********", "description": "The OAuth2 key for Google social authentication. Masked by pydantic SecretStr.", "examples": [ "your-google-oauth2-key" ], "format": "password", "title": "Google OAuth2 Key", "type": "string", "writeOnly": true }, "social_auth_google_oauth2_secret": { "default": "**********", "description": "The OAuth2 secret for Google social authentication. Masked by pydantic SecretStr.", "examples": [ "your-google-oauth2-secret" ], "format": "password", "title": "Google OAuth2 Secret", "type": "string", "writeOnly": true }, "social_auth_github_key": { "default": "**********", "description": "The OAuth2 key for GitHub social authentication. Masked by pydantic SecretStr.", "examples": [ "your-github-oauth2-key" ], "format": "password", "title": "GitHub OAuth2 Key", "type": "string", "writeOnly": true }, "social_auth_github_secret": { "default": "**********", "description": "The OAuth2 secret for GitHub social authentication. Masked by pydantic SecretStr.", "examples": [ "your-github-oauth2-secret" ], "format": "password", "title": "GitHub OAuth2 Secret", "type": "string", "writeOnly": true }, "social_auth_linkedin_oauth2_key": { "default": "**********", "description": "The OAuth2 key for LinkedIn social authentication. Masked by pydantic SecretStr.", "examples": [ "your-linkedin-oauth2-key" ], "format": "password", "title": "LinkedIn OAuth2 Key", "type": "string", "writeOnly": true }, "social_auth_linkedin_oauth2_secret": { "default": "**********", "description": "The OAuth2 secret for LinkedIn social authentication. Masked by pydantic SecretStr.", "examples": [ "your-linkedin-oauth2-secret" ], "format": "password", "title": "LinkedIn OAuth2 Secret", "type": "string", "writeOnly": true }, "smtp_sender": { "anyOf": [ { "format": "email", "type": "string" }, { "type": "null" } ], "default": "no-reply@smarter.sh", "description": "The sender email address for SMTP emails.", "examples": [ "sender@example.com" ], "title": "SMTP Sender Email Address" }, "smtp_password": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The SMTP password for authentication. Assumed to be an AWS SES-generated IAM keypair secret.", "examples": [ "your-smtp-password" ], "title": "SMTP Password" }, "smtp_port": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 587, "description": "The SMTP port for sending emails.", "examples": [ 25, 465, 587 ], "title": "SMTP Port Number" }, "smtp_use_ssl": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to use SSL for SMTP connections.", "examples": [ true, false ], "title": "SMTP Use SSL" }, "smtp_use_tls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": true, "description": "Whether to use TLS for SMTP connections.", "examples": [ true, false ], "title": "SMTP Use TLS" }, "smtp_username": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "The SMTP username for authentication. Assumed to be an AWS SES-generatred IAM keypair username.", "examples": [ "your-smtp-username" ], "title": "SMTP Username" }, "stripe_live_secret_key": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "DEPRECATED: The secret key for Stripe live environment.", "examples": [ "sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" ], "title": "Stripe Live Secret Key" }, "stripe_test_secret_key": { "anyOf": [ { "format": "password", "type": "string", "writeOnly": true }, { "type": "null" } ], "default": "**********", "description": "DEPRECATED: The secret key for Stripe test environment.", "examples": [ "sk_test_xxxxxxxxxxxxxxxxxxxxxxxx" ], "title": "Stripe Test Secret Key" }, "verbose_logging": { "default": true, "description": "Whether to enable verbose logging for debugging purposes.", "examples": [ true, false ], "title": "Verbose Logging", "type": "boolean" } }, "additionalProperties": false }
- Config:
strict: bool = True
frozen: bool = True
- Fields:
anthropic_api_key (pydantic.types.SecretStr)api_description (str)api_name (str)aws_access_key_id (pydantic.types.SecretStr | None)aws_db_instance_identifier (str)aws_eks_cluster_name (str)aws_profile (str | None)aws_region (str | None)aws_regions (List[str])aws_secret_access_key (pydantic.types.SecretStr | None)branding_address1 (str)branding_address2 (str | None)branding_city (str)branding_contact_url (pydantic.networks.HttpUrl | None)branding_corporate_name (str)branding_country (str)branding_currency (str)branding_postal_code (str)branding_state (str)branding_support_email (pydantic.networks.EmailStr)branding_support_hours (str)branding_support_phone_number (str)branding_timezone (str)branding_url_facebook (pydantic.networks.HttpUrl | None)branding_url_linkedin (pydantic.networks.HttpUrl | None)branding_url_twitter (pydantic.networks.HttpUrl | None)cache_expiration (int)chat_cache_expiration (int)debug_mode (bool)default_missing_value (str)developer_mode (bool)django_default_file_storage (str)dump_defaults (bool)email_admin (pydantic.networks.EmailStr)enable_dashboard_apply (bool)enable_dashboard_passthrough_prompt (bool)enable_dashboard_server_logs (bool)enable_vectorstore (bool)environment (str)fernet_encryption_key (pydantic.types.SecretStr)file_drop_zone_enabled (bool)gemini_api_key (pydantic.types.SecretStr)google_maps_api_key (pydantic.types.SecretStr)google_service_account (pydantic.types.SecretStr)init_info (str | None)internal_ip_prefixes (List[str])langchain_memory_key (str | None)llama_api_key (pydantic.types.SecretStr)llm_client_cache_expiration (int)llm_client_max_returned_history (int)llm_client_tasks_celery_max_retries (int)llm_client_tasks_celery_retry_backoff (bool)llm_client_tasks_celery_task_queue (str)llm_client_tasks_create_dns_record (bool)llm_client_tasks_create_ingress_manifest (bool)llm_client_tasks_default_ttl (int)llm_default_max_tokens (int)llm_default_model (str)llm_default_provider (str)llm_default_system_role (str)llm_default_temperature (float)local_hosts (List[str])log_level (int)logo (pydantic.networks.AnyUrl | None)mailchimp_api_key (pydantic.types.SecretStr | None)mailchimp_list_id (str | None)marketing_site_url (pydantic.networks.HttpUrl | None)openai_api_key (pydantic.types.SecretStr)openai_api_organization (str | None)openai_endpoint_image_n (int | None)openai_endpoint_image_size (str | None)pinecone_api_key (pydantic.types.SecretStr)platform_subdomain (str | None)plugin_max_data_results (int)root_domain (str)secret_key (pydantic.types.SecretStr | None)sensitive_files_amnesty_patterns (List[Pattern])settings_output (bool)shared_resource_identifier (str)smarter_mysql_test_database_password (pydantic.types.SecretStr | None)smarter_mysql_test_database_secret_name (str | None)smarter_reactjs_app_loader_path (str)smtp_password (pydantic.types.SecretStr | None)smtp_port (int | None)smtp_sender (pydantic.networks.EmailStr | None)smtp_use_ssl (bool | None)smtp_use_tls (bool | None)smtp_username (pydantic.types.SecretStr | None)social_auth_github_key (pydantic.types.SecretStr)social_auth_github_secret (pydantic.types.SecretStr)social_auth_google_oauth2_key (pydantic.types.SecretStr)social_auth_google_oauth2_secret (pydantic.types.SecretStr)social_auth_linkedin_oauth2_key (pydantic.types.SecretStr)social_auth_linkedin_oauth2_secret (pydantic.types.SecretStr)stripe_live_secret_key (pydantic.types.SecretStr | None)stripe_test_secret_key (pydantic.types.SecretStr | None)verbose_logging (bool)
- Validators:
parse_cache_expiration»cache_expirationparse_chat_cache_expiration»chat_cache_expirationparse_debug_mode»debug_modeparse_developer_mode»developer_modeparse_dump_defaults»dump_defaultsparse_enable_dashboard_apply»enable_dashboard_applyparse_enable_dashboard_passthrough_prompt»enable_dashboard_passthrough_promptparse_enable_vectorstore»enable_vectorstoreparse_enabled_terminal_app»enable_dashboard_server_logsparse_llm_client_cache_expiration»llm_client_cache_expirationparse_llm_client_max_returned_history»llm_client_max_returned_historyparse_llm_client_tasks_celery_max_retries»llm_client_tasks_celery_max_retriesparse_llm_client_tasks_celery_retry_backoff»llm_client_tasks_celery_retry_backoffparse_llm_client_tasks_create_dns_record»llm_client_tasks_create_dns_recordparse_llm_client_tasks_create_ingress_manifest»llm_client_tasks_create_ingress_manifestparse_llm_client_tasks_default_ttl»llm_client_tasks_default_ttlparse_plugin_max_data_results»plugin_max_data_resultsparse_sensitive_files_amnesty_patterns»sensitive_files_amnesty_patternsvalidate_anthropic_api_key»anthropic_api_keyvalidate_api_description»api_descriptionvalidate_api_name»api_namevalidate_aws_access_key_id»aws_access_key_idvalidate_aws_db_instance_identifier»aws_db_instance_identifiervalidate_aws_eks_cluster_name»aws_eks_cluster_namevalidate_aws_profile»aws_profilevalidate_aws_region»aws_regionvalidate_aws_secret_access_key»aws_secret_access_keyvalidate_branding_address»branding_address1validate_branding_address2»branding_address2validate_branding_city»branding_cityvalidate_branding_contact_url»branding_contact_urlvalidate_branding_corporate_name»branding_corporate_namevalidate_branding_country»branding_countryvalidate_branding_currency»branding_currencyvalidate_branding_postal_code»branding_postal_codevalidate_branding_state»branding_statevalidate_branding_support_email»branding_support_emailvalidate_branding_support_hours»branding_support_hoursvalidate_branding_support_phone_number»branding_support_phone_numbervalidate_branding_timezone»branding_timezonevalidate_branding_url_facebook»branding_url_facebookvalidate_branding_url_linkedin»branding_url_linkedinvalidate_branding_url_twitter»branding_url_twittervalidate_email_admin»email_adminvalidate_environment»environmentvalidate_fernet_encryption_key»fernet_encryption_keyvalidate_gemini_api_key»gemini_api_keyvalidate_google_maps_api_key»google_maps_api_keyvalidate_google_service_account»google_service_accountvalidate_internal_ip_prefixes»internal_ip_prefixesvalidate_langchain_memory_key»langchain_memory_keyvalidate_llama_api_key»llama_api_keyvalidate_llm_client_tasks_celery_task_queue»llm_client_tasks_celery_task_queuevalidate_llm_default_model»llm_default_modelvalidate_llm_default_provider»llm_default_providervalidate_llm_default_system_role»llm_default_system_rolevalidate_local_hosts»local_hostsvalidate_logo»logovalidate_mailchimp_api_key»mailchimp_api_keyvalidate_mailchimp_list_id»mailchimp_list_idvalidate_marketing_site_url»marketing_site_urlvalidate_openai_api_key»openai_api_keyvalidate_openai_api_organization»openai_api_organizationvalidate_openai_default_max_completion_tokens»llm_default_max_tokensvalidate_openai_default_temperature»llm_default_temperaturevalidate_openai_endpoint_image_n»openai_endpoint_image_nvalidate_openai_endpoint_image_size»openai_endpoint_image_sizevalidate_pinecone_api_key»pinecone_api_keyvalidate_root_domain»root_domainvalidate_secret_key»secret_keyvalidate_settings_output»settings_outputvalidate_shared_resource_identifier»shared_resource_identifiervalidate_smarter_reactjs_app_loader_path»smarter_reactjs_app_loader_pathvalidate_smtp_password»smtp_passwordvalidate_smtp_port»smtp_portvalidate_smtp_sender»smtp_sendervalidate_smtp_use_ssl»smtp_use_sslvalidate_smtp_use_tls»smtp_use_tlsvalidate_smtp_username»smtp_usernamevalidate_social_auth_github_key»social_auth_github_keyvalidate_social_auth_github_secret»social_auth_github_secretvalidate_social_auth_google_oauth2_key»social_auth_google_oauth2_keyvalidate_social_auth_google_oauth2_secret»social_auth_google_oauth2_secretvalidate_social_auth_linkedin_oauth2_key»social_auth_linkedin_oauth2_keyvalidate_social_auth_linkedin_oauth2_secret»social_auth_linkedin_oauth2_secretvalidate_stripe_live_secret_key»stripe_live_secret_keyvalidate_stripe_test_secret_key»stripe_test_secret_key
- field anthropic_api_key: SecretStr = SecretStr('**********')
API key for Anthropic services, used to authenticate requests to the Anthropic API.
Required when registering Anthropic as a provider via a Provider manifest.
Set via the
SMARTER_ANTHROPIC_API_KEYenvironment variable in.env. Obtain a key at https://console.anthropic.com/ under Settings → API Keys.- Type:
SecretStr
- Default:
Value from
settings_defaults.ANTHROPIC_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid SecretStr.
API key for Anthropic services. Masked by pydantic SecretStr.
- Validated by:
validate_anthropic_api_key
- field api_description: str = 'An enterprise class plugin-based AI chatbot platform'
The description of the API.
This setting provides a brief description of the API’s purpose and functionality. It is used in various contexts, such as Swagger Api documentation site, logging, and user interfaces. :type: str :default: Value from
settings_defaults.API_DESCRIPTION:raises SmarterConfigurationError: If the value is not a string.The description of the API.
- Validated by:
validate_api_description
- field api_name: str = 'Smarter API'
The name of the API.
This setting specifies the name of the API used in various contexts, such as Swagger Api documentation site, logging, and user interfaces.
- Type:
- Default:
Value from
settings_defaults.API_NAME- Raises:
SmarterConfigurationError – If the value is not a string.
The name of the API.
- Validated by:
validate_api_name
- field aws_access_key_id: SecretStr | None = SecretStr('**********')
The AWS access key ID for authentication.
Used if AWS_PROFILE is not set. Masked by pydantic SecretStr. This setting provides the access key ID used to authenticate with AWS services. It is used in conjunction with the AWS secret access key to sign requests to AWS APIs.
- Type:
SecretStr
- Default:
Value from
settings_defaults.AWS_ACCESS_KEY_ID- Raises:
SmarterConfigurationError – If the value is not a valid AWS access key ID
The AWS access key ID for authentication. Used if AWS_PROFILE is not set. Masked by pydantic SecretStr.
- Validated by:
validate_aws_access_key_id
- field aws_db_instance_identifier: str = 'SET-ME-PLEASE'
The RDS database instance identifier used for the platform’s primary database.
This setting specifies the Amazon RDS database instance that the platform will connect to for data storage and retrieval. The instance identifier should correspond to an existing RDS instance in the configured AWS account.
- Type:
- Default:
Value from
settings_defaults.AWS_RDS_DB_INSTANCE_IDENTIFIER- Raises:
SmarterConfigurationError – If the value is not a string.
The RDS database instance identifier used for the platform’s primary database.
- Validated by:
validate_aws_db_instance_identifier
- field aws_eks_cluster_name: str = 'smarter-ubc-ca-202602121853'
The name of the AWS EKS cluster used for hosting applications.
This setting specifies the Amazon EKS cluster that the platform will use for deploying and managing containerized applications. The cluster name should correspond to an existing EKS cluster in the configured AWS account.
- Type:
- Default:
Value from
settings_defaults.AWS_EKS_CLUSTER_NAME- Raises:
SmarterConfigurationError – If the value is not a string.
The name of the AWS EKS cluster used for hosting applications.
- Validated by:
validate_aws_eks_cluster_name
- field aws_profile: str | None = 'lawrence'
The AWS profile to use for authentication.
If present, this will take precedence over AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. This setting specifies which AWS credentials profile to use when connecting to AWS services. Profiles are defined in the AWS credentials file (typically located at ~/.aws/credentials) and allow for managing multiple sets of credentials for different environments or accounts.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.AWS_PROFILE- Raises:
SmarterConfigurationError – If the value is not a string.
The AWS profile to use for authentication. If present, this will take precedence over AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.
- Validated by:
validate_aws_profile
- field aws_region: str | None = 'ca-central-1'
The single AWS region in which all AWS service clients will operate.
This setting specifies the default AWS region for the platform. All AWS service clients will be configured to use this region unless overridden on a per-client basis.
- Type:
- Default:
Value from
settings_defaults.AWS_REGION- Raises:
SmarterConfigurationError – If the value is not a valid AWS region name.
The single AWS region in which all AWS service clients will operate.
- Validated by:
validate_aws_region
- field aws_regions: List[str] = ['ap-south-1', 'eu-north-1', 'eu-west-3', 'eu-west-2', 'eu-west-1', 'ap-northeast-3', 'ap-northeast-2', 'ap-northeast-1', 'il-central-1', 'ca-central-1', 'sa-east-1', 'ca-west-1', 'mx-central-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-central-1', 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2']
A list of AWS regions considered valid for this platform.
This setting defines the AWS regions that the platform is configured to operate in. It can be used to restrict operations to specific regions, ensuring that resources are created and managed only in approved locations.
- Type:
List[str]
- Default:
Value from
AWS_REGIONS- Raises:
SmarterConfigurationError – If the value is not a list of valid AWS region names.
A list of AWS regions considered valid for this platform.
- field aws_secret_access_key: SecretStr | None = SecretStr('**********')
The AWS secret access key for authentication.
Used if AWS_PROFILE is not set. Masked by pydantic SecretStr. This setting provides the secret access key used to authenticate with AWS services. It is used in conjunction with the AWS access key ID to sign requests to AWS APIs.
- Type:
SecretStr
- Default:
Value from
settings_defaults.AWS_SECRET_ACCESS_KEY- Raises:
SmarterConfigurationError – If the value is not a valid AWS secret access key
The AWS secret access key for authentication. Used if AWS_PROFILE is not set. Masked by pydantic SecretStr.
- Validated by:
validate_aws_secret_access_key
- field branding_address1: str = '21 Remedios Road'
The corporate address used for branding purposes throughout the platform.
This setting specifies the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_ADDRESS1:raises SmarterConfigurationError: If the value is not a string.The corporate address used for branding purposes throughout the platform.
- Validated by:
validate_branding_address
- field branding_address2: str | None = ''
The second line of the corporate address used for branding purposes throughout the platform.
This setting specifies the second line of the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: Optional[str] :default: Value from
settings_defaults.BRANDING_ADDRESS2:raises SmarterConfigurationError: If the value is not a string.The second line of the corporate address used for branding purposes throughout the platform.
- Validated by:
validate_branding_address2
- field branding_city: str = 'Lamy'
The corporate city used for branding purposes throughout the platform.
This setting specifies the city of the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_CITY:raises SmarterConfigurationError: If the value is not a string.The corporate city used for branding purposes throughout the platform.
- Validated by:
validate_branding_city
- field branding_contact_url: HttpUrl | None = 'https://lawrencemcdaniel.com/contact/'
The contact URL used for branding purposes throughout the platform.
This setting specifies the URL that users can visit to contact the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_CONTACT_URL:raises SmarterConfigurationError: If the value is not a string.The contact URL used for branding purposes throughout the platform.
- Validated by:
validate_branding_contact_url
- field branding_corporate_name: str = 'Lawrence P. McDaniel'
The corporate name used for branding purposes throughout the platform.
This setting specifies the name of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_CORPORATE_NAME:raises SmarterConfigurationError: If the value is not a string.The corporate name used for branding purposes throughout the platform.
- Validated by:
validate_branding_corporate_name
- field branding_country: str = 'USA'
The corporate country used for branding purposes throughout the platform.
This setting specifies the country of the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_COUNTRY:raises SmarterConfigurationError: If the value is not a string.The corporate country used for branding purposes throughout the platform.
- Validated by:
validate_branding_country
- field branding_currency: str = 'USD'
The currency used for branding purposes throughout the platform.
This setting specifies the currency that is used in various branding contexts, such as email templates, user interfaces, and documentation. It can be used to indicate the currency in which prices, billing, or financial information is presented to users. :type: str :default: Value from
settings_defaults.BRANDING_CURRENCY:raises SmarterConfigurationError: If the value is not a string.The currency used for branding purposes throughout the platform.
- Validated by:
validate_branding_currency
- field branding_postal_code: str = '87540'
The corporate postal code used for branding purposes throughout the platform.
This setting specifies the postal code of the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_POSTAL_CODE:raises SmarterConfigurationError: If the value is not a string.The corporate postal code used for branding purposes throughout the platform.
- Validated by:
validate_branding_postal_code
- field branding_state: str = 'NM'
The corporate state used for branding purposes throughout the platform.
This setting specifies the state of the physical address of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_STATE:raises SmarterConfigurationError: If the value is not a string.The corporate state used for branding purposes throughout the platform.
- Validated by:
validate_branding_state
- field branding_support_email: EmailStr = 'lpm0073@gmail.com'
The support email address used for branding purposes throughout the platform.
This setting specifies the email address that users can contact for support or assistance related to the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: EmailStr :default: Value from
settings_defaults.BRANDING_SUPPORT_EMAIL:raises SmarterConfigurationError: If the value is not a EmailStr.The support email address used for branding purposes throughout the platform.
- Validated by:
validate_branding_support_email
- field branding_support_hours: str = 'MON-FRI 9:00 AM - 5:00 PM GMT-6 (CST)'
The support hours used for branding purposes throughout the platform.
This setting specifies the hours during which support is available for users of the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_SUPPORT_HOURS:raises SmarterConfigurationError: If the value is not a string.The support hours used for branding purposes throughout the platform.
- Validated by:
validate_branding_support_hours
- field branding_support_phone_number: str = '+1 (617) 555-6172'
The support phone number used for branding purposes throughout the platform.
This setting specifies the phone number that users can call for support or assistance related to the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: str :default: Value from
settings_defaults.BRANDING_SUPPORT_PHONE_NUMBER:raises SmarterConfigurationError: If the value is not a string.The support phone number used for branding purposes throughout the platform.
- Validated by:
validate_branding_support_phone_number
- field branding_timezone: str = 'America/Denver'
The timezone used for branding purposes throughout the platform.
This setting specifies the timezone that is used in various branding contexts, such as email templates, user interfaces, and documentation. It can be used to indicate the timezone in which dates and times are presented to users. :type: str :default: Value from
settings_defaults.BRANDING_TIMEZONE:raises SmarterConfigurationError: If the value is not a string.The timezone used for branding purposes throughout the platform.
- Validated by:
validate_branding_timezone
- field branding_url_facebook: HttpUrl | None = 'https://facebook.com'
The Facebook URL used for branding purposes throughout the platform.
This setting specifies the Facebook page URL of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: Optional[HttpUrl] :default: Value from
settings_defaults.BRANDING_URL_FACEBOOK:raises SmarterConfigurationError: If the value is not a valid HttpUrl.The Facebook URL used for branding purposes throughout the platform.
- Validated by:
validate_branding_url_facebook
- field branding_url_linkedin: HttpUrl | None = 'https://www.linkedin.com/in/lawrencemcdaniel/'
The LinkedIn URL used for branding purposes throughout the platform.
This setting specifies the LinkedIn profile URL of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: Optional[HttpUrl] :default: Value from
settings_defaults.BRANDING_URL_LINKEDIN:raises SmarterConfigurationError: If the value is not a valid HttpUrl.The LinkedIn URL used for branding purposes throughout the platform.
- Validated by:
validate_branding_url_linkedin
- field branding_url_twitter: HttpUrl | None = 'https://x.com/fullstackwlarry'
The Twitter URL used for branding purposes throughout the platform.
This setting specifies the Twitter profile URL of the organization or company that owns or operates the platform. It is used in various branding contexts, such as email templates, user interfaces, and documentation. :type: Optional[HttpUrl] :default: Value from
settings_defaults.BRANDING_URL_TWITTER:raises SmarterConfigurationError: If the value is not a valid HttpUrl.The Twitter URL used for branding purposes throughout the platform.
- Validated by:
validate_branding_url_twitter
- field cache_expiration: int = 60
Default cache expiration time for Django views that use page caching.
See: django.views.decorators.cache.cache_control and django.views.decorators.cache.cache_page
The cache expiration time in seconds for cached data. This setting defines how long cached data should be considered valid before it is refreshed or invalidated. A shorter expiration time may lead to more frequent cache refreshes, while a longer expiration time can improve performance by reducing the number of cache lookups. :type: int :default: Value from
settings_defaults.CACHE_EXPIRATION:raises SmarterConfigurationError: If the value is not a positive integer.The cache expiration time in seconds for cached data.
- Constraints:
gt = 0
- Validated by:
parse_cache_expiration
- field chat_cache_expiration: int = 5
The prompt cache expiration time in seconds for cached prompt data.
This setting defines how long cached prompt data should be considered valid before it is refreshed or invalidated. A shorter expiration time may lead to more frequent cache refreshes, while a longer expiration time can improve performance by reducing the number of cache lookups.
- Type:
- Default:
Value from
settings_defaults.CHAT_CACHE_EXPIRATION- Raises:
SmarterConfigurationError – If the value is not a positive integer.
see:
smarter.apps.prompt.models.PromptHelperThe prompt cache expiration time in seconds for cached prompt data.
- Constraints:
gt = 0
- Validated by:
parse_chat_cache_expiration
- field debug_mode: bool = True
True if debug mode is enabled.
This enables verbose logging and other debug features.
When debug mode is enabled, the platform will log additional information useful for troubles hooting and development. This may include detailed error messages, stack traces, and other diagnostic data that can help identify issues during development or testing.
- Type:
- Default:
Value from
settings_defaults.DEBUG_MODE- Raises:
SmarterConfigurationError – If the value is not a boolean.
True if debug mode is enabled. This enables verbose logging and other debug features.
- Validated by:
parse_debug_mode
- field default_missing_value: str = 'SET-ME-PLEASE'
Default missing value placeholder string.
Used for consistency across settings. This string is used as a placeholder for configuration values that have not been set. It indicates that the value is missing and should be provided by the user or administrator. Using a consistent placeholder helps identify unset values during debugging and configuration reviews.
- Type:
- Default:
Value from
DEFAULT_MISSING_VALUE- Raises:
SmarterConfigurationError – If the value is not a string.
Default missing value placeholder string. Used for consistency across settings.
- field developer_mode: bool = True
True if developer mode is enabled.
Used as a means to configure a production Docker container to run locally for student use. When developer mode is enabled, certain restrictions or configurations that are typical of a production environment may be relaxed or altered to facilitate local development and testing. This allows developers to work with a production-like setup without the constraints that would normally apply in a live environment.
- Type:
- Default:
Value from
settings_defaults.DEVELOPER_MODE- Raises:
SmarterConfigurationError – If the value is not a boolean.
True if developer mode is enabled. Used as a means to configure a production Docker container to run locally for student use.
- Validated by:
parse_developer_mode
- field django_default_file_storage: str = 'storages.backends.s3boto3.S3Boto3Storage'
The default Django file storage backend.
This setting determines where Django will store uploaded files by default. It can be configured to use different storage backends, such as Amazon S3 or the local file system, depending on the needs of the application and its deployment environment.
- Type:
- Default:
Value from
settings_defaults.DJANGO_DEFAULT_FILE_STORAGE- Raises:
SmarterConfigurationError – If the value is not a string.
The default Django file storage backend.
- field dump_defaults: bool = False
True if default values should be dumped for debugging purposes.
When enabled, the platform will log or output the default configuration values used during initialization. This can help developers and administrators understand the effective configuration of the system, especially when trouble shooting issues related to settings.
- Type:
- Default:
Value from
settings_defaults.DUMP_DEFAULTS- Raises:
SmarterConfigurationError – If the value is not a boolean.
True if default values should be dumped for debugging purposes.
- Validated by:
parse_dump_defaults
- field email_admin: EmailStr = 'lpm0073@gmail.com'
The administrator email address used for system notifications and alerts.
This email address is used as the primary contact for system notifications, alerts, and other administrative communications related to the platform.
- Type:
- Default:
Value from
settings_defaults.EMAIL_ADMIN- Raises:
SmarterConfigurationError – If the value is not a valid email address.
The administrator email address used for system notifications and alerts.
- Validated by:
validate_email_admin
- field enable_dashboard_apply: bool = True
Determines if the file drop zone feature is enabled based on the current environment.
- Returns:
True if the file drop zone is enabled, False otherwise.
- Return type:
True if the file drop zone feature is enabled based on the current environment.
- Validated by:
parse_enable_dashboard_apply
- field enable_dashboard_passthrough_prompt: bool = True
Determines if the passthrough prompt feature is enabled based on the current environment.
- Returns:
True if the passthrough prompt is enabled, False otherwise.
- Return type:
True if the passthrough prompt feature is enabled based on the current environment.
- Validated by:
parse_enable_dashboard_passthrough_prompt
- field enable_dashboard_server_logs: bool = True
Determines if the terminal app feature is enabled based on the current environment.
- Returns:
True if the terminal app is enabled, False otherwise.
- Return type:
True if the terminal app feature is enabled based on the current environment.
- Validated by:
parse_enabled_terminal_app
- field enable_vectorstore: bool = True
Determines if the vectorstore feature is enabled based on the current environment.
- Returns:
True if the vectorstore is enabled, False otherwise.
- Return type:
True if the vectorstore feature is enabled based on the current environment.
- Validated by:
parse_enable_vectorstore
- field environment: str = 'local'
The deployment environment for the platform.
This setting indicates the environment in which the platform is running, such as development, staging, or production. It can be used to adjust behavior and configurations based on the environment.
- Type:
- Default:
Value from
settings_defaults.ENVIRONMENT- Raises:
SmarterConfigurationError – If the value is not a valid environment name from SmarterEnvironments.all
The deployment environment for the platform.
- Validated by:
validate_environment
- field fernet_encryption_key: SecretStr = SecretStr('**********')
The Fernet encryption key used for encrypting Smarter Secrets data.
This setting provides the key used for symmetric encryption and decryption of sensitive data within the platform. The key should be a URL-safe base64-encoded 32-byte key.
- Type:
- Default:
Value from
settings_defaults.FERNET_ENCRYPTION_KEY- Raises:
SmarterConfigurationError – If the value is not a valid Fernet key.
The Fernet encryption key used for encrypting Smarter Secrets data.
- Validated by:
validate_fernet_encryption_key
- field file_drop_zone_enabled: bool = True
Determines if the file drop zone feature is enabled based on the current environment.
- Returns:
True if the file drop zone is enabled, False otherwise.
- Return type:
True if the file drop zone feature is enabled based on the current environment.
- field gemini_api_key: SecretStr = SecretStr('**********')
The API key for Google Gemini services.
Masked by pydantic SecretStr. This setting provides the API key used to authenticate with Google Gemini services. It is required for accessing Gemini’s APIs and services.
- Type:
SecretStr
- Default:
Value from
settings_defaults.GEMINI_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for Google Gemini services. Masked by pydantic SecretStr.
- Validated by:
validate_gemini_api_key
- field google_maps_api_key: SecretStr = SecretStr('**********')
The API key for Google Maps services.
Masked by pydantic SecretStr. Used for geocoding, maps, and places APIs, for the OpenAI get_weather() example function. This setting provides the API key used to authenticate with Google Maps services. It is required for accessing Google Maps APIs such as geocoding, maps rendering, and places information.
- Type:
SecretStr
- Default:
Value from
settings_defaults.GOOGLE_MAPS_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for Google Maps services. Masked by pydantic SecretStr. Used for geocoding, maps, and places APIs, for the OpenAI get_weather() example function.
- Validated by:
validate_google_maps_api_key
- field google_service_account: SecretStr = SecretStr('**********')
The Google service account credentials as a dictionary.
Used for Google Cloud services integration. This setting contains the credentials for a Google service account in JSON format. It is used to authenticate and authorize access to Google Cloud services on behalf of the platform.
- Type:
- Default:
Value from
settings_defaults.GOOGLE_SERVICE_ACCOUNT- Raises:
SmarterConfigurationError – If the value is not a valid service account JSON.
The Google service account credentials as a dictionary. Used for Google Cloud services integration.
- Validated by:
validate_google_service_account
- field internal_ip_prefixes: List[str] = ['192.168.']
Supplemental list of internal IP prefixes used in smarter.apps.llm_client.middleware.security.SmarterSecurityMiddleware.
and smarter.lib.django.middleware security features.
The default value is based on the default internal IP range used by Kubernetes clusters by default unless otherwise configured.
A list of internal IP prefixes used for security and middleware features. This setting defines IP address prefixes that are considered internal to the platform. It is used to identify requests originating from trusted internal sources, enabling specific security measures and middleware behaviors.
- Type:
List[str]
- Default:
Value from
settings_defaults.INTERNAL_IP_PREFIXES- Raises:
SmarterConfigurationError – If the value is not a list of strings matching settings_defaults.INTERNAL_IP_PREFIXES
A list of internal IP prefixes used for security and middleware features.
- Validated by:
validate_internal_ip_prefixes
- field langchain_memory_key: str | None = 'prompt_history'
The key used for LangChain memory storage.
This setting specifies the key under which LangChain memory data is stored. It is used to manage and retrieve memory data within LangChain applications.
Note
LangChain is not currently in use in Smarter and might be deprecated in a future release.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.LANGCHAIN_MEMORY_KEY- Raises:
SmarterConfigurationError – If the value is not a string.
The key used for LangChain memory storage.
- Validated by:
validate_langchain_memory_key
- field llama_api_key: SecretStr = SecretStr('**********')
The API key for LLaMA services.
Masked by pydantic SecretStr. This setting provides the API key used to authenticate with LLaMA services. It is required for accessing LLaMA’s APIs and services.
- Type:
SecretStr
- Default:
Value from
settings_defaults.LLAMA_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for LLaMA services. Masked by pydantic SecretStr.
- Validated by:
validate_llama_api_key
- field llm_client_cache_expiration: int = 300
The llm_client cache expiration time in seconds for cached llm_client data.
This setting defines how long cached llm_client data should be considered valid before it is refreshed or invalidated. A shorter expiration time may lead to more frequent cache refreshes, while a longer expiration time can improve performance by reducing the number of cache lookups.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_CACHE_EXPIRATION- Raises:
SmarterConfigurationError – If the value is not a positive integer.
The llm_client cache expiration time in seconds for cached llm_client data.
- Constraints:
gt = 0
- Validated by:
parse_llm_client_cache_expiration
- field llm_client_max_returned_history: int = 25
The maximum number of prompt history messages to return from the llm_client.
This setting defines the maximum number of previous prompt messages that the llm_client will include in its responses. Limiting the number of returned messages can help improve performance and reduce response times. :type: int :default: Value from
settings_defaults.LLM_CLIENT_MAX_RETURNED_HISTORY:raises SmarterConfigurationError: If the value is not a positive integer.The maximum number of prompt history messages to return from the llm_client.
- Constraints:
gt = 0
- Validated by:
parse_llm_client_max_returned_history
- field llm_client_tasks_celery_max_retries: int = 3
Maximum number of retries for llm_client tasks in Celery.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_TASKS_CELERY_MAX_RETRIES- Raises:
SmarterConfigurationError – If the value is not a non-negative integer.
Maximum number of retries for llm_client tasks in Celery.
- Constraints:
gt = 0
- Validated by:
parse_llm_client_tasks_celery_max_retries
- field llm_client_tasks_celery_retry_backoff: bool = True
If True, enables exponential backoff for Celery task retries related to LLMClient deployment and management.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_TASKS_CELERY_RETRY_BACKOFF- Raises:
SmarterConfigurationError – If the value is not a boolean.
If True, enables exponential backoff for Celery task retries related to LLMClient deployment and management
- Validated by:
parse_llm_client_tasks_celery_retry_backoff
- field llm_client_tasks_celery_task_queue: str = 'default_celery_task_queue'
The Celery task queue name for llm_client tasks.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_TASKS_CELERY_TASK_QUEUE- Raises:
SmarterConfigurationError – If the value is not a string.
The Celery task queue name for llm_client tasks.
- Validated by:
validate_llm_client_tasks_celery_task_queue
- field llm_client_tasks_create_dns_record: bool = True
Set these to true if we DO NOT place a wildcard A record in the customer API domain.
requiring that every llm_client have its own A record. This is the default behavior. For programmatically creating DNS records in AWS Route53 during LLMClient deployment.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_TASKS_CREATE_DNS_RECORD- Raises:
SmarterConfigurationError – If the value is not a boolean.
True if DNS records should be created for llm_client tasks.
- Validated by:
parse_llm_client_tasks_create_dns_record
- field llm_client_tasks_create_ingress_manifest: bool = True
True if ingress manifests should be created for llm_client tasks.
For programmatically creating ingress manifests during LLMClient deployment. :type: bool :default: Value from
settings_defaults.LLM_CLIENT_TASKS_CREATE_INGRESS_MANIFEST:raises SmarterConfigurationError: If the value is not a boolean.True if ingress manifests should be created for llm_client tasks.
- Validated by:
parse_llm_client_tasks_create_ingress_manifest
- field llm_client_tasks_default_ttl: int = 600
Default TTL (time to live) for DNS records created in AWS Route53 during LLMClient deployment.
- Type:
- Default:
Value from
settings_defaults.LLM_CLIENT_TASKS_DEFAULT_TTL- Raises:
SmarterConfigurationError – If the value is not a non-negative integer.
Default TTL (time to live) for DNS records created in AWS Route53 during LLMClient deployment.
- Constraints:
ge = 0
- Validated by:
parse_llm_client_tasks_default_ttl
- field llm_default_max_tokens: int = 2048
The default maximum number of tokens to generate for language model interactions.
This setting specifies the upper limit on the number of tokens that the language model can generate in response to a single request. It helps control the length of the output and manage resource usage.
- Type:
- Default:
Value from
settings_defaults.LLM_DEFAULT_MAX_TOKENS- Raises:
SmarterConfigurationError – If the value is not a positive integer.
The default maximum number of tokens to generate for language model interactions.
- Constraints:
ge = 1
- Validated by:
validate_openai_default_max_completion_tokens
- field llm_default_model: str = 'gpt-4o-mini'
The default LLM model to use for language model interactions.
This setting specifies which specific language model should be used by default for processing natural language tasks. It determines the model variant that will handle requests for language generation, understanding, and other related functions.
- Type:
- Default:
Value from
settings_defaults.LLM_DEFAULT_MODEL- Raises:
SmarterConfigurationError – If the value is not a valid LLM model name
The default LLM model to use for language model interactions.
- Validated by:
validate_llm_default_model
- field llm_default_provider: str = 'openai'
The default LLM provider to use for language model interactions.
This setting specifies which language model provider should be used by default for processing natural language tasks. It determines the backend service that will handle requests for language generation, understanding, and other related functions.
- Type:
- Default:
Value from
settings_defaults.LLM_DEFAULT_PROVIDER- Raises:
SmarterConfigurationError – If the value is not a valid LLM provider name
The default LLM provider to use for language model interactions.
- Validated by:
validate_llm_default_provider
- field llm_default_system_role: str = 'You are a helpful llm_client. When given the opportunity to utilize function calling, you should always do so. This will allow you to provide the best possible responses to the user. If you are unable to provide a response, you should prompt the user for more information. If you are still unable to provide a response, you should inform the user that you are unable to help them at this time.'
The default system role prompt to use for language model interactions.
This setting provides the default system role prompt that guides the behavior of the language model during interactions. It helps define the context and tone of the responses generated by the model.
- Type:
- Default:
Value from
settings_defaults.LLM_DEFAULT_SYSTEM_ROLE- Raises:
SmarterConfigurationError – If the value is not a string.
The default system role prompt to use for language model interactions.
- Validated by:
validate_llm_default_system_role
- field llm_default_temperature: float = 0.5
The default temperature to use for language model interactions.
This setting controls the randomness of the language model’s output. A lower temperature (e.g., 0.0) results in more deterministic and focused responses, while a higher temperature (e.g., 1.0) produces more diverse and creative outputs.
- Type:
- Default:
Value from
settings_defaults.LLM_DEFAULT_TEMPERATURE- Raises:
SmarterConfigurationError – If the value is not a float between 0.
The default temperature to use for language model interactions.
- Validated by:
validate_openai_default_temperature
- field local_hosts: List[str] = ['localhost', '127.0.0.1', 'localhost:9357', '127.0.0.1:9357', 'testserver']
A list of hostnames considered local for development and testing purposes.
This setting defines hostnames that are treated as local addresses by the platform. It is useful for distinguishing between local and remote requests, especially during development and testing.
- Type:
List[str]
- Default:
Value from
settings_defaults.LOCAL_HOSTS- Raises:
SmarterConfigurationError – If the value is not a list of strings matching settings_defaults.LOCAL_HOSTS
A list of hostnames considered local for development and testing purposes.
- Validated by:
validate_local_hosts
- field log_level: int = 10
The logging level for the platform based on Python logging levels: logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL
- Constraints:
ge = 0
le = 50
- field logo: AnyUrl | None = 'https://cdn.smarter.sh/images/logo/smarter-crop.png'
The URL to the platform’s logo image.
This setting specifies the web address of the logo image used in the platform’s user interface. It should be a valid URL pointing to an external image resource accessible by the frontend.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.LOGO- Raises:
SmarterConfigurationError – If the value is not a valid URL string.
The URL to the platform’s logo image.
- Validated by:
validate_logo
- field mailchimp_api_key: SecretStr | None = SecretStr('**********')
The API key for Mailchimp services.
Masked by pydantic SecretStr. This setting provides the API key used to authenticate with Mailchimp services. It is required for accessing Mailchimp’s APIs and services.
- Type:
Optional[SecretStr]
- Default:
Value from
settings_defaults.MAILCHIMP_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for Mailchimp services. Masked by pydantic SecretStr.
- Validated by:
validate_mailchimp_api_key
- field mailchimp_list_id: str | None = '272208fe44'
The Mailchimp list ID for managing email subscribers.
This setting specifies the unique identifier of the Mailchimp list used for managing email subscribers. It is required for adding, removing, and managing subscribers within Mailchimp.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.MAILCHIMP_LIST_ID- Raises:
SmarterConfigurationError – If the value is not a string.
The Mailchimp list ID for managing email subscribers.
- Validated by:
validate_mailchimp_list_id
- field marketing_site_url: HttpUrl | None = 'https://smarter.sh'
The URL to the platform’s marketing site.
This setting specifies the web address of the marketing site associated with the platform. It should be a valid URL pointing to an external website.
- Type:
Optional[httpHttpUrl]
- Default:
Value from
settings_defaults.MARKETING_SITE_URL- Raises:
SmarterConfigurationError – If the value is not a valid URL string.
The URL to the platform’s marketing site.
- Validated by:
validate_marketing_site_url
- field openai_api_key: SecretStr = SecretStr('**********')
The API key for OpenAI services.
Masked by pydantic SecretStr. This setting provides the API key used to authenticate with OpenAI services. It is required for accessing OpenAI’s APIs and services.
- Type:
SecretStr
- Default:
Value from
settings_defaults.OPENAI_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for OpenAI services. Masked by pydantic SecretStr.
- Validated by:
validate_openai_api_key
- field openai_api_organization: str | None = 'SET-ME-PLEASE'
The OpenAI API organization ID.
This setting specifies the organization ID used when making requests to the OpenAI API. It is used to associate API requests with a specific organization account.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.OPENAI_API_ORGANIZATION- Raises:
SmarterConfigurationError – If the value is not a string.
The OpenAI API organization ID.
- Validated by:
validate_openai_api_organization
- field openai_endpoint_image_n: int | None = 4
The number of images to generate per request to the OpenAI image endpoint.
This setting specifies how many images should be generated in response to a single request to the OpenAI image generation API.
- Type:
Optional[int]
- Default:
Value from
settings_defaults.OPENAI_ENDPOINT_IMAGE_N- Raises:
SmarterConfigurationError – If the value is not a positive integer.
The number of images to generate per request to the OpenAI image endpoint.
- Validated by:
validate_openai_endpoint_image_n
- field openai_endpoint_image_size: str | None = '1024x768'
The size of images to generate from the OpenAI image endpoint.
This setting specifies the dimensions of the images to be generated by the OpenAI image generation API.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.OPENAI_ENDPOINT_IMAGE_SIZE- Raises:
SmarterConfigurationError – If the value is not a valid image size string.
The size of images to generate from the OpenAI image endpoint.
- Validated by:
validate_openai_endpoint_image_size
- field pinecone_api_key: SecretStr = SecretStr('**********')
The API key for Pinecone services.
Masked by pydantic SecretStr. This setting provides the API key used to authenticate with Pinecone services. It is required for accessing Pinecone’s APIs and services.
- Type:
SecretStr
- Default:
Value from
settings_defaults.PINECONE_API_KEY- Raises:
SmarterConfigurationError – If the value is not a valid API key.
The API key for Pinecone services. Masked by pydantic SecretStr.
- Validated by:
validate_pinecone_api_key
- field platform_subdomain: str | None = 'local'
The subdomain for the platform, used in constructing URLs and email addresses.
- field plugin_max_data_results: int = 50
A global maximum number of data row results that can be returned by any Smarter plugin.
This setting helps to prevent excessive data retrieval that could impact performance or lead to resource exhaustion. Plugins should respect this limit when querying data sources and returning results to ensure efficient operation of the platform. :type: int :default: Value from
settings_defaults.PLUGIN_MAX_DATA_RESULTS:raises SmarterConfigurationError: If the value is not a positive integer.A global maximum number of data row results that can be returned by any Smarter plugin.
- Constraints:
gt = 0
- Validated by:
parse_plugin_max_data_results
- field root_domain: str = 'smarter.sh'
The root domain for the platform.
This setting specifies the primary domain name used by the platform. It is used for constructing URLs, email addresses, and other domain-related configurations.
- Type:
- Default:
Value from
settings_defaults.ROOT_DOMAIN- Raises:
SmarterConfigurationError – If the value is not a valid domain name.
The root domain for the platform.
- Validated by:
validate_root_domain
- field secret_key: SecretStr | None = SecretStr('**********')
The Django secret key for cryptographic signing.
This setting provides the secret key used by Django for cryptographic signing. It is essential for maintaining the security of sessions, cookies, and other cryptographic operations within the Django framework.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.SECRET_KEY- Raises:
SmarterConfigurationError – If the value is not a string.
The Django secret key for cryptographic signing.
- Validated by:
validate_secret_key
- field sensitive_files_amnesty_patterns: List[Pattern] = [re.compile('^/$'), re.compile('^/static(/.*)?$'), re.compile('^/api/v\\d+(\\.\\d+)?/.+'), re.compile('^/dashboard(/.*)?$'), re.compile('^/docs/manifest(/.*)?$'), re.compile('^/docs/json-schema(/.*)?$'), re.compile('^/config/?$'), re.compile('^/login/?$'), re.compile('^/logout/?$'), re.compile('^/admin/?$')]
Sensitive file amnesty patterns used by smarter.lib.django.middleware.sensitive_files.SensitiveFileAccessMiddleware.
Requests matching these patterns will be allowed even if they match sensitive file names.
Note
Do not modify this setting unless you fully understand the implications of doing so.
List of regex patterns for sensitive file amnesty. This setting defines a list of regular expression patterns that identify files considered sensitive. Files matching these patterns may be subject to special handling, such as exclusion from certain operations or additional security measures.
- Type:
List[Pattern]
- Default:
Value from
settings_defaults.SENSITIVE_FILES_AMNESTY_PATTERNS- Raises:
SmarterConfigurationError – If the value is not a list of valid regex patterns.
List of regex patterns for sensitive file amnesty.
- Validated by:
parse_sensitive_files_amnesty_patterns
- field settings_output: bool = False
If True, enables verbose output of Smarter run-time settings during Django startup.
This will generate a multi-line header in new terminal windows launched from Kubernetes pods running Smarter services.
- Type:
- Default:
Value from
settings_defaults.SETTINGS_OUTPUT- Raises:
SmarterConfigurationError – If the value is not a boolean.
Flag to enable or disable output of settings for debugging purposes.
- Validated by:
validate_settings_output
A single, lowercase word used as a unique identifier for all shared resources across the Smarter platform.
This value is used as a prefix or namespace when naming resources that are shared between services, environments, or deployments—such as S3 buckets, Kubernetes namespaces, or other cloud resources. It ensures that resource names are consistent, easily identifiable, and do not conflict with those from other projects or organizations.
Important
The identifier should be a simple word, using only lowercase letters.
Avoid changing this value after initial deployment, as it would likely lead to resource naming conflicts and unintended consequences in Kubernetes, cloud infrastructure, and other services relying on consistent naming conventions.
- Typical usage:
As a prefix for cloud resource names (e.g.,
smarter-platform-alpha)To distinguish resources in multi-tenant or multi-environment deployments
For automated naming conventions in infrastructure-as-code and deployment scripts
- Examples:
smartermycompanymyproject
- Type:
- Default:
Value from
settings_defaults.SHARED_RESOURCE_IDENTIFIER- Raises:
SmarterConfigurationError – If the value is not a string.
Smarter 1-word identifier to be used when naming any shared resource.
- Validated by:
validate_shared_resource_identifier
- field smarter_mysql_test_database_password: SecretStr | None = SecretStr('**********')
The password for the Smarter MySQL test database.
Used for example Smarter Plugins that are pre-installed on new installations. This setting provides the password used to connect to the Smarter MySQL test database. It is used by example Smarter Plugins that require access to a test database. :type: Optional[SecretStr] :default: Value from
settings_defaults.MYSQL_TEST_DATABASE_PASSWORD:raises SmarterConfigurationError: If the value is not a string.The password for the Smarter MySQL test database. Used for example Smarter Plugins that are pre-installed on new installations.
- field smarter_mysql_test_database_secret_name: str | None = 'smarter_test_db'
The secret name for the Smarter MySQL test database.
Used for example Smarter Plugins that are pre-installed on new installations. This setting specifies the name of the secret in AWS Secrets Manager that contains the credentials for the Smarter MySQL test database. It is used by example Smarter Plugins that require access to a test database. :type: Optional[str] :default: Value from
settings_defaults.MYSQL_TEST_DATABASE_SECRET_NAME:raises SmarterConfigurationError: If the value is not a string. SMARTER_MYSQL_TEST_DATABASE_PASSWORDThe secret name for the Smarter MySQL test database. Used for example Smarter Plugins that are pre-installed on new installations.
- field smarter_reactjs_app_loader_path: str = '/ui-chat/app-loader.js'
The path to the ReactJS app loader script.
This setting specifies the URL path where the ReactJS application loader script is located. It is used to load the ReactJS frontend for the platform.
- Type:
- Default:
Value from
settings_defaults.REACTJS_APP_LOADER_PATH- Raises:
SmarterConfigurationError – If the value is not a string.
The path to the ReactJS app loader script.
- Validated by:
validate_smarter_reactjs_app_loader_path
- field smtp_password: SecretStr | None = SecretStr('**********')
The SMTP password for authentication.
This setting provides the password used to authenticate with the SMTP server. It is required for sending emails through the SMTP server.
- Type:
Optional[SecretStr]
- Default:
Value from
settings_defaults.SMTP_PASSWORD- Raises:
SmarterConfigurationError – If the value is not a valid password.
The SMTP password for authentication. Assumed to be an AWS SES-generated IAM keypair secret.
- Validated by:
validate_smtp_password
- field smtp_port: int | None = 587
The SMTP port for sending emails.
This setting specifies the port number used to connect to the SMTP server for sending outgoing emails.
- Type:
Optional[int]
- Default:
Value from
settings_defaults.SMTP_PORT- Raises:
SmarterConfigurationError – If the value is not a valid port number.
The SMTP port for sending emails.
- Validated by:
validate_smtp_port
- field smtp_sender: EmailStr | None = 'no-reply@smarter.sh'
The sender email address for SMTP emails.
This setting specifies the email address that will appear as the sender in outgoing SMTP emails sent by the platform.
- Type:
Optional[EmailStr]
- Default:
Value from
settings_defaults.SMTP_SENDER- Raises:
SmarterConfigurationError – If the value is not a valid email address.
The sender email address for SMTP emails.
- Validated by:
validate_smtp_sender
- field smtp_use_ssl: bool | None = False
Whether to use SSL for SMTP connections.
This setting indicates whether SSL (Secure Sockets Layer) should be used when connecting to the SMTP server for sending emails.
- Type:
Optional[bool]
- Default:
Value from
settings_defaults.SMTP_USE_SSL- Raises:
SmarterConfigurationError – If the value is not a boolean.
Whether to use SSL for SMTP connections.
- Validated by:
validate_smtp_use_ssl
- field smtp_use_tls: bool | None = True
Whether to use TLS for SMTP connections.
This setting indicates whether TLS (Transport Layer Security) should be used when connecting to the SMTP server for sending emails.
- Type:
Optional[bool]
- Default:
Value from
settings_defaults.SMTP_USE_TLS- Raises:
SmarterConfigurationError – If the value is not a boolean.
Whether to use TLS for SMTP connections.
- Validated by:
validate_smtp_use_tls
- field smtp_username: SecretStr | None = SecretStr('**********')
The SMTP username for authentication.
This setting provides the username used to authenticate with the SMTP server. It is required for sending emails through the SMTP server.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.SMTP_USERNAME- Raises:
SmarterConfigurationError – If the value is not a string.
The SMTP username for authentication. Assumed to be an AWS SES-generatred IAM keypair username.
- Validated by:
validate_smtp_username
- field social_auth_github_key: SecretStr = SecretStr('**********')
The OAuth2 key for GitHub social authentication.
Masked by pydantic SecretStr. This setting provides the OAuth2 client ID used for GitHub social authentication. It is required for enabling users to log in using their GitHub accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_GITHUB_KEY- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client ID
The OAuth2 key for GitHub social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_github_key
- field social_auth_github_secret: SecretStr = SecretStr('**********')
The OAuth2 secret for GitHub social authentication.
Masked by pydantic SecretStr. This setting provides the OAuth2 client secret used for GitHub social authentication. It is required for enabling users to log in using their GitHub accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_GITHUB_SECRET- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client secret
The OAuth2 secret for GitHub social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_github_secret
- field social_auth_google_oauth2_key: SecretStr = SecretStr('**********')
The OAuth2 key for Google social authentication.
Masked by pydantic SecretStr. This setting provides the OAuth2 client ID used for Google social authentication. It is required for enabling users to log in using their Google accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_GOOGLE_OAUTH2_KEY- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client ID.
The OAuth2 key for Google social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_google_oauth2_key
- field social_auth_google_oauth2_secret: SecretStr = SecretStr('**********')
The OAuth2 secret for Google social authentication.
Masked by pydantic SecretStr. This setting provides the OAuth2 client secret used for Google social authentication. It is required for enabling users to log in using their Google accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client secret
The OAuth2 secret for Google social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_google_oauth2_secret
- field social_auth_linkedin_oauth2_key: SecretStr = SecretStr('**********')
Deprecated since version 0.13.35.: This setting is deprecated and will be removed in a future release. LinkedIn social authentication is no longer supported or recommended for new deployments.
The OAuth2 key for LinkedIn social authentication. Masked by pydantic SecretStr. This setting provides the OAuth2 client ID used for LinkedIn social authentication. It was required for enabling users to log in using their LinkedIn accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_LINKEDIN_OAUTH2- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client ID
The OAuth2 key for LinkedIn social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_linkedin_oauth2_key
- field social_auth_linkedin_oauth2_secret: SecretStr = SecretStr('**********')
Deprecated since version 0.13.35.: This setting is deprecated and will be removed in a future release. LinkedIn social authentication is no longer supported or recommended for new deployments.
The OAuth2 secret for LinkedIn social authentication. Masked by pydantic SecretStr. This setting provides the OAuth2 client secret used for LinkedIn social authentication. It was required for enabling users to log in using their LinkedIn accounts.
- Type:
SecretStr
- Default:
Value from
settings_defaults.SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET- Raises:
SmarterConfigurationError – If the value is not a valid OAuth2 client secret
The OAuth2 secret for LinkedIn social authentication. Masked by pydantic SecretStr.
- Validated by:
validate_social_auth_linkedin_oauth2_secret
- field stripe_live_secret_key: SecretStr | None = SecretStr('**********')
Deprecated since version 0.13.0.: This setting is deprecated and will be removed in a future release. Please use the new payment processing configuration settings.
The secret key for Stripe live environment. This setting provides the secret key used to authenticate with Stripe’s live environment. It is used for processing real transactions and payments.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.STRIPE_LIVE_SECRET_KEY- Raises:
SmarterConfigurationError – If the value is not a string.
DEPRECATED: The secret key for Stripe live environment.
- Validated by:
validate_stripe_live_secret_key
- field stripe_test_secret_key: SecretStr | None = SecretStr('**********')
Deprecated since version 0.13.0.: This setting is deprecated and will be removed in a future release. Please use the new payment processing configuration settings.
The secret key for Stripe test environment. This setting provides the secret key used to authenticate with Stripe’s test environment. It is used for processing test transactions and payments.
- Type:
Optional[str]
- Default:
Value from
settings_defaults.STRIPE_TEST_SECRET_KEY- Raises:
SmarterConfigurationError – If the value is not a string.
DEPRECATED: The secret key for Stripe test environment.
- Validated by:
validate_stripe_test_secret_key
- field verbose_logging: bool = True
Whether to enable verbose logging for debugging purposes.
If True, enables verbose logging throughout the Smarter platform for debugging purposes. :type: bool :default: Value from
settings_defaults.VERBOSE_LOGGING:raises SmarterConfigurationError: If the value is not a boolean.Whether to enable verbose logging for debugging purposes.
- validator parse_cache_expiration » cache_expiration[source]
Validates the ‘cache_expiration’ field.
- validator parse_chat_cache_expiration » chat_cache_expiration[source]
Validates the ‘chat_cache_expiration’ field.
- validator parse_enable_dashboard_apply » enable_dashboard_apply[source]
Validates the ‘enable_dashboard_apply’ field.
- validator parse_enable_dashboard_passthrough_prompt » enable_dashboard_passthrough_prompt[source]
Validates the ‘enable_dashboard_passthrough_prompt’ field.
- validator parse_enable_vectorstore » enable_vectorstore[source]
Validates the ‘enable_vectorstore’ field.
- validator parse_enabled_terminal_app » enable_dashboard_server_logs[source]
Validates the ‘enable_dashboard_server_logs’ field.
- validator parse_llm_client_cache_expiration » llm_client_cache_expiration[source]
Validates the ‘llm_client_cache_expiration’ field.
- validator parse_llm_client_max_returned_history » llm_client_max_returned_history[source]
Validates the ‘llm_client_max_returned_history’ field.
- validator parse_llm_client_tasks_celery_max_retries » llm_client_tasks_celery_max_retries[source]
Validates the ‘llm_client_tasks_celery_max_retries’ field.
- validator parse_llm_client_tasks_celery_retry_backoff » llm_client_tasks_celery_retry_backoff[source]
Validates the ‘llm_client_tasks_celery_retry_backoff’ field.
- validator parse_llm_client_tasks_create_dns_record » llm_client_tasks_create_dns_record[source]
Validates the ‘llm_client_tasks_create_dns_record’ field.
- validator parse_llm_client_tasks_create_ingress_manifest » llm_client_tasks_create_ingress_manifest[source]
Validates the ‘llm_client_tasks_create_ingress_manifest’ field.
- validator parse_llm_client_tasks_default_ttl » llm_client_tasks_default_ttl[source]
Validates the ‘llm_client_tasks_default_ttl’ field.
- validator parse_plugin_max_data_results » plugin_max_data_results[source]
Validates the ‘plugin_max_data_results’ field.
- validator parse_sensitive_files_amnesty_patterns » sensitive_files_amnesty_patterns[source]
Validates the ‘sensitive_files_amnesty_patterns’ field.
- Return type:
- Parameters:
v (Optional[Union[List[str], str]]) – the sensitive_files_amnesty_patterns value to validate
- Returns:
The validated sensitive_files_amnesty_patterns.
- Return type:
List[Pattern]
Examples
>>> parse_sensitive_files_amnesty_patterns([r"^/api(/.*)?$", r"^/admin(/.*)?$"]) [re.compile('^/api(/.*)?$'), re.compile('^/admin(/.*)?$')]
- validator validate_anthropic_api_key » anthropic_api_key[source]
Validates the anthropic_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Anthropic API key value to validate.
- Returns:
The validated Anthropic API key.
- Return type:
SecretStr
- validator validate_aws_access_key_id » aws_access_key_id[source]
Validates the aws_access_key_id field.
Uses settings_defaults if no value is received.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The AWS access key ID value to validate.
values (ValidationInfo) – The validation info containing other field values.
- Returns:
The validated AWS access key ID.
- Return type:
SecretStr
- validator validate_aws_db_instance_identifier » aws_db_instance_identifier[source]
Validates the aws_db_instance_identifier field.
- validator validate_aws_eks_cluster_name » aws_eks_cluster_name[source]
Validates the aws_eks_cluster_name field.
- validator validate_aws_profile » aws_profile[source]
Validates the aws_profile field.
Uses settings_defaults if no value is received.
- validator validate_aws_region » aws_region[source]
Validates the aws_region field.
Uses settings_defaults if no value is received.
- validator validate_aws_secret_access_key » aws_secret_access_key[source]
Validates the aws_secret_access_key field.
Uses settings_defaults if no value is received.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The AWS secret access key value to validate.
values (ValidationInfo) – The validation info containing other field values.
- Returns:
The validated AWS secret access key.
- Return type:
SecretStr
- validator validate_branding_address » branding_address1[source]
Validates the branding_address1 field.
- validator validate_branding_address2 » branding_address2[source]
Validates the branding_address2 field.
- validator validate_branding_contact_url » branding_contact_url[source]
Validates the branding_contact_url field.
- Return type:
Optional[HttpUrl]- Parameters:
v (Optional[HttpUrl]) – The branding contact URL value to validate.
- Returns:
The validated branding contact URL.
- Return type:
Optional[HttpUrl]
- validator validate_branding_corporate_name » branding_corporate_name[source]
Validates the branding_corporate_name field.
- validator validate_branding_country » branding_country[source]
Validates the branding_country field.
- validator validate_branding_currency » branding_currency[source]
Validates the branding_currency field.
- validator validate_branding_postal_code » branding_postal_code[source]
Validates the branding_postal_code field.
- validator validate_branding_support_email » branding_support_email[source]
Validates the branding_support_email field.
- Return type:
EmailStr- Parameters:
v (Optional[EmailStr]) – The branding support email value to validate.
- Returns:
The validated branding support email.
- Return type:
EmailStr
- validator validate_branding_support_hours » branding_support_hours[source]
Validates the branding_support_hours field.
- validator validate_branding_support_phone_number » branding_support_phone_number[source]
Validates the branding_support_phone_number field.
- validator validate_branding_timezone » branding_timezone[source]
Validates the branding_timezone field.
- validator validate_branding_url_facebook » branding_url_facebook[source]
Validates the branding_url_facebook field.
- Return type:
Optional[HttpUrl]- Parameters:
v (Optional[HttpUrl]) – The branding URL Facebook value to validate.
- Returns:
The validated branding URL Facebook.
- Return type:
Optional[HttpUrl]
- validator validate_branding_url_linkedin » branding_url_linkedin[source]
Validates the branding_url_linkedin field.
- Return type:
Optional[HttpUrl]- Parameters:
v (Optional[HttpUrl]) – The branding URL LinkedIn value to validate.
- Returns:
The validated branding URL LinkedIn.
- Return type:
Optional[HttpUrl]
- validator validate_branding_url_twitter » branding_url_twitter[source]
Validates the branding_url_twitter field.
- Return type:
Optional[HttpUrl]- Parameters:
v (Optional[HttpUrl]) – The branding URL Twitter value to validate.
- Returns:
The validated branding URL Twitter.
- Return type:
Optional[HttpUrl]
- validator validate_email_admin » email_admin[source]
Validates the email_admin field.
- Return type:
EmailStr- Parameters:
v (Optional[EmailStr]) – The administrator email address value to validate.
- Returns:
The validated administrator email address.
- Return type:
EmailStr
- validator validate_fernet_encryption_key » fernet_encryption_key[source]
Validates the fernet_encryption_key field.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The Fernet encryption key value to validate.
- Raises:
ValueError – If the Fernet encryption key is invalid.
SmarterValueError – If the Fernet encryption key is not found.
- Returns:
The validated Fernet encryption key.
- Return type:
Optional[str]
- validator validate_gemini_api_key » gemini_api_key[source]
Validates the gemini_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Gemini API key value to validate.
- Returns:
The validated Gemini API key.
- Return type:
SecretStr
- validator validate_google_maps_api_key » google_maps_api_key[source]
Validates the google_maps_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Google Maps API key value to validate.
- Returns:
The validated Google Maps API key.
- Return type:
SecretStr
- validator validate_google_service_account » google_service_account[source]
Validates the google_service_account field.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The Google service account value to validate.
- Returns:
The validated Google service account.
- Return type:
SecretStr
- validator validate_internal_ip_prefixes » internal_ip_prefixes[source]
Validates the internal_ip_prefixes field.
- validator validate_langchain_memory_key » langchain_memory_key[source]
Validates the langchain_memory_key field.
- validator validate_llama_api_key » llama_api_key[source]
Validates the llama_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Llama API key value to validate.
- Returns:
The validated Llama API key.
- Return type:
SecretStr
- validator validate_llm_client_tasks_celery_task_queue » llm_client_tasks_celery_task_queue[source]
Validates the llm_client_tasks_celery_task_queue field.
- validator validate_llm_default_model » llm_default_model[source]
Validates the llm_default_model field.
- validator validate_llm_default_provider » llm_default_provider[source]
Validates the llm_default_provider field.
- validator validate_llm_default_system_role » llm_default_system_role[source]
Validates the llm_default_system_role field.
- validator validate_logo » logo[source]
Validates the logo field.
- Return type:
AnyUrl- Parameters:
v (Optional[AnyUrl]) – The logo value to validate.
- Returns:
The validated logo.
- Return type:
HttpUrl
- validator validate_mailchimp_api_key » mailchimp_api_key[source]
Validates the mailchimp_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Mailchimp API key value to validate.
- Returns:
The validated Mailchimp API key.
- Return type:
SecretStr
- validator validate_mailchimp_list_id » mailchimp_list_id[source]
Validates the mailchimp_list_id field.
- validator validate_marketing_site_url » marketing_site_url[source]
Validates the marketing_site_url field.
- Return type:
HttpUrl- Parameters:
v (Optional[HttpUrl]) – The marketing site URL value to validate.
- Returns:
The validated marketing site URL.
- Return type:
HttpUrl
- validator validate_openai_api_key » openai_api_key[source]
Validates the openai_api_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The OpenAI API key value to validate.
- Returns:
The validated OpenAI API key.
- Return type:
SecretStr
- validator validate_openai_api_organization » openai_api_organization[source]
Validates the openai_api_organization field.
- validator validate_openai_default_max_completion_tokens » llm_default_max_tokens[source]
Validates the llm_default_max_tokens field.
- validator validate_openai_default_temperature » llm_default_temperature[source]
Validates the llm_default_temperature field.
- validator validate_openai_endpoint_image_n » openai_endpoint_image_n[source]
Validates the openai_endpoint_image_n field.
- validator validate_openai_endpoint_image_size » openai_endpoint_image_size[source]
Validates the openai_endpoint_image_size field.
- validator validate_pinecone_api_key » pinecone_api_key[source]
Validates the pinecone_api_key field.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The Pinecone API key value to validate.
- Returns:
The validated Pinecone API key.
- Return type:
SecretStr
- validator validate_root_domain » root_domain[source]
Validates the root_domain field.
If the value is not set, returns the default root domain.
- validator validate_secret_key » secret_key[source]
Validates the secret_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The secret key value to validate.
- Returns:
The validated secret key.
- Return type:
SecretStr
Validates the shared_resource_identifier field.
Uses settings_defaults if no value is received.
- validator validate_smarter_reactjs_app_loader_path » smarter_reactjs_app_loader_path[source]
Validates the smarter_reactjs_app_loader_path field.
Needs to start with a slash (/) and end with ‘.js’. The final string value should be url friendly. example: /ui-prompt/app-loader.js
- validator validate_smtp_password » smtp_password[source]
Validates the smtp_password field.
- Return type:
Optional[SecretStr]- Parameters:
v (Optional[SecretStr]) – The SMTP password to validate.
- Returns:
The validated SMTP password.
- Return type:
Optional[SecretStr]
- validator validate_social_auth_github_key » social_auth_github_key[source]
Validates the social_auth_github_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The GitHub OAuth2 key value to validate.
- Returns:
The validated GitHub OAuth2 key.
- Return type:
SecretStr
- validator validate_social_auth_github_secret » social_auth_github_secret[source]
Validates the social_auth_github_secret field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The GitHub OAuth2 secret value to validate.
- Returns:
The validated GitHub OAuth2 secret.
- Return type:
SecretStr
- validator validate_social_auth_google_oauth2_key » social_auth_google_oauth2_key[source]
Validates the social_auth_google_oauth2_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Google OAuth2 key value to validate.
- Returns:
The validated Google OAuth2 key.
- Return type:
SecretStr
- validator validate_social_auth_google_oauth2_secret » social_auth_google_oauth2_secret[source]
Validates the social_auth_google_oauth2_secret field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The Google OAuth2 secret value to validate.
- Returns:
The validated Google OAuth2 secret.
- Return type:
SecretStr
- validator validate_social_auth_linkedin_oauth2_key » social_auth_linkedin_oauth2_key[source]
Validates the social_auth_linkedin_oauth2_key field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The LinkedIn OAuth2 key value to validate.
- Returns:
The validated LinkedIn OAuth2 key.
- Return type:
SecretStr
- validator validate_social_auth_linkedin_oauth2_secret » social_auth_linkedin_oauth2_secret[source]
Validates the social_auth_linkedin_oauth2_secret field.
- Return type:
SecretStr- Parameters:
v (Optional[SecretStr]) – The LinkedIn OAuth2 secret value to validate.
- Returns:
The validated LinkedIn OAuth2 secret.
- Return type:
SecretStr