Skip to main content

Deployment: hbf-core

Infrastructure config for this service. Full platform deployment: docs/architecture/deployment.md

Runtime

  • Port: 8080
  • Base image: maven:3.9.7-eclipse-temurin-21 (build), eclipse-temurin:21-jdk (runtime)
  • Start command: java -javaagent:/opt/elastic-apm-agent.jar -jar hbf-core.jar -Xms512m -Xmx1024m
  • Health check: Spring Actuator health probes enabled (management.endpoint.health.probes.enabled=true) at /actuator/health; custom endpoint at GET /{tenant}/health-check

Required Environment Variables

Database

VariableDefaultDescription
MONGODB_URLmongodb://localhost:27017/hbf?replicaSet=rs0MongoDB connection string

Redis / Cache

VariableDefaultDescription
REDIS_URLredis://localhost:6379Redis connection URL
REDIS_DATABASE0Redis database index
REDIS_SSL_ENABLEDfalseEnable TLS for Redis connection
REDIS_ENTRIES_TTL604800000NLU detection cache TTL in milliseconds (7 days)
CACHE_ENABLEDfalseEnable Redis-backed NLU detection cache
CACHE_INTERVAL_MILLIS60000In-memory monitor cache refresh interval

Security / Auth

VariableDefaultDescription
APP_SECURITY_API_DEPLOYMENT_TOKEN_SECRETAPISECRETSecret for signing API deployment tokens

Application

VariableDefaultDescription
APP_MODEDevelopment (local)Displayed in welcome message and Swagger UI
APP_URLhttp://localhost:8080Public URL of this service
USER_INACTIVE_DAYS30Days before an inactive user is flagged

Email (SMTP)

VariableDefaultDescription
EMAIL_HOSTlocalhostSMTP server hostname
EMAIL_USERNAMEusernameSMTP auth username
EMAIL_PASSWORDpasswordSMTP auth password
EMAIL_SMTP_PORT587SMTP port
EMAIL_SMTP_AUTHtrueEnable SMTP authentication
EMAIL_SMTP_TLStrueEnable STARTTLS
EMAIL_SMTP_TLS_REQUIREDtrueRequire STARTTLS
EMAIL_FROMsupport@helvia.aiSender address
EMAIL_FROM_NAMEHelvia SupportSender display name
EMAIL_SUPPORT_ADDRESSsupport@helvia.aiSupport reply-to address
EMAIL_SYSADMIN_ADDRESSsysadmin@helvia.ioSystem admin alert address
EMAIL_COMPANY_LOGO_URL(Cloudinary URL)Logo URL embedded in email templates
EMAIL_COMPANY_WEBSITE_URLhttps://helvia.ai/Company website link in emails
EMAIL_VERIFICATION_TOKEN_EXPIRATION_SECONDS10800Email verification token TTL (3 h)
FORGOT_PASSWORD_TOKEN_EXPIRATION_SECONDS900Password reset token TTL (15 min)

Console / Frontend URLs

VariableDefaultDescription
CONSOLE_BASE_URLhttps://console.helvia.ioBase URL of the management console
CONSOLE_EMAIL_VERIFICATION_PATH/email-verification/%sPath template for email verification links
CONSOLE_FORGOT_PASSWORD_PATH/forgot-password/%sPath template for password reset links
CONSOLE_USER_INVITATION_PATH/user-invitation/%sPath template for user invitation links
CONSOLE_ORGANIZATION_SINGLE_VIEW_PATH/org/{id}Path template for org deep-link

External Service URLs

VariableDefaultDescription
DIRECTLINE_BASEURLhttps://directline.botframework.com/v3/directlineAzure Bot Framework DirectLine base URL
DIRECTLINE_SECRETsecretDirectLine channel secret
AZURE_SPEECH_BASEURLhttps://westeurope.api.cognitive.microsoft.com/sts/v1.0/issueTokenAzure Speech token endpoint
AZURE_SPEECH_SECRETsecretAzure Speech subscription key
UPTIMEROBOT_BASEURLhttps://api.uptimerobot.com/v2/UptimeRobot API base URL
UPTIMEROBOT_APIKEYsecretUptimeRobot API key
UPTIMEROBOT_INTERVAL300Monitor check interval in seconds
UPTIMEROBOT_WEBHOOK_ALERT_CONTACT_ID(empty)UptimeRobot alert contact ID for webhooks
UPTIMEROBOT_ALERT_THRESHOLD0Alert threshold
UPTIMEROBOT_ALERT_RECURRENCE0Alert recurrence setting
CHATBOTS_BASEURLhttps://bot-v5.helvia.iohbf-bot base URL used for health checks
LIVECHAT_URLhttp://localhost:4000Livechat service URL
LIVECHAT_API_TOKENapi_tokenLivechat service API token
NOTIFICATION_URLhttp://localhost:2048Notification service URL
NOTIFICATION_API_TOKENapi_tokenNotification service API token
HELVIA_SDS_URLsem_doc_seg_urlSemantic Doc Segmenter service URL
HELVIA_SDS_API_KEYsecretSemantic Doc Segmenter API key
GPT_PIPELINE_TOKENgpt_pipeline_tokenHelvia GPT pipeline auth token
GPT_PIPELINE_URLgpt_pipeline_urlHelvia GPT pipeline URL
LANGUAGE_TOOL_URLlanguage_tool_urlLanguageTool service URL
AUTO_BOT_URLhttp://localhost:1357AutoBot service URL
AUTO_BOT_TOKENauto_bot_tokenAutoBot API token
AUTO_BOT_ENVdevelopmentAutoBot environment name
DATA_MANAGER_URLhttp://localhost:3000Data Manager service URL
DATA_MANAGER_TOKENapi_tokenData Manager API token

Microsoft OAuth / Bot Framework

VariableDefaultDescription
MICROSOFT_SECRETsecretMicrosoft app client secret
MICROSOFT_IDms_idMicrosoft app client ID

Google OAuth / Translate

VariableDefaultDescription
GOOGLE_SECRETsecretGoogle OAuth client secret
GOOGLE_IDgoogle_idGoogle OAuth client ID
GOOGLE_TOKENgoogle_tokenGoogle API token
GOOGLE_FOLDER_IDgoogle_folder_idGoogle Drive folder ID
GOOGLE_TRANSLATE_API_KEYapiKeyGoogle Translate API key
GOOGLE_TRANSLATE_ENABLEDfalseEnable Google Translate for NLU content

NLU / Azure AI

VariableDefaultDescription
LUIS_HOSThttps://luis.api.cognitive.microsoft.com/LUIS authoring API base URL
LUIS_AUTHORING_KEYauthoringKeyLUIS authoring key
APP_AZURE_API_URLapiUrlAzure AI API URL (language detection)
APP_AZURE_API_KEYapiKeyAzure AI API key
APP_AZURE_DETECTLANGUAGE_PROMPTpromptSystem prompt for language detection
APP_AZURE_DETECTLANGUAGE_DEPLOYMENTdeploymentAzure deployment name for language detection

Templates

VariableDefaultDescription
TEMPLATE_AGENT_IDagent_idDefault template agent ID

Docker

# Build
docker build -t hbf-core .

# Run (local dev)
docker compose up

docker-compose includes:

  • MongoDB: mongo:8.2.1 with replica set (rs0)
  • Redis: bitnami/redis

CI/CD

  • Trigger: push to main/staging/develop
  • Pipelines: ci.yml (deploy), tests.yml (PR tests with docker compose MongoDB)
  • Steps: SonarQube audit -> Docker build -> Push to ECR -> Deploy to EKS
  • Deploy target: AWS EKS (helvia-dev, helvia-stg, helvia)

Notes

  • Java/Kotlin Spring Boot application. Only service in the platform that uses MongoDB.
  • Elastic APM agent is bundled in the Docker image and attached via -javaagent at startup.
  • Has isolved-specific Kubernetes deployment manifests for dedicated client environments.
  • PR test pipeline spins up MongoDB via docker compose for integration tests.