Docs

Terraform Installation

This guide covers deploying OneByZero Neo on enterprise AWS accounts using Terraform and Helm for infrastructure provisioning and application deployment.

Overview

OneByZero Neo is a modular AI platform supporting Chatbot, Voice Bot, and Agentic Flow agents. The system runs in a multi-zone Amazon EKS cluster for high availability and uses GitOps (ArgoCD) for continuous deployment.

The platform integrates with:

  • Amazon RDS PostgreSQL - Primary relational database
  • Amazon OpenSearch - Vector storage and semantic search
  • ClickHouse - Time-series analytics database
  • Amazon S3 - Object storage for documents and models

Infrastructure as a Service Deployment

OneByZero Neo follows an Infrastructure as a Service (IaaS) deployment model on AWS, where the complete platform is deployed within the enterprise’s own AWS account. This approach provides:

Data Sovereignty : All data remains within the enterprise’s AWS account and VPC. No data is transmitted to external systems, ensuring compliance with data residency requirements.

Network Isolation : The platform operates within private subnets with configurable security groups and network ACLs. External access is controlled through AWS Application Load Balancer with SSL termination.

IAM Integration : Services authenticate to AWS resources using IAM Roles for Service Accounts (IRSA), eliminating the need for long-lived credentials.

Resource Control : Enterprises maintain full control over compute resources, scaling policies, and cost management through AWS native tools.

Deployment Architecture

OneByZero Neo AWS Deployment Architecture

OneByZero Neo deployment architecture showing the Enterprise AWS Account with VPC, EKS cluster node pools, and AWS managed services.

Prerequisites

Infrastructure Requirements

  • Amazon EKS cluster (v1.24+)

  • Node groups with appropriate taints and labels:

    • app-node pool for application workloads
    • studiops-node pool for Langfuse/ClickHouse
  • AWS Application Load Balancer Controller

  • External DNS Controller

  • Amazon RDS PostgreSQL instance

  • Amazon OpenSearch cluster

  • AWS S3 buckets for data storage

  • AWS SQS queues for message processing

Required AWS Resources

RDS Database : PostgreSQL instance for application data persistence.

OpenSearch Domain : Managed OpenSearch cluster for vector storage and semantic search.

S3 Buckets

  • Data ingestion bucket
  • StudioOps bucket
  • StudioOps datasets bucket
  • Bedrock knowledge base data ingestion bucket
  • Supplemental storage bucket
  • Voice schedule bucket
  • Bedrock evaluators bucket

SQS Queues

  • KPI events queue
  • Voice calls queue

Security Requirements

  • IAM Role for EKS IRSA (IAM Roles for Service Accounts)
  • SSL Certificate from AWS Certificate Manager (ACM)
  • Application Load Balancer for ingress traffic

Password Generation Guidelines

Database passwords (RDS PostgreSQL, Redis, ClickHouse) should use URL-safe characters to prevent connection string parsing issues.

Safe Characters (No Encoding Required)

A-Z  a-z  0-9  _  -  .  ~

Characters to Avoid

@  :  /  ?  #  &  =  %  +  (space)  ;  "  '  <  >  \  ^  `  {  }  [  ]

If special characters must be used, URL-encode the password before storing:

python3 -c "import urllib.parse; print(urllib.parse.quote_plus('your-password'))"

Keys Generation

Generate required encryption keys and secrets before deployment:

ServiceVariableGeneration Command
LangfuseSALTopenssl rand -base64 32
LangfuseENCRYPTION_KEYopenssl rand -hex 32
LangfuseLANGFUSE_KEYopenssl rand -base64 32
LangfuseNEXTAUTH_SECRETopenssl rand -base64 32
Agentic FlowDEFAULT_SUPERUSER_PASSWORDopenssl rand -base64 32
Agentic FlowLANGFLOW_SECRET_KEYopenssl rand -base64 32
Bot BuilderENCRYPTION_SECRETopenssl rand -base64 24
Bot BuilderJWT_SIGNING_KEY_IDopenssl rand -base64 24
Knowledge BasePE_PASSPHRASEopenssl rand -base64 43

JWT Key Pair Generation

# Generate private key
openssl genpkey -algorithm RSA -out private_key.pem

# Generate public key from private key
openssl rsa -pubout -in private_key.pem -out public_key.pem

Helm Deployment Process

Pre-deployment Validation

# Verify cluster connectivity
kubectl cluster-info

# Check node readiness
kubectl get nodes

# Verify required namespaces
kubectl create namespace <NAMESPACE> --dry-run=client -o yaml | kubectl apply -f -

# Validate AWS Load Balancer Controller
kubectl get deployment -n kube-system aws-load-balancer-controller

Deploy Infrastructure Services

Deploy infrastructure services first as they are dependencies for application services.

Voice Redis

helm upgrade --install voice-redis ./voice_redis \
  --namespace <NAMESPACE> \
  --create-namespace \
  --wait \
  --timeout 10m

Langfuse (StudioOps)

helm upgrade --install langfuse ./langfuse \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 15m

Hulaho (Analytics Dashboard)

helm upgrade --install hulaho ./hulaho \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 15m

Deploy Core Application Services

Deploy services in dependency order:

# EKS Jobs Managing Service (required by Knowledge Base)
helm upgrade --install eks-jobs-managing ./eks_jobs_managing_service \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Knowledge Base Service
helm upgrade --install knowledge-base ./knowledge_base \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Agentic Flow Service
helm upgrade --install agentic-flow ./agentic_flow \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Bot Builder Services
helm upgrade --install botbuilder ./botbuilder \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# KPI Events Polling Service
helm upgrade --install kpi-events-polling ./kpi_events_polling_service \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Threads Service
helm upgrade --install threads-service ./threads_service \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

Deploy Voice Services

# Voice Backend
helm upgrade --install voice-backend ./voice_backend \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Voice Agent
helm upgrade --install voice-agent ./voice_agent \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

# Voice Scheduler
helm upgrade --install voice-scheduler ./voice_scheduler \
  --namespace <NAMESPACE> \
  --wait \
  --timeout 10m

Verification

# Check all deployments
kubectl get deployments -n <NAMESPACE>

# Check all services
kubectl get services -n <NAMESPACE>

# Check ingress resources
kubectl get ingress -n <NAMESPACE>

# Check pod status
kubectl get pods -n <NAMESPACE>

# View logs for troubleshooting
kubectl logs -f deployment/<service-name> -n <NAMESPACE>

Upgrade and Rollback

Upgrade Process

helm upgrade <release-name> ./<chart-directory> \
  --namespace <NAMESPACE> \
  --reuse-values \
  --wait \
  --timeout 10m

Rollback Process

# List release history
helm history <release-name> --namespace <NAMESPACE>

# Rollback to previous version
helm rollback <release-name> --namespace <NAMESPACE>

# Rollback to specific revision
helm rollback <release-name> <revision-number> --namespace <NAMESPACE>

Service Configuration Reference

This section documents all required environment variables for each microservice. Variables not listed are considered optional and use default values.

Note

All secrets should be stored in HashiCorp Vault or Kubernetes Secrets and mapped to deployments using the VaultStaticSecrets CRD or native Kubernetes secret references.

Agentic Flow Service

AI workflow orchestration and LangFlow integration service that manages AI workflows and provides API endpoints for conversational AI applications.

Network & Application Configuration

VariableDescription
ADDITIONAL_CORS_ORIGINSComma-separated list of allowed CORS origin domains
HOSTApplication bind address for container networking
APPLICATION_PORTPort number for the application server

Database Configuration

VariableDescription
LANGFLOW_DATABASE_URLPostgreSQL connection string for workflow persistence
LANGFLOW_SCHEMA_NAMESDatabase schemas used by LangFlow for multi-tenant data organization

Logging & Monitoring

VariableDescription
LANGFLOW_LOG_LEVELApplication logging verbosity level
STUDIOTELEMETRY_COLLECTOR_ENDPOINTOpenTelemetry metrics collection endpoint
STUDIOTELEMETRY_COLLECTOR_AUTH_TOKENAuthentication token for telemetry data submission

API Integration

VariableDescription
GUARDRAIL_API_BASE_URLAPI endpoint for content guardrails and safety checks

Feature Flags

VariableDescription
SHOULD_ALLOW_CUSTOM_COMPONENT_CREATIONAllows builders to create and edit custom component code in the flow editor. Default: false — requests to save custom component code are refused

OpenSearch Configuration

VariableDescription
INHOUSE_OPENSEARCH_HOSTOpenSearch cluster endpoint for vector storage
INHOUSE_OPENSEARCH_USERNAMEOpenSearch authentication username
INHOUSE_OPENSEARCH_PASSWORDOpenSearch authentication password

AWS Bedrock Knowledge Base Configuration

VariableDescription
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_HOSTBedrock knowledge base OpenSearch endpoint
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_USERNAMEBedrock knowledge base OpenSearch username
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_PASSWORDBedrock knowledge base OpenSearch password

Resource Requirements

  • CPU: 1000m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /health_check

Dependencies: PostgreSQL, OpenSearch, AWS Bedrock, StudioOps telemetry service

Bot Builder Service

Conversational bot creation and management platform with separate builder and viewer components for designing and running chatbots.

Builder Component - Application Configuration

VariableDescription
APPLICATION_HOSTNAMEApplication bind address
APPLICATION_PORTApplication server port
BASE_URL_FROM_ENVBase URL for the builder application

Authentication & Security

VariableDescription
AZURE_AD_CLIENT_IDAzure Active Directory application client ID
AZURE_AD_CLIENT_SECRETAzure AD application secret
AZURE_AD_TENANT_IDAzure AD tenant identifier
NEXTAUTH_URLNextAuth authentication service URL
JWT_SIGNING_KEY_IDJWT token signing key identifier
JWT_EXPIRATION_IN_HOURSJWT token expiration time in hours
ENCRYPTION_SECRETData encryption secret key
JWT_PRIVATE_KEY_PATHPath to JWT private key PEM file (mounted from secrets)
JWT_PUBLIC_KEY_PATHPath to JWT public key PEM file (mounted from secrets)

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for bot configurations

Bot Behavior Configuration

VariableDescription
BUILDER_ALLOWED_ORIGINSCORS allowed origins for development
BUTTON_CHOICE_INTERRUPTIONEnable button choice interruption in conversations
FILE_INPUT_INTERRUPTIONEnable file input interruption handling
PICTURE_CHOICE_INTERRUPTIONEnable picture choice interruption handling
CHAT_HISTORY_LIMITMaximum number of chat history entries to retain

External Service Integration

VariableDescription
NEXT_PUBLIC_GOOGLE_API_KEYGoogle Maps/Services API key

Organization & User Management

VariableDescription
ORGANIZATION_SETUP_AUTH_TOKENOrganization setup authentication token (must match LANGFUSE_KEY)
ORGANIZATION_SETUP_EMAILDefault organization setup email
DEFAULT_WORKSPACE_PLANDefault workspace plan for new users
ADMIN_EMAILSystem administrator email address
SEED_DATAWhether to seed initial data on startup

Session Management

VariableDescription
NEXT_PUBLIC_SESSION_EXPIRY_TIMEOUT_IN_HOURSSession timeout in hours for security

Metrics & Analytics

VariableDescription
METRICS_API_URLMetrics collection API endpoint
METRICS_API_AUTH_TOKENAuthentication token for metrics API
HULAHO_API_BASE_URLHulaho (Superset) analytics endpoint
HULAHO_ADMIN_PASSWORDHulaho user authentication password

AWS S3 Configuration

VariableDescription
S3_ENDPOINTS3 service endpoint
S3_BUCKETPrimary S3 bucket for file storage
S3_REGIONAWS region for S3 operations
IS_IRSA_REQUIREDEnable IAM Roles for Service Accounts
DATASET_S3_BUCKETS3 bucket for dataset storage
DATASET_S3_REGIONAWS region for dataset bucket
DATASET_S3_FORCE_PATH_STYLEForce path-style S3 URLs

Service Integration URLs

VariableDescription
NEXT_PUBLIC_VIEWER_URLBot viewer application URL
NEXT_PUBLIC_VOICE_AGENT_BACKEND_SERVICE_BASE_URLVoice backend service URL
NEXT_PUBLIC_VOICE_AGENT_BACKEND_WS_URLVoice backend WebSocket URL
NEXT_PUBLIC_AGENTIC_FLOW_URLAgentic flow service URL
NEXT_PUBLIC_KNOWLEDGE_BASE_URLKnowledge base service URL
NEXT_PUBLIC_DATASET_BASE_URLDataset management URL
CHANNEL_EVENT_GATEWAY_PUBLIC_URLPublic base URL of the Channel Event Gateway (e.g. https://gateway.example.com). Used to build the webhook URLs shown when you create channels for Agentic Flow agents and Coworkers. If unset, no webhook URL is shown

Analytics Dashboard Integration

VariableDescription
NEXT_PUBLIC_HULAHO_BASE_URLAnalytics dashboard base URL
NEXT_PUBLIC_HULAHO_VOICE_DASHBOARD_IDVoice analytics dashboard identifier
NEXT_PUBLIC_HULAHO_CHAT_DASHBOARD_IDChat analytics dashboard identifier
NEXT_PUBLIC_HULAHO_FLOW_DASHBOARD_IDFlow analytics dashboard identifier

Feature Flags

VariableDescription
NEXT_PUBLIC_IS_VOICE_FEATURE_ENABLEDEnable voice bot features
NEXT_PUBLIC_IS_CHAT_FEATURE_ENABLEDEnable chat bot features
NEXT_PUBLIC_IS_FLOW_FEATURE_ENABLEDEnable flow-based bot features
NEXT_PUBLIC_DEMO_MODEEnable demo mode features
FF_GUARDRAIL_MODEGuardrail mode: proxy (default) or direct. NeMo guardrails require direct
FF_NEMO_GUARDRAILS_ENABLEDEnables NeMo guardrails on the server. Default: false
NEXT_PUBLIC_FF_NEMO_GUARDRAILS_ENABLEDShows the NeMo tab on the Guardrails page. Default: false

Webhook Configuration

VariableDescription
WEBHOOK_TASK_EXPIRATION_MINUTESWebhook task timeout in minutes

Branding

VariableDescription
NEXT_PUBLIC_COPYWRITE_NAMECopyright notice text
NEXT_PUBLIC_AWS_MODEL_REGIONAWS region for AI model access

Viewer Component - Additional Configuration

VariableDescription
AWS_SQS_QUEUE_URLSQS queue URL for KPI events
AWS_SQS_QUEUE_REGIONAWS region for SQS operations
LLM_HOST_URLSLarge Language Model service endpoints
DATASET_S3_ENDPOINTS3 endpoint for dataset operations

Resource Requirements (Viewer)

  • CPU: 1200m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Autoscaling (Viewer)

  • Min Replicas: 1
  • Max Replicas: 2
  • Target CPU Utilization: 80%

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Dependencies: PostgreSQL, S3, Azure AD, Voice services, Agentic Flow, Knowledge Base

Channel Event Gateway Service

Receives incoming webhook requests from channels and passes them to the right agent.

Google Chat

VariableDescription
GOOGLE_CHAT_PROJECT_NUMBERGoogle Cloud project number of the Google Chat app. Incoming Google Chat requests are accepted only when their token matches this number; if unset, every Google Chat message is rejected
GOOGLE_CHAT_API_BASE_URLBase URL of the Google Chat API used to send replies. Default: https://chat.googleapis.com

Knowledge Base Service

Document ingestion, processing, and retrieval service that manages knowledge bases, handles document uploads, and provides semantic search capabilities.

Application Configuration

VariableDescription
APPLICATION_NAMEService identifier for logging and monitoring
PORTApplication server port
PE_PASSPHRASEPrivate encryption passphrase for sensitive data

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for metadata storage

Service Integration

VariableDescription
EKS_JOBS_MANAGING_SERVICE_BASE_URLEKS job orchestration service endpoint

AWS Configuration

VariableDescription
REGION_NAMEPrimary AWS region for all operations
DATA_INGESTION_ROLE_ARNIAM role ARN for data ingestion operations

S3 Storage Configuration

VariableDescription
SOURCE_FILES_S3_BUCKET_NAMES3 bucket for source document storage
SOURCE_FILES_S3_BUCKET_REGIONAWS region for source files bucket
MARKDOWN_FILES_S3_BUCKET_NAMES3 bucket for processed markdown files
MARKDOWN_FILES_S3_BUCKET_REGIONAWS region for markdown files bucket

OpenSearch Configuration

VariableDescription
OPENSEARCH_HOSTOpenSearch cluster endpoint for vector storage
OPENSEARCH_USERNAMEOpenSearch authentication username
OPENSEARCH_PASSWORDOpenSearch authentication password
OPENSEARCH_DOMAIN_ARNOpenSearch domain ARN
OPENSEARCH_AWS_REGIONAWS region for OpenSearch operations

Embedding Model Configuration

VariableDescription
EMBEDDING_MODEL_AWS_REGIONAWS region for embedding model
EMBEDDING_MODEL_IDAWS Bedrock embedding model identifier

Data Ingestion Service Configuration

VariableDescription
DATA_INGESTION_APPLICATION_NAMEData ingestion service identifier
DATA_INGESTION_S3_BUCKET_NAMES3 bucket for ingestion pipeline
DATA_INGESTION_JOB_CONTAINER_NAMEKubernetes job container name
DATA_INGESTION_JOB_NAMESPACEKubernetes namespace for ingestion jobs
DATA_INGESTION_JOB_COMMANDJob execution command
DATA_INGESTION_JOB_ECR_IMAGE_URIContainer image URI for ingestion jobs

AI Model Configuration

VariableDescription
DATA_INGESTION_ANTHROPIC_API_KEYAnthropic Claude API key (if using Anthropic directly)

AWS Bedrock Configuration

VariableDescription
DATA_INGESTION_AWS_BEDROCK_REGION_NAMEAWS region for Bedrock operations
DATA_INGESTION_AWS_BEDROCK_MODEL_NAMEBedrock model identifier
DATA_INGESTION_AWS_BEDROCK_MODEL_MAX_TOKENSMaximum tokens per request
DATA_INGESTION_AWS_BEDROCK_MODEL_TEMPERATUREModel temperature for response variability
DATA_INGESTION_AWS_BEDROCK_MODEL_TOP_PTop-p sampling parameter
DATA_INGESTION_AWS_BEDROCK_MODEL_TOP_KTop-k sampling parameter

Bedrock Knowledge Base Configuration

VariableDescription
BEDROCK_KNOWLEDGE_BASE_ROLE_ARNIAM role for Bedrock knowledge base access
BEDROCK_KNOWLEDGE_BASE_REGIONAWS region for Bedrock knowledge base
BEDROCK_KNOWLEDGE_BASE_EMBEDDING_MODEL_ARNEmbedding model ARN
BEDROCK_KNOWLEDGE_BASE_PARSING_MODEL_ARNDocument parsing model ARN
BEDROCK_KNOWLEDGE_BASE_SUPPLEMENTAL_S3_URISupplemental storage S3 URI
BEDROCK_KNOWLEDGE_BASE_DATA_SOURCE_S3_ARNData source S3 bucket ARN
BEDROCK_KNOWLEDGE_BASE_DATA_SOURCE_S3_OWNER_ACCOUNT_IDAWS account ID for S3 bucket ownership
BEDROCK_KNOWLEDGE_BASE_DATA_SOURCE_S3_BUCKET_NAMES3 bucket for Bedrock data source
BEDROCK_KNOWLEDGE_BASE_DATA_SOURCE_S3_BUCKET_REGIONAWS region for Bedrock data source bucket

Bedrock Knowledge Base OpenSearch Configuration

VariableDescription
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_HOSTOpenSearch endpoint for Bedrock KB
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_DOMAIN_ARNOpenSearch domain ARN for Bedrock KB
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_USERNAMEOpenSearch username for Bedrock KB
BEDROCK_KNOWLEDGE_BASE_OPENSEARCH_PASSWORDOpenSearch password for Bedrock KB

Resource Requirements

  • CPU: 1200m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /api/v1/health

Dependencies: OpenSearch, S3, AWS Bedrock, EKS Jobs Managing Service, PostgreSQL

Voice Agent Service

Real-time voice conversation handling service that manages voice calls, integrates with speech services, and provides conversational AI capabilities.

Agent Configuration

VariableDescription
AGENT_NAMEAI agent implementation type
APPLICATION_NAMEService identifier for logging and monitoring
BASE_URLBase URL for the voice agent service

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for conversation persistence

AWS Integration

VariableDescription
AWS_SQS_QUEUE_URLSQS queue URL for KPI events and analytics
AWS_REGION_NAMEAWS region for all AWS service operations

Azure OpenAI Configuration

VariableDescription
AZURE_OPENAI_API_KEYAzure OpenAI service API key
AZURE_OPENAI_API_VERSIONAzure OpenAI API version
AZURE_OPENAI_DEPLOYMENTAzure OpenAI deployment name
AZURE_OPENAI_ENDPOINTAzure OpenAI service endpoint
AZURE_OPENAI_MODEL_NAMEAzure OpenAI model identifier

Azure Speech Services Configuration

VariableDescription
AZURE_SPEECH_KEYAzure Speech Services API key
AZURE_SPEECH_REGIONAzure Speech Services region
AZURE_CANDIDATE_LANGUAGESSupported languages for speech recognition (comma-separated)

ElevenLabs Voice Synthesis Configuration

VariableDescription
ELEVENLABS_API_KEYElevenLabs API key for voice synthesis
ELEVENLABS_EXPERIMENTAL_STREAMINGEnable experimental streaming features
ELEVENLABS_EXPERIMENTAL_WEBSOCKETEnable WebSocket-based streaming
ELEVENLABS_MODEL_IDElevenLabs voice model identifier
ELEVENLABS_OPTIMIZE_STREAMING_LATENCYLatency optimization level (1-4)
ELEVENLABS_VOICE_IDSpecific voice ID for synthesis
ELEVENLABS_VOICE_SPEEDVoice playback speed multiplier
ELEVENLABS_VOICE_STYLEVoice style variation parameter

Twilio Telephony Configuration

VariableDescription
TWILIO_ACCOUNT_SIDTwilio account identifier
TWILIO_AUTH_TOKENTwilio authentication token
TWILIO_EDGETwilio edge location for optimal routing
TWILIO_REGIONTwilio region for service operations
FROM_PHONE_NUMBEROutbound caller ID phone number

Redis Configuration

VariableDescription
REDISHOSTRedis server hostname for session storage
REDISPORTRedis server port
REDISPASSWORDRedis authentication password
REDISDBRedis database number

Conversation Configuration

VariableDescription
ENABLE_FILLERSEnable/disable filler audio during processing delays
FILLER_AUDIO_PATHPath to filler audio files

Caching Configuration

VariableDescription
LANGCHAIN_CACHELangChain caching strategy for improved performance

Logging Configuration

VariableDescription
LOG_LEVELApplication logging verbosity level

Telemetry Configuration

VariableDescription
STUDIOTELEMETRY_COLLECTOR_ENDPOINTOpenTelemetry collector endpoint
STUDIOTELEMETRY_COLLECTOR_AUTH_TOKENAuthentication token for telemetry
STUDIOTELEMETRY_APP_NAMEApplication name for telemetry identification

Conversation Schema Configuration

VariableDescription
TRANSCRIPT_SUMMARY_SCHEMAJSON schema defining conversation summary structure

Resource Requirements

  • CPU: 250m (requests) / 500m (limits)
  • Memory: 512Mi (requests) / 3Gi (limits)

Autoscaling

  • Min Replicas: 1
  • Max Replicas: 1
  • Target CPU Utilization: 70%
  • Target Memory Utilization: 80%

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /

Dependencies: Redis, PostgreSQL, Azure OpenAI, Azure Speech, ElevenLabs, Twilio, SQS

Voice Backend Service

Voice call management and scheduling backend service that handles voice call orchestration, scheduling, and integration with telephony services.

AWS Integration

VariableDescription
AWS_SQS_QUEUE_URLSQS queue URL for voice call processing
AWS_REGION_NAMEAWS region for all AWS service operations

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for call data persistence

ElevenLabs Voice Configuration

VariableDescription
ELEVENLABS_API_KEYElevenLabs API key for voice synthesis
ELEVENLABS_EXPERIMENTAL_STREAMINGEnable experimental streaming features
ELEVENLABS_EXPERIMENTAL_WEBSOCKETEnable WebSocket-based streaming
ELEVENLABS_MODEL_IDElevenLabs voice model identifier
ELEVENLABS_OPTIMIZE_STREAMING_LATENCYLatency optimization level
ELEVENLABS_VOICE_IDSpecific voice ID for synthesis

Twilio Configuration

VariableDescription
TWILIO_ACCOUNT_SIDTwilio account identifier
TWILIO_AUTH_TOKENTwilio authentication token
TWILIO_EDGETwilio edge location for routing
TWILIO_REGIONTwilio region for operations
FROM_PHONE_NUMBEROutbound caller ID phone number

Azure OpenAI Configuration

VariableDescription
AZURE_API_KEYAzure OpenAI API key
AZURE_ENDPOINTAzure OpenAI endpoint

Analytics Integration

VariableDescription
HULAHO_API_BASE_URLAnalytics API endpoint
HULAHO_ADMIN_USERNAMEAnalytics platform admin username
HULAHO_ADMIN_PASSWORDAnalytics platform admin password

Scheduling Configuration

VariableDescription
SCHEDULE_BUCKET_NAMES3 bucket for call scheduling data
SCHEDULER_LAMBDA_DURATION_IN_MILLISLambda function timeout in milliseconds

Service Configuration

VariableDescription
ENABLE_CONTACT_POLICYEnable/disable contact policy enforcement
LOG_LEVELApplication logging verbosity
QUEUE_SERVICEMessage queue service type

Resource Requirements

  • CPU: 1000m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /health

Dependencies: SQS, S3, ElevenLabs, Twilio, PostgreSQL, Azure OpenAI

Voice Scheduler Service

Automated voice call scheduling and management service that handles call timing, contact policies, and queue management.

Application Configuration

VariableDescription
APPLICATION_NAMEService identifier for logging and monitoring

Scheduling Configuration

VariableDescription
ALLOWED_WEEKDAYSComma-separated list of allowed days for scheduling calls (0=Monday)
TIMEZONETimezone for scheduling operations
SUCCESSFUL_CALLS_ALLOWEDMaximum successful calls per contact
RETRIES_ALLOWEDMaximum retry attempts per call

Contact Policy Configuration

VariableDescription
ENABLE_CONTACT_POLICYEnable/disable contact policy enforcement
CONTACT_POLICY_ENABLEDGlobal contact policy toggle
GLOBAL_CONTACT_POLICY_START_TIME_IN_24_HOURS_FORMATDaily contact window start time
GLOBAL_CONTACT_POLICY_END_TIME_IN_24_HOURS_FORMATDaily contact window end time

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for scheduling data

Azure Service Bus Configuration

VariableDescription
AZURE_BUS_CONNECTION_STRINGAzure Service Bus connection string
AZURE_BUS_QUEUE_NAMEAzure Service Bus queue name

AWS SQS Configuration

VariableDescription
AWS_SQS_QUEUE_URLSQS queue URL for voice call processing
AWS_REGION_NAMEAWS region for SQS operations

Service Integration

VariableDescription
VOICE_SERVICE_BASE_URLVoice agent service internal URL
QUEUE_SERVICEPrimary queue service type (azure/aws)

Logging Configuration

VariableDescription
LOG_LEVELApplication logging verbosity level

Resource Requirements

  • CPU: 1000m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /health

Dependencies: Azure Service Bus, SQS, PostgreSQL, Voice Agent Service

KPI Events Polling Service

Analytics and metrics collection service that processes platform events and generates insights using AI models.

Application Configuration

VariableDescription
APPLICATION_NAMEService identifier
APPLICATION_VERSIONApplication version for tracking
RUNTIME_MODEService operation mode
PORTApplication server port

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for event storage

Queue Configuration

VariableDescription
QUEUE_SERVICEQueue service provider
KPI_EVENTS_SQS_QUEUE_NAMESQS queue name for KPI events
KPI_EVENTS_SQS_REGION_NAMEAWS region for KPI events queue
AWS_SQS_QUEUE_NAMEAWS SQS queue name
AWS_REGION_NAMEAWS region for operations

AWS Bedrock Model Configuration

VariableDescription
AWS_BEDROCK_MODEL_NAMEBedrock model identifier for event analysis
AWS_BEDROCK_MODEL_MAX_TOKENSMaximum tokens per request
AWS_BEDROCK_MODEL_TEMPERATUREModel temperature for deterministic responses
AWS_BEDROCK_MODEL_TOP_KTop-k sampling parameter
AWS_BEDROCK_MODEL_TOP_PTop-p sampling parameter

Telemetry Configuration

VariableDescription
STUDIOOPS_OTEL_ENDPOINTOpenTelemetry endpoint for metrics

Logging Configuration

VariableDescription
LOG_LEVELApplication logging verbosity level

Resource Requirements

  • CPU: 200m (requests) / 1290m (limits)
  • Memory: 512Mi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /api/v1/health

Dependencies: SQS, AWS Bedrock, PostgreSQL, StudioOps

EKS Jobs Managing Service

Kubernetes job orchestration and management service that handles batch processing and job lifecycle management.

Application Configuration

VariableDescription
APPLICATION_NAMEService identifier for logging and monitoring
PORTApplication server port

Resource Requirements: Default allocation

Node Placement: Default (no specific node selector configured)

Health Check: /api/v1/health

Dependencies: Kubernetes API, RBAC permissions for job management

Voice Redis Service

In-memory data store for voice services session management and caching.

Redis Configuration

ConfigurationDescription
ArchitectureDeployment architecture (standalone/cluster)
AuthenticationPassword authentication enabled
PasswordRedis authentication password
PersistenceData persistence configuration (disabled for performance)

Resource Requirements

  • CPU: 1200m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: Redis ping command

Dependencies: None (standalone service)

Langfuse (StudioOps) Service

LLM observability, analytics, and evaluation platform providing comprehensive monitoring and analysis of AI model performance.

Components

  • Web Interface: Dashboard and API endpoints
  • Worker: Background processing for analytics
  • ClickHouse: Time-series database for metrics storage
  • PostgreSQL: Metadata and configuration storage

Core Configuration

VariableDescription
LANGFUSE_KEYLangfuse API key for authentication
NEXTAUTH_URLNextAuth authentication URL
NEXT_PUBLIC_LANGFUSE_CLOUD_REGIONCloud region (empty for self-hosted)
NODE_OPTIONSNode.js memory optimization flags

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string
DIRECT_URLDirect database connection URL

ClickHouse Configuration

VariableDescription
CLICKHOUSE_MIGRATION_SSLSSL for ClickHouse migrations
CLICKHOUSE_CLUSTER_ENABLEDCluster deployment mode
LANGFUSE_AUTO_CLICKHOUSE_MIGRATION_DISABLEDAutomatic migration toggle
LANGFUSE_CLICKHOUSE_ENABLEDClickHouse integration toggle
CLICKHOUSE_DBClickHouse database name

Feature Flags

VariableDescription
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURESEnable experimental features
LANGFUSE_ENABLE_BACKGROUND_MIGRATIONSEnable background database migrations

AWS S3 Dataset Configuration

VariableDescription
LANGFUSE_S3_DATASET_UPLOAD_BUCKETS3 bucket for dataset uploads
LANGFUSE_S3_DATASET_UPLOAD_PREFIXS3 prefix for dataset files
LANGFUSE_S3_DATASET_UPLOAD_REGIONAWS region for S3 operations
LANGFUSE_S3_DATASET_UPLOAD_ENDPOINTS3 endpoint URL
LANGFUSE_S3_DATASET_UPLOAD_FORCE_PATH_STYLEForce path-style S3 URLs
AWS_REGIONAWS region for all operations

Bedrock Evaluation Configuration

VariableDescription
EKS_JOB_MANAGING_SERVICE_TRIGGER_URLEKS job trigger endpoint
EKS_TRANSFORM_JOB_NAMETransformation job name
BEDROCK_EVALATION_DATA_TRANSFORMATION_ECR_IMAGE_REPO_URIContainer image for evaluation
CHATTEROPS_BASE_URLChatterOps integration URL
BEDROCK_EVALUATION_DATA_TRANSFORMATION_S3_BUCKET_NAMES3 bucket for evaluation data
DATA_TRANSFORMATION_EKS_CLUSTER_AWS_REGION_NAMEAWS region for EKS operations
BEDROCK_EVALUATION_DATA_TRANSFORMATION_JOB_CONTAINER_TYPEContainer type for evaluation jobs
BEDROCK_EVALUATION_DATA_TRANSFORMATION_JOB_EXECUTION_COMMANDJob execution command
BEDROCK_EVALUATION_EKS_JOB_NAMESPACEKubernetes namespace for evaluation jobs
STUDIOOPS_DATABASE_URLStudioOps database connection

AWS Bedrock Evaluation Execution

VariableDescription
AWS_BEDROCK_ROLE_ARNIAM role for Bedrock evaluations
INHOUSE_EVALUATION_ECR_IMAGE_REPO_URIIn-house evaluation service image
INHOUSE_EVALUATION_EKS_JOB_NAMESPACENamespace for in-house evaluation jobs
INHOUSE_EVALUATION_JOB_NAMEIn-house evaluation job name

Resource Requirements: Default allocation with ClickHouse requiring dedicated resources

Node Placement

  • Node Selector: node-pool: studiops-node
  • Tolerations: workload=studiops:NoSchedule

Health Checks

  • Web: /api/public/health, /api/public/ready
  • Worker: Process-based health monitoring

Dependencies: PostgreSQL, ClickHouse, Redis, S3, AWS Bedrock, EKS Jobs Managing Service

Threads Service

Conversation thread management and persistence service that handles multi-turn conversations, thread state management, and conversation history storage.

Application Configuration

VariableDescription
APPLICATION_NAMEService identifier for logging and monitoring
APPLICATION_VERSIONApplication version for tracking and compatibility
HOSTApplication bind address for container networking
PORTApplication server port

Database Configuration

VariableDescription
DATABASE_URLPostgreSQL connection string for thread persistence

Service Integration

VariableDescription
FLOW_SERVICE_BASE_URLAgentic Flow service endpoint for workflow integration

Logging Configuration

VariableDescription
LOG_LEVELApplication logging verbosity level

Resource Requirements

  • CPU: 1000m (requests) / 1290m (limits)
  • Memory: 1Gi (requests) / 2Gi (limits)

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /api/v1/health

Dependencies: PostgreSQL, Agentic Flow Service

Hulaho Service

Business intelligence and analytics dashboard platform built on Apache Superset, providing comprehensive data visualization and reporting capabilities.

Components

  • Superset Node: Main web application and API server
  • Celery Worker: Background task processing for reports
  • Celery Beat: Scheduled job execution (optional)
  • Celery Flower: Celery monitoring UI (optional)
  • WebSocket Server: Real-time updates support (optional)

Application Configuration

VariableDescription
APP_NAMEApplication display name
WEB_PROXY_URLBase URL for the application
FAVICONSCustom favicon configuration (JSON array)
APP_ICONApplication logo path
LOGOUT_REDIRECT_URLPost-logout redirect destination

Database Configuration

VariableDescription
DB_USERPostgreSQL username
DB_PASSPostgreSQL password
DB_HOSTPostgreSQL host
DB_PORTPostgreSQL port
DB_NAMEPostgreSQL database name

Redis Configuration

VariableDescription
REDIS_HOSTRedis server hostname for caching and sessions
REDIS_PORTRedis server port
REDIS_PASSWORDRedis authentication password

Authentication Configuration

VariableDescription
AUTH_TYPEAuthentication method (e.g., AUTH_OAUTH)
AUTH_USER_REGISTRATIONAllow automatic user registration
AUTH_USER_REGISTRATION_ROLEDefault role for new users
OAUTH_USER_PASSWORDOAuth user default password

Azure AD OAuth Configuration

VariableDescription
OAUTH_PROVIDERSOAuth provider configuration (JSON object with Azure AD details)

Security Configuration

VariableDescription
TALISMAN_ENABLEDTalisman security headers toggle
ENABLE_CORSCross-Origin Resource Sharing toggle
HTTP_HEADERSCustom HTTP headers (JSON object)
WTF_CSRF_ENABLEDCSRF protection toggle
SESSION_COOKIE_SAMESITECookie SameSite policy
SESSION_COOKIE_SECURERequire HTTPS for cookies
ENABLE_PROXY_FIXProxy header processing toggle

Feature Flags

VariableDescription
THUMBNAILSDashboard thumbnails toggle
EMBEDDED_SUPERSETEmbedded dashboard capabilities toggle

Thumbnail Configuration

VariableDescription
THUMBNAIL_CACHE_CONFIGRedis-based thumbnail caching configuration
WEBDRIVER_BASEURLBase URL for screenshot generation
SCREENSHOT_SELENIUM_HEADSTARTSelenium startup delay in seconds

Resource Requirements

  • Superset Node: CPU 1000m, Memory 4096Mi
  • Celery Worker: CPU 1000m, Memory 4096Mi
  • Init Job: CPU 512m-1000m, Memory 1024Mi-4096Mi

Node Placement

  • Node Selector: node-pool: app-node
  • Tolerations: workload=app:NoSchedule

Health Check: /health

Dependencies: PostgreSQL, Redis, Azure AD OAuth

Initialization

  • Database Migration: Automatic database schema upgrades
  • Admin User Creation: Default admin user with configurable credentials
  • Role Initialization: Automatic role and permission setup

Best Practices

Security

  • Use IRSA (IAM Roles for Service Accounts) for AWS service access
  • Store sensitive data in Kubernetes secrets or HashiCorp Vault
  • Enable TLS for all external communications
  • Implement network policies for service isolation

Monitoring

  • Configure health checks for all services
  • Set up resource limits and requests
  • Monitor application logs through CloudWatch
  • Use StudioOps (Langfuse) for LLM observability

Scaling

  • Configure HPA for services with variable load
  • Use appropriate node selectors and tolerations
  • Monitor resource utilization and adjust limits
  • Consider cluster autoscaling for dynamic workloads

Maintenance

  • Regular backup of PostgreSQL databases
  • Monitor S3 storage costs and lifecycle policies
  • Keep container images updated with security patches
  • Test rollback procedures in staging environment

Troubleshooting

Common Issues

Pod Scheduling Issues

kubectl describe pod <pod-name> -n <namespace>
# Check node selectors, tolerations, and resource availability

Service Discovery Problems

kubectl get endpoints -n <namespace>
# Verify service endpoints are populated

Ingress Configuration

kubectl describe ingress -n <namespace>
# Check ALB controller logs and certificate status

Database Connectivity

kubectl exec -it <pod-name> -n <namespace> -- nc -zv <db-host> <db-port>
# Test database connectivity from pods

Log Analysis

# Application logs
kubectl logs -f deployment/<service-name> -n <namespace>

# Previous container logs (for crash analysis)
kubectl logs deployment/<service-name> -n <namespace> --previous

# Multiple container logs
kubectl logs -f deployment/<service-name> -c <container-name> -n <namespace>