From f5d80f20645e9d6a47d0539c20e12e719b1a5246 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Fri, 26 Jun 2026 14:39:19 -0700 Subject: [PATCH] chore: scope signals api to cloud config --- config/installation_config.yml | 6 ++++++ config/routes.rb | 2 +- .../enterprise/super_admin/app_configs_controller.rb | 8 ++++---- .../platform/api/v1/internal/accounts_controller.rb | 8 +++++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/config/installation_config.yml b/config/installation_config.yml index 673c6df4c..44691ecc3 100644 --- a/config/installation_config.yml +++ b/config/installation_config.yml @@ -265,6 +265,12 @@ display_title: 'Analytics Token' description: 'The Amplitude analytics API key for Chatwoot cloud' type: secret +- name: CHATWOOT_CLOUD_SIGNALS_API_TOKEN + value: + display_title: 'Signals API Token' + description: 'Internal API token for Signals to sync Chatwoot cloud attribution data' + locked: true + type: secret - name: CLEARBIT_API_KEY value: display_title: 'Clearbit API Key' diff --git a/config/routes.rb b/config/routes.rb index d5013fb6f..24b3c26e1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -555,7 +555,7 @@ Rails.application.routes.draw do end resources :email_channel_migrations, only: [:create] end - if ChatwootApp.enterprise? + if ChatwootApp.chatwoot_cloud? namespace :internal do resources :accounts, only: [:index] end diff --git a/enterprise/app/controllers/enterprise/super_admin/app_configs_controller.rb b/enterprise/app/controllers/enterprise/super_admin/app_configs_controller.rb index f91f12708..3a6e72931 100644 --- a/enterprise/app/controllers/enterprise/super_admin/app_configs_controller.rb +++ b/enterprise/app/controllers/enterprise/super_admin/app_configs_controller.rb @@ -34,10 +34,10 @@ module Enterprise::SuperAdmin::AppConfigsController end def internal_config_options - %w[CHATWOOT_INBOX_TOKEN CHATWOOT_INBOX_HMAC_KEY CLOUD_ANALYTICS_TOKEN CLEARBIT_API_KEY CONTEXT_DEV_API_KEY DASHBOARD_SCRIPTS - INACTIVE_WHATSAPP_NUMBERS SKIP_INCOMING_BCC_PROCESSING CAPTAIN_CLOUD_PLAN_LIMITS ACCOUNT_SECURITY_NOTIFICATION_WEBHOOK_URL - CHATWOOT_INSTANCE_ADMIN_EMAIL OG_IMAGE_CDN_URL OG_IMAGE_CLIENT_REF CLOUDFLARE_API_KEY CLOUDFLARE_ZONE_ID BLOCKED_EMAIL_DOMAINS - OTEL_PROVIDER LANGFUSE_PUBLIC_KEY LANGFUSE_SECRET_KEY LANGFUSE_BASE_URL] + %w[CHATWOOT_INBOX_TOKEN CHATWOOT_INBOX_HMAC_KEY CLOUD_ANALYTICS_TOKEN CHATWOOT_CLOUD_SIGNALS_API_TOKEN CLEARBIT_API_KEY + CONTEXT_DEV_API_KEY DASHBOARD_SCRIPTS INACTIVE_WHATSAPP_NUMBERS SKIP_INCOMING_BCC_PROCESSING CAPTAIN_CLOUD_PLAN_LIMITS + ACCOUNT_SECURITY_NOTIFICATION_WEBHOOK_URL CHATWOOT_INSTANCE_ADMIN_EMAIL OG_IMAGE_CDN_URL OG_IMAGE_CLIENT_REF CLOUDFLARE_API_KEY + CLOUDFLARE_ZONE_ID BLOCKED_EMAIL_DOMAINS OTEL_PROVIDER LANGFUSE_PUBLIC_KEY LANGFUSE_SECRET_KEY LANGFUSE_BASE_URL] end def captain_config_options diff --git a/enterprise/app/controllers/platform/api/v1/internal/accounts_controller.rb b/enterprise/app/controllers/platform/api/v1/internal/accounts_controller.rb index da271a0e0..4d1b84180 100644 --- a/enterprise/app/controllers/platform/api/v1/internal/accounts_controller.rb +++ b/enterprise/app/controllers/platform/api/v1/internal/accounts_controller.rb @@ -3,13 +3,15 @@ class Platform::Api::V1::Internal::AccountsController < ActionController::API include RequestExceptionHandler - CONFIG_KEY = 'SIGNALS_PLATFORM_API_TOKEN' + CONFIG_KEY = 'CHATWOOT_CLOUD_SIGNALS_API_TOKEN' DEFAULT_LIMIT = 100 MAX_LIMIT = 1000 before_action :authenticate_internal_token! def index + return render_not_found unless ChatwootApp.chatwoot_cloud? + @accounts = filtered_accounts.limit(limit) end @@ -21,6 +23,10 @@ class Platform::Api::V1::Internal::AccountsController < ActionController::API render json: { error: 'Invalid access_token' }, status: :unauthorized end + def render_not_found + render json: { error: 'Not found' }, status: :not_found + end + def request_token bearer_token || request.headers[:api_access_token] || request.headers[:HTTP_API_ACCESS_TOKEN] end