diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index dee956b2c..c2890fd6e 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -1,8 +1,8 @@
# this docker compose is for development purposes.
-# use it to run a development environnement locally without pulling pre-built images from cloud
+# use it to run a development environnement locally without pulling pre-built images from cloud
name: panora
-version: '3.8'
+version: "3.8"
services:
postgres:
@@ -29,95 +29,92 @@ services:
build:
context: ./
dockerfile: ./packages/api/Dockerfile.dev
- environment:
- DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?ssl=false
- DISTRIBUTION: ${DISTRIBUTION}
- JWT_SECRET: ${JWT_SECRET}
- REDIS_HOST: redis
- ENCRYPT_CRYPTO_SECRET_KEY: ${ENCRYPT_CRYPTO_SECRET_KEY}
- HUBSPOT_CRM_CLIENT_ID: ${HUBSPOT_CRM_CLIENT_ID}
- HUBSPOT_CRM_CLIENT_SECRET: ${HUBSPOT_CRM_CLIENT_SECRET}
- ATTIO_CRM_CLIENT_ID: ${ATTIO_CRM_CLIENT_ID}
- ATTIO_CRM_CLIENT_SECRET: ${ATTIO_CRM_CLIENT_SECRET}
- ZOHO_CRM_CLIENT_ID: ${ZOHO_CRM_CLIENT_ID}
- ZOHO_CRM_CLIENT_SECRET: ${ZOHO_CRM_CLIENT_SECRET}
- PIPEDRIVE_CRM_CLIENT_ID: ${PIPEDRIVE_CRM_CLIENT_ID}
- PIPEDRIVE_CRM_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLIENT_SECRET}
- ZENDESK_CRM_CLIENT_ID: ${ZENDESK_CRM_CLIENT_ID}
- ZENDESK_CRM_CLIENT_SECRET: ${ZENDESK_CRM_CLIENT_SECRET}
- OAUTH_REDIRECT_BASE: ${OAUTH_REDIRECT_BASE}
- ZENDESK_TICKETING_CLIENT_ID: ${ZENDESK_TICKETING_CLIENT_ID}
- ZENDESK_TICKETING_CLIENT_SECRET: ${ZENDESK_TICKETING_CLIENT_SECRET}
- ZENDESK_TICKETING_SUBDOMAIN: ${ZENDESK_TICKETING_SUBDOMAIN}
- FRONT_TICKETING_CLIENT_ID: ${FRONT_TICKETING_CLIENT_ID}
- FRONT_TICKETING_CLIENT_SECRET: ${FRONT_TICKETING_CLIENT_SECRET}
- CLICKUP_TICKETING_CLIENT_ID: ${CLICKUP_TICKETING_CLIENT_ID}
- CLICKUP_TICKETING_CLIENT_SECRET: ${CLICKUP_TICKETING_CLIENT_SECRET}
- GITHUB_TICKETING_CLIENT_ID: ${GITHUB_TICKETING_CLIENT_ID}
- GITHUB_TICKETING_CLIENT_SECRET: ${GITHUB_TICKETING_CLIENT_SECRET}
- GITLAB_TICKETING_CLIENT_ID: ${GITLAB_TICKETING_CLIENT_ID}
- GITLAB_TICKETING_CLIENT_SECRET: ${GITLAB_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_CLIENT_ID: ${GORGIAS_TICKETING_CLIENT_ID}
- GORGIAS_TICKETING_CLIENT_SECRET: ${GORGIAS_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_SUBDOMAIN: ${GORGIAS_TICKETING_SUBDOMAIN}
- JIRA_TICKETING_CLIENT_ID: ${JIRA_TICKETING_CLIENT_ID}
- JIRA_TICKETING_CLIENT_SECRET: ${JIRA_TICKETING_CLIENT_SECRET}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET}
- LINEAR_TICKETING_CLIENT_ID: ${LINEAR_TICKETING_CLIENT_ID}
- LINEAR_TICKETING_CLIENT_SECRET: ${LINEAR_TICKETING_CLIENT_SECRET}
- ACCELO_CRM_CLIENT_ID: ${ACCELO_CRM_CLIENT_ID}
- ACCELO_CRM_CLIENT_SECRET: ${ACCELO_CRM_CLIENT_SECRET}
- ACCELO_CRM_SUBDOMAIN: ${ACCELO_CRM_SUBDOMAIN}
- CAPSULE_CRM_CLIENT_ID: ${CAPSULE_CRM_CLIENT_ID}
- CAPSULE_CRM_CLIENT_SECRET: ${CAPSULE_CRM_CLIENT_SECRET}
- CLOSE_CRM_CLIENT_ID: ${CLOSE_CRM_CLIENT_ID}
- CLOSE_CRM_CLIENT_SECRET: ${CLOSE_CRM_CLIENT_SECRET}
- COPPER_CRM_CLIENT_ID: ${COPPER_CRM_CLIENT_ID}
- COPPER_CRM_CLIENT_SECRET: ${COPPER_CRM_CLIENT_SECRET}
- KEAP_CRM_CLIENT_ID: ${KEAP_CRM_CLIENT_ID}
- KEAP_CRM_CLIENT_SECRET: ${KEAP_CRM_CLIENT_SECRET}
- TEAMLEADER_CRM_CLIENT_ID: ${TEAMLEADER_CRM_CLIENT_ID}
- TEAMLEADER_CRM_CLIENT_SECRET: ${TEAMLEADER_CRM_CLIENT_SECRET}
- TEAMWORK_CRM_CLIENT_ID: ${TEAMWORK_CRM_CLIENT_ID}
- TEAMWORK_CRM_CLIENT_SECRET: ${TEAMWORK_CRM_CLIENT_SECRET}
- AHA_TICKETING_CLIENT_ID: ${AHA_TICKETING_CLIENT_ID}
- AHA_TICKETING_CLIENT_SECRET: ${AHA_TICKETING_CLIENT_SECRET}
- AHA_TICKETING_SUBDOMAIN: ${AHA_TICKETING_SUBDOMAIN}
- WRIKE_TICKETING_CLOUD_CLIENT_ID: ${WRIKE_TICKETING_CLOUD_CLIENT_ID}
- WRIKE_TICKETING_CLOUD_CLIENT_SECRET: ${WRIKE_TICKETING_CLOUD_CLIENT_SECRET}
- ASANA_TICKETING_CLOUD_CLIENT_ID: ${ASANA_TICKETING_CLOUD_CLIENT_ID}
- ASANA_TICKETING_CLOUD_CLIENT_SECRET: ${ASANA_TICKETING_CLOUD_CLIENT_SECRET}
- PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID}
- PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET}
- FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
- FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
- FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID}
- FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET}
- SAGE_ACCOUNTING_CLOUD_CLIENT_ID: ${SAGE_ACCOUNTING_CLOUD_CLIENT_ID}
- SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET}
- MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID}
- MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET}
- QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
- QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
- WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID}
- WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
-
-
-
- restart:
- unless-stopped
+ environment:
+ DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?ssl=false
+ DISTRIBUTION: ${DISTRIBUTION}
+ JWT_SECRET: ${JWT_SECRET}
+ REDIS_HOST: redis
+ ENCRYPT_CRYPTO_SECRET_KEY: ${ENCRYPT_CRYPTO_SECRET_KEY}
+ HUBSPOT_CRM_CLOUD_CLIENT_ID: ${HUBSPOT_CRM_CLOUD_CLIENT_ID}
+ HUBSPOT_CRM_CLOUD_CLIENT_SECRET: ${HUBSPOT_CRM_CLOUD_CLIENT_SECRET}
+ ATTIO_CRM_CLOUD_CLIENT_ID: ${ATTIO_CRM_CLOUD_CLIENT_ID}
+ ATTIO_CRM_CLOUD_CLIENT_SECRET: ${ATTIO_CRM_CLOUD_CLIENT_SECRET}
+ ZOHO_CRM_CLOUD_CLIENT_ID: ${ZOHO_CRM_CLOUD_CLIENT_ID}
+ ZOHO_CRM_CLOUD_CLIENT_SECRET: ${ZOHO_CRM_CLOUD_CLIENT_SECRET}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_ID: ${PIPEDRIVE_CRM_CLOUD_CLIENT_ID}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET}
+ ZENDESK_CRM_CLOUD_CLIENT_ID: ${ZENDESK_CRM_CLOUD_CLIENT_ID}
+ ZENDESK_CRM_CLOUD_CLIENT_SECRET: ${ZENDESK_CRM_CLOUD_CLIENT_SECRET}
+ OAUTH_REDIRECT_BASE: ${OAUTH_REDIRECT_BASE}
+ ZENDESK_TICKETING_CLOUD_CLIENT_ID: ${ZENDESK_TICKETING_CLOUD_CLIENT_ID}
+ ZENDESK_TICKETING_CLOUD_CLIENT_SECRET: ${ZENDESK_TICKETING_CLOUD_CLIENT_SECRET}
+ ZENDESK_TICKETING_CLOUD_SUBDOMAIN: ${ZENDESK_TICKETING_CLOUD_SUBDOMAIN}
+ FRONT_TICKETING_CLOUD_CLIENT_ID: ${FRONT_TICKETING_CLOUD_CLIENT_ID}
+ FRONT_TICKETING_CLOUD_CLIENT_SECRET: ${FRONT_TICKETING_CLOUD_CLIENT_SECRET}
+ CLICKUP_TICKETING_CLOUD_CLIENT_ID: ${CLICKUP_TICKETING_CLOUD_CLIENT_ID}
+ CLICKUP_TICKETING_CLOUD_CLIENT_SECRET: ${CLICKUP_TICKETING_CLOUD_CLIENT_SECRET}
+ GITHUB_TICKETING_CLOUD_CLIENT_ID: ${GITHUB_TICKETING_CLOUD_CLIENT_ID}
+ GITHUB_TICKETING_CLOUD_CLIENT_SECRET: ${GITHUB_TICKETING_CLOUD_CLIENT_SECRET}
+ GITLAB_TICKETING_CLOUD_CLIENT_ID: ${GITLAB_TICKETING_CLOUD_CLIENT_ID}
+ GITLAB_TICKETING_CLOUD_CLIENT_SECRET: ${GITLAB_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_CLIENT_ID: ${GORGIAS_TICKETING_CLOUD_CLIENT_ID}
+ GORGIAS_TICKETING_CLOUD_CLIENT_SECRET: ${GORGIAS_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_SUBDOMAIN: ${GORGIAS_TICKETING_CLOUD_SUBDOMAIN}
+ JIRA_TICKETING_CLOUD_CLIENT_ID: ${JIRA_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_TICKETING_CLOUD_CLIENT_SECRET}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET}
+ LINEAR_TICKETING_CLOUD_CLIENT_ID: ${LINEAR_TICKETING_CLOUD_CLIENT_ID}
+ LINEAR_TICKETING_CLOUD_CLIENT_SECRET: ${LINEAR_TICKETING_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_CLIENT_ID: ${ACCELO_CRM_CLOUD_CLIENT_ID}
+ ACCELO_CRM_CLOUD_CLIENT_SECRET: ${ACCELO_CRM_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_SUBDOMAIN: ${ACCELO_CRM_CLOUD_SUBDOMAIN}
+ CAPSULE_CRM_CLOUD_CLIENT_ID: ${CAPSULE_CRM_CLOUD_CLIENT_ID}
+ CAPSULE_CRM_CLOUD_CLIENT_SECRET: ${CAPSULE_CRM_CLOUD_CLIENT_SECRET}
+ CLOSE_CRM_CLOUD_CLIENT_ID: ${CLOSE_CRM_CLOUD_CLIENT_ID}
+ CLOSE_CRM_CLOUD_CLIENT_SECRET: ${CLOSE_CRM_CLOUD_CLIENT_SECRET}
+ COPPER_CRM_CLOUD_CLIENT_ID: ${COPPER_CRM_CLOUD_CLIENT_ID}
+ COPPER_CRM_CLOUD_CLIENT_SECRET: ${COPPER_CRM_CLOUD_CLIENT_SECRET}
+ KEAP_CRM_CLOUD_CLIENT_ID: ${KEAP_CRM_CLOUD_CLIENT_ID}
+ KEAP_CRM_CLOUD_CLIENT_SECRET: ${KEAP_CRM_CLOUD_CLIENT_SECRET}
+ TEAMLEADER_CRM_CLOUD_CLIENT_ID: ${TEAMLEADER_CRM_CLOUD_CLIENT_ID}
+ TEAMLEADER_CRM_CLOUD_CLIENT_SECRET: ${TEAMLEADER_CRM_CLOUD_CLIENT_SECRET}
+ TEAMWORK_CRM_CLOUD_CLIENT_ID: ${TEAMWORK_CRM_CLOUD_CLIENT_ID}
+ TEAMWORK_CRM_CLOUD_CLIENT_SECRET: ${TEAMWORK_CRM_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_CLIENT_ID: ${AHA_TICKETING_CLOUD_CLIENT_ID}
+ AHA_TICKETING_CLOUD_CLIENT_SECRET: ${AHA_TICKETING_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_SUBDOMAIN: ${AHA_TICKETING_CLOUD_SUBDOMAIN}
+ WRIKE_TICKETING_CLOUD_CLIENT_ID: ${WRIKE_TICKETING_CLOUD_CLIENT_ID}
+ WRIKE_TICKETING_CLOUD_CLIENT_SECRET: ${WRIKE_TICKETING_CLOUD_CLIENT_SECRET}
+ ASANA_TICKETING_CLOUD_CLIENT_ID: ${ASANA_TICKETING_CLOUD_CLIENT_ID}
+ ASANA_TICKETING_CLOUD_CLIENT_SECRET: ${ASANA_TICKETING_CLOUD_CLIENT_SECRET}
+ PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID}
+ PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
+ FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID}
+ FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ SAGE_ACCOUNTING_CLOUD_CLIENT_ID: ${SAGE_ACCOUNTING_CLOUD_CLIENT_ID}
+ SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID}
+ MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
+ QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID}
+ WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+
+ restart: unless-stopped
ports:
- 3000:3000
depends_on:
- postgres:
- condition: service_healthy
+ postgres:
+ condition: service_healthy
networks:
- backend
volumes:
@@ -126,8 +123,8 @@ services:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 10s
timeout: 5s
- retries: 1000 # Try launching the API service as long as possible. Required for other services to start
-
+ retries: 1000 # Try launching the API service as long as possible. Required for other services to start
+
redis:
image: valkey/valkey:7.2-alpine
container_name: "Redis"
@@ -137,7 +134,7 @@ services:
- ./redis-data:/data
networks:
- backend
-
+
webapp-nextjs:
build:
dockerfile: ./apps/client-ts/Dockerfile.dev
@@ -154,8 +151,7 @@ services:
NEXT_PUBLIC_STYTCH_PROJECT_ENV: ${NEXT_PUBLIC_STYTCH_PROJECT_ENV}
NEXT_PUBLIC_MAGIC_LINK_DOMAIN: ${NEXT_PUBLIC_MAGIC_LINK_DOMAIN}
NEXT_PUBLIC_WEBAPP_DOMAIN: ${NEXT_PUBLIC_WEBAPP_DOMAIN}
- restart:
- unless-stopped
+ restart: unless-stopped
ports:
- 80:8090
depends_on:
@@ -167,15 +163,14 @@ services:
networks:
- backend
- frontend
-
+
magic-link-frontend:
build:
dockerfile: ./apps/magic-link/Dockerfile.dev
context: ./
args:
VITE_BACKEND_DOMAIN: ${NEXT_PUBLIC_BACKEND_DOMAIN}
- restart:
- always
+ restart: always
ports:
- 81:5173
depends_on:
@@ -187,7 +182,6 @@ services:
volumes:
- .:/app
-
networks:
frontend:
backend:
diff --git a/docker-compose.source.yml b/docker-compose.source.yml
index 0f64c2933..d5181a88b 100644
--- a/docker-compose.source.yml
+++ b/docker-compose.source.yml
@@ -35,55 +35,55 @@ services:
JWT_SECRET: ${JWT_SECRET}
REDIS_HOST: redis
ENCRYPT_CRYPTO_SECRET_KEY: ${ENCRYPT_CRYPTO_SECRET_KEY}
- HUBSPOT_CRM_CLIENT_ID: ${HUBSPOT_CRM_CLIENT_ID}
- HUBSPOT_CRM_CLIENT_SECRET: ${HUBSPOT_CRM_CLIENT_SECRET}
- ATTIO_CRM_CLIENT_ID: ${ATTIO_CRM_CLIENT_ID}
- ATTIO_CRM_CLIENT_SECRET: ${ATTIO_CRM_CLIENT_SECRET}
- ZOHO_CRM_CLIENT_ID: ${ZOHO_CRM_CLIENT_ID}
- ZOHO_CRM_CLIENT_SECRET: ${ZOHO_CRM_CLIENT_SECRET}
- PIPEDRIVE_CRM_CLIENT_ID: ${PIPEDRIVE_CRM_CLIENT_ID}
- PIPEDRIVE_CRM_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLIENT_SECRET}
- ZENDESK_CRM_CLIENT_ID: ${ZENDESK_CRM_CLIENT_ID}
- ZENDESK_CRM_CLIENT_SECRET: ${ZENDESK_CRM_CLIENT_SECRET}
+ HUBSPOT_CRM_CLOUD_CLIENT_ID: ${HUBSPOT_CRM_CLOUD_CLIENT_ID}
+ HUBSPOT_CRM_CLOUD_CLIENT_SECRET: ${HUBSPOT_CRM_CLOUD_CLIENT_SECRET}
+ ATTIO_CRM_CLOUD_CLIENT_ID: ${ATTIO_CRM_CLOUD_CLIENT_ID}
+ ATTIO_CRM_CLOUD_CLIENT_SECRET: ${ATTIO_CRM_CLOUD_CLIENT_SECRET}
+ ZOHO_CRM_CLOUD_CLIENT_ID: ${ZOHO_CRM_CLOUD_CLIENT_ID}
+ ZOHO_CRM_CLOUD_CLIENT_SECRET: ${ZOHO_CRM_CLOUD_CLIENT_SECRET}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_ID: ${PIPEDRIVE_CRM_CLOUD_CLIENT_ID}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET}
+ ZENDESK_CRM_CLOUD_CLIENT_ID: ${ZENDESK_CRM_CLOUD_CLIENT_ID}
+ ZENDESK_CRM_CLOUD_CLIENT_SECRET: ${ZENDESK_CRM_CLOUD_CLIENT_SECRET}
OAUTH_REDIRECT_BASE: ${OAUTH_REDIRECT_BASE}
- ZENDESK_TICKETING_CLIENT_ID: ${ZENDESK_TICKETING_CLIENT_ID}
- ZENDESK_TICKETING_CLIENT_SECRET: ${ZENDESK_TICKETING_CLIENT_SECRET}
- ZENDESK_TICKETING_SUBDOMAIN: ${ZENDESK_TICKETING_SUBDOMAIN}
- FRONT_TICKETING_CLIENT_ID: ${FRONT_TICKETING_CLIENT_ID}
- FRONT_TICKETING_CLIENT_SECRET: ${FRONT_TICKETING_CLIENT_SECRET}
- CLICKUP_TICKETING_CLIENT_ID: ${CLICKUP_TICKETING_CLIENT_ID}
- CLICKUP_TICKETING_CLIENT_SECRET: ${CLICKUP_TICKETING_CLIENT_SECRET}
- GITHUB_TICKETING_CLIENT_ID: ${GITHUB_TICKETING_CLIENT_ID}
- GITHUB_TICKETING_CLIENT_SECRET: ${GITHUB_TICKETING_CLIENT_SECRET}
- GITLAB_TICKETING_CLIENT_ID: ${GITLAB_TICKETING_CLIENT_ID}
- GITLAB_TICKETING_CLIENT_SECRET: ${GITLAB_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_CLIENT_ID: ${GORGIAS_TICKETING_CLIENT_ID}
- GORGIAS_TICKETING_CLIENT_SECRET: ${GORGIAS_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_SUBDOMAIN: ${GORGIAS_TICKETING_SUBDOMAIN}
- JIRA_TICKETING_CLIENT_ID: ${JIRA_TICKETING_CLIENT_ID}
- JIRA_TICKETING_CLIENT_SECRET: ${JIRA_TICKETING_CLIENT_SECRET}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET}
- LINEAR_TICKETING_CLIENT_ID: ${LINEAR_TICKETING_CLIENT_ID}
- LINEAR_TICKETING_CLIENT_SECRET: ${LINEAR_TICKETING_CLIENT_SECRET}
- ACCELO_CRM_CLIENT_ID: ${ACCELO_CRM_CLIENT_ID}
- ACCELO_CRM_CLIENT_SECRET: ${ACCELO_CRM_CLIENT_SECRET}
- ACCELO_CRM_SUBDOMAIN: ${ACCELO_CRM_SUBDOMAIN}
- CAPSULE_CRM_CLIENT_ID: ${CAPSULE_CRM_CLIENT_ID}
- CAPSULE_CRM_CLIENT_SECRET: ${CAPSULE_CRM_CLIENT_SECRET}
- CLOSE_CRM_CLIENT_ID: ${CLOSE_CRM_CLIENT_ID}
- CLOSE_CRM_CLIENT_SECRET: ${CLOSE_CRM_CLIENT_SECRET}
- COPPER_CRM_CLIENT_ID: ${COPPER_CRM_CLIENT_ID}
- COPPER_CRM_CLIENT_SECRET: ${COPPER_CRM_CLIENT_SECRET}
- KEAP_CRM_CLIENT_ID: ${KEAP_CRM_CLIENT_ID}
- KEAP_CRM_CLIENT_SECRET: ${KEAP_CRM_CLIENT_SECRET}
- TEAMLEADER_CRM_CLIENT_ID: ${TEAMLEADER_CRM_CLIENT_ID}
- TEAMLEADER_CRM_CLIENT_SECRET: ${TEAMLEADER_CRM_CLIENT_SECRET}
- TEAMWORK_CRM_CLIENT_ID: ${TEAMWORK_CRM_CLIENT_ID}
- TEAMWORK_CRM_CLIENT_SECRET: ${TEAMWORK_CRM_CLIENT_SECRET}
- AHA_TICKETING_CLIENT_ID: ${AHA_TICKETING_CLIENT_ID}
- AHA_TICKETING_CLIENT_SECRET: ${AHA_TICKETING_CLIENT_SECRET}
- AHA_TICKETING_SUBDOMAIN: ${AHA_TICKETING_SUBDOMAIN}
+ ZENDESK_TICKETING_CLOUD_CLIENT_ID: ${ZENDESK_TICKETING_CLOUD_CLIENT_ID}
+ ZENDESK_TICKETING_CLOUD_CLIENT_SECRET: ${ZENDESK_TICKETING_CLOUD_CLIENT_SECRET}
+ ZENDESK_TICKETING_CLOUD_SUBDOMAIN: ${ZENDESK_TICKETING_CLOUD_SUBDOMAIN}
+ FRONT_TICKETING_CLOUD_CLIENT_ID: ${FRONT_TICKETING_CLOUD_CLIENT_ID}
+ FRONT_TICKETING_CLOUD_CLIENT_SECRET: ${FRONT_TICKETING_CLOUD_CLIENT_SECRET}
+ CLICKUP_TICKETING_CLOUD_CLIENT_ID: ${CLICKUP_TICKETING_CLOUD_CLIENT_ID}
+ CLICKUP_TICKETING_CLOUD_CLIENT_SECRET: ${CLICKUP_TICKETING_CLOUD_CLIENT_SECRET}
+ GITHUB_TICKETING_CLOUD_CLIENT_ID: ${GITHUB_TICKETING_CLOUD_CLIENT_ID}
+ GITHUB_TICKETING_CLOUD_CLIENT_SECRET: ${GITHUB_TICKETING_CLOUD_CLIENT_SECRET}
+ GITLAB_TICKETING_CLOUD_CLIENT_ID: ${GITLAB_TICKETING_CLOUD_CLIENT_ID}
+ GITLAB_TICKETING_CLOUD_CLIENT_SECRET: ${GITLAB_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_CLIENT_ID: ${GORGIAS_TICKETING_CLOUD_CLIENT_ID}
+ GORGIAS_TICKETING_CLOUD_CLIENT_SECRET: ${GORGIAS_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_SUBDOMAIN: ${GORGIAS_TICKETING_CLOUD_SUBDOMAIN}
+ JIRA_TICKETING_CLOUD_CLIENT_ID: ${JIRA_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_TICKETING_CLOUD_CLIENT_SECRET}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET}
+ LINEAR_TICKETING_CLOUD_CLIENT_ID: ${LINEAR_TICKETING_CLOUD_CLIENT_ID}
+ LINEAR_TICKETING_CLOUD_CLIENT_SECRET: ${LINEAR_TICKETING_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_CLIENT_ID: ${ACCELO_CRM_CLOUD_CLIENT_ID}
+ ACCELO_CRM_CLOUD_CLIENT_SECRET: ${ACCELO_CRM_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_SUBDOMAIN: ${ACCELO_CRM_CLOUD_SUBDOMAIN}
+ CAPSULE_CRM_CLOUD_CLIENT_ID: ${CAPSULE_CRM_CLOUD_CLIENT_ID}
+ CAPSULE_CRM_CLOUD_CLIENT_SECRET: ${CAPSULE_CRM_CLOUD_CLIENT_SECRET}
+ CLOSE_CRM_CLOUD_CLIENT_ID: ${CLOSE_CRM_CLOUD_CLIENT_ID}
+ CLOSE_CRM_CLOUD_CLIENT_SECRET: ${CLOSE_CRM_CLOUD_CLIENT_SECRET}
+ COPPER_CRM_CLOUD_CLIENT_ID: ${COPPER_CRM_CLOUD_CLIENT_ID}
+ COPPER_CRM_CLOUD_CLIENT_SECRET: ${COPPER_CRM_CLOUD_CLIENT_SECRET}
+ KEAP_CRM_CLOUD_CLIENT_ID: ${KEAP_CRM_CLOUD_CLIENT_ID}
+ KEAP_CRM_CLOUD_CLIENT_SECRET: ${KEAP_CRM_CLOUD_CLIENT_SECRET}
+ TEAMLEADER_CRM_CLOUD_CLIENT_ID: ${TEAMLEADER_CRM_CLOUD_CLIENT_ID}
+ TEAMLEADER_CRM_CLOUD_CLIENT_SECRET: ${TEAMLEADER_CRM_CLOUD_CLIENT_SECRET}
+ TEAMWORK_CRM_CLOUD_CLIENT_ID: ${TEAMWORK_CRM_CLOUD_CLIENT_ID}
+ TEAMWORK_CRM_CLOUD_CLIENT_SECRET: ${TEAMWORK_CRM_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_CLIENT_ID: ${AHA_TICKETING_CLOUD_CLIENT_ID}
+ AHA_TICKETING_CLOUD_CLIENT_SECRET: ${AHA_TICKETING_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_SUBDOMAIN: ${AHA_TICKETING_CLOUD_SUBDOMAIN}
WRIKE_TICKETING_CLOUD_CLIENT_ID: ${WRIKE_TICKETING_CLOUD_CLIENT_ID}
WRIKE_TICKETING_CLOUD_CLIENT_SECRET: ${WRIKE_TICKETING_CLOUD_CLIENT_SECRET}
ASANA_TICKETING_CLOUD_CLIENT_ID: ${ASANA_TICKETING_CLOUD_CLIENT_ID}
@@ -102,16 +102,13 @@ services:
QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID}
WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
-
-
-
-
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+
restart: unless-stopped
ports:
- 3000:3000
diff --git a/docker-compose.yml b/docker-compose.yml
index 4e500a7fa..13943c02f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,5 @@
name: panora
-version: '3.8'
+version: "3.8"
services:
postgres:
@@ -24,99 +24,95 @@ services:
api:
image: panoradotdev/backend-api:selfhosted
- environment:
- DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?ssl=false
- DISTRIBUTION: ${DISTRIBUTION}
- JWT_SECRET: ${JWT_SECRET}
- REDIS_HOST: redis
- ENCRYPT_CRYPTO_SECRET_KEY: ${ENCRYPT_CRYPTO_SECRET_KEY}
- HUBSPOT_CRM_CLIENT_ID: ${HUBSPOT_CRM_CLIENT_ID}
- HUBSPOT_CRM_CLIENT_SECRET: ${HUBSPOT_CRM_CLIENT_SECRET}
- ATTIO_CRM_CLIENT_ID: ${ATTIO_CRM_CLIENT_ID}
- ATTIO_CRM_CLIENT_SECRET: ${ATTIO_CRM_CLIENT_SECRET}
- ZOHO_CRM_CLIENT_ID: ${ZOHO_CRM_CLIENT_ID}
- ZOHO_CRM_CLIENT_SECRET: ${ZOHO_CRM_CLIENT_SECRET}
- PIPEDRIVE_CRM_CLIENT_ID: ${PIPEDRIVE_CRM_CLIENT_ID}
- PIPEDRIVE_CRM_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLIENT_SECRET}
- ZENDESK_CRM_CLIENT_ID: ${ZENDESK_CRM_CLIENT_ID}
- ZENDESK_CRM_CLIENT_SECRET: ${ZENDESK_CRM_CLIENT_SECRET}
- OAUTH_REDIRECT_BASE: ${OAUTH_REDIRECT_BASE}
- ZENDESK_TICKETING_CLIENT_ID: ${ZENDESK_TICKETING_CLIENT_ID}
- ZENDESK_TICKETING_CLIENT_SECRET: ${ZENDESK_TICKETING_CLIENT_SECRET}
- ZENDESK_TICKETING_SUBDOMAIN: ${ZENDESK_TICKETING_SUBDOMAIN}
- FRONT_TICKETING_CLIENT_ID: ${FRONT_TICKETING_CLIENT_ID}
- FRONT_TICKETING_CLIENT_SECRET: ${FRONT_TICKETING_CLIENT_SECRET}
- CLICKUP_TICKETING_CLIENT_ID: ${CLICKUP_TICKETING_CLIENT_ID}
- CLICKUP_TICKETING_CLIENT_SECRET: ${CLICKUP_TICKETING_CLIENT_SECRET}
- GITHUB_TICKETING_CLIENT_ID: ${GITHUB_TICKETING_CLIENT_ID}
- GITHUB_TICKETING_CLIENT_SECRET: ${GITHUB_TICKETING_CLIENT_SECRET}
- GITLAB_TICKETING_CLIENT_ID: ${GITLAB_TICKETING_CLIENT_ID}
- GITLAB_TICKETING_CLIENT_SECRET: ${GITLAB_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_CLIENT_ID: ${GORGIAS_TICKETING_CLIENT_ID}
- GORGIAS_TICKETING_CLIENT_SECRET: ${GORGIAS_TICKETING_CLIENT_SECRET}
- GORGIAS_TICKETING_SUBDOMAIN: ${GORGIAS_TICKETING_SUBDOMAIN}
- JIRA_TICKETING_CLIENT_ID: ${JIRA_TICKETING_CLIENT_ID}
- JIRA_TICKETING_CLIENT_SECRET: ${JIRA_TICKETING_CLIENT_SECRET}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_ID}
- JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET: ${JIRA_SERVICE_MGMT_TICKETING_CLIENT_SECRET}
- LINEAR_TICKETING_CLIENT_ID: ${LINEAR_TICKETING_CLIENT_ID}
- LINEAR_TICKETING_CLIENT_SECRET: ${LINEAR_TICKETING_CLIENT_SECRET}
- ACCELO_CRM_CLIENT_ID: ${ACCELO_CRM_CLIENT_ID}
- ACCELO_CRM_CLIENT_SECRET: ${ACCELO_CRM_CLIENT_SECRET}
- ACCELO_CRM_SUBDOMAIN: ${ACCELO_CRM_SUBDOMAIN}
- CAPSULE_CRM_CLIENT_ID: ${CAPSULE_CRM_CLIENT_ID}
- CAPSULE_CRM_CLIENT_SECRET: ${CAPSULE_CRM_CLIENT_SECRET}
- CLOSE_CRM_CLIENT_ID: ${CLOSE_CRM_CLIENT_ID}
- CLOSE_CRM_CLIENT_SECRET: ${CLOSE_CRM_CLIENT_SECRET}
- COPPER_CRM_CLIENT_ID: ${COPPER_CRM_CLIENT_ID}
- COPPER_CRM_CLIENT_SECRET: ${COPPER_CRM_CLIENT_SECRET}
- KEAP_CRM_CLIENT_ID: ${KEAP_CRM_CLIENT_ID}
- KEAP_CRM_CLIENT_SECRET: ${KEAP_CRM_CLIENT_SECRET}
- TEAMLEADER_CRM_CLIENT_ID: ${TEAMLEADER_CRM_CLIENT_ID}
- TEAMLEADER_CRM_CLIENT_SECRET: ${TEAMLEADER_CRM_CLIENT_SECRET}
- TEAMWORK_CRM_CLIENT_ID: ${TEAMWORK_CRM_CLIENT_ID}
- TEAMWORK_CRM_CLIENT_SECRET: ${TEAMWORK_CRM_CLIENT_SECRET}
- AHA_TICKETING_CLIENT_ID: ${AHA_TICKETING_CLIENT_ID}
- AHA_TICKETING_CLIENT_SECRET: ${AHA_TICKETING_CLIENT_SECRET}
- AHA_TICKETING_SUBDOMAIN: ${AHA_TICKETING_SUBDOMAIN}
- WRIKE_TICKETING_CLOUD_CLIENT_ID: ${WRIKE_TICKETING_CLOUD_CLIENT_ID}
- WRIKE_TICKETING_CLOUD_CLIENT_SECRET: ${WRIKE_TICKETING_CLOUD_CLIENT_SECRET}
- ASANA_TICKETING_CLOUD_CLIENT_ID: ${ASANA_TICKETING_CLOUD_CLIENT_ID}
- ASANA_TICKETING_CLOUD_CLIENT_SECRET: ${ASANA_TICKETING_CLOUD_CLIENT_SECRET}
- PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID}
- PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET}
- FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
- FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
- FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID}
- FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET}
- SAGE_ACCOUNTING_CLOUD_CLIENT_ID: ${SAGE_ACCOUNTING_CLOUD_CLIENT_ID}
- SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET}
- MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID}
- MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET}
- QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
- QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
- WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID}
- WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_ID}
- PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETING_AUTOMATION_CLOUD_CLIENT_SECRET}
-
-
-
-
- restart:
- unless-stopped
+ environment:
+ DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?ssl=false
+ DISTRIBUTION: ${DISTRIBUTION}
+ JWT_SECRET: ${JWT_SECRET}
+ REDIS_HOST: redis
+ ENCRYPT_CRYPTO_SECRET_KEY: ${ENCRYPT_CRYPTO_SECRET_KEY}
+ HUBSPOT_CRM_CLOUD_CLIENT_ID: ${HUBSPOT_CRM_CLOUD_CLIENT_ID}
+ HUBSPOT_CRM_CLOUD_CLIENT_SECRET: ${HUBSPOT_CRM_CLOUD_CLIENT_SECRET}
+ ATTIO_CRM_CLOUD_CLIENT_ID: ${ATTIO_CRM_CLOUD_CLIENT_ID}
+ ATTIO_CRM_CLOUD_CLIENT_SECRET: ${ATTIO_CRM_CLOUD_CLIENT_SECRET}
+ ZOHO_CRM_CLOUD_CLIENT_ID: ${ZOHO_CRM_CLOUD_CLIENT_ID}
+ ZOHO_CRM_CLOUD_CLIENT_SECRET: ${ZOHO_CRM_CLOUD_CLIENT_SECRET}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_ID: ${PIPEDRIVE_CRM_CLOUD_CLIENT_ID}
+ PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET: ${PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET}
+ ZENDESK_CRM_CLOUD_CLIENT_ID: ${ZENDESK_CRM_CLOUD_CLIENT_ID}
+ ZENDESK_CRM_CLOUD_CLIENT_SECRET: ${ZENDESK_CRM_CLOUD_CLIENT_SECRET}
+ OAUTH_REDIRECT_BASE: ${OAUTH_REDIRECT_BASE}
+ ZENDESK_TICKETING_CLOUD_CLIENT_ID: ${ZENDESK_TICKETING_CLOUD_CLIENT_ID}
+ ZENDESK_TICKETING_CLOUD_CLIENT_SECRET: ${ZENDESK_TICKETING_CLOUD_CLIENT_SECRET}
+ ZENDESK_TICKETING_CLOUD_SUBDOMAIN: ${ZENDESK_TICKETING_CLOUD_SUBDOMAIN}
+ FRONT_TICKETING_CLOUD_CLIENT_ID: ${FRONT_TICKETING_CLOUD_CLIENT_ID}
+ FRONT_TICKETING_CLOUD_CLIENT_SECRET: ${FRONT_TICKETING_CLOUD_CLIENT_SECRET}
+ CLICKUP_TICKETING_CLOUD_CLIENT_ID: ${CLICKUP_TICKETING_CLOUD_CLIENT_ID}
+ CLICKUP_TICKETING_CLOUD_CLIENT_SECRET: ${CLICKUP_TICKETING_CLOUD_CLIENT_SECRET}
+ GITHUB_TICKETING_CLOUD_CLIENT_ID: ${GITHUB_TICKETING_CLOUD_CLIENT_ID}
+ GITHUB_TICKETING_CLOUD_CLIENT_SECRET: ${GITHUB_TICKETING_CLOUD_CLIENT_SECRET}
+ GITLAB_TICKETING_CLOUD_CLIENT_ID: ${GITLAB_TICKETING_CLOUD_CLIENT_ID}
+ GITLAB_TICKETING_CLOUD_CLIENT_SECRET: ${GITLAB_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_CLIENT_ID: ${GORGIAS_TICKETING_CLOUD_CLIENT_ID}
+ GORGIAS_TICKETING_CLOUD_CLIENT_SECRET: ${GORGIAS_TICKETING_CLOUD_CLIENT_SECRET}
+ GORGIAS_TICKETING_CLOUD_SUBDOMAIN: ${GORGIAS_TICKETING_CLOUD_SUBDOMAIN}
+ JIRA_TICKETING_CLOUD_CLIENT_ID: ${JIRA_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_TICKETING_CLOUD_CLIENT_SECRET}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_ID}
+ JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET: ${JIRA_SERVICEMGMT_TICKETING_CLOUD_CLIENT_SECRET}
+ LINEAR_TICKETING_CLOUD_CLIENT_ID: ${LINEAR_TICKETING_CLOUD_CLIENT_ID}
+ LINEAR_TICKETING_CLOUD_CLIENT_SECRET: ${LINEAR_TICKETING_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_CLIENT_ID: ${ACCELO_CRM_CLOUD_CLIENT_ID}
+ ACCELO_CRM_CLOUD_CLIENT_SECRET: ${ACCELO_CRM_CLOUD_CLIENT_SECRET}
+ ACCELO_CRM_CLOUD_SUBDOMAIN: ${ACCELO_CRM_CLOUD_SUBDOMAIN}
+ CAPSULE_CRM_CLOUD_CLIENT_ID: ${CAPSULE_CRM_CLOUD_CLIENT_ID}
+ CAPSULE_CRM_CLOUD_CLIENT_SECRET: ${CAPSULE_CRM_CLOUD_CLIENT_SECRET}
+ CLOSE_CRM_CLOUD_CLIENT_ID: ${CLOSE_CRM_CLOUD_CLIENT_ID}
+ CLOSE_CRM_CLOUD_CLIENT_SECRET: ${CLOSE_CRM_CLOUD_CLIENT_SECRET}
+ COPPER_CRM_CLOUD_CLIENT_ID: ${COPPER_CRM_CLOUD_CLIENT_ID}
+ COPPER_CRM_CLOUD_CLIENT_SECRET: ${COPPER_CRM_CLOUD_CLIENT_SECRET}
+ KEAP_CRM_CLOUD_CLIENT_ID: ${KEAP_CRM_CLOUD_CLIENT_ID}
+ KEAP_CRM_CLOUD_CLIENT_SECRET: ${KEAP_CRM_CLOUD_CLIENT_SECRET}
+ TEAMLEADER_CRM_CLOUD_CLIENT_ID: ${TEAMLEADER_CRM_CLOUD_CLIENT_ID}
+ TEAMLEADER_CRM_CLOUD_CLIENT_SECRET: ${TEAMLEADER_CRM_CLOUD_CLIENT_SECRET}
+ TEAMWORK_CRM_CLOUD_CLIENT_ID: ${TEAMWORK_CRM_CLOUD_CLIENT_ID}
+ TEAMWORK_CRM_CLOUD_CLIENT_SECRET: ${TEAMWORK_CRM_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_CLIENT_ID: ${AHA_TICKETING_CLOUD_CLIENT_ID}
+ AHA_TICKETING_CLOUD_CLIENT_SECRET: ${AHA_TICKETING_CLOUD_CLIENT_SECRET}
+ AHA_TICKETING_CLOUD_SUBDOMAIN: ${AHA_TICKETING_CLOUD_SUBDOMAIN}
+ WRIKE_TICKETING_CLOUD_CLIENT_ID: ${WRIKE_TICKETING_CLOUD_CLIENT_ID}
+ WRIKE_TICKETING_CLOUD_CLIENT_SECRET: ${WRIKE_TICKETING_CLOUD_CLIENT_SECRET}
+ ASANA_TICKETING_CLOUD_CLIENT_ID: ${ASANA_TICKETING_CLOUD_CLIENT_ID}
+ ASANA_TICKETING_CLOUD_CLIENT_SECRET: ${ASANA_TICKETING_CLOUD_CLIENT_SECRET}
+ PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID}
+ PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
+ FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID}
+ FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET: ${FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ SAGE_ACCOUNTING_CLOUD_CLIENT_ID: ${SAGE_ACCOUNTING_CLOUD_CLIENT_ID}
+ SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET: ${SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID}
+ MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET: ${MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID}
+ QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET: ${QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_ID}
+ WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET: ${WAVE_FINANCIAL_ACCOUNTING_CLOUD_CLIENT_SECRET}
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${GETRESPONSE_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_ID}
+ PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET: ${PODIUM_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET}
+
+ restart: unless-stopped
ports:
- 3000:3000
depends_on:
- postgres:
- condition: service_healthy
+ postgres:
+ condition: service_healthy
networks:
- backend
-
+
redis:
image: valkey/valkey:7.2-alpine
container_name: "Redis"
@@ -126,11 +122,10 @@ services:
- ./redis-data:/data
networks:
- backend
-
+
magic-link-frontend:
image: panoradotdev/frontend-magic-links:selfhosted
- restart:
- always
+ restart: always
ports:
- 81:80
depends_on:
@@ -138,7 +133,6 @@ services:
networks:
- backend
- frontend
-
webapp-next:
image: panoradotdev/frontend-webapp:selfhosted
@@ -160,7 +154,6 @@ services:
- backend
- frontend
-
networks:
frontend:
backend:
diff --git a/docs/marketing_automation/introduction.mdx b/docs/marketing_automation/introduction.mdx
index 9656dc9f8..293c5acda 100644
--- a/docs/marketing_automation/introduction.mdx
+++ b/docs/marketing_automation/introduction.mdx
@@ -1,6 +1,6 @@
---
-title: 'Coming Soon'
+title: "Coming Soon"
description: "You're a bit early!"
---
-## [Click here](https://tally.so/r/3Exrdl?integration_category=marketing_automation) to be notified once this feature is live!
\ No newline at end of file
+## [Click here](https://tally.so/r/3Exrdl?integration_category=marketingautomation) to be notified once this feature is live!
diff --git a/docs/mint.json b/docs/mint.json
index 1ab2e9762..eb4061497 100644
--- a/docs/mint.json
+++ b/docs/mint.json
@@ -56,7 +56,7 @@
},
{
"name": "Marketing Automation",
- "url": "marketing_automation"
+ "url": "marketingautomation"
},
{
"name": "Ticketing",
@@ -116,7 +116,7 @@
{
"group": "Marketing Automation",
"pages": [
- "marketing_automation/introduction"
+ "marketingautomation/introduction"
]
},
{
diff --git a/docs/open-source/contributors.mdx b/docs/open-source/contributors.mdx
index 27a73afb3..218ddb772 100644
--- a/docs/open-source/contributors.mdx
+++ b/docs/open-source/contributors.mdx
@@ -1,7 +1,7 @@
---
-title: 'Build a connector'
-description: 'We welcome all contributions to Panora; from small UI enhancements to brand new integrations. We love seeing community members level up and give people power-ups!'
-icon: 'star'
+title: "Build a connector"
+description: "We welcome all contributions to Panora; from small UI enhancements to brand new integrations. We love seeing community members level up and give people power-ups!"
+icon: "star"
---
## Introduction
@@ -14,10 +14,8 @@ We made a docker file that builds Panora from sources, specifically to help you
-
```bash cp .env.example .env ```
-
```bash rm -rf node_modules .pnpm-store ./packages/api/dist
./packages/api/node_modules ./apps/webapp/node_modules
@@ -53,9 +51,9 @@ First choose wisely which vertical the 3rd party belongs to among these:
- ticketing
- accounting
- ats
-- file_storage
+- filestorage
- hris
-- marketing_automation
+- marketingautomation
For the sake of the guide, now on we'll consider adding a 3rd party belonging to the `crm` vertical.
diff --git a/packages/api/src/@core/connections-strategies/connections-strategies.service.ts b/packages/api/src/@core/connections-strategies/connections-strategies.service.ts
index 91cf06159..7ac191bae 100644
--- a/packages/api/src/@core/connections-strategies/connections-strategies.service.ts
+++ b/packages/api/src/@core/connections-strategies/connections-strategies.service.ts
@@ -9,6 +9,7 @@ import {
extractVertical,
needsSubdomain,
} from '@panora/shared';
+import { SoftwareMode } from '@panora/shared/src/utils';
import { v4 as uuidv4 } from 'uuid';
export type OAuth = {
@@ -190,23 +191,28 @@ export class ConnectionsStrategiesService {
return data as AuthData;
}
- getEnvData(provider: string, vertical: string, authStrategy: AuthStrategy) {
+ getEnvData(
+ provider: string,
+ vertical: string,
+ authStrategy: AuthStrategy,
+ softwareMode?: SoftwareMode,
+ ) {
let data: AuthData;
switch (authStrategy) {
case AuthStrategy.oauth2:
data = {
CLIENT_ID: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_CLIENT_ID`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_CLIENT_ID`,
),
CLIENT_SECRET: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_CLIENT_SECRET`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_CLIENT_SECRET`,
),
};
if (needsSubdomain(provider, vertical)) {
data = {
...data,
SUBDOMAIN: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_SUBDOMAIN`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_SUBDOMAIN`,
),
};
}
@@ -214,14 +220,14 @@ export class ConnectionsStrategiesService {
case AuthStrategy.api_key:
data = {
API_KEY: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_API_KEY`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_API_KEY`,
),
};
if (needsSubdomain(provider, vertical)) {
data = {
...data,
SUBDOMAIN: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_SUBDOMAIN`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_SUBDOMAIN`,
),
};
}
@@ -229,17 +235,17 @@ export class ConnectionsStrategiesService {
case AuthStrategy.basic:
data = {
USERNAME: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_USERNAME`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_USERNAME`,
),
SECRET: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_SECRET`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_SECRET`,
),
};
if (needsSubdomain(provider, vertical)) {
data = {
...data,
SUBDOMAIN: this.configService.get(
- `${provider.toUpperCase()}_${vertical.toUpperCase()}_SUBDOMAIN`,
+ `${provider.toUpperCase()}_${vertical.toUpperCase()}_${softwareMode.toUpperCase()}_SUBDOMAIN`,
),
};
}
@@ -251,7 +257,7 @@ export class ConnectionsStrategiesService {
const isCustomCred = await this.isCustomCredentials(projectId, type);
const provider = extractProvider(type);
const vertical = extractVertical(type);
- //const vertical = findProviderVertical(provider);
+ //TODO: extract sofwtaremode
if (!vertical)
throw new Error(`vertical not found for provider ${provider}`);
const authStrategy = extractAuthMode(type);
@@ -270,7 +276,12 @@ export class ConnectionsStrategiesService {
);
} else {
// type is of form = HUBSPOT_CRM_CLOUD_OAUTH so we must extract the parts
- return this.getEnvData(provider, vertical, authStrategy);
+ return this.getEnvData(
+ provider,
+ vertical,
+ authStrategy,
+ SoftwareMode.cloud,
+ );
}
}
diff --git a/packages/api/src/@core/connections/connections.controller.ts b/packages/api/src/@core/connections/connections.controller.ts
index 5fbacab2a..0a23a94b4 100644
--- a/packages/api/src/@core/connections/connections.controller.ts
+++ b/packages/api/src/@core/connections/connections.controller.ts
@@ -8,7 +8,7 @@ import { ApiOperation, ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger';
import { TicketingConnectionsService } from './ticketing/services/ticketing.connection.service';
import { ProviderVertical } from '@panora/shared';
import { AccountingConnectionsService } from './accounting/services/accounting.connection.service';
-import { MarketingAutomationConnectionsService } from './marketing_automation/services/marketing_automation.connection.service';
+import { MarketingAutomationConnectionsService } from './marketingautomation/services/marketingautomation.connection.service';
export type StateDataType = {
projectId: string;
diff --git a/packages/api/src/@core/connections/connections.module.ts b/packages/api/src/@core/connections/connections.module.ts
index 3372594d3..bab08627d 100644
--- a/packages/api/src/@core/connections/connections.module.ts
+++ b/packages/api/src/@core/connections/connections.module.ts
@@ -5,7 +5,7 @@ import { LoggerService } from '@@core/logger/logger.service';
import { PrismaService } from '@@core/prisma/prisma.service';
import { TicketingConnectionModule } from './ticketing/ticketing.connection.module';
import { AccountingConnectionModule } from './accounting/accounting.connection.module';
-import { MarketingAutomationConnectionsModule } from './marketing_automation/marketing_automation.connection.module';
+import { MarketingAutomationConnectionsModule } from './marketingautomation/marketingautomation.connection.module';
@Module({
controllers: [ConnectionsController],
diff --git a/packages/api/src/@core/connections/marketing_automation/marketing_automation.connection.module.ts b/packages/api/src/@core/connections/marketingautomation/marketingautomation.connection.module.ts
similarity index 96%
rename from packages/api/src/@core/connections/marketing_automation/marketing_automation.connection.module.ts
rename to packages/api/src/@core/connections/marketingautomation/marketingautomation.connection.module.ts
index 7195614a3..3c3ceaee3 100644
--- a/packages/api/src/@core/connections/marketing_automation/marketing_automation.connection.module.ts
+++ b/packages/api/src/@core/connections/marketingautomation/marketingautomation.connection.module.ts
@@ -6,7 +6,7 @@ import { WebhookModule } from '@@core/webhook/webhook.module';
import { EnvironmentService } from '@@core/environment/environment.service';
import { EncryptionService } from '@@core/encryption/encryption.service';
import { ConnectionsStrategiesService } from '@@core/connections-strategies/connections-strategies.service';
-import { MarketingAutomationConnectionsService } from './services/marketing_automation.connection.service';
+import { MarketingAutomationConnectionsService } from './services/marketingautomation.connection.service';
import { ServiceRegistry } from './services/registry.service';
@Module({
diff --git a/packages/api/src/@core/connections/marketing_automation/services/getresponse/getresponse.service.ts b/packages/api/src/@core/connections/marketingautomation/services/getresponse/getresponse.service.ts
similarity index 95%
rename from packages/api/src/@core/connections/marketing_automation/services/getresponse/getresponse.service.ts
rename to packages/api/src/@core/connections/marketingautomation/services/getresponse/getresponse.service.ts
index 66ad6861f..6bd315886 100644
--- a/packages/api/src/@core/connections/marketing_automation/services/getresponse/getresponse.service.ts
+++ b/packages/api/src/@core/connections/marketingautomation/services/getresponse/getresponse.service.ts
@@ -42,7 +42,7 @@ export class GetresponseConnectionService
this.registry.registerService('getresponse', this);
this.type = providerToType(
'getresponse',
- 'marketing_automation',
+ 'marketingautomation',
AuthStrategy.oauth2,
);
}
@@ -54,7 +54,7 @@ export class GetresponseConnectionService
where: {
id_linked_user: linkedUserId,
provider_slug: 'getresponse',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
},
});
@@ -98,8 +98,7 @@ export class GetresponseConnectionService
access_token: this.cryptoService.encrypt(data.access_token),
refresh_token: this.cryptoService.encrypt(data.refresh_token),
account_url:
- providersConfig['marketing_automation']['getresponse'].urls
- .apiUrl,
+ providersConfig['marketingautomation']['getresponse'].urls.apiUrl,
expiration_timestamp: new Date(
new Date().getTime() + Number(data.expires_in) * 1000,
),
@@ -113,11 +112,10 @@ export class GetresponseConnectionService
id_connection: uuidv4(),
connection_token: connection_token,
provider_slug: 'getresponse',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
token_type: 'oauth',
account_url:
- providersConfig['marketing_automation']['getresponse'].urls
- .apiUrl,
+ providersConfig['marketingautomation']['getresponse'].urls.apiUrl,
access_token: this.cryptoService.encrypt(data.access_token),
refresh_token: this.cryptoService.encrypt(data.refresh_token),
expiration_timestamp: new Date(
diff --git a/packages/api/src/@core/connections/marketing_automation/services/mailchimp/mailchimp.service.ts b/packages/api/src/@core/connections/marketingautomation/services/mailchimp/mailchimp.service.ts
similarity index 97%
rename from packages/api/src/@core/connections/marketing_automation/services/mailchimp/mailchimp.service.ts
rename to packages/api/src/@core/connections/marketingautomation/services/mailchimp/mailchimp.service.ts
index b4d7945e0..b250aa7c5 100644
--- a/packages/api/src/@core/connections/marketing_automation/services/mailchimp/mailchimp.service.ts
+++ b/packages/api/src/@core/connections/marketingautomation/services/mailchimp/mailchimp.service.ts
@@ -41,7 +41,7 @@ export class MailchimpConnectionService
this.registry.registerService('mailchimp', this);
this.type = providerToType(
'mailchimp',
- 'marketing_automation',
+ 'marketingautomation',
AuthStrategy.oauth2,
);
}
@@ -53,7 +53,7 @@ export class MailchimpConnectionService
where: {
id_linked_user: linkedUserId,
provider_slug: 'mailchimp',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
},
});
@@ -121,7 +121,7 @@ export class MailchimpConnectionService
id_connection: uuidv4(),
connection_token: connection_token,
provider_slug: 'mailchimp',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
token_type: 'oauth',
account_url: server_url,
access_token: this.cryptoService.encrypt(data.access_token),
diff --git a/packages/api/src/@core/connections/marketing_automation/services/marketing_automation.connection.service.ts b/packages/api/src/@core/connections/marketingautomation/services/marketingautomation.connection.service.ts
similarity index 100%
rename from packages/api/src/@core/connections/marketing_automation/services/marketing_automation.connection.service.ts
rename to packages/api/src/@core/connections/marketingautomation/services/marketingautomation.connection.service.ts
diff --git a/packages/api/src/@core/connections/marketing_automation/services/podium/podium.service.ts b/packages/api/src/@core/connections/marketingautomation/services/podium/podium.service.ts
similarity index 95%
rename from packages/api/src/@core/connections/marketing_automation/services/podium/podium.service.ts
rename to packages/api/src/@core/connections/marketingautomation/services/podium/podium.service.ts
index ec948abde..91bc1105f 100644
--- a/packages/api/src/@core/connections/marketing_automation/services/podium/podium.service.ts
+++ b/packages/api/src/@core/connections/marketingautomation/services/podium/podium.service.ts
@@ -39,7 +39,7 @@ export class PodiumConnectionService
this.registry.registerService('podium', this);
this.type = providerToType(
'podium',
- 'marketing_automation',
+ 'marketingautomation',
AuthStrategy.oauth2,
);
}
@@ -50,7 +50,7 @@ export class PodiumConnectionService
where: {
id_linked_user: linkedUserId,
provider_slug: 'podium',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
},
});
@@ -94,7 +94,7 @@ export class PodiumConnectionService
access_token: this.cryptoService.encrypt(data.access_token),
refresh_token: this.cryptoService.encrypt(data.refresh_token),
account_url:
- providersConfig['marketing_automation']['podium'].urls.apiUrl,
+ providersConfig['marketingautomation']['podium'].urls.apiUrl,
expiration_timestamp: new Date(
new Date().getTime() + 10 * 60 * 60 * 1000,
),
@@ -108,10 +108,10 @@ export class PodiumConnectionService
id_connection: uuidv4(),
connection_token: connection_token,
provider_slug: 'podium',
- vertical: 'marketing_automation',
+ vertical: 'marketingautomation',
token_type: 'oauth',
account_url:
- providersConfig['marketing_automation']['pdoum'].urls.apiUrl,
+ providersConfig['marketingautomation']['pdoum'].urls.apiUrl,
access_token: this.cryptoService.encrypt(data.access_token),
refresh_token: this.cryptoService.encrypt(data.refresh_token),
expiration_timestamp: new Date(
diff --git a/packages/api/src/@core/connections/marketing_automation/services/registry.service.ts b/packages/api/src/@core/connections/marketingautomation/services/registry.service.ts
similarity index 100%
rename from packages/api/src/@core/connections/marketing_automation/services/registry.service.ts
rename to packages/api/src/@core/connections/marketingautomation/services/registry.service.ts
diff --git a/packages/api/src/@core/connections/marketing_automation/types/index.ts b/packages/api/src/@core/connections/marketingautomation/types/index.ts
similarity index 100%
rename from packages/api/src/@core/connections/marketing_automation/types/index.ts
rename to packages/api/src/@core/connections/marketingautomation/types/index.ts
diff --git a/packages/api/src/@core/utils/types/index.ts b/packages/api/src/@core/utils/types/index.ts
index 12fcac801..cea2594cd 100644
--- a/packages/api/src/@core/utils/types/index.ts
+++ b/packages/api/src/@core/utils/types/index.ts
@@ -2,9 +2,7 @@ import { CrmObject, UnifiedCrm } from '@crm/@utils/@types';
import { HrisObject } from '@hris/@types';
import { AtsObject, UnifiedAts } from '@ats/@types';
import { AccountingObject } from '@accounting/@types';
-import { MarketingAutomationObject } from 'src/marketing_automation/@types';
import { TicketingObject, UnifiedTicketing } from '@ticketing/@utils/@types';
-import { FileStorageObject } from 'src/file_storage/@types';
import {
ApiExtraModels,
ApiOkResponse,
@@ -13,6 +11,8 @@ import {
getSchemaPath,
} from '@nestjs/swagger';
import { Type, applyDecorators } from '@nestjs/common';
+import { FileStorageObject } from '@filestorage/@types';
+import { MarketingAutomationObject } from '@marketingautomation/@types';
export type Unified = UnifiedCrm | UnifiedAts | UnifiedTicketing;
export type UnifyReturnType = Unified | Unified[];
diff --git a/packages/api/src/app.module.ts b/packages/api/src/app.module.ts
index e3f9b6f6b..44c814861 100644
--- a/packages/api/src/app.module.ts
+++ b/packages/api/src/app.module.ts
@@ -7,10 +7,10 @@ import { ScheduleModule } from '@nestjs/schedule';
import { TasksService } from './@core/tasks/tasks.service';
import { LoggerModule } from 'nestjs-pino';
import { HrisModule } from './hris/hris.module';
-import { MarketingAutomationModule } from './marketing_automation/marketing-automation.module';
+import { MarketingAutomationModule } from './marketingautomation/marketingautomation.module';
import { AtsModule } from './ats/ats.module';
import { AccountingModule } from './accounting/accounting.module';
-import { FileStorageModule } from './file_storage/file-storage.module';
+import { FileStorageModule } from './filestorage/filestorage.module';
import { SentryInterceptor, SentryModule } from '@ntegral/nestjs-sentry';
import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
import { LoggerService } from '@@core/logger/logger.service';
diff --git a/packages/api/src/file_storage/@types/index.ts b/packages/api/src/filestorage/@types/index.ts
similarity index 100%
rename from packages/api/src/file_storage/@types/index.ts
rename to packages/api/src/filestorage/@types/index.ts
diff --git a/packages/api/src/file_storage/file-storage.module.ts b/packages/api/src/filestorage/filestorage.module.ts
similarity index 100%
rename from packages/api/src/file_storage/file-storage.module.ts
rename to packages/api/src/filestorage/filestorage.module.ts
diff --git a/packages/api/src/marketing_automation/@types/index.ts b/packages/api/src/marketingautomation/@types/index.ts
similarity index 100%
rename from packages/api/src/marketing_automation/@types/index.ts
rename to packages/api/src/marketingautomation/@types/index.ts
diff --git a/packages/api/src/marketing_automation/marketing-automation.module.ts b/packages/api/src/marketingautomation/marketingautomation.module.ts
similarity index 100%
rename from packages/api/src/marketing_automation/marketing-automation.module.ts
rename to packages/api/src/marketingautomation/marketingautomation.module.ts
diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json
index 13ab06529..3bb8ac3a6 100644
--- a/packages/api/tsconfig.json
+++ b/packages/api/tsconfig.json
@@ -16,8 +16,8 @@
"@crm/*": ["src/crm/*"],
"@hris/*": ["src/hris/*"],
"@ticketing/*": ["src/ticketing/*"],
- "@file-storage/*": ["src/file_storage/*"],
- "@marketing-automation/*": ["src/marketing_automation/*"],
+ "@filestorage/*": ["src/filestorage/*"],
+ "@marketingautomation/*": ["src/marketingautomation/*"],
"@ats/*": ["src/ats/*"],
"@accounting/*": ["src/accounting/*"],
},
diff --git a/packages/shared/src/enum.ts b/packages/shared/src/enum.ts
index 9ce5de31a..2c62a7119 100644
--- a/packages/shared/src/enum.ts
+++ b/packages/shared/src/enum.ts
@@ -4,8 +4,8 @@ export enum ProviderVertical {
ATS = 'ats',
Accounting = 'accounting',
Ticketing = 'ticketing',
- MarketingAutomation = 'marketing_automation',
- FileStorage = 'file_storage',
+ MarketingAutomation = 'marketingautomation',
+ FileStorage = 'filestorage',
Unknown = 'unknown',
}
diff --git a/packages/shared/src/envConfig.ts b/packages/shared/src/envConfig.ts
index 1f8acfd4a..aed096bd1 100644
--- a/packages/shared/src/envConfig.ts
+++ b/packages/shared/src/envConfig.ts
@@ -1,4 +1,4 @@
-import { AuthStrategy, providersConfig } from "./utils";
+import { AuthStrategy, providersConfig, SoftwareMode } from "./utils";
export type BasicAuthData = {
USERNAME: string;
@@ -38,7 +38,6 @@ export function extractVertical(type: string): string {
return parts[1];
}
-//TODO: handle software mode
export function extractSoftwareMode(type: string): string {
// Split the string at the first underscore
const parts = type.split('_');
@@ -46,15 +45,15 @@ export function extractSoftwareMode(type: string): string {
return parts[2];
}
-//TODO: handle software mode
-export function providerToType(providerName: string, vertical: string, authMode: AuthStrategy){
+export function providerToType(providerName: string, vertical: string, authMode: AuthStrategy, softwareMode?: SoftwareMode){
+ const software = softwareMode ? softwareMode.toUpperCase() : SoftwareMode.cloud;
switch(authMode){
case AuthStrategy.api_key:
- return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_API`
+ return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_${software}_API_KEY`
case AuthStrategy.oauth2:
- return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_OAUTH`
+ return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_${software}_OAUTH`
case AuthStrategy.basic:
- return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_BASIC`
+ return `${providerName.toUpperCase()}_${vertical.toUpperCase()}_${software}_BASIC`
}
}
@@ -66,7 +65,7 @@ export function extractAuthMode(type: string): AuthStrategy {
switch(authMode){
case 'OAUTH':
return AuthStrategy.oauth2;
- case 'API':
+ case 'API_KEY':
return AuthStrategy.api_key;
case 'BASIC':
return AuthStrategy.basic;
diff --git a/packages/shared/src/providers.ts b/packages/shared/src/providers.ts
index f2c3bc4f7..e16194d9f 100644
--- a/packages/shared/src/providers.ts
+++ b/packages/shared/src/providers.ts
@@ -8,8 +8,8 @@ export const HRIS_PROVIDERS = [''];
export const ATS_PROVIDERS = [''];
export const ACCOUNTING_PROVIDERS = [''];
export const TICKETING_PROVIDERS = ['zendesk', 'front', 'github', 'jira', 'gorgias'];
-export const MARKETING_AUTOMATION_PROVIDERS = [''];
-export const FILE_STORAGE_PROVIDERS = [''];
+export const MARKETINGAUTOMATION_PROVIDERS = [''];
+export const FILESTORAGE_PROVIDERS = [''];
export function getProviderVertical(providerName: string): ProviderVertical {
@@ -28,10 +28,10 @@ export function getProviderVertical(providerName: string): ProviderVertical {
if (TICKETING_PROVIDERS.includes(providerName)) {
return ProviderVertical.Ticketing;
}
- if (MARKETING_AUTOMATION_PROVIDERS.includes(providerName)) {
+ if (MARKETINGAUTOMATION_PROVIDERS.includes(providerName)) {
return ProviderVertical.MarketingAutomation;
}
- if (FILE_STORAGE_PROVIDERS.includes(providerName)) {
+ if (FILESTORAGE_PROVIDERS.includes(providerName)) {
return ProviderVertical.FileStorage;
}
return ProviderVertical.Unknown;
diff --git a/packages/shared/src/utils.ts b/packages/shared/src/utils.ts
index 2613f2a7f..5d6fdfe26 100644
--- a/packages/shared/src/utils.ts
+++ b/packages/shared/src/utils.ts
@@ -4,6 +4,10 @@ export enum AuthStrategy {
basic
}
+export enum SoftwareMode {
+ cloud = "CLOUD",
+}
+
export type ProviderConfig = {
scopes: string;
logoPath: string;
@@ -876,7 +880,7 @@ export const providersConfig: ProvidersConfig = {
authStrategy: AuthStrategy.oauth2
},
},
- 'marketing_automation': {
+ 'marketingautomation': {
'active_campaign': {
scopes: '',
urls: {