Tenant identity
Tenant
hvac-automations
Vertical / lifecycle
hvac_startup
onboarding
AWS account
453983326561
us-west-2 · isolation absolute
Origins
https://os.hvacautomations.projectlunar.ai
https://hvacautomations.ca
Identity is server-derived from committed manifests (config/tenants/hvac-automations/) — never from request input. To change branding or labels, edit brand.json and redeploy the artifact; there is deliberately no web form for it.
Integrations — honest gates
| Integration | Backing env | Status |
|---|---|---|
| Primary LLM (Apollo route candidate 1) model gpt-4o |
HVAC_LLM_API_KEYHVAC_LLM_BASE_URLHVAC_LLM_MODEL |
configured |
| Secondary LLM (Apollo fallback candidate) vault secret llm-openai-compatible-backup not provisioned |
HVAC_LLM2_API_KEYHVAC_LLM2_BASE_URLHVAC_LLM2_MODEL |
gated / dark |
| Voice & Chat → assistant adapter loopback derived shared secret set by bin/start.js when the primary LLM secret exists |
HVAC_ASSISTANT_API_KEYHVAC_ASSISTANT_API_URL |
configured |
| Zoho CRM (lead sync + email automation) GATED: needs the complete Zoho OAuth set (client_id + client_secret + refresh_token) in vault hvac-automations/zoho-oauth |
HVAC_ZOHO_CRM_TOKEN |
gated / dark |
| Signed webhook ingress (website leads + call center) HMAC ingress armed |
HVAC_WEBHOOK_SIGNING_SECRET |
configured |
| Outbound voice dialing HELD: live dialing additionally requires CASL/CRTC sign-off on file + supervised canary — never autonomous |
HVAC_VOICE_PROVIDER_TOKEN |
gated / dark |
Secrets live only in AWS Secrets Manager (hvac-automations/*), fetched by the instance role at boot. Nothing here displays or accepts a secret value. A gated capability returns an honest 503 — never a faked success.
Dependency contract (health truth)
| Dependency | Kind | Class | Env var | Status |
|---|---|---|---|---|
| database Tenant Postgres — opportunity capture and revenue pipeline store |
postgres |
required | HVAC_DATABASE_URL |
up |
| cache Tenant Redis — session and rate-limit state for Airtight Workflows |
redis |
required | HVAC_REDIS_URL |
up |
| crm Zoho CRM OAuth (HVAC org) — opportunity sync + email automation, optional until onboarding completes |
zoho-crm |
optional | HVAC_ZOHO_CRM_TOKEN |
not configured |
| assistant Assistant backend (tenant Hermes/openclaw or LLM key) — powers real chat/voice replies. Unset => chat persists history but returns clearly-labelled synthetic replies (sandbox) |
llm-agent |
optional | HVAC_ASSISTANT_API_KEY |
up |
| voice Telephony/voice provider token — powers live AI voice calls. Gated: no live call is placed until set AND legal sign-off is recorded |
telephony |
optional | HVAC_VOICE_PROVIDER_TOKEN |
not configured |
| webhook_ingress Shared secret for verifying signed inbound call-center webhooks. Unset => ingress rejects all signed traffic (dark) |
hmac-secret |
optional | HVAC_WEBHOOK_SIGNING_SECRET |
up |
| llm_primary Primary OpenAI-compatible LLM (vault llm-openai-compatible) — Apollo route candidate 1. Unset => Apollo tasks return honest 503 |
llm-provider |
optional | HVAC_LLM_API_KEY |
up |
| llm_secondary Secondary OpenAI-compatible LLM (vault llm-openai-compatible-backup) — Apollo fallback candidate. Optional resilience provider |
llm-provider |
optional | HVAC_LLM2_API_KEY |
not configured |
Theme tokens (from brand.json — the single theming source)
| Token | Value |
|---|---|
--color-bg |
#0f172a |
--color-bg-elevated |
#1d2538 |
--color-bg-overlay |
#2b3346 |
--color-border |
#31394c |
--color-fg |
#ffffff |
--color-fg-muted |
#b9b9b9 |
--color-action |
#ea580c |
--color-action-fg |
#000000 |
--color-secondary |
#2563eb |
--color-secondary-fg |
#ffffff |