From af4b13864fd3f641440376b1b685b863913650c7 Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Thu, 25 Sep 2025 01:57:17 +0200 Subject: [PATCH] Keys fixed --- env_dev.20250925_014403.backup | 95 +++++++++++++++++++++++++++ env_dev.env | 26 ++++---- env_int.20250925_014803.backup | 95 +++++++++++++++++++++++++++ env_int.20250925_015508.backup | 95 +++++++++++++++++++++++++++ env_int.env | 28 ++++---- env_prod.20250925_014849.backup | 95 +++++++++++++++++++++++++++ env_prod.env | 26 ++++---- modules/shared/configuration.py | 53 ++++++++++----- tool_security_encrypt_config_value.py | 86 +++++++++++++++++++----- 9 files changed, 527 insertions(+), 72 deletions(-) create mode 100644 env_dev.20250925_014403.backup create mode 100644 env_int.20250925_014803.backup create mode 100644 env_int.20250925_015508.backup create mode 100644 env_prod.20250925_014849.backup diff --git a/env_dev.20250925_014403.backup b/env_dev.20250925_014403.backup new file mode 100644 index 00000000..26652bfb --- /dev/null +++ b/env_dev.20250925_014403.backup @@ -0,0 +1,95 @@ +# Development Environment Configuration + +# System Configuration +APP_ENV_TYPE = dev +APP_ENV_LABEL = Development Instance Patrick +APP_API_URL = http://localhost:8000 +APP_KEY_SYSVAR = D:/Athi/Local/Web/poweron/local/key.txt +APP_INIT_PASS_ADMIN_SECRET = The 1st Poweron Admin +APP_INIT_PASS_EVENT_SECRET = The 1st Poweron Event + +# PostgreSQL Storage (new) +DB_APP_HOST=localhost +DB_APP_DATABASE=poweron_app +DB_APP_USER=poweron_dev +DB_APP_PASSWORD_SECRET = dev_password_20250901 +DB_APP_PORT=5432 + +# PostgreSQL Storage (new) +DB_CHAT_HOST=localhost +DB_CHAT_DATABASE=poweron_chat +DB_CHAT_USER=poweron_dev +DB_CHAT_PASSWORD_SECRET = dev_password_20250901 +DB_CHAT_PORT=5432 + +# PostgreSQL Storage (new) +DB_MANAGEMENT_HOST=localhost +DB_MANAGEMENT_DATABASE=poweron_management +DB_MANAGEMENT_USER=poweron_dev +DB_MANAGEMENT_PASSWORD_SECRET = dev_password_20250901 +DB_MANAGEMENT_PORT=5432 + +# Security Configuration +APP_JWT_KEY_SECRET = rotated_jwt_secret_2025_09_17_prod_e1a9c4d7-6b8f-4f2e-9c1a-7e3d2a1b9c5f +APP_TOKEN_EXPIRY=300 + +# CORS Configuration +APP_ALLOWED_ORIGINS=http://localhost:8080,https://playground.poweron-center.net + +# Logging configuration +APP_LOGGING_LOG_LEVEL = DEBUG +APP_LOGGING_LOG_DIR = D:/Athi/Local/Web/poweron/local/logs +APP_LOGGING_FORMAT = %(asctime)s - %(levelname)s - %(name)s - %(message)s +APP_LOGGING_DATE_FORMAT = %Y-%m-%d %H:%M:%S +APP_LOGGING_CONSOLE_ENABLED = True +APP_LOGGING_FILE_ENABLED = True +APP_LOGGING_ROTATION_SIZE = 10485760 +APP_LOGGING_BACKUP_COUNT = 5 + +# Service Redirects +Service_MSFT_REDIRECT_URI = http://localhost:8000/api/msft/auth/callback +Service_GOOGLE_REDIRECT_URI = http://localhost:8000/api/google/auth/callback + +# OpenAI configuration +Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions +Connector_AiOpenai_API_SECRET = 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 +Connector_AiOpenai_MODEL_NAME = gpt-4o +Connector_AiOpenai_TEMPERATURE = 0.2 +Connector_AiOpenai_MAX_TOKENS = 2000 + +# Anthropic configuration +Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages +Connector_AiAnthropic_API_SECRET = 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 +Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 +Connector_AiAnthropic_TEMPERATURE = 0.2 +Connector_AiAnthropic_MAX_TOKENS = 2000 + +# Agent Mail configuration +Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c +Service_MSFT_CLIENT_SECRET = Kxf8Q~2lJIteZ~JaI32kMf1lfaWKATqxXiNiFbzV +Service_MSFT_TENANT_ID = common + +# Google Service configuration +Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com +Service_GOOGLE_CLIENT_SECRET = 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 + +# Tavily Web Search configuration +Connector_WebTavily_API_KEY_SECRET = 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 + +# Google Cloud Speech Services configuration +Connector_GoogleSpeech_API_KEY_SECRET = { + "type": "service_account", + "project_id": "poweronid", + "private_key_id": "88db66e4248326e9baeac4231bc196fd46a9a441", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTnJuxA+xBL3LA\nPgFILYCsGuppkkdO6d153Q36f2jTj6zpH3OhKMVsaaTBknG2o2+D0Whlk6Yh5rOw\nkWzpMC3y81leRLm5kucERMkBUgd2GL4v16k6m+QGuC3BFlt/XeyuckJNW0V6v/Dy\n3+bSYM7/5o1ftPNWJeAIEWoE/V4wKCYde8RE4Vp1LO5YwhgcM4rRuPmF2OhekpA+\npteYwkY/8/gTTRpZIc8OTsBYRbaMwsjoDj5riuL3boVtkwZwKRb+ZLvupXeU7Ds7\n1305odTcZUwnImHiHfuq83ZJViQiLRNhUAFnQIXPrYLwEpCmzRBGzYHaRlb69ga/\nzqUbKnclAgMBAAECggEAH6W9qHehubioPMAJM7Y6bC2KU/JLNS4csBZd+idb52gG\nwBwIEFjR+H4ZjymhAA4+pe7c4h7MKyh0RI/l7eoFX98Cb+rEq/r1udm1BhGH3s2h\n2UiI8qRQh1YRjF2/nrN5VjhDBOFa6W9opaopZy/l8AzsT8f21zIgPen8z8o6GpFg\n64fJFcbqCGk2ykN2+x2pIOT04tmCszrfbXZP8LEs4xrUB/XwlHL1vT/M3EWIKbnj\njDaIMjw7q/KRgNUvmKS6SU9b3fnOLcQCz9f5cKdiWACKIU/UvuiWhWJ9ou6BWLWU\nva1A6Fi4XJjhW7s3po58/ioQfl0A9p/L92lGg4ST8QKBgQDx8LIM1g0dh9Ql6LmH\nBUGCOewNNXTs+y3ZznUfvVMoyyZK5w/pzeUvkmOwzbRGnZJ9WyCghq8aezyEpo2D\nPL7Odf988IeHmvhyZIM4PLJYgDvSwGXyf/gh6gJkf/4wpx+tx/yQYNBm3Rht7sA0\npSaLehK0E0kW1uyBzHGKgyQOhwKBgQDf6LiZ7hSQqh54vIU1XMDRth0UOo/s/HGi\nDoij29KjmHjLkm8vOlCo83e79X0WhcnyB5kM7nWFegwcM1PJ0Dl8gidUuTlOVDtM\n5u2AaxDoyXAUL457U5dGFAIW+R653ZDkzMfCglacP8HixXEyIpL1cTLqiCAgzszS\nLcSWwoAr8wKBgQC4CGm3X97sFpTmHSd6sCHLaDnJNl9xoAKZifUHpqCqCBVhpm8x\nXp+11vmj1GULzfJPDlE8Khbp4tH+6R39tOhC7fjgVaoSGWxgv1odHfZfYXOf9R/X\nHUZmrbUSM1XsNkPfkZ7pR+teQ1HA1Xo40WMHd1zgw0a2a9fNR/EZ9nUn4wKBgGaK\nUEgGNRrPHadTRnnaoV8o1IZYD2OLdIqvtzm7SOqsv90SkaKCRUAqR5InaYKwAHy7\nqAa5Cc73xqX/h4arujff7x0ouiq5/nJIa0ndPmAtKAvGf6zQ6j0ompBkxAKAioON\nmInmYL2roSI2I5G/LagDkDrB3lzH+Brk5NvZ9RKrAoGAGox462GGGb/NbGdDkahN\ndifzYYvq4FPiWFFo0ynKAulxCBWLXO/N45XNuAyen433d8eREcAYz1Dzax44+MdQ\nHo9dU7YcZvFyt6iZsYeQF8dluHui3vzMpUe0KbqpZC5KMOSw53ZdNIwzo8NTAK59\n+uv3dHGj7sS8fhDo3yCifzc=\n-----END PRIVATE KEY-----\n", + "client_email": "poweron-voice-services@poweronid.iam.gserviceaccount.com", + "client_id": "116641749406798186404", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/poweron-voice-services%40poweronid.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} + +# Feature SyncDelta JIRA configuration +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = ATATT3xFfGF0d973nNb3R1wTDI4lesmJfJAmooS-4cYMJTyLfwYv4himrE6yyCxyX3aSMfl34NHcm2fAXeFXrLHUzJx0RQVUBonCFnlgexjLQTgS5BoCbSO7dwAVjlcHZZkArHbooCUaRwJ15n6AHkm-nwdjLQ3Z74TFnKKUZC4uhuh3Aj-MuX8=2D7124FA diff --git a/env_dev.env b/env_dev.env index 266c6023..e783e815 100644 --- a/env_dev.env +++ b/env_dev.env @@ -5,32 +5,32 @@ APP_ENV_TYPE = dev APP_ENV_LABEL = Development Instance Patrick APP_API_URL = http://localhost:8000 APP_KEY_SYSVAR = D:/Athi/Local/Web/poweron/local/key.txt -APP_INIT_PASS_ADMIN_SECRET = DEV_ENC:Z0FBQUFBQm8xRjFXZXRwU0NnLTNhdFVUU3ZlcFU4emRMa2xLRno5c0xwSVhOcjgzNlBUWnZ2V2RmQ0RmRmE4a3BTQ3FRMHN2aWdsSTAxSDJrUGJ2UmQwME5Pa3RNTTgyVFh6NUl4YTJoZTVxdkExUVkyWnpac1k9 -APP_INIT_PASS_EVENT_SECRET = DEV_ENC:Z0FBQUFBQm8xRjFXQWY5WWpQYXUzX2dTQllVNk1Vb1J1S2t2NG9PMEYzSWNLeVR6WlhvYjU4TDFmYjZva01oZll5QWI0MHU5cXJvT0lvZHdoNW01WWxqRG9pdEQyWTcxYWlJVE5SRXVIMkh2VTRlYk1kSGRVNnM9 +APP_INIT_PASS_ADMIN_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEeFFtRGtQeVUtcjlrU3dab1ZxUm9WSks0MlJVYUtERFlqUElHemZrOGNENk1tcmJNX3Vxc01UMDhlNU40VzZZRVBpUGNmT3podzZrOGhOeEJIUEt4eVlSWG5UYXA3d09DVXlLT21Kb1JYSUU9 +APP_INIT_PASS_EVENT_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpERzZjNm56WGVBdjJTeG5Udjd6OGQwUVotYXUzQjJ1YVNyVXVBa3NZVml3ODU0MVNkZjhWWmJwNUFkc19BcHlHMTU1Q3BRcHU0cDBoZkFlR2l6UEZQU3d2U3MtMDh5UDZteGFoQ0EyMUE1ckE9 # PostgreSQL Storage (new) DB_APP_HOST=localhost DB_APP_DATABASE=poweron_app DB_APP_USER=poweron_dev -DB_APP_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNU2ZKVk41bU5HbmJOREJ6ZmZ1cTcwZ3ZXQlcxY0dTcjVTUEgxemlRVmtUYWlmWXdicW1JcDFUQkRHamFZVUJSUlg4ZTlHaWZIUGhzVUUtTEFiYkxZeXN6NEtrSjZubjFzN0g2OG5SdjdnQm89 +DB_APP_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEcUIxNEFfQ2xnS0RrSC1KNnUxTlVvTGZoMHgzaEI4Z3NlVzVROTVLak5Ubi1vaEZubFZaMTFKMGd6MXAxekN2d2NvMy1hRjg2UVhybktlcFA5anZ1WjFlQmZhcXdwaGhWdzRDc3ExeUhzWTg9 DB_APP_PORT=5432 # PostgreSQL Storage (new) DB_CHAT_HOST=localhost DB_CHAT_DATABASE=poweron_chat DB_CHAT_USER=poweron_dev -DB_CHAT_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNZk1fUE1Pa01QM1c0WDdaTnQ0ZWRhTExmZm5iR2R0SEZlMDI2VmJvQ2Nrc0RDY1Z3NG9CSVJucUxkX1B4Qk45bkxvN05XYmZXY1NGa2gtWWxuaFg5bmFnR3d0ZmdYS1A5V2xSeFFYTm5ialE9 +DB_CHAT_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpERFNzNVhoalpCR0QxYXAwdEpXWXVVOTdZdWtqWW5FNXFGcFl2amNYLWYwYl9STXltRlFxLWNzVWlMVnNYdXk0RklnRExFT0FaQjg2aGswNnhhSGhCN29KN2VEb2FlUV9NTlV3b0tLelplSVU9 DB_CHAT_PORT=5432 # PostgreSQL Storage (new) DB_MANAGEMENT_HOST=localhost DB_MANAGEMENT_DATABASE=poweron_management DB_MANAGEMENT_USER=poweron_dev -DB_MANAGEMENT_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNVFd0WkdsZGlLYjcxOUpaM2szUGZyWkZseHBCM1JaYm5fMnJNQ1hVLUIwVVlMaTAtZlBkZ0hsTVM5eXVjZkoxamdmWU00dUU5TEs5Zzlhd0RXYVJGR2twV2hLbjFoN2RsUkVjSGd5NExqV1U9 +DB_MANAGEMENT_PASSWORD_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEUldqSTVpUnFqdGhITDYzT3RScGlMYVdTMmZhOXdudDRCc3dhdllOd3l6MS1vWHY2MjVsTUF1Sk9saEJOSk9ONUlBZjQwb2c2T1gtWWJhcXFzVVVXd01xc0U0b0lJX0JyVDRxaDhNS01JcWs9 DB_MANAGEMENT_PORT=5432 # Security Configuration -APP_JWT_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNMnRzSGtvR1Uyd1RmVm01MTJUTkFlQVRYVHJNVmVhSEpaY2k4YTdIUUtvalhLXzJaeDJVQkhlRHZ2MnExR2k4b09ScnF5U2xubnZtWmRUNmx1b2c4bmItbmdMWmc2eVU2X1pFVmE0UzR0d0xzOG52SkVlSi1uZGZoYVdqMGN3Y0tIVUR1bGtyLW9hNEdRemwtSlJJc1RGbWxJdlpxdHhtMldJTjRDWTE4MFhjPQ== +APP_JWT_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpERjlrSktmZHVuQnJ1VVJDdndLaUcxZGJsT2ZlUFRlcFdOZ001RnlzM2FhLWhRV2tjWWFhaWQwQ3hkcUFvbThMcndxSjFpYTdfRV9OZGhTcksxbXFTZWg5MDZvOHpCVXBHcDJYaHlJM0tyNWRZckZsVHpQcmxTZHJoZUs1M3lfU2ljRnJaTmNSQ0w0X085OXI0QW80M2xfQnJqZmZ6VEh3TUltX0xzeE42SGtZPQ== APP_TOKEN_EXPIRY=300 # CORS Configuration @@ -52,32 +52,32 @@ Service_GOOGLE_REDIRECT_URI = http://localhost:8000/api/google/auth/callback # OpenAI configuration Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions -Connector_AiOpenai_API_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNdndUSzRSc0l6UGdRYzNkVlJWZjF1ZG1Id3RwTFhPRnBkX3BhN0NlMHk0a2NkQmk2bmhnemNwY1FtanFEemZUd21zcVFYUTRGWUhpeTlOSEgyUWdZVVBneTYxT2RZQTEyZk1XQ3Y5MDhDd3JnMXRwbVVfaVpDOWF2TDU3Mjl2YURvR0daLW92dDdmUktkQ2VOei0tdHdBPT0= +Connector_AiOpenai_API_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEajBuZmtYTVdqLTBpQm9KZ2pCXzRCV3VhZzlYTEhKb1FqWXNrV3lyb25uZUN1WVVQUEY3dGYtejludV9MNGlKeVREanZGOGloV09mY2ttQ3k5SjBFOGFac2ZQTkNKNUZWVnRINVQyeWhsR2wyYnVrRDNzV2NqSHB0ajQ4UWtGeGZtbmR0Q3VvS0hDZlphVmpSc2Z6RG5nPT0= Connector_AiOpenai_MODEL_NAME = gpt-4o Connector_AiOpenai_TEMPERATURE = 0.2 Connector_AiOpenai_MAX_TOKENS = 2000 # Anthropic configuration Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages -Connector_AiAnthropic_API_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNRW9tR094QlB6bU9na1lGc0RIYzZOX3g5ZGh4dC1NaXZnUExFWDhnWURQdmNRTi1vc2F6RExGZTFZRU5BUjVjV1NTb3hURS1UY1NYdVhBUVRPemptZXZIclRhOG8wLVkxTGc4R01RTG95THFET2ZJRGlSeWMzcVdwejdVcjIyR0VoUzRaVUsyLVVsQ0sxckxoc2MwWmFfSjBvOTNMaGtCajFpRGpqYm5Sc0Zud08xb2dWdXhOYzQ3ZXZySUNrRVZmYnpyQ0tQdjNjbVExelA2UXNzOENzQT09 +Connector_AiAnthropic_API_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpENmFBWG16STFQUVZxNzZZRzRLYTA4X3lRanF1VkF4cU45OExNMzlsQmdISGFxTUxud1dXODBKcFhMVG9KNjdWVnlTTFFROVc3NDlsdlNHLUJXeG41NDBHaXhHR0VHVWl5UW9RNkVWbmlhakRKVW5pM0R4VHk0LUw0TV9LdkljNHdBLXJua21NQkl2b3l4UkVkMGN1YjBrMmJEeWtMay1jbmxrYWJNbUV0aktCXzU1djR2d2RSQXZORTNwcG92ZUVvVGMtQzQzTTVncEZTRGRtZUFIZWQ0dz09 Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 Connector_AiAnthropic_TEMPERATURE = 0.2 Connector_AiAnthropic_MAX_TOKENS = 2000 # Agent Mail configuration Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c -Service_MSFT_CLIENT_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNay04TEUzbmRHR29jNWp0Nm1MZEtjUkNKRVVTU1p0QUNHMC1vWHpFcTR5eHNDMDBYbnVzRWpEdWVQeE1FRkJDMGlWRWNXZHZfc3M5aG1UdmRYd1J0cElWZGY0aVZ1OWNUMndZTWNXNm9fQ0hCemNwMWdUQW9ya0owOEVUMG1kLUk= +Service_MSFT_CLIENT_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEQk4xYnpmbnItUEU3dHU4eHB5dzVYay1WT012RTRLUWJDTlBILVY5dC1FX3VMNjZmLThrbDRFNWFSNGprY3RRTlpYNGlubVBpNnY3MjNJcGtzVk9PMzRacl9LUlM2RU5vTVVZWHJvaUhWSHVfc1pNR0pfQmI5SEprOG5KdlB1QnQ= Service_MSFT_TENANT_ID = common # Google Service configuration Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com -Service_GOOGLE_CLIENT_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNOVNWNjV1SXllM1ZnWVRmQTdXZmY1YnBjXzl6Q2lKR3R6SzA4SHFvWU96QWVyWG4wc2tLaGQ2SkVOM0tNMUpXaHNNTjEyOWRGeWVtSjdycHBOSjFlRU5XWVFKV0o5Z2l3THU5SHJLaHJXZC1ST1FGdVhwdXBaMFFmQ0lzUmplQmo= +Service_GOOGLE_CLIENT_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpETDJhbGVQMHlFQzNPVFI1ZzBMa3pNMGlQUHhaQm10eVl1bFlSeTBybzlTOWE2MURXQ0hkRlo0NlNGbHQxWEl1OVkxQnVKYlhhOXR1cUF4T3k0WDdscktkY1oyYllRTmdDTWpfbUdwWGtSd1JvNlYxeTBJdEtaaS1vYnItcW0yaFM= # Tavily Web Search configuration -Connector_WebTavily_API_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNSEJ2YmVieFRaWk5yR1kwVzJ2ajlvTVVZN3dzV2pBT25nTmRsa0NXZEM2eHhqRXhBZ19VMTlFWkQ4ZzlnTUY1M0h0SUpWenZLR3JtZDBVOXZuT1JFV3UxMkJCdjZ2YjB1cE1jYlBOVzZsSHVXa19kcTNiVzZIRUZFdVZCeXJ5YUQ= +Connector_WebTavily_API_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEQTdnUHMwd2pIaXNtMmtCTFREd0pyQXRKb1F5eGtHSnkyOGZiUnlBOFc0b3Vzcndrc3ViRm1nMDJIOEZKYWxqdWNkZGh5N0Z4R0JlQmxXSG5pVnJUR2VYckZhMWNMZ1FNeXJ3enJLVlpiblhOZTNleUg3ZzZyUzRZanFSeDlVMkI= # Google Cloud Speech Services configuration -Connector_GoogleSpeech_API_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8wSFJNSFFITGlUVzF3NE5Ldk10d3o5MS10Q2o4aEJGM250WF9CeWxFQVNaNHBhMk1hS3E5YXRrakh5dmx0VDJuZ3BsWGVMTC0tbU9wWFRWZWM1N25ibWpkeF84enJ1Y2ViMVd1V0plUWdxN3VId1VRUzBhN3MzLVBkSXEwM1BHT2Z2c3JBalh6eXVKMUNFX2pfbGdGYUg1ZUFfcXhSRnJyT0tzdWVVdG1HSHBZOUgwLUVPMVQ4YkZUc3dMcFlLWjRxQUM1X05OWm5ndmJGcjFETV9UM1FoLWt2RVVEem92UGhvZlRFXzNxOVRzQkhyV0hqeTRWQXdMdDVDbEMwOWFkTnV3UXpsYWZwRENaRzd4QjlwTjJUWHhHLVZPTzd1eXNhSWh5ajNwelgxSDRlNUx0N05yTlI1N1RjSzdIZGhFLXBOMjEwMkxsT0daSVhiWVpQZUtfNVdwdGVrazVMM2NkUGZPOHBuNjM3YXdFcGFPdlVtY01ReGhsVENwNnRvNGhJejNHd3hFOFA0bWgxalFFNDVoQ2xYTG5VN1dDZGhndEdWRlFjYzBRMUgwbzRfS2N3VVgyaXJpYmJfZzNadmx5cTFxS2Vja1I5Qm1UT0hDM1FuNk5JRmYtT2p3RWp2SWxTWGZuU1psOUN4NEJTOHkweWIzY2NjbTJRZG5oRjVxNGh4LTUwZE1zZi1zLU43Ulk4UGtmR0N6dU5RcVVvRF9DQlE5Sk1FR1YtOE84WnVuTDlOUHhQR1JLT2g0VkNIT2ctWTBuMXIwNHhSSjcxNnNWRFhQc18zSm1UR1M0Mm54TGxsRG5uX2tDSWhBNDRGaHFObkhuVmtnVVlQU1FhVWhTdnpGUDRfcDQ1OWpERklHMmN5Y0RVWC1JYlItTUozaWY1dmxZUW12NXAtUEtsQWpqUFk4NzFwWVNfSUNqeDNkc25wMnJHN3c5NTB1dmxmUFZfU0NWS1hQMTc1NmdOTmEyREZRVXB0cmlyaldkT3B0Q3FQMFdpdWQ3WU1RZDZKYlFneDdnQ2NWWHFHSXl1c2xRN21LbDdyUGFUcWFxeVVTOWoxSkVJaFZiUHI2VFBHWEdvM2Q1cXdIVGYyc3Y2cVdRd00ydHdrME8tcDVqSmNLV193R291VElTNWFNa2pMQi1zX21VdnZ1R0tTbEJndndvbWRrVE52eW1aTFFzRURtdGItc3FJeXJDenVTWTlIZ0E1eG1yX2N1SHJSUWIxdm8wakdzaDIyaDQ0cE9UdDlhclp2MzVVamQ2em0zbmdLUzBJa1ZaRFpQaTBnZGpTWnRhRGZxUVNZWDg5VDFndWFmZlZnVG5SUEhlWkpfQnREWS0xbEZfNXd5OUpEUkZHa1NZNWtPbnBadFFialgzazlyM0dTb3ctR2x5LUozT3VDc3F1Tk5TbGN2MnRRS1hTb1gzWUNVSlJuUl85azhxaGxCMzVNQUQzVGg1cDZHalRaOUFrM1JPSGJKaGlKRTAwbnV4TmxIZnhkMF9FODVKUk1GZGlWZk1ScnhmQnJXWmRxMTk3SWhIdnBjSVJJOElkalRUWXFRTFNvQXZpdFpFOUdDWkhHOTRLVmN2cEh0X2JpYjNvRjhvUHFVQVNQdXY4OWxQSWNvcUNfZW5HYy10dEFicldhRHZLS1ktY2RGczQta2lGWXkxb2RhNUZMNExabWx0dXdhR3BSWGpSYVUxRXJZVTNBYmdNVFd5NW1vY2s0T0RlV3hqZjNSMHhJakY1TDBackV5bmM2V1o2SEJlT3RSbnpPR0VXbmhQTUtPMzYyU1RjbFRmQUlWTUZjVGRheXBuekZJN3NNZVFFZ3JHenNnOFdQVWxsbFBoYTVvQUd1NGx2SDdYcGhrdUpSWlRIRWVVUkpxdjJSZV9zb0J3N3o4QnRpYXpTRHdkZ1pqSWswSjdJMjVEZDZUNzZuWDVXWkNxUDRtQ1p1dnk2ZEx0S0NKT2ZUc3B5eEdRdEpnTlZQMkt5OHFjQ3FfcHpzUFZEY3Z5WDdEQkt4cEN2MFg2eXF4bDZFeHZFWk5tMFpUR0xDZi1JVjN4eUtRaXlNXzBJUFV2N19MVTRhMWtxWnd6d0Y2bVNFQUJSdEU5Z01FTjEtZDJmWkpEYUlsTVJnTEJYdU1iVFoySEttd3libURrSUNJelVic2Mzb0t5ZzNDX0hjZUtfOFQ1QkxRWmx2dmhnbDhNZllla1dNa0Y5akVpNDRKdHRSUU9fTE9sYVUzdzZtTkJEYTBWdkxkRURSa01TOGxWcVZkUmxkWTA1QjJjS1pOUjJEQTZxeDdSVXhNWldXbnE1V1J2STVCNkt2VHRuNEdtaHUweWdEbUZyMlhWd09FWWI0UUFyQVpUeDE3QXdfQkMtcjdpUU5GUTQzUEczNWg1Wm5rVEgwRW11RFowVnFxYnpGNUYwYks1Y3JPbTdUc2ZXS1ZfYzdhcno3U1ZXZUVkblRoOVl5XzZpTUgwRXFZeFd6NXdqTGlvNm1QeXgxS2ZFTVJSV1JVejliWFBVRGU1MWVudEZzRDFwSW94YlU1Y3JmallsVldXcHdvTmFQdnU5UE0tNHNHMXhPWE1JQUxCNC1WVVRJNmNJcTM3a1dUWWwzSVptTFg3OXlWLWxITkdiR0MyTmRzRWFOeHBMZEVzbms3RC1MTFo1TVhKeURhUW9peHk1bHhJbHphVzR4RmxiUkJwcmkzcWZ3S3dWV0Jkb2VaZ3pMTXdUNUJmZjZfVEVXeDFNMnBvemM0TUJNeUQ2SE1aeWczc0V6M0NUMHFGdURMbTRka3AzZ1d1TUh2V1c5RzBKQVVlTEstWEthOTdaWUZHTlRHaVNmbEFJRFU3M0l2TWlBNF9kaFpJUXlxMHJYa2lxOGFRbDNqMTA1RDFFclFTcGxmb0g2WVI3Z0NrLWN4cUNzNWVuR2VMaE41dWRqMnR5eWNuM0gwUmIwcTFEQ09qbmJCUFIwbjM4MGF6TlhxQWpKOFZXWGNKdnl2Wi1zU1BsZU5NYWpsbzVKMGxTLUJKckd6enJnZWhXemstenN3NGNqUk9HeGlGaFNhSl83TlUzLTVZWW9zYVZZTTZzSjNfd3JkVDNaZVp4dk1GQVMxblJBRW1BWUZLU1VKUFkyQ1dPbndUNjYwdll2U0JxN1FQNk5OaGVYR3U5TXdGNGFVZGVXcS1tS2dwbVc1V3hEeXhVNkJ2cjdGX2FpY1NvOTJhcWFyOUVGOFpOdmd0R29Rb2RIaU01R05LeWRxUE00WlhOQVlMbkZxZDNyUFRXdUFGZ0lOUmp2RzIyaDlzMGxNQk40VzFzYjAwMEhjRVlrNWJ5cFhpVWYxQkxYQ25rUDJ3RTY1VlVFLThiNG1nY1hkdnZTMGoyVlN6dkJleFhndDNCODhlOVl1ZHBkci1hd3l0NGNXeWZ6aUp4S3pHS1c4aDM3WElBTjBwYlNSbmJoMk5SNF81VVNqd0dXY1JUejVsZnpGS1Z5dHFPNUVVM1I5eGhjblZjMV9idFJkc3NZaUdHRlIzQWJQdHhzT01qVW8xUUwxNHZmY3Q1aHBnNHhXTGRjb1BmTmM2X0NmdkpxNS1JMHNQNVg1N0xsd0pmdE8wNktkUGpuX0F3LURyaGhyajg3eWNDdkozUFZIYmpJTTZ3WWVCVFZUd1AtRklFUUxTNXkzalpfdlc4VE1tOHU1Q0MtUWdLbEdYRzdVU1RkM3gyeEY3eXBWLUhXVVo4VkZoUHVkakJPNk0tNTJKTU1JZjVISlR3SmJBQkVhRW51UHg3UjBOMVRPRnF2dzIwRkgxczBBUWZpemFFMzFTeDJfWHZhSkhsTzBhcFIzVmZRODEzRUl1b1ZDUGFqYUxjN2JsbkhYdHVPT00yYlUwbmpVbkU0RkJXbWx5UVFJdHNvNUdxQzMyQnQycDJpMjlnd2xwb3huRUJiZUg5dkhaMjhMV2R5T0NsU0N4WjdBX2ZfODhOdTZOZ0x6WlRIUGI3MzR1ZkJicHN6NzUzRzlsUmVkNlR6MjZjTTA3c290Qzh4ejRiWERHbmFtV1BQV2ZKb2pGU0F1OGsySG9hNHdtSkkxTWpwV2gyaVpWcFpsRWs5a0hSY3UzMk4wQ0dkZWtMbG4xOFZ6TXdEOXBob3I0NjNkT28tZk5IcW5FUkg4YnBtUVFLY1Q5M1lzYzhrRGZOaDF6SnpnejRuM1Y3SW1xMUJmLXpJdEM0UjNHU0t5OEhoamxxLXRmWmtyOS1ud09XeGFzc3VFXzNPWWNGcXFwdHN2cVFEZ0dWdUNKbF9Lc3d6dVhPb3NLMlNEaW1xd3JPLUViYV9GTnNRPT0= +Connector_GoogleSpeech_API_KEY_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpETk5FWWM3Q0JKMzhIYTlyMkhuNjA4NlF4dk82U2NScHhTVGY3UG83NkhfX3RrcWVtWWcyLXRjU1dTT21zWEl6YWRMMUFndXpsUnJOeHh3QThsNDZKRXROTzdXRUdsT0JZajZJNVlfb0gtMXkwWm9DOERPVnpjU0pyUEZfOGJsUnprT3ltMVVhalUyUm9hMUFtZEtHUnJqOGZ4dEZjZm5SWVVTckVCWnY1UkdVSHVmUlgwbnAyc0xDQW84R3ViSko5OHVCVWZRUVNiaG1pVFB6X3EwS0FPd2dUYjhiSmRjcXh2WEZiXzI4SFZqT21tbDduUWRyVWdFZXpmcVM5ZDR0VWtzZnF5UER6cGwwS2JlLV9CSTZ0Z0IyQ1h0YW9TcmhRTXZEckp4bWhmTkt6UTNYMk4zVkpnbUJmaDIxZnoyR2dWTEYwTUFEV0w2eUdUUGpoZk9XRkt4RVF1Z1NPdUpBeTcyWV9PY1Ffd2s0ZEdVekxGekhoeEl4TmNqaXYtbUJuSVdycFducERWdWtZajZnX011Q2w4eE9VMTBqQ1ZxRmdScWhXY1E3WWhzX1JZcHhxam9FbDVPN3Q1MWtrMUZuTUg3LVFQVHp1T1hpQWNDMzEzekVJWk9ybl91YUVjSkFob1VaMi1ONEtuMnRSOEg1S3QybUMwbVZDejItajBLTjM2Zy1hNzZQMW5LLVVDVGdFWm5BZUxNeEFnUkZzU3dxV0lCUlc0LWo4b05GczVpOGZSV2ZxbFBwUml6OU5tYjdnTks3Y3hrVEZVTHlmc1NPdFh4WE5pWldEZklOQUxBbjBpMTlkX3FFQVJ6c2NSZGdzTThycE92VW82enZKamhiRGFnU25aZGlHZHhZd2lUUmhuTVptNjhoWVlJQkxIOEkzbzJNMjZCZFJyM25tdXBnQ2ZWaHV3b2p6UWJpdk9xUEhBc1dyTlNmeF9wbm5yYUhHV01UZnVXWDFlNzBkdXlWUWhvcmJpSmljbmE3LUpUZEg4VzRwZ2JVSjdYUm1sODViQXVxUzdGTmZFbVpiN2V1YW5XV3U4b2VRWmxldGVGVHZsSldoekhVLU9wZ2V0cGZIYkNqM2pXVGctQVAyUm4xTHhpd1VVLXFhcnVEV21Rby1hbTlqTl84TjVveHdYTExUVkhHQ0ltaTB2WXJnY1NQVE5PbWg3ejgySElYc1JSTlQ3NDlFUWR6STZVUjVqaXFRN200NF9LY1ljQ0R2UldlWUtKY1NQVnJ4QXRyYTBGSWVuenhyM0Z0cWtndTd1eG8xRzY5a2dNZ1hkQm5MV3BHVzA2N1QwUkd6WlRGYTZQOUhnVWQ2S0Y5U0s1dXFNVXh5Q2pLWVUxSUQ2MlR1ak52NmRIZ2hlYTk1SGZGWS1RV3hWVU9rR3d1Rk9MLS11REZXbzhqMHpsSm1HYW1jMUNLT29YOHZsRWNaLTVvOFpmT3l3MHVwaERTT0dNLWFjcGRYZ25qT2szTkVFUnRFR3JWYS1aNXFIRnMyalozTlQzNFF2NXJLVHVPVF9zdTF6ZjlkbzJ4RFc2ZENmNFFxZDZzTzhfMUl0bW96V0lPZkh1dXFYZlEteFBlSG84Si1FNS1TTi1OMkFnX2pOYW8xY3MxMVJnVC02MDUyaXZfMEVHWDQtVlRpcENmV0h3V0dCWEFRS2prQXdNRlQ5dnRFVHU0Q1dNTmh0SlBCaU55bFMydWM1TTFFLW96ODBnV3dNZHFZTWZhRURYSHlrdzF3RlRuWDBoQUhSOUJWemtRM3pxcDJFbGJoaTJ3ZktRTlJxbXltaHBoZXVJVDlxS3cxNWo2c0ZBV0NzaUstRWdsMW1xLXFkanZGYUFiU0tSLXFQa0tkcDFoMV9kak41ZjQ0R214UmtOR1ZBanRuemY3Mmw1SkZ5aDZodGIzT3N2aV85MW9kcld6c0g0ZDgtTWo3b3Y3VjJCRnR2U2tMVm9rUXNVRnVHbzZXVTZ6RmI2RkNmajBfMWVnODVFbnpkT0oyci15czJHU0p1cUowTGZJMzVnd3hIRjQyTVhKOGRkcFRKdVpyQ3Yzd01Jb1lSajFmV0paeEV0cjk1SmpmdWpDVFJMUmMtUFctOGhaTmlKQXNRVlVUNlhJemxudHZCR056SVlBb3NOTEYxRTRLaFlVd2d3TWtxVlB6ZEtQLTkxOGMyY3N0a2pYRFUweDBNaGhja2xSSklPOUZla1dKTWRNbG8tUGdSNEV5cW90OWlOZFlIUExBd3U2b2hyS1owbXVMM3p0Qm41cUtzWUxYNzB1N3JpUTNBSGdsT0NuamNTb1lIbXR4MG1sakNPVkxBUXRLVE1xX0YxWDhOcERIY1lTQVFqS01CaXZKNllFaXlIR0JsM1pKMmV1OUo3TGI1WkRaVnYxUTl1LTM0SU1qN1V1b0RCT0x0VHNLTmNLZnk1S0MxYnBBcm03WnVua0xqaEhGUzhOU253ZkppRzdudXBSVlMxeFVOSWxtZ1o2RVBSQUhEUEFuQ1hxSVZMME4yWUtaU3VyRGo3RkUyRUNjT0pNcE1BdE1ZRzdXVl8ydUtXZjdMdHdEVW4teHUtTi1HSGliLUxud21TX0NtcGVkRFBHNkZ1WTlNczR4OUJfUVluc1BoV09oWS1scUdsNnB5d1U5M1huX3k4QzAyNldtb2hybktYN2xKZ1NTNWFsaWwzV3pCRVhkaGR5eTNlV1d6ZzFfaFZTT0E4UjRpQ3pKdEZxUlJ6UFZXM3laUndyWEk2NlBXLUpoajVhZzVwQXpWVzUtVjVNZFBwdWdQa3AxZC1KdGdqNnhibjN4dmFYb2cxcEVwc1g5R09zRUdINUZtOE5QRjVUU0dpZy1QVl9odnFtVDNuWFZLSURtMXlSMlhRNTBWSVFJbEdOOWpfVWV0SmdRWDdlUXZZWE8xRUxDN1I0aEN6MHYwNzM1cmpJS0ZpMnBYWkxfb3FsbEV1VnlqWGxqdVJ6SHlwSjAzRlMycTBaQ295NXNnZERpUnJQcjhrUUd3bkI4bDVzRmxQblhkaFJPTTdISnVUQmhET3BOMTM4bjVvUEc2VmZhb2lrR1FyTUl2RWNEeGg0U0dsNnV6eU5zOUxiNDY5SXBxR0hBS00wOTgyWTFnWkQyaEtLVUloT3ZxZGh0RWVGRmJzenFsaUtfZENQM0JzdkVVeTdXR3hUSmJST1NBMUI1NkVFWncwNW5JZVVLX1p1RXdqVnFfQWpvQ08yQjZhN1NkTkpTSnUxOVRXZXE0WFEtZWxhZW1NNXYtQ2sya0VGLURmS01lMkctNVY3c2ZhN0ZGRFgwWHlabTFkeS1hcUZ1dDZ3cnpPQ3hha2IzVE11M0pqbklmU0diczBqTFBNZC1QZGp6VzNTSnJVSjJoWkJUQjVORG4tYUJmMEJtSUNUdVpEaGt6OTM3TjFOdVhXUHItZjRtZ25nU3NhZC1sVTVXNTRDTmxZbnlfeHNsdkpuMXhUYnE1MnpVQ0ZOclRWM1M4eHdXTzRXbFRZZVQtTS1iRVdXVWZMSGotcWg3MUxUYTFnSEEtanBCRHlZRUNIdGdpUFhsYjdYUndCZnRITzhMZVJ1dHFoVlVNb0duVjlxd0U4OGRuQVV3MG90R0hiYW5MWkxWVklzbWFRNzBfSUNrdzc5bVdtTXg0dExEYnRCaDI3c1I4TWFwLXZKR0wxSjRZYjZIV3ZqZjNqTWhFT0RGSDVMc1A1UzY2bDBiMGFSUy1fNVRQRzRJWDVydUpqb1ZfSHNVbldVeUN2YlAxSW5WVDdxVzJ1WHpLeUdmb0xWMDNHN05oQzY3YnhvUUdhS2xaOHNidkVvbTZtSHFlblhOYmwyR3NQdVJDRUdxREhWdF9ZcXhwUWxHc2hyLW5vUGhIUVhJNUNhY0hFU0ptVnI0TFVhZDE1TFBBUEstSkRoZWJ5MHJhUmZrR1ZrRlFtRGpxS1pOMmFMQjBsdjluY3FiYUU4eGJVVXlZVEpuNWdHVVhJMGtwaTdZR2NDbXd2eHpOQ09SeTV6N1BaVUpsR1pQVDBZcElJUUt6VnVpQmxSYnE4Y1BCWV9IRWdVV0p3enBGVHItdnBGN3NyNWFBWmkySnByWThsbDliSlExQmp3LVlBaDIyZXp6UnR6cU9rTzJmTDBlSVpON0tiWllMdm1oME1zTFl2S2ZYYllhQlY2VHNZRGtHUDY4U1lIVExLZTU4VzZxSTZrZHl1ZTBDc0g4SjI4WGYyZHV1bm9wQ3R2Z09ld1ZmUkN5alJGeHZKSHl1bWhQVXpNMzdjblpLcUhfSm02Qlh5S1FVN3lIcHl0NnlRPT0= # Feature SyncDelta JIRA configuration -Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = DEV_ENC:Z0FBQUFBQm8xRnZIVUdfQTg5dXRfenlxanFvdXBCSmltQmNhRFNkUnNYai0zWlZqV1NmS212SlhsRUdwYXRRcjVvRVdqaWN0RWNrMjNYWG1VazJOaU5xWnZDWFJoWGxvTXpTbHNzbk9nTGlxa0ZZQk5WZHNHaHVDdmNQYTBRbHBQaFlvY0FYM3NzU05MUHNZU1AxaWNCM1ZTQllLdFpZX2pWektnUTF1WGRiRGtsOGE0bVdPYXp4aEhlWDVTWmYzWlRuVl84Zk5pREZJay1zMWRpTWxKYnFtYzBXM01vMzdiN0JlQl9kYXN2Sy1ZZUdnT2dYNzFuajA1QUJVbTFKS1dfUjNUMS1MSC0wOGc1ZDd2NTJESTR6M2Y2SDhsUG40OWM0b2djeDdZTS1qOVl2YlhhbGx2dG1KWkd3andQZXJVVC1zWDdBMzdHOVdRMHRJN3RabzZNWWlEY0xqcUg4Nk9RPT0= +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = DEV_ENC:Z0FBQUFBQm8xSUpEbm0yRUJ6VUJKbUwyRW5kMnRaNW4wM2YxMkJUTXVXZUdmdVRCaUZIVHU2TTV2RWZLRmUtZkcwZE4yRUNlNDQ0aUJWYjNfdVg5YjV5c2JwMHhoUUYxZWdkeS11bXR0eGxRLWRVaVU3cUVQZWJlNDRtY1lWUDdqeDVFSlpXS0VFX21WajlRS3lHQjc0bS11akkybWV3QUFlR2hNWUNYLUdiRjZuN2dQODdDSExXWG1Dd2ZGclI2aUhlSWhETVZuY3hYdnhkb2c2LU1JTFBvWFpTNmZtMkNVOTZTejJwbDI2eGE0OS1xUlIwQnlCSmFxRFNCeVJNVzlOMDhTR1VUamx4RDRyV3p6Tk9qVHBrWWdySUM3TVRaYjd3N0JHMFhpdzFhZTNDLTFkRVQ2RVE4U19COXRhRWtNc0NVOHRqUS1CRDFpZ19xQmtFLU9YSDU3TXBZQXpVcld3PT0= diff --git a/env_int.20250925_014803.backup b/env_int.20250925_014803.backup new file mode 100644 index 00000000..68a79093 --- /dev/null +++ b/env_int.20250925_014803.backup @@ -0,0 +1,95 @@ +# Integration Environment Configuration + +# System Configuration +APP_ENV_TYPE = int +APP_ENV_LABEL = Integration Instance +APP_API_URL = https://gateway-int.poweron-center.net +APP_KEY_SYSVAR = CONFIG_KEY +APP_INIT_PASS_ADMIN_SECRET = The 1st Poweron Admin +APP_INIT_PASS_EVENT_SECRET = The 1st Poweron Event + +# PostgreSQL Storage (new) +DB_APP_HOST=gateway-int-server.postgres.database.azure.com +DB_APP_DATABASE=poweron_app +DB_APP_USER=heeshkdlby +DB_APP_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_APP_PORT=5432 + +# PostgreSQL Storage (new) +DB_CHAT_HOST=gateway-int-server.postgres.database.azure.com +DB_CHAT_DATABASE=poweron_chat +DB_CHAT_USER=heeshkdlby +DB_CHAT_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_CHAT_PORT=5432 + +# PostgreSQL Storage (new) +DB_MANAGEMENT_HOST=gateway-int-server.postgres.database.azure.com +DB_MANAGEMENT_DATABASE=poweron_management +DB_MANAGEMENT_USER=heeshkdlby +DB_MANAGEMENT_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_MANAGEMENT_PORT=5432 + +# Security Configuration +APP_JWT_KEY_SECRET = rotated_jwt_secret_2025_09_17_2c5f8e7a-1b3d-49c7-ae5d-9f0a2c3d4b5e +APP_TOKEN_EXPIRY=300 + +# CORS Configuration +APP_ALLOWED_ORIGINS=http://localhost:8080,https://playground.poweron-center.net,https://playground-int.poweron-center.net,http://localhost:5176,https://nyla.poweron-center.net, https://nyla-int.poweron-center.net + +# Logging configuration +APP_LOGGING_LOG_LEVEL = DEBUG +APP_LOGGING_LOG_DIR = /home/site/wwwroot/ +APP_LOGGING_FORMAT = %(asctime)s - %(levelname)s - %(name)s - %(message)s +APP_LOGGING_DATE_FORMAT = %Y-%m-%d %H:%M:%S +APP_LOGGING_CONSOLE_ENABLED = True +APP_LOGGING_FILE_ENABLED = True +APP_LOGGING_ROTATION_SIZE = 10485760 +APP_LOGGING_BACKUP_COUNT = 5 + +# Service Redirects +Service_MSFT_REDIRECT_URI = https://gateway-int.poweron-center.net/api/msft/auth/callback +Service_GOOGLE_REDIRECT_URI = https://gateway-int.poweron-center.net/api/google/auth/callback + +# OpenAI configuration +Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions +Connector_AiOpenai_API_SECRET = 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 +Connector_AiOpenai_MODEL_NAME = gpt-4o +Connector_AiOpenai_TEMPERATURE = 0.2 +Connector_AiOpenai_MAX_TOKENS = 2000 + +# Anthropic configuration +Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages +Connector_AiAnthropic_API_SECRET = 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 +Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 +Connector_AiAnthropic_TEMPERATURE = 0.2 +Connector_AiAnthropic_MAX_TOKENS = 2000 + +# Agent Mail configuration +Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c +Service_MSFT_CLIENT_SECRET = Kxf8Q~2lJIteZ~JaI32kMf1lfaWKATqxXiNiFbzV +Service_MSFT_TENANT_ID = common + +# Google Service configuration +Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com +Service_GOOGLE_CLIENT_SECRET = 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 + +# Tavily Web Search configuration +Connector_WebTavily_API_KEY_SECRET = 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 + +# Google Cloud Speech Services configuration +Connector_GoogleSpeech_API_KEY_SECRET = { + "type": "service_account", + "project_id": "poweronid", + "private_key_id": "88db66e4248326e9baeac4231bc196fd46a9a441", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTnJuxA+xBL3LA\nPgFILYCsGuppkkdO6d153Q36f2jTj6zpH3OhKMVsaaTBknG2o2+D0Whlk6Yh5rOw\nkWzpMC3y81leRLm5kucERMkBUgd2GL4v16k6m+QGuC3BFlt/XeyuckJNW0V6v/Dy\n3+bSYM7/5o1ftPNWJeAIEWoE/V4wKCYde8RE4Vp1LO5YwhgcM4rRuPmF2OhekpA+\npteYwkY/8/gTTRpZIc8OTsBYRbaMwsjoDj5riuL3boVtkwZwKRb+ZLvupXeU7Ds7\n1305odTcZUwnImHiHfuq83ZJViQiLRNhUAFnQIXPrYLwEpCmzRBGzYHaRlb69ga/\nzqUbKnclAgMBAAECggEAH6W9qHehubioPMAJM7Y6bC2KU/JLNS4csBZd+idb52gG\nwBwIEFjR+H4ZjymhAA4+pe7c4h7MKyh0RI/l7eoFX98Cb+rEq/r1udm1BhGH3s2h\n2UiI8qRQh1YRjF2/nrN5VjhDBOFa6W9opaopZy/l8AzsT8f21zIgPen8z8o6GpFg\n64fJFcbqCGk2ykN2+x2pIOT04tmCszrfbXZP8LEs4xrUB/XwlHL1vT/M3EWIKbnj\njDaIMjw7q/KRgNUvmKS6SU9b3fnOLcQCz9f5cKdiWACKIU/UvuiWhWJ9ou6BWLWU\nva1A6Fi4XJjhW7s3po58/ioQfl0A9p/L92lGg4ST8QKBgQDx8LIM1g0dh9Ql6LmH\nBUGCOewNNXTs+y3ZznUfvVMoyyZK5w/pzeUvkmOwzbRGnZJ9WyCghq8aezyEpo2D\nPL7Odf988IeHmvhyZIM4PLJYgDvSwGXyf/gh6gJkf/4wpx+tx/yQYNBm3Rht7sA0\npSaLehK0E0kW1uyBzHGKgyQOhwKBgQDf6LiZ7hSQqh54vIU1XMDRth0UOo/s/HGi\nDoij29KjmHjLkm8vOlCo83e79X0WhcnyB5kM7nWFegwcM1PJ0Dl8gidUuTlOVDtM\n5u2AaxDoyXAUL457U5dGFAIW+R653ZDkzMfCglacP8HixXEyIpL1cTLqiCAgzszS\nLcSWwoAr8wKBgQC4CGm3X97sFpTmHSd6sCHLaDnJNl9xoAKZifUHpqCqCBVhpm8x\nXp+11vmj1GULzfJPDlE8Khbp4tH+6R39tOhC7fjgVaoSGWxgv1odHfZfYXOf9R/X\nHUZmrbUSM1XsNkPfkZ7pR+teQ1HA1Xo40WMHd1zgw0a2a9fNR/EZ9nUn4wKBgGaK\nUEgGNRrPHadTRnnaoV8o1IZYD2OLdIqvtzm7SOqsv90SkaKCRUAqR5InaYKwAHy7\nqAa5Cc73xqX/h4arujff7x0ouiq5/nJIa0ndPmAtKAvGf6zQ6j0ompBkxAKAioON\nmInmYL2roSI2I5G/LagDkDrB3lzH+Brk5NvZ9RKrAoGAGox462GGGb/NbGdDkahN\ndifzYYvq4FPiWFFo0ynKAulxCBWLXO/N45XNuAyen433d8eREcAYz1Dzax44+MdQ\nHo9dU7YcZvFyt6iZsYeQF8dluHui3vzMpUe0KbqpZC5KMOSw53ZdNIwzo8NTAK59\n+uv3dHGj7sS8fhDo3yCifzc=\n-----END PRIVATE KEY-----\n", + "client_email": "poweron-voice-services@poweronid.iam.gserviceaccount.com", + "client_id": "116641749406798186404", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/poweron-voice-services%40poweronid.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} + +# Feature SyncDelta JIRA configuration +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = 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 diff --git a/env_int.20250925_015508.backup b/env_int.20250925_015508.backup new file mode 100644 index 00000000..68a79093 --- /dev/null +++ b/env_int.20250925_015508.backup @@ -0,0 +1,95 @@ +# Integration Environment Configuration + +# System Configuration +APP_ENV_TYPE = int +APP_ENV_LABEL = Integration Instance +APP_API_URL = https://gateway-int.poweron-center.net +APP_KEY_SYSVAR = CONFIG_KEY +APP_INIT_PASS_ADMIN_SECRET = The 1st Poweron Admin +APP_INIT_PASS_EVENT_SECRET = The 1st Poweron Event + +# PostgreSQL Storage (new) +DB_APP_HOST=gateway-int-server.postgres.database.azure.com +DB_APP_DATABASE=poweron_app +DB_APP_USER=heeshkdlby +DB_APP_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_APP_PORT=5432 + +# PostgreSQL Storage (new) +DB_CHAT_HOST=gateway-int-server.postgres.database.azure.com +DB_CHAT_DATABASE=poweron_chat +DB_CHAT_USER=heeshkdlby +DB_CHAT_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_CHAT_PORT=5432 + +# PostgreSQL Storage (new) +DB_MANAGEMENT_HOST=gateway-int-server.postgres.database.azure.com +DB_MANAGEMENT_DATABASE=poweron_management +DB_MANAGEMENT_USER=heeshkdlby +DB_MANAGEMENT_PASSWORD_SECRET = VkAjgECESbEVQ$Tu +DB_MANAGEMENT_PORT=5432 + +# Security Configuration +APP_JWT_KEY_SECRET = rotated_jwt_secret_2025_09_17_2c5f8e7a-1b3d-49c7-ae5d-9f0a2c3d4b5e +APP_TOKEN_EXPIRY=300 + +# CORS Configuration +APP_ALLOWED_ORIGINS=http://localhost:8080,https://playground.poweron-center.net,https://playground-int.poweron-center.net,http://localhost:5176,https://nyla.poweron-center.net, https://nyla-int.poweron-center.net + +# Logging configuration +APP_LOGGING_LOG_LEVEL = DEBUG +APP_LOGGING_LOG_DIR = /home/site/wwwroot/ +APP_LOGGING_FORMAT = %(asctime)s - %(levelname)s - %(name)s - %(message)s +APP_LOGGING_DATE_FORMAT = %Y-%m-%d %H:%M:%S +APP_LOGGING_CONSOLE_ENABLED = True +APP_LOGGING_FILE_ENABLED = True +APP_LOGGING_ROTATION_SIZE = 10485760 +APP_LOGGING_BACKUP_COUNT = 5 + +# Service Redirects +Service_MSFT_REDIRECT_URI = https://gateway-int.poweron-center.net/api/msft/auth/callback +Service_GOOGLE_REDIRECT_URI = https://gateway-int.poweron-center.net/api/google/auth/callback + +# OpenAI configuration +Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions +Connector_AiOpenai_API_SECRET = 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 +Connector_AiOpenai_MODEL_NAME = gpt-4o +Connector_AiOpenai_TEMPERATURE = 0.2 +Connector_AiOpenai_MAX_TOKENS = 2000 + +# Anthropic configuration +Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages +Connector_AiAnthropic_API_SECRET = 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 +Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 +Connector_AiAnthropic_TEMPERATURE = 0.2 +Connector_AiAnthropic_MAX_TOKENS = 2000 + +# Agent Mail configuration +Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c +Service_MSFT_CLIENT_SECRET = Kxf8Q~2lJIteZ~JaI32kMf1lfaWKATqxXiNiFbzV +Service_MSFT_TENANT_ID = common + +# Google Service configuration +Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com +Service_GOOGLE_CLIENT_SECRET = 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 + +# Tavily Web Search configuration +Connector_WebTavily_API_KEY_SECRET = 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 + +# Google Cloud Speech Services configuration +Connector_GoogleSpeech_API_KEY_SECRET = { + "type": "service_account", + "project_id": "poweronid", + "private_key_id": "88db66e4248326e9baeac4231bc196fd46a9a441", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTnJuxA+xBL3LA\nPgFILYCsGuppkkdO6d153Q36f2jTj6zpH3OhKMVsaaTBknG2o2+D0Whlk6Yh5rOw\nkWzpMC3y81leRLm5kucERMkBUgd2GL4v16k6m+QGuC3BFlt/XeyuckJNW0V6v/Dy\n3+bSYM7/5o1ftPNWJeAIEWoE/V4wKCYde8RE4Vp1LO5YwhgcM4rRuPmF2OhekpA+\npteYwkY/8/gTTRpZIc8OTsBYRbaMwsjoDj5riuL3boVtkwZwKRb+ZLvupXeU7Ds7\n1305odTcZUwnImHiHfuq83ZJViQiLRNhUAFnQIXPrYLwEpCmzRBGzYHaRlb69ga/\nzqUbKnclAgMBAAECggEAH6W9qHehubioPMAJM7Y6bC2KU/JLNS4csBZd+idb52gG\nwBwIEFjR+H4ZjymhAA4+pe7c4h7MKyh0RI/l7eoFX98Cb+rEq/r1udm1BhGH3s2h\n2UiI8qRQh1YRjF2/nrN5VjhDBOFa6W9opaopZy/l8AzsT8f21zIgPen8z8o6GpFg\n64fJFcbqCGk2ykN2+x2pIOT04tmCszrfbXZP8LEs4xrUB/XwlHL1vT/M3EWIKbnj\njDaIMjw7q/KRgNUvmKS6SU9b3fnOLcQCz9f5cKdiWACKIU/UvuiWhWJ9ou6BWLWU\nva1A6Fi4XJjhW7s3po58/ioQfl0A9p/L92lGg4ST8QKBgQDx8LIM1g0dh9Ql6LmH\nBUGCOewNNXTs+y3ZznUfvVMoyyZK5w/pzeUvkmOwzbRGnZJ9WyCghq8aezyEpo2D\nPL7Odf988IeHmvhyZIM4PLJYgDvSwGXyf/gh6gJkf/4wpx+tx/yQYNBm3Rht7sA0\npSaLehK0E0kW1uyBzHGKgyQOhwKBgQDf6LiZ7hSQqh54vIU1XMDRth0UOo/s/HGi\nDoij29KjmHjLkm8vOlCo83e79X0WhcnyB5kM7nWFegwcM1PJ0Dl8gidUuTlOVDtM\n5u2AaxDoyXAUL457U5dGFAIW+R653ZDkzMfCglacP8HixXEyIpL1cTLqiCAgzszS\nLcSWwoAr8wKBgQC4CGm3X97sFpTmHSd6sCHLaDnJNl9xoAKZifUHpqCqCBVhpm8x\nXp+11vmj1GULzfJPDlE8Khbp4tH+6R39tOhC7fjgVaoSGWxgv1odHfZfYXOf9R/X\nHUZmrbUSM1XsNkPfkZ7pR+teQ1HA1Xo40WMHd1zgw0a2a9fNR/EZ9nUn4wKBgGaK\nUEgGNRrPHadTRnnaoV8o1IZYD2OLdIqvtzm7SOqsv90SkaKCRUAqR5InaYKwAHy7\nqAa5Cc73xqX/h4arujff7x0ouiq5/nJIa0ndPmAtKAvGf6zQ6j0ompBkxAKAioON\nmInmYL2roSI2I5G/LagDkDrB3lzH+Brk5NvZ9RKrAoGAGox462GGGb/NbGdDkahN\ndifzYYvq4FPiWFFo0ynKAulxCBWLXO/N45XNuAyen433d8eREcAYz1Dzax44+MdQ\nHo9dU7YcZvFyt6iZsYeQF8dluHui3vzMpUe0KbqpZC5KMOSw53ZdNIwzo8NTAK59\n+uv3dHGj7sS8fhDo3yCifzc=\n-----END PRIVATE KEY-----\n", + "client_email": "poweron-voice-services@poweronid.iam.gserviceaccount.com", + "client_id": "116641749406798186404", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/poweron-voice-services%40poweronid.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} + +# Feature SyncDelta JIRA configuration +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = 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 diff --git a/env_int.env b/env_int.env index e853401a..971a149c 100644 --- a/env_int.env +++ b/env_int.env @@ -5,32 +5,32 @@ APP_ENV_TYPE = int APP_ENV_LABEL = Integration Instance APP_API_URL = https://gateway-int.poweron-center.net APP_KEY_SYSVAR = CONFIG_KEY -APP_INIT_PASS_ADMIN_SECRET = INT_ENC:Z0FBQUFBQm8xRjFaenVxWnprRDJjMUhjWk1CTnpreEd0eDh4bXBaQVdHQVlQWEQ5bERuN2tEV3pDZmlldFhPazhpRll4bjhLd0d5RXhtaldBVUdFU2ttQ3cxdmoxcFNDSkJMT2RRV2JDT2xKeGhHUXNFU2JfMEU9 -APP_INIT_PASS_EVENT_SECRET = INT_ENC:Z0FBQUFBQm8xRjFaLWp4RG5ubVR2M2lXRHRZSFpSVE91WFRSX2hwME1rTV9LdF9MX01rdHMtNkhjdWRlcGd0RDhYdWlxMUZ6VFV3akxfUTZYa3FoMGFmZ3Y5clp1X2gwV0RjNnVvdE5zY25GMGYyS0V2a0ppU2c9 +APP_INIT_PASS_ADMIN_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjWm41MWZ4TUZGaVlrX3pWZWNwakJsY3Facm0wLVZDd1VKeTFoZEVZQnItcEdUUnVJS1NXeDBpM2xKbGRsYmxOSmRhc29PZjJSU2txQjdLbUVrTTE1NEJjUXBHbV9NOVJWZUR3QlJkQnJvTEU9 +APP_INIT_PASS_EVENT_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjdmtrakgxa0djekZVNGtTZV8wM2I5UUpCZllveVBMWXROYk5yS3BiV3JEelJSM09VYTRONHpnY3VtMGxDRk5JTEZSRFhtcDZ0RVRmZ1RicTFhb3c5dVZRQ1o4SmlkLVpPTW5MMTU2eTQ0Vkk9 # PostgreSQL Storage (new) DB_APP_HOST=gateway-int-server.postgres.database.azure.com DB_APP_DATABASE=poweron_app DB_APP_USER=heeshkdlby -DB_APP_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhVHBfQnZMRi15aHBVR0o0RkV3dEptRGFEdnJqUEY2c1BONnhXb0pyUDlTYUQ4VmlOOU5POHgycnBLejI2NjAtRDNkMkNtUGxqamVTRkgyWFYwNDVkeG1FazBPSmFXUjU5RGdLSlVsZ1FFVlRnb1ZiSG1yZU0za2IzOXhSZVY3UkpfbzdjSEtWLWpqdEl1b3pONXowRGhKRU8xUXNnUmN2a1VPMXJndWdfYkZSSklGNG5DNFpOdXYxZGJkOU1zRXpsV0lMVzlLa3JHZzdWSVpSbkwwQjQ3TnVUdnJGM2FqTy1IaFY4MWtuaEdKRkVXVjJ4UWprWmR4SWN6ZkQ4TTUyRFJma3J0TkswVUNld3R5Nk9nNWxJbHVWVUE4QnV5LUpmUU9JV1FuVE5wVDA9 +DB_APP_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjb2dka2pnN0tUbW1EU0w1Rk1jNERKQ0Z1U3JkVDhuZWZDM0g5M0kwVDE5VHdubkZna3gtZVAxTnl4MDdrR1c1ZXJ3ejJHYkZvcGUwbHJaajBGOWJob0EzRXVHc0JnZkJyNGhHZTZHOXBxd2c9 DB_APP_PORT=5432 # PostgreSQL Storage (new) DB_CHAT_HOST=gateway-int-server.postgres.database.azure.com DB_CHAT_DATABASE=poweron_chat DB_CHAT_USER=heeshkdlby -DB_CHAT_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhRzFNT3RtV1RFNDlrZnNpSTlqWXdXbnhmeDZMb2VVUG9pd1k2NmQtWlRoeDY2OURDWXVSdHJCeEo4MDBWbTN1SFN2M2dGalBKQzhtN05aS1RVSnRVZjF0T2NRa2o5c0dhRFJvRHlOektwZnZOZm5ZLXNXSEp6Y1RFNUVnSFpWQ3BTbXFGY1dNeEFKb0VEWlgxY1RWVzdLbjRraXdqSldwejY4aVpZWVFuMnNka0xhNXhDeFZvUE5idlRkQ1ZpSUJPWFN4bUZxQ20xNFNyQkRrSlBhMW1SZ2dNbnRHRGtXV0x4NHBvT3dhaWVzUFRsS0U3RVZwajA0OEZLMEVFZmNaTkFNMWdtSkdYT1d2bkZtX2JZWVNzdE9sRVV5VHR4NUZnX21haVJlMmVPTEk9 +DB_CHAT_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjczYzOUtTa21MMGJVTUQ5UmFfdWc3YlhCbWZOeXFaNEE1QzdJV3BLVjhnalBkLVVCMm5BZzdxdlFXQXc2RHYzLWtPSFZkZE1iWG9rQ1NkVWlpRnF5TURVbnl1cm9iYXlSMGYxd1BGYVc0VDA9 DB_CHAT_PORT=5432 # PostgreSQL Storage (new) DB_MANAGEMENT_HOST=gateway-int-server.postgres.database.azure.com DB_MANAGEMENT_DATABASE=poweron_management DB_MANAGEMENT_USER=heeshkdlby -DB_MANAGEMENT_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhN0xPc05UQ25ma1c4eUN3eU1TaHFrZGxpQk1pYzA2aUNQYW44Y3pBVlF5YUJramNCenRQRUJreERBRTB6dnNwLTN5R2dwdzlfRWI5VHFhSUswOUdqY2RmelIyVDk0RlIteGlwNGhlWHY4UmthSF95SXhJVFBjT0JwY0JrVUxPUmt1YWN1RHZmd19TTGlrWmEtdEdHSVExSDFjcFZxM1IxYkhZcVoxc21ndE9HZXVNQU9URDVGektkcktkTlFsUDlrRGNDN0U2S1djVktWMk16dzducllweHlQVW01MU9LbTZORnhkVGw3UllUUnBwNm1YQ1hvZVFjcHcyTjRldkRPM1BCUldReEZ6dm93VEItVG1sRFlrNk00czZQd3NrU09fN2NtYW45Y0stLUE9 +DB_MANAGEMENT_PASSWORD_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjTnJKNlJMNmEwQ0Y5dVNrR3pkZk9SQXVvLTRTNW9lQ1g3TTE5cFhBNTd5UENqWW9qdWd3NWNseWhnUHJveDJyd1Z3X1czS3VuZnAwZHBXYVNQWlZsRy12ME42NndEVlR5X3ZPdFBNNmhLYm89 DB_MANAGEMENT_PORT=5432 # Security Configuration -APP_JWT_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhWHFFUTU2RlJKUDlrbk5xWDRqYklCUFUzVy0zTGFKdTc5X0RGcE04a0M3VkFqZm9GLXEtUmNhcHBzdDR0WHRNTERPZEYyaGtqb2FlX2RMSU5QYmpuaU5pWEFZMVJwMmFHT2NGUVZMQmdKM1FKTzRDNG9jb0ZiOXhldjMzOVZneTZZUHF3dmdyeFlxVGF3OXpvaElqY3JWekhtT1FISkFOclJsNFR4MVJTRTJNUEZjZWtQVUpVaGE3R3NtUzVMYVFBTEVBb0tCMUlSclVoVzBxQU5OVml0cWNDYzNvUWZfbHcwVEsyVkoyOWxneW1qWGxKZFZlTkdhSFRscDA3YWhjZlpJWi1LWldEVFk2ZUxxUWwwb1l4cE9SdmwzcmNuNWRDeUZBcEowTkRta2lZMnNzd0x3eFJ2VXc5dGVwLW5ZbVc4VjFmTGRXRENRZVZkRHVvNHNFeV9mQmsyTGU4U0lKdUtraV9kSEpCZnJxTWcxYXNxMzYwaWg2bm1vbFNJMnkwSWxfazMyUldpMGZfV0NfQWY3bGJFOWJ0Zzc2RnpRNnY5clF3MnJVLTgzQT0= +APP_JWT_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjNUctb2RwU25iR3ZnanBOdHZhWUtIajZ1RnZzTEp4aDR0MktWRjNoeVBrY1Npd1R0VE9YVHp3M2w1cXRzbUxNaU82QUJvaDNFeVQyN05KblRWblBvbWtoT0VXbkNBbDQ5OHhwSUFnaDZGRG10Vmgtdm1YUkRsYUhFMzRVZURmSFlDTFIzVWg4MXNueDZyMGc5aVpFdWRxY3dkTExGM093ZTVUZVl5LUhGWnlRPQ== APP_TOKEN_EXPIRY=300 # CORS Configuration @@ -50,32 +50,34 @@ APP_LOGGING_BACKUP_COUNT = 5 Service_MSFT_REDIRECT_URI = https://gateway-int.poweron-center.net/api/msft/auth/callback Service_GOOGLE_REDIRECT_URI = https://gateway-int.poweron-center.net/api/google/auth/callback - # OpenAI configuration Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions -Connector_AiOpenai_API_SECRET = INT_ENC:Z0FBQUFBQm8xRjFheDVaRE1LYUhScWpEUFhSNVNSQzNZRGU2VmZIYUh0QXkzUFJ6QlY0Mjc2S2dTWk1rMDNLeGE0bFNNNXZST0JKZ0JKT01BVnM2eU96YUtmTlZqOTRpWDB5blJ2Y0xuTE91eUhJZFlfZE5BWVpRZk9SX3RaMldZTk9TMmdoUXZQRWFpUEh6dGcycDRqYkg0cWt3bHpnc0swT1pGbEU5U1hfelU0Ri1HUjVEWW1tNXR3eXZEOVBfWXRMMzkyeDBIVXFZOXNWQ1R2bF9aU3Q5eG1Gb3M2dlBVRTRVRURxOWJxSWRHOEQtMWVhWTZXUDRnUUhPT0d1Wl9UNmlBelhlOEFuVUFKMUplZmNNS0xVUVlWakNoQUotSk5oNnRRV0phbVJNdDNCdklPZV9jYXBkRzd6YVNCejEtVEpTdi11LUlhdzB6RElHVUxORzBPY3NScnpYM1g0VmlFYTI4QlUtc19NcjRwaTZOUDZfM0s0NWxSZ29Mc1gxRVRtUTRDOE11cTgt +Connector_AiOpenai_API_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjSDBNYkptSkQxTUotYVVpZVNZc0dxNGNwSEtkOEE0T3RZWjROTEhSRlRXdlZmQUxxZ0w3Y0xOV2JNV19LNF9yTUZiU1pUNG15U2VDUDdSVlI4VlpnR3JXVFFtcXBaTEZiaUtSclVFd0lCZG1rWVhra1dfWTVQOTBEYUU0MjByYVNEMTFmeXNOcmpUT216MmJKdlVPeW5nPT0= Connector_AiOpenai_MODEL_NAME = gpt-4o Connector_AiOpenai_TEMPERATURE = 0.2 Connector_AiOpenai_MAX_TOKENS = 2000 # Anthropic configuration Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages -Connector_AiAnthropic_API_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhejRGeGtkQkt0Wml4NHZkY0JlV3BGVHBPRmZiQ0RrcmVVMUwxSWczZUExblA5eGFwaFRhTmdEUXVTS1Fad0daZXBWOElpS1FQUEhnT2tGU0hBSnRRdUlOTXVSWndBTlRwUFdsYVlQNWpZbHFBZURUZ19RdGNhZzVDZmF3QWhQaWV3eHFFc3BtS2dnTnI1U2oxRUtSc2V0SVdjSkNqUEVBdUJqeDhJTklJMWh2Wmk4RFBGV2d5Zk9QMGw4b1hQNm1pRnE5MFEwV0lWWFJsMEVOWHpNdWpBQWlMTXFHbmY3dVN1dUV4SVBJcnlRYU1EeV9DeFRucjlXREo4UG9DX3E0dzF2YzZKS2JGeVRtYUhFUEduR0JNTUljcHgzNHhVeVdJWC03X1NUREdJcUNwU043QkFTME45eXBkUUNzanRRNVVZT2xLWG1pcHJKNTQ3a1pjQUxXdlBjcmFRNEIySzVuNHBfSm4zRWRiM21GazdNZGNQWnUtSGN4d1JnVmZoNllabXd6dG0zQ2NKV2NxWlFBeUt3Y1puTEJ5ZkRvYXlQV3Aza3hXYzlxSFBscU85LXNyZC1NdFNNSWFmTmZSQTdiemNPQnlhYWNtaWYwQUpLU2lrLS1iZE44VGdCNzJoNGlZRHpSXzZSZWx5Y0E9 +Connector_AiAnthropic_API_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjT1ZlRWVJdVZMT3ljSFJDcFdxRFBRVkZhS204NnN5RDBlQ0tpenhTM0FFVktuWW9mWHNwRWx2dHB0eDBSZ0JFQnZKWlp6c01pVGREWHd1eGpERnU0Q2xhaks1clQ1ZXVsdnd2ZzhpNXNQS1BhY3FjSkdkVEhHalNaRGR4emhpakZncnpDQUVxOHVXQzVUWmtQc0FsYmFwTF9TSG5FOUFtWk5Ick1NcHFvY2s1T1c2WXlRUFFJZnh6TWhuaVpMYmppcDR0QUx0a0R6RXlwbGRYb1R4dzJkUT09 Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 Connector_AiAnthropic_TEMPERATURE = 0.2 Connector_AiAnthropic_MAX_TOKENS = 2000 # Agent Mail configuration Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c -Service_MSFT_CLIENT_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhdFBRZ2NkYlUwZW5STkFWdUdCYzM3b2dLTC1CWGo0eS16Rjd6QUpTNTItZjkxbUdTYXNMejlmTGt1QWsweHlCWl9ETldNcUNwYWtmUzJIUmJSUTkwczktaXlXRjY5ZHBXRElTZXpkdlp4ZnVYc2tNRWE4S25iWlNfYkJYNU03QzdVXzY1N1ZoZ1R2ek1fYmVsQUVQVkZCb0E2N2ZPVmtSWU5Ya0NhclB3Wkt1QlRKQXI0aUVpZngtaGZiN1FGYjYxVHFjcjNzbGphVjdQM0tTQ0FNNUN1bFdYVFJfbzdWajFvVDFPQzFoRzFmYVBTbmFtT3FkT2t1WW1LVkJiVnZCd3Vxd3l6d3ZMZkdLUWtMeEtVWDhmbE5CaXFpNHBnTXJVdTBZWUNnQjJscFV0Q2g5RmtkQ3hTQ3drRjcwWFVsbUk0cGREOGRRR1FwMW5oN0V1dGRVdlRRPT0= +Service_MSFT_CLIENT_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjNzB2M3ZjaE1SVE9ON2FKam9yVURxcHl1Ym5VNVUtS0MyWUpNVXVlaWpWS2U3VVd3em9vQl9lcnVYay03bS04YjNBbDZZNTB4eUtjT3ppQjJjY3dOT0FNLW9LeDhIUU5iaTNqNURUWE5La3kzaHNGcU9yNVI0YjhWZTZRRFktcTk= Service_MSFT_TENANT_ID = common # Google Service configuration Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com -Service_GOOGLE_CLIENT_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhVXpEblBSZHh0X2V6bUtTMHp2NVRfV3FOeDNTci1ycG9FeF9WVVNObnJ6VFNiSEkydjNpeExYWkVyOER5TWNSVXFXNlpBdUVNNlZ4bU9yaGdOaFo3UGxSVnRNMWM4SlRVcGZUV2hFTDFuMkxzbVF0Nk4xQVFKMWlCbDdWNG9tT3prUDAyRmkzR1h3alBPSGFMTDNqVFZWNElDeTBhT2VoamRQVnB6bmtvM3BKNWN5dDl5dnZkMVdoek1pZjk3OXFmcDl5bkU4U1BwNEV0MXRjLV9iUHh0NGFGRHFiTTlHclJJdUJoWDUyclhOdEFfY3ZKRktrTkVOZ1Z5ZzZlNVp2ZXFpcXZfQjZTbGhHN3RnSDVqZGZIUEJSclNUd3FOOTNBSXQwclU3Uy1vb0JNUzVaRHlURU4wSlhibHpWRzJqRVo5OXBrYUJaTzdVdkNhcW1VWVRkUW1nPT0= +Service_GOOGLE_CLIENT_SECRET = INT_ENC:Z0FBQUFBQm8xSVRjNThGeVRNd3hacThtRnE0bzlDa0JPUWQyaEd6QjlFckdsMGZjRlRfUks2bXV3aDdVRTF3LVRlZVY5WjVzSXV4ZGNnX002RDl3dkNYdGFzZkxVUW01My1wTHRCanVCLUozZEx4TlduQlB5MnpvNTR2SGlvbFl1YkhzTEtsSi1SOEo= # Tavily Web Search configuration -Connector_WebTavily_API_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhY2ZWeWRfbWpSSUl6MElHNk5tVzZqeGVMXzdFZy1Ma211aHlCUm5QSTJzMW92YWg5WWZVREQxX1NJcXVlNE52QjdxekhMVkdOc0xacEZJNmg1VEVlbXJJaWpJaEpRQ0tnZHU0R0hqaGdIRUJLYmRuR28zcWR0SHR6NG9NbXR1NENLTHZpS3FlcGRQc2tPaDRvVU5USUU1QTRjeDd3Yl8zLXVZSGxvRXNqalV1SjJNX1BIRm0zVy1hQ0tNdlBENV9yZ0dmLUpCYnJRc2dzcHpsRUZCWV9Zal9mSzJUSDQyVEFJN0twaExyWDVKSnlNUGlLbTk2N1NmUC14Z1JGX05aTnV2c043Z1JYZ0x5MjZYVEdITDNTZnFuZW9KYzVRUnpDcUVTMk9HTW02TEJaUEVZZm1wYU5CdE4yWGc4UDY1bHozOVdhQUdWd0lDeWlQbS15aWFhY01RPT0= +Connector_WebTavily_API_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xSVRkdkJMTDY0akhXNzZDWHVYSEt1cDZoOWEzSktneHZEV2JndTNmWlNSMV9KbFNIZmQzeVlrNE5qUEIwcUlBSGM1a0hOZ3J6djIyOVhnZzI3M1dIUkdicl9FVXF3RGktMmlEYmhnaHJfWTdGUkktSXVUSGdQMC1vSEV6VE8zR2F1SVk= # Google Cloud Speech Services configuration -Connector_GoogleSpeech_API_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xRjFhYUN6eXZFUVE1dUJRdGNVWktodUF2dUpZUmVGa1o2WlQzdVJlR1dTd0pfRFY4SVNYRWM4aWk3UGJSaEl0MGRiT19vbUdhVTNvbGFzS0NyY2pBMXdVSXFkOHVWRC0tTkpVUFdTVlhzeFd5OTVOdTVyVVFIWUJ5VkpMb2ZyaUtyWFBUeFctcGZDYXVaUEJWQUxmNlh6TDUwQV9RdEZYV09ENnNIM2JqU0xpbHcxcm56QlI2azNIMjdvRUlsZHVEckpwQnA2cnBuRC1IdTJtcUUyZE41NVBoRS01Y0hoYTZxREZZQ1ZJRndObGFmT09QN3Q4MF9sUWhEaWV1ZlJ6dVpXQW1aTk5ERW5jdDY5U2MtUUFBZGE3a0FjcUNiZ3RQY25OZGJOZEJjVG1Id0FOVE41N0ZKY0IwNVRxV2ozd3E5WExpWWFwbnAtZzZoM1M2bnU2MkN5WkFPTVJhd2E1M0lQRXpwaHFjc3cxWEt0dWVHb2NuZ2RmdHdpOW1DMDJwbXJMa25EMTVFbTBHVUhMY1Z3RG4zUjVEZzNPNHRnTjEzVnJoQzlGNDh4NDY4d1oxT0pVSERrV0NScFFfTjVPbTFwM1NHX01lcTUwS2pKMVVycXRDRTQ2aExDYXhla243MkJNWkY5elV0QUJlSVpzRmxtajc4U2RoU0ZWTmZkOVhxYWd5dUlEbWRYeGtVN3YzLWY5cG02T2kzNm1waXcxOFNaV0tNYWRWZkhSYlc1QVlaVVdCVEI5VmVpNXUyMVUyckoxSUh3N1NKczROZnZyM0owbjNlb2h5X1AxQTJ3YzU4aVZFLU81ZHRpcXJSdkhVcEwwWl9ydGxFVkt5c2h1NVM4UDdkOE9icXFoMWNJVGNYNEhWd1NlTFJua2ZZWGJXY2xWY1VlZFM5V0UxdjdBc0JWTDdkdzNuUkdUOUlZMndxeUFoR1V4SkhBT2FwYTREODNiV2dZNlg0Q3dHcm1OTU9aLXlvSElvNzktM2M3TWhoUkhYZzNULTZPeWZUVkRpQTJySERkOXRrdEVLa0plb1N0NHp6Q2Q5OVo2dHAwTXluZGlDbDJSbWNBWEN4b2g4MVlHZlpyaWVyX1hBYzQ1NV9Ba0ZCVXV2YkJPdUoxczNYQ2pBa0tPTTNZX3A1TDExczRRdjdmN0xCNlZzTGlYZzJlcUhXbkpxUTg3VHFsNlpuQ0pHOVhHSEs4eDBZaWdmVlFYcko2cHZWS0FGd19rbXBHeEtqcHVLalo3VzF1blY0bUZKdGhmbFJOdlYwQlFuVUVVUVU1Vm5FX1hqMWxJTzFrVW5FUTF6cWJpNVVCUDcwUFR4ZkZGamVmVkZncVB3OUZRODVjd0lvSU4wWXBtYzVaT1ZWN2ZyM1NQam5BRUFYVzdmMDBLaFRPZ0E0MFJGWnBJWUpwazhSX2hudVdiaGh0dnVMQTZzY3Zvems0b29FMWR2WmhWd0Frbm84R2ZTZzQxaVFfWEVUUW8tRzdFOVhjT29TNWNyMWcwRnVDem1EWHVQMTFzMUViWHpkZUVUSm9Ndkd3cVJaT1BLQlV6VlpBLUZkMWc5X0VzWkU2YzlXSElIVWVlamJqNlYtdGNIdDliYVA5cnRVcmRKczd3OHMwMDhubmdMc3RNSzB2dHJadnRPYWRuZ0pYODNpRWJnNWdyX2JCb2ZoZExQX3RzdXBtb3hLZ1VxVm5feklKMHY3VTdic3NrZzRsVGZ1bVNvVTJUSzBfV3c1RkVYX1VVLU9OWnFBYks0eFVmR2VqdWtFNDg3aU85SWFqTXFzLUNmMWo2bWhqeklBa21peFlQWW9oblBBbU9JWVEwLUdhYkhkSjF3OTVHVi0yR3pqM3RtWDRfdHd0NWhmLWtHaUJzUGx4YkZNalB2OEg4Z0lZN01VZFlndXJ1TW5USTJNY05KXzRIVkh0dXV4U0JudkRseV9wTVNjXzVfRUU2TkhVb2VuUnYtUGpLVFJLbjVoSW8zTGhFTFN1eHdENTBWbEtOcW9KdUh6eUthMmZHQmpyVXBMV05MUDNfZDdiMFpRTWx5YzZPSUVjMFJ1NlNwVWl4ZHFOTEl0VnBHQW1lcmZ0aFVaRm9sRllZcnNwbG10bXJDTnZqOHdDanFTWTJOOV9xb1I4M0lsOC1LaWMxR002d3RoZ0V1dHhOdi10QlBWakRLN0dFeEJ6Vm9yNEdNbXdrV1ZsMVZyX2VfekpSSUdmbWZYV01rWVFRa21fYnJBRmZiaVBneV9tTGdMLW80OEpDUFE0Nk9UQmNsNUlKQ1lrbzl1QzE1MS1rei1zdDZ6MXpYVEhScDV3azkwRnZIdGgyZ015WHpJQkxmeUdlMjdIcHlmOXFpUjlsMmV6V21rdm5sczUxU2F4cTh5OHNoYkRNa24wSGFJZDVOczdsTm9fVjgwY1dJNnRiMlE4ZjZRem41aUtja0J5Q0w3N29vM3p0bWRZN3ptU1VuSnVWYkE3QmQ2VDVWSkRrcEtXV29FUVU5ZVhDazRKb1dLX2pqNzBENThlVks2cUpMRlFyQ3dFa1M3ZXUyeTFrcVFmQ3E2UzB0amMxalp1Y1ZKalZoMEZwUThpaFV0VGJlS1E0eTExMGdZNlJKcnJ6WU5mT2ZDTTh2aUdDaUJ1amxlTlRKQ05STl9saERydmxCb0RsTkdqQUpDRGthaDNRT3d6Z0lmbDJybVJlc3pBSmpqYklEZUVzY25xcXRNaHhSTVNPVHQ2R0o0RU53d3NwSmNJeTIzRGV5NjFtV0V0TVVpczUtcS1wTDgyVXE1bUkzNS1EUGc1Q1NReFEwRFRjdkN0eVFYWEdFcnJGRWZQVDZCX2ZUbWJaUTYzSHRJM2JtVDVQNWZVVlZwZm5QQzJjdmk4QnBYR0pmX3BrcUVQTDkycmoxOVF3bE8yQVFDMFdYejNCWkE1SHJoT1ZuT1FFWmkwby1mUU43MDlYNUxtNXJ4S3JBWGtlMmE0T1BlZ3RDaHllYmhhWTlweFJNdjRiX0IzZWxZY0JqUnNtRjJzNWRXZGFtRUZpX1J4QW9POGEzb0RxaXFia29sZjFhTXZWWF80bEFtaEJsdWRaU05xVnhrcWIwOGViRDZjVGdJTVVYX0l6QV9GSlV1NkdmdlZQOGFOTXJwOHJQX3FXamdRQTdCSDJfMGsxbjZOYXV3NDJRUFFwd3NEaG1qREtLcmtpQWtMLTJncUZncXpaRHpvVV9IVk9Od2NybEU4elNCOGdBTVVJUW5PUjl0SE56UGV5ZG93eUJnUVFueWJsMF82Z3VsQXJxWFlVM2QxeENIYzZPc1BKM2tIRFNIZmR2eDZlMFNjbmF6V216cmZwdkR4YTRuU01pRmpZQzVLYmtySFFPSVdhZXFQdXg2a1RpWWItUXFBRFU3MGJVemJzMl9NdVAxaTZVUVN3TmhTRG56RHJ3NFJzV0FoNmMzMmw0YkdyX3d6bUZzV2xlQ0FTVC1IbWxPdUJnRDY3bjJaanptOW1NemRuaDRqUVNUMzMzN0pNS0dOd3BJNHdDNUZjaVpyOFpkVWxiQ2RCM2h4S2dpNDV0UGV3WlYtWUFnQmVfUUw1QmpJOEZjOW1tclM3WjlLNmUwcWQ4UVJuLTlXdmYwQWNoVUJZWFVTTWh0Z2xuZlJ4OXVveVB2Wm9SWlB5SEhBaTMwaFFISGdaM3NTbHRWaFJXYlBnXzRfNWsxM0VxX1pkNVIzelRIS1Q3djQwc212Nng3dGNmWHFrTkg4ZVBydWk0VEdheHgyRG5tQVVmNmFtd0VJTHZvU3d5R2dldEFQRmU1eHY5S1NmQTE2Ry1lRXFwWjJqYUZabkJWMHFZcThwRU1XWUNPWWJ2RFRybFo0OGFTUVU1OGRtZmJ0Szd1cDV3NXd4QjN5cEozaFk1aFVVLUxxMzg2Sy04R3RiZktjRERJVTVnaWxJSG5CLVdrYjI4Y2RzMnlOcU94S0Y4RFBoSHE2bVlNdWZkN3NQMHZlTVpFNnZISW1VX2Z1NnJPM1ZjNm5zNDcxR2tVc1REWTZYcEJsbjZFOVlOVXZSWkNzOWwyZk93cDAtYklkX19uWEp3d2Z5aGg4S2dVTF9pU2YtWFo4OGtHX2FCZUpieDJ6a0pCSk1CS0JDVTh3cEhGR3VQQWNQUUdHaDdFc3FYUTJqR01UZ0lWb3JRSlpjRkNPcnVWQWxYUUlUNXdBcDdNVkNxMWtrWVplM0JZVFk2OUNXMXFlbDhGTVNTN2VCOWJLQm5aa3RqYlM2UDBrOGMyQU4zaFU3SFg3eUg0WDFqOGJTMFNGT2xIOW4td2hQaUxDSHhKNzNpWEYtTlA1SXo2WlNNdFZLN3ppRUdvYm9oM3NGTjRBd2ZEQ0ZvaW42WVFaSjNkNWhnaTF0SVp1NnFfdDd5RmVsZFpiSzhXWmxyU3l0VEswWmtmN2tuSlV5NDk0ZjJUS2ZhZ3UyWlc5NWx4YlBaalhBRmtLak5DQUNRTnk5VUYtZmx2cVFQTl8yUXFLUzJJYk5Ga0V5dmswVDc4b1BfUXd4NERrdFBaM1otSTZldkQ3SWpqR0xidGNZemNOMXhVa3RlWkkybjQ5YTJaRHFJU092TGRjSGFfTzJ1X0RWMzZkVk9MNFB3Mml2blpWQ3Q5T09Rbk9NWEtNVWs1aFpJc1pxSnF1LUlReXNiZ05JUUUzOW5CTEVseXMya3NJSFp6YVF2V1NHZlluU1M1d3p5YkpJNEFIQlN0ZkxWTGZXbjhpU3F6X3Y4UVJxZ2RxTkNLTURTZ0RUby12TEhiWG9fTkpvQnFEeXc0OURTUTFFRjQ2V0NsTm1QRkhKdGdabFllTFV4MmNpd3FBclFyMEE5czdULU5XNEg2VE9td29tZkFKZk9pdlNJTmptcENpdDU4WHhhU3JEWXlyQm4tNjE5WnlPQnV1ME84VzhjMDYyLWRfeXdidGZiNlpZQW5wazktTjNNMmc0QklDeDgzdUREdHRPWTlKWGdud1dkZFExdXJlY3lrOTNVVXhudktrNl9NclN6SzJjVFRpQXRfWHlaR3FSVzdJbWxVYTNuTU1VRVNuX0hIbTUxXzZGbnV1SXNBU1lYZjFpWlg3bmJHejdiTlZRN2RIZGQ3NGFMekxNNWpHQVpnTF9na2ZtemJKUTdxZ1QtVVJhczQ1ZTV2WGNNc2hQVHNkNnVCSEpuOE1iZ0ZCMGpLOVZzQVo0aThvS05ydC03WnJMVDJzNllIVHBSSEprbF9iN1NINnFXbzZINTg3RUdPeVhSemZHSXZINnJxUFpWYUJOMk1WT3l5SVhtUmdXZVRJLTVlZHFsSTEySXlFdVhHdnJfaXJJWFpNaGgxUVhNcUJNMk9rSTA0Qnc0b21ZUnFyNXJweGw0QzFzczJmd2x6dXI3aFhULVpyb3p6ZFNxb2hIalNCeG0tdDZDU0oyRmx2b0pWemlyTlV3RzJSNWdvWjBZekJvdjVlOEhSRGROVEN2MmV3WktfelNtQTc4M01yeTZIWGJ1bnlscFhmSlo1a1V6T3ZCaGlUcEtnY2xHRzk5LVRvdUxmOW1PejlELUJVNU90Yk4weXRlTnlTVkFqcUFoLUhMYmY1NDJGdjIwTXdWMGlSUXhCM3FmbVQ0UmV4TmdSRnlKcG5PYWxDU1RMbFhiSlNLWW1RSlJSalRDUXZ5ZjRIcVp0SzhsSG42RnhZdElsZ3RNMkU3SkJvQmdmR05mRXBWTllDSk9CSE83NE5ZdXNtcnNRMllyWm5HZ3hTV1Vxcm1veU9HVlJrUklzenVOb3ExN0FXWTJnMGJFamt6d3A1ak0xMjVqUzNpbFZpU2NLbHNmMjdPemo0dXhjSTRUdlhOSDlEUm4tal9pNkFRTEZwSWREaVdXQ0oyQWlETUxVMTVNbDFwUFhCSEZGb1hudXlMUjhOeVRCdVByR1Vfa2s2YTFpMG1id3hwRHJfNlFEb0NJV2hlZTZFYTE5R01CbXJXRzJTcGRQdzdscERyV04tcDlmb19GUUVBNVp5VGpVS2s3M1ZTUFl6TFUxcWlQNHZwaU45RVVSQzJQNEd4LXVYQ3h4M3JITFVMM3hDcTFfZUMzYmM2aVJLUzQzbVZtQWxwMzVzcXdnUXk2MTBSRmo3c2E3cU42OUo0eTdWc1NjdlBwejRGRzJCN0VrYy1WTUE0YTV4S05lVFdmTDVhRzhYWGY0RUt3NzlNZ05qMFFKTlFmekpCZ05QWktZRXdRVFJJb29CYXRqMGVUbzNSajFvRDhoQW4wY1dSY1F1bTllQmdzWFhZcFlFVzVUMFBSMFY2VVQ2bzlvc002bEZvWXJ0cDdpR3gzZklqNFNpR3hpM1cyclFqUnQtTFpqcldvb01pdUlzelo1bEVPWmpQcC1ZclRXVHdUdnV3eGRBeVFWTHI5cUNYX1doWWtqWTFsUDVLMnZKTXFyR0ptOVRqN2U0WkxZRlVCbU9OeFhuRm04WlRrbmNUVDVwcHpSUi1zODVRd3dGMF9RdkUzeldGM2Q2LTl1eFhLSVRKb0kzTTRQOXBScGE5bzhRNXhDVTFzYXRpTC0tWktfbDlWbGR4S2dXZjRyWGM0VFp1TnFPWXRRN0ZobXlLUEdOUVNXNmsxYUtrSG9oZ3I2MTdXSENORjNuc0RmQS02bEtsa1draG5idThaOFhrZkh2U3M5eE9GQ2t1eXBmZHFKM1I5bUI2MW5Hcm4xaU4yYVBST1BqYnlmeUxKR3NORmZlQVp6a1dYWXlTWUp1RHJWNVhLeU5YS01uRVJrN0NiU1ZxQnNwWThMNXFNUWppZno4OUxNenZkWnlmblF3UG9LMjZCYUtJQXg5ZTZVd0tTQUN6aDNWM3VtN244R0FCNDVmZTJ1cWVxTWdpNWlVZ01HUFJhTDEwMGFyMlNuNkd3VkJyRmRwRUV0WG1YRkNPZDhUb1VnNVZDY1hPRGhQc0s1bkNNRjBXR3hzMUV4R3QxWkhhRUJWbmJ3NktnYVltRmloS0VuY0dudVRUZGZsWWNoVGt1Uk8zSkNUaGZaOWU5Ti1CVzI2N1dhZG5mVDM4aDRtSEF3ank5cjQyOGNWUkNyZlRydGxMeVZsU0doSThKbElXR0s3Y1ZrUF9CdkZmQVlWMGl1V1ZyekNYbDRuXzh0MzJVV0E0aFNqNDMxbksweEN5MGJMLWdScWtRNXVncXYyM3ZTTk1qN0FfbjV0cmRDNVZPMnR0TkJqclR4M20xVzBsTkRrM3B6aUZiRXB1MjE2NS05ZXdEcUNCajVfbDcxNDcyOXctVE9KYllNV2V5ZVRoVEFYbF9qdlBCZEdrNkJ5S2djUXFWT05fN1psYlg1ZGgtMFZmQm82R210OWNEMlQ3WW1YdlItcEZma3pSZER4dWtLejZOS0dFSGNCTkwxdWpoNXZxZEhzYnlsTm44cU5WMTN2V053YklrZXlaSXluVFVuWkhaLWpQZUMtOUxMNWNoeDhEUUIxdkppS3QxWlNFbE1lT2F3QVE1TnA3c2UzcjVfekJZMWp3M256SG9iWVdlRHZaajRLOHM4M216cGdHYUxjTWJSWEdkQU1UeGJzTW90VUw1U0U0RjZXcm9GMDlsVnZQUkdsYXBaOUtmR2J6VEhCOS1JWHVIVmMzX1hvbmNoMVZfeVllM1RtajhxMXYyOWlZQjFadFprc0JPN1A4QzZBOGNyVGdZTlJWVmQxYms4UzhNRnV0LWZkWXVWS1VWZDRhQTR4V2p5QVFaYmI1LURfVlBvVDRZeGJ2RGJBMFZPeWR0NTh0ekxMd1pOWlhxXzgyOGxoUlVOZFVpRmc5LVFVZzNZX3pkc3pZQ2c9PQ== +Connector_GoogleSpeech_API_KEY_SECRET = INT_ENC:Z0FBQUFBQm8xSVRkNmVXZ1pWcHcydTF2MXF0ZGJoWHBydF85bTczTktiaEJ3Wk1vMW1mZVhDSG1yd0ZxR2ZuSGJTX0N3MWptWXFJTkNTWjh1SUVVTXI4UDVzcGdLMkU5SHJ2TUpkRlRoRWdnSldtYjNTQkh4UDJHY2xmdTdZQ1ZiMTZZcGZxS3RzaHdjV3dtVkZUcEpJcWx0b2xuQVR6ZmpoVFZPY1hNMTV2SnhDaC1IZEh4UUpLTy1ILXA4RG1zamJTbUJ4X0t2M2NkdzJPbEJxSmFpRzV3WC0wZThoVzlxcmpHZ3ZkLVlVY3REZk1vV19WQ05BOWN6cnJ4MWNYYnNiQ0FQSUVnUlpfM3BhMnlsVlZUOG5wM3pzM1lSN1UzWlZKUXRLczlHbjI1LTFvSUJ4SlVXMy1BNk43bE5Hb0RfTTVlWk9oZnFIaVg0SW5pbm9EcXRTTzU1RFlYY3dTcnpKWWNyNjN5T1BGZ0FmX253cEFncmhvZVRuM05KYzhkOEhFMFJsc2NBSEwzZVZ1R0JMOGxsekVwUE55alZaRXFrdzNWWVNGWXNmbnhKeWhQSFo2VXBTUlRPeHdvdVdncEFuOWgydEtsSUFneUN6cGVaTnBSdjNCdVJseGJFdmlMc203UFhLVlYyTENkaGg2dVN6Z2xwT1ZmTmN5bVZGUkM3ZWcyVkt2ckFUVVd3WFFwYnJjNVRobEh2SkVJbXRwUUpEOFJKQ1NUc0Q4NHNqUFhPSDh5cTV6MEcwSDEwRUJCQ2JiTTJlOE5nd3pMMkJaQ1dVYjMwZVVWWnlETmp2dkZ3aXEtQ29WNkxZTFkzYUkxdTlQUU1OTnhWWU12YU9MVnJQa1d2ZjRtUlhneTNubEMxTmp1eUNPOThSMlB3Y1F0T2tCdFNsNFlKalZPV25yR2QycVBUb096RmZ1V0FTaGsxLV9FWDBmenBIOXpMdGpLcUc0TWRoY2hlMFhYTzlET1ZRekw0ZHNwUVBQdVJBX2h6Q2ZzWVZJWTNybTJiekp3WmhmWF9SUFBXQzlqUjctcVlHWWVMZWVQallzR0JGTVF0WmtnWlg1aTM1bFprNVExZXY5dnNvWF93UjhwbkJ3RzNXaVJ2d2RRU3JJVlBvaVh4eTlBRUtqWkJia3dJQVVBV2Nqdm9FUTRUVW1TaHp2ZUwxT0N2ZndxQ2Nka1RYWXF0LWxIWFE0dTFQcVhncFFPM0hFdUUtYlFnemx3WkF4bjA1aDFULUdrZlVZbEJtRGRCdjJyVkdJSXozd0I0dF9zbWhOeHFqRDA4T1NVaWR5cjBwSVgwbllPU294NjZGTnM1bFhIdGpNQUxFOENWd3FCbGpSRFRmRXotQnU0N2lCVEU5RGF6Qi10S2U2NGdadDlrRjZtVE5oZkw5ZWFjXzhCTmxXQzNFTFgxRXVYY3J3YkxnbnlBSm9PY3h4MlM1NVFQbVNDRW5Ld1dvNWMxSmdoTXJuaE1pT2VFeXYwWXBHZ29MZDVlN2lwUUNIeGNCVVdQVi1rRXdJMWFncUlPTXR0MmZVQ1l0d09mZTdzWGFBWUJMUFd3b0RSOU8zeER2UWpNdzAxS0ZJWnB5S3FJdU9wUDJnTTNwMWw3VFVqVXQ3ZGZnU1RkUktkc0NhUHJ0SGFxZ0lVWDEzYjNtU2JfMGNWM1Y0dHlCTzNESEdENC1jUWF5MVppRzR1QlBNSUJySjFfRi1ENHEwcmJ4S3hQUFpXVHA0TG9DZWdoUlo5WnNSM1lCZm1KbEs2ak1yUUU4Wk9JcVJGUkJwc0NvUkMyTjhoTWxtZmVQeDREZVRKZkhYN2duLVNTeGZzdFdBVnhEandJSXB5QjM0azF0ckI3Tk1wSzFhNGVOUVRrNjU0cG9JQ29pN09xOFkwR1lMTlktaGp4TktxdTVtTnNEcldsV2pEZm5nQWpJc2hxY0hjQnVSWUR5VVdaUXBHWUloTzFZUC1oNzJ4UjZ1dnpLcDJxWEZtQlNIMWkzZ0hXWXdKeC1iLXdZWVJhcU04VFlpMU5pd2ZIdTdCdkVWVFVBdmJuRk16bEFFQTh4alBrcTV2RzliT2hGdTVPOXlRMjFuZktiRTZIamQ1VFVqS0hRTXhxcU1mdkgyQ1NjQmZfcjl4c3NJd0RIeDVMZUFBbHJqdEJxWWl3aWdGUEQxR3ZnMkNGdVB4RUxkZi1xOVlFQXh1NjRfbkFEaEJ5TVZlUGFrWVhSTVRPeGxqNlJDTHNsRWRrei1pYjhnUmZrb3BvWkQ2QXBzYjFHNXZoWU1LSExhLWtlYlJTZlJmYUM5Y1Rhb1pkMVYyWTByM3NTS0VXMG1ybm1BTVN2QXRYaXZqX2dKSkZrajZSS2cyVlNOQnd5Y29zMlVyaWlNbTJEb3FuUFFtbWNTNVpZTktUenFZSl91cVFXZjRkQUZyYmtPczU2S1RKQ19ONGFOTHlwX2hOOEE1UHZEVjhnT0xxRjMxTEE4SHhRbmlmTkZwVXJBdlJDbU5oZS05SzI4QVhEWDZaN2ZiSlFwUGRXSnB5TE9MZV9ia3pYcmZVa1dicG5FMHRXUFZXMWJQVDAwOEdDQzJmZEl0ZDhUOEFpZXZWWXl5Q2xwSmFienNCMldlb2NKb2ZRYV9KbUdHRzNUcjU1VUFhMzk1a2J6dDVuNTl6NTdpM0hGa3k0UWVtbF9pdDVsQVp2cndDLUU5dnNYOF9CLS0ySXhBSFdCSnpqV010bllBb3U0cEZZYVF5R2tSNFM5NlRhdS1fb1NqbDBKMkw0V2N0VEZhNExtQlR3ckZ3cVlCeHVXdXJ6X0s4cEtsaG5rVUxCN2RRbHQxTmcyVFBqYUxyOHJzeFBXVUJaRHpXbUoxdHZzMFBzQk1UTUFvX1pGNFNMNDFvZWdTdEUtMUNKMXNIeVlvQk1CeEdpZVdmN0tsSDVZZHJXSGt5c2o2MHdwSTZIMVBhRzM1eU43Q2FtcVNidExxczNJeUx5U2RuUG5EeHpCTlg2SV9WNk1ET3BRNXFuc0pNWlVvZUYtY21oRGtJSmwxQ09QbHBUV3BuS3B5NE9RVkhfellqZjJUQ0diSV94QlhQWmdaaC1TRWxsMUVWSXB0aE1McFZDZDNwQUVKZ2t5cXRTXzlRZVJwN0pZSnJSV21XMlh0TzFRVEl0c2I4QjBxOGRCYkNxek04a011X1lrb2poQ3h2LUhKTGJiUlhneHp5QWFBcE5nMElkNTVzM3JGOWtUQ19wNVBTaVVHUHFDNFJnNXJaWDNBSkMwbi1WbTdtSnFySkhNQl9ZQjZrR2xDcXhTRExhMmNHcGlyWjR3ZU9SSjRZd1l4ZjVPeHNiYk53SW5SYnZPTzNkd1lnZmFseV9tQ3BxM3lNYVBHT0J0elJnMTByZ3VHemxta0tVQzZZRllmQ2VLZ1ZCNDhUUTc3LWNCZXBMekFwWW1fQkQ1NktzNGFMYUdYTU0xbXprY1FONUNlUHNMY3h2NFJMMmhNa3VNdzF4TVFWQk9odnJUMjFJMVd3Z2N6Sms5aEM2SWlWZFViZ0JWTEpUWWM5NmIzOS1oQmRqdkt1NUUycFlVcUxERUZGbnZqTUxIYnJmMDBHZDEzbnJsWEEzSUo3UmNPUDg1dnRUU1FzcWtjTWZwUG9zM0JTY3RqMDdST2UxcXFTM0d0bGkwdFhnMk5LaUlxNWx3V1pLaVlLUFJXZzBzVl9Ia1V1OHdYUEFWOU50UndycGtCdzM0Q0NQamp2VTNqbFBLaGhsbUk5dUI5MjU5OHVySk1oY0drUWtXUloyVVRvOWJmbUVYRzFVeWNQczh2NXJCeVppRlZiWDNJaDhOSmRmX2lURTNVS3NXQXFZT1QtUmdvMWJoVWYxU3lqUUJhbzEyX3I3TXhwbm9wc1FoQ1ZUTlNBRjMyQTBTY2tzbHZ3RFUtTjVxQ0o1QXRTVks2WENwMGZCRGstNU1jN3FhUFJCQThyaFhhMVRsbnlSRXNGRmt3Yk01X21ldmV3bTItWm1JaGpZQWZROEFtT1d1UUtPQlhYVVFqT2NxLUxQenJHX3JfMEdscDRiMXcyZ1ZmU3NFMzVoelZJaDlvT0ZoRGQ2bmtlM0M5ZHlCd2ZMbnRZRkZUWHVBUEx4czNfTmtMckh5eXZrZFBzOEItOGRYOEhsMzBhZ0xlOWFjZzgteVBsdnpPT1pYdUxnbFNXYnhKaVB6QUxVdUJCOFpvU2x2c1FHZV94MDBOVWJhYkxISkswc0U5UmdPWFJLXzZNYklHTjN1QzRKaldKdEVHb0pOU284N3c2LXZGMGVleEZ5NGZ6OGV1dm1tM0J0aTQ3VFlNOEJrdEh3PT0= + +# Feature SyncDelta JIRA configuration +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = INT_ENC:Z0FBQUFBQm8xSVRkTUNsWm4wX0p6eXFDZmJ4dFdHNEs1MV9MUzdrb3RzeC1jVWVYZ0REWHRyZkFiaGZLcUQtTXFBZzZkNzRmQ0gxbEhGbUNlVVFfR1JEQTc0aldkZkgyWnBOcjdlUlZxR0tDTEdKRExULXAyUEtsVmNTMkRKU1BJNnFiM0hlMXo4YndMcHlRMExtZDQ3Zm9vNFhMcEZCcHpBPT0= diff --git a/env_prod.20250925_014849.backup b/env_prod.20250925_014849.backup new file mode 100644 index 00000000..1a0c516f --- /dev/null +++ b/env_prod.20250925_014849.backup @@ -0,0 +1,95 @@ +# Production Environment Configuration + +# System Configuration +APP_ENV_TYPE = prod +APP_ENV_LABEL = Production Instance +APP_API_URL = https://gateway.poweron-center.net +APP_KEY_SYSVAR = CONFIG_KEY +APP_INIT_PASS_ADMIN_SECRET = The 1st Poweron Admin +APP_INIT_PASS_EVENT_SECRET = The 1st Poweron Event + +# PostgreSQL Storage (new) +DB_APP_HOST=gateway-prod-server.postgres.database.azure.com +DB_APP_DATABASE=poweron_app +DB_APP_USER=gzxxmcrdhn +DB_APP_PASSWORD_SECRET=prod_password_very_secure.2025 +DB_APP_PORT=5432 + +# PostgreSQL Storage (new) +DB_CHAT_HOST=gateway-prod-server.postgres.database.azure.com +DB_CHAT_DATABASE=poweron_chat +DB_CHAT_USER=gzxxmcrdhn +DB_CHAT_PASSWORD_SECRET=prod_password_very_secure.2025 +DB_CHAT_PORT=5432 + +# PostgreSQL Storage (new) +DB_MANAGEMENT_HOST=gateway-prod-server.postgres.database.azure.com +DB_MANAGEMENT_DATABASE=poweron_management +DB_MANAGEMENT_USER=gzxxmcrdhn +DB_MANAGEMENT_PASSWORD_SECRET=prod_password_very_secure.2025 +DB_MANAGEMENT_PORT=5432 + +# Security Configuration +APP_JWT_KEY_SECRET=rotated_jwt_secret_2025_09_17_prod_e1a9c4d7-6b8f-4f2e-9c1a-7e3d2a1b9c5f +APP_TOKEN_EXPIRY=300 + +# CORS Configuration +APP_ALLOWED_ORIGINS=http://localhost:8080,https://playground.poweron-center.net,https://playground-int.poweron-center.net,http://localhost:5176,https://nyla.poweron-center.net,https://nyla-int.poweron-center.net + +# Logging configuration +APP_LOGGING_LOG_LEVEL = DEBUG +APP_LOGGING_LOG_DIR = /home/site/wwwroot/ +APP_LOGGING_FORMAT = %(asctime)s - %(levelname)s - %(name)s - %(message)s +APP_LOGGING_DATE_FORMAT = %Y-%m-%d %H:%M:%S +APP_LOGGING_CONSOLE_ENABLED = True +APP_LOGGING_FILE_ENABLED = True +APP_LOGGING_ROTATION_SIZE = 10485760 +APP_LOGGING_BACKUP_COUNT = 5 + +# Service Redirects +Service_MSFT_REDIRECT_URI = https://gateway-prod.poweron-center.net/api/msft/auth/callback +Service_GOOGLE_REDIRECT_URI = https://gateway-prod.poweron-center.net/api/google/auth/callback + +# OpenAI configuration +Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions +Connector_AiOpenai_API_SECRET = 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 +Connector_AiOpenai_MODEL_NAME = gpt-4o +Connector_AiOpenai_TEMPERATURE = 0.2 +Connector_AiOpenai_MAX_TOKENS = 2000 + +# Anthropic configuration +Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages +Connector_AiAnthropic_API_SECRET = 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 +Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 +Connector_AiAnthropic_TEMPERATURE = 0.2 +Connector_AiAnthropic_MAX_TOKENS = 2000 + +# Agent Mail configuration +Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c +Service_MSFT_CLIENT_SECRET = Kxf8Q~2lJIteZ~JaI32kMf1lfaWKATqxXiNiFbzV +Service_MSFT_TENANT_ID = common + +# Google Service configuration +Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com +Service_GOOGLE_CLIENT_SECRET = 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 + +# Tavily Web Search configuration +Connector_WebTavily_API_KEY_SECRET = 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 + +# Google Cloud Speech Services configuration +Connector_GoogleSpeech_API_KEY_SECRET = { + "type": "service_account", + "project_id": "poweronid", + "private_key_id": "88db66e4248326e9baeac4231bc196fd46a9a441", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTnJuxA+xBL3LA\nPgFILYCsGuppkkdO6d153Q36f2jTj6zpH3OhKMVsaaTBknG2o2+D0Whlk6Yh5rOw\nkWzpMC3y81leRLm5kucERMkBUgd2GL4v16k6m+QGuC3BFlt/XeyuckJNW0V6v/Dy\n3+bSYM7/5o1ftPNWJeAIEWoE/V4wKCYde8RE4Vp1LO5YwhgcM4rRuPmF2OhekpA+\npteYwkY/8/gTTRpZIc8OTsBYRbaMwsjoDj5riuL3boVtkwZwKRb+ZLvupXeU7Ds7\n1305odTcZUwnImHiHfuq83ZJViQiLRNhUAFnQIXPrYLwEpCmzRBGzYHaRlb69ga/\nzqUbKnclAgMBAAECggEAH6W9qHehubioPMAJM7Y6bC2KU/JLNS4csBZd+idb52gG\nwBwIEFjR+H4ZjymhAA4+pe7c4h7MKyh0RI/l7eoFX98Cb+rEq/r1udm1BhGH3s2h\n2UiI8qRQh1YRjF2/nrN5VjhDBOFa6W9opaopZy/l8AzsT8f21zIgPen8z8o6GpFg\n64fJFcbqCGk2ykN2+x2pIOT04tmCszrfbXZP8LEs4xrUB/XwlHL1vT/M3EWIKbnj\njDaIMjw7q/KRgNUvmKS6SU9b3fnOLcQCz9f5cKdiWACKIU/UvuiWhWJ9ou6BWLWU\nva1A6Fi4XJjhW7s3po58/ioQfl0A9p/L92lGg4ST8QKBgQDx8LIM1g0dh9Ql6LmH\nBUGCOewNNXTs+y3ZznUfvVMoyyZK5w/pzeUvkmOwzbRGnZJ9WyCghq8aezyEpo2D\nPL7Odf988IeHmvhyZIM4PLJYgDvSwGXyf/gh6gJkf/4wpx+tx/yQYNBm3Rht7sA0\npSaLehK0E0kW1uyBzHGKgyQOhwKBgQDf6LiZ7hSQqh54vIU1XMDRth0UOo/s/HGi\nDoij29KjmHjLkm8vOlCo83e79X0WhcnyB5kM7nWFegwcM1PJ0Dl8gidUuTlOVDtM\n5u2AaxDoyXAUL457U5dGFAIW+R653ZDkzMfCglacP8HixXEyIpL1cTLqiCAgzszS\nLcSWwoAr8wKBgQC4CGm3X97sFpTmHSd6sCHLaDnJNl9xoAKZifUHpqCqCBVhpm8x\nXp+11vmj1GULzfJPDlE8Khbp4tH+6R39tOhC7fjgVaoSGWxgv1odHfZfYXOf9R/X\nHUZmrbUSM1XsNkPfkZ7pR+teQ1HA1Xo40WMHd1zgw0a2a9fNR/EZ9nUn4wKBgGaK\nUEgGNRrPHadTRnnaoV8o1IZYD2OLdIqvtzm7SOqsv90SkaKCRUAqR5InaYKwAHy7\nqAa5Cc73xqX/h4arujff7x0ouiq5/nJIa0ndPmAtKAvGf6zQ6j0ompBkxAKAioON\nmInmYL2roSI2I5G/LagDkDrB3lzH+Brk5NvZ9RKrAoGAGox462GGGb/NbGdDkahN\ndifzYYvq4FPiWFFo0ynKAulxCBWLXO/N45XNuAyen433d8eREcAYz1Dzax44+MdQ\nHo9dU7YcZvFyt6iZsYeQF8dluHui3vzMpUe0KbqpZC5KMOSw53ZdNIwzo8NTAK59\n+uv3dHGj7sS8fhDo3yCifzc=\n-----END PRIVATE KEY-----\n", + "client_email": "poweron-voice-services@poweronid.iam.gserviceaccount.com", + "client_id": "116641749406798186404", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/poweron-voice-services%40poweronid.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} + +# Feature SyncDelta JIRA configuration +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = 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 diff --git a/env_prod.env b/env_prod.env index a323ee70..9442e1f2 100644 --- a/env_prod.env +++ b/env_prod.env @@ -5,32 +5,32 @@ APP_ENV_TYPE = prod APP_ENV_LABEL = Production Instance APP_API_URL = https://gateway.poweron-center.net APP_KEY_SYSVAR = CONFIG_KEY -APP_INIT_PASS_ADMIN_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFlMENTTFpGT0R2SkRjX3hJWi01Tk9mOWhqeUdERVpYa2luUEtlNU9RZGZSVHN4SkpOempuRmhfeHIzV2t5dzNGeGVSaDJaWVRjUUExYU1RNFlBZjNZa3k2Yi16b2JFX2VZbXVRN1VqMXZNRDg9 -APP_INIT_PASS_EVENT_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFlbW40U3Q3bGNVQWdaNDFRZ3FMN3p2UmtYbm9vVG9HcDhrSE1sZGM3elVFUXNRSmpuUTI4czBlSnhSWGJ3dm10X21VRVI5R3N5OVFGNXdGZVZtMkFsT2twcFYwQmtscGNsOFpZVnpYSWdzX3M9 +APP_INIT_PASS_ADMIN_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pSXoyVEVwNDZ6cmthQTROUkxGUjh1UWF2UU5zaWRuX3p2aHJCVFo2NEstR0RqdnQ5clZmeVliRlhHZGFHTlhZV2dzMmRPZFVEemVlSHd5VHR3cmpNUXRaRlhZSFZ6d1dsX2Y5Zl9lOXdYdEU9 +APP_INIT_PASS_EVENT_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5peGNMWExjWGZxQ2VndXVOSUVGcWhQTWd0N3d0blU3bGJvNjgzNVVNNktCQnZlTEtVckV5RUtQMjMwRTBkdmxEMlZwX0k1M1hlOFFNY3hjaWsyd2JmRGl2UWxfSXEwenVnQ3NmaTlxckp2VXM9 # PostgreSQL Storage (new) DB_APP_HOST=gateway-prod-server.postgres.database.azure.com DB_APP_DATABASE=poweron_app DB_APP_USER=gzxxmcrdhn -DB_APP_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFlQnhET1BoeDJ2aVV3OVNseXdPdzZLQUpRTFdQdmdybE5SYjhEcjdIQS1HWG1ua2EtSjlxUWwyNTRNQU1Gbk94dnVqQ25WOE5KTkRsc0RMcTFzOGRUdjNBY1h6cEdIQ1ZXclF4eGVKNHQzUXoyajBFbjFkMGE4MFVkWm9kTVRQaDMxVGczOHFVaFplblVJV1FRd3BSbGpvTTYyV2hDWXFQM3ZfUFpSM1B1U1BZZTg2eDJSZzNGRzZZMm9KRW1SZkFMUl9TX0FWTGlkdGVBMGZEMHJjTkVyQzlGMDItQXhJN1ZDdlBQRC02cEhWeXYtN0RzNUx1UHhGYnAxcmx2RFFRVFBZbGJzcnZDeFNOaWxlZGZrMVg3TW9WcFBQcEpLZllNMGVFd0dOQmxua01IWmJCS1hzM0ZMazZaODBRRk9sdVlRUTd4eDBpLUx0YUY3SE9lQzdzZ2tuTm5QNHFlTm5uR2F4RXpGaTZwOWlieHl3U0puU3RxODJWcFBFdlVWTV9pZXRXTEZPa19mNmhtRmtwMG5KdmtBZzUybjBMWnRhOW8zd2JNeEFKT1B3b014VlY2eUdKSWxFa3VzM3pnUkdobVF6RjJycng5WEFBVE5KTnVqQlRyaWRMYUpFTzhiYzlaQXhEZXFPeVhjdGNIcVZHT1pDTU5QR3JUZVFGcm5HXzR0dVJvX3N0YXJQcWN4cGlxMjNmNlZVb19Oa0NScHJLcm9JMkNBY2VEM0swblV2czhXZldfajFwRU14SGhZUjdDd1BmZzBNMmxhSEtQTkhfU1kwUXdrRGc5cVdGTC1kbldFdGFBN2dyTVlTeE1Vd3AyTjZZVGk2SlcxalppcjdaZA== +DB_APP_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pVmtwYWZQakdWZnJPamVlRWJPa0tnc3daSVVHejVrQ0x1VFZZbHhVSkk0S2tFWl92T2NwWURBMU9UbFROMHZ2TkNKZFlEWjhJZDZ0bnFndC1oYjhNRW1VLWpEYnlDNEJwcGVKckpUVlp6YTg9 DB_APP_PORT=5432 # PostgreSQL Storage (new) DB_CHAT_HOST=gateway-prod-server.postgres.database.azure.com DB_CHAT_DATABASE=poweron_chat DB_CHAT_USER=gzxxmcrdhn -DB_CHAT_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFla0NndGhTM1FyRkJKcDkxZmdib0M5VGxxXzkxMGZ1VG5hWHBDQXlFSWhUQUV5ZjNzeE5rSEdoUDBFam82OEdzVzJrbllQdm5QU252Q2JELW1BWThvMUJpTVRSLXdLX24tQ0FvbEI3X2FQT0hlQkowZklWRG1YRXJMbEFRZnVyM2c1M0k5SEZlakpLenlIX2laXzl1LU5FYndrUHFxekRyUjlpb05CWjM2Z1RrbTJYOGloZHlQYjdkejZ6NjBxSmdST1FaYndNNzIwWG9VUXVhbnAwemtJWGotT2RJVnhLUDJaWVU2dUZ0cmNkOERGYzN6Nzc3V2VENnk5ZUgwdzk4anpzTUg3SzNSZi1Xak5MOVNCSFNnRnZSTThzWkZPTVJYcEZkaE9WMkNHWW8wMTRyX0NNRWpZa0kyNnNBY1pqYlN6UWpmWW80SmpubWtTbG44ZElXSmljcmVUTy1Id2pGUDYyNV8yTjBEZ1FnaVNVcVBYcmFGc2hFdFctWDhtbmF5MDdhVFBRTy1WSHhyUkNYNjVHVmJ6Njk2aEs5MnQwYU5EX0FIc0VtM1AwZE1KdGRlSThIOWVqS2lwaUgxVHZ0SDlacW94RVNxa0taQ0tKQ1RKMVFUTlliYUxCR0ZmQTI0WHk3YV8yZG5mbmZKT2FEOHdiLU5hVUVrRHM4QzRpS0lZQXRSYl9NZDBWbC1IcTFRN2htUjBpV1FEdXRmYm9PRVI4RTRpUGRGRGNseGs0M0dtUUpKUkdKMXBGaF9oSXlmOEdYaUtma2NqS3FtdWkyQWtRUURTbHdTOThrcGV1Q1JOc2lhV0l3dl84YVhDRHlzZWhDU0s4T1FZdFpVQ19xbA== +DB_CHAT_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pZVZnTzBPTDY1Q3c2U1pDV0lxbXhoWnlYSXRDWVhIeGJwSkdNMzMxR2h5a1FRN00xcWtYUE4ySGpqRllSaGM5SmRZZk9Bd2trVDJNZDdWcEFIbTJtel91MHpsazlTQnRsV2docGdBc0RVeEU9 DB_CHAT_PORT=5432 # PostgreSQL Storage (new) DB_MANAGEMENT_HOST=gateway-prod-server.postgres.database.azure.com DB_MANAGEMENT_DATABASE=poweron_management DB_MANAGEMENT_USER=gzxxmcrdhn -DB_MANAGEMENT_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFlMlFwYzQ4YUNOVFhyZktRaVg5UzNmbkhVN2RZaEtHTU1Xb1hnYnA5T0pZdFVrdHZiaXVCdVpEcnhPczJTQVYxeF85SWloSS1wdkNTWFNSZXZqM3ptNU45QVBXUmlPR0daMDZ3UzRFMHNKWnU0VUtuUEJmeVpUWXhxSnN5dDB3X19oTVJKQzFaMUpoWTJHQnZERU1NazE0WHBmRUJULV9CVnhfR1NUWVpGMEh6NTQxRXpKMnlaNGREazJ5X3ZhX3k2b1ZES2JIcXotOEdDYnltVENka0sxT3ZvUTQxdDR2eDJ2NXNIcHVpa2d5NEtOZHJBRnV1Wmt5cXdRTy1NU1BwdDFnelFBeDR0b0Z0UmlTdm4zU2s0a2ZRV3E4VGljS0prZ3RINWtnMkxlX2o3M1QxLU1od29iWmNfQU96eTRhUldGbnoyN3VKRExVdHZsR2oxdlRzRkdqLU1uUXFHb3RJX3pTa0d5WjNmMUtXc3A1YzNJS0NOR2JpeVVUOTdQNjlCbkhNRTZzTnZyU3dHRi1LemlqNlNaZTZvbmIyRVA5cUFXcUUyZ1lSTFZram5RVnRxX0dqTFBLWXcyUzNWaVlqajVuaEl0elpiaWx0YzVtNGVBRFJaeXZMRzRTTEloQzhuV1JMRkNKVmxjQUZSdGM4RjNfN0dsRFhyN21qbFhCMGFoOEIwOU50RzRUX3d2WFdXQVpodEVmck9WNDdUSGoybjJVWFJJcmF2Z215SzMtNk5IREduNG9IYWV6T1JZa3NMNjZVX3gwR085LWdLTGk3cUgyMkZrYnlLZVNqUXpMMUw0WFF4b3JtOXl0OHdjazdmeGcwZENzdkhEUjYxaXZjaA== +DB_MANAGEMENT_PASSWORD_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pQXdaRnVEQUx2MmU5ck9XZzNfaGVoRXlYMlVjSVM5dWNTekhmR2VYNkd6WVhELUlkLWdFWWRWQ1JJLWZ4WUNwclZVRlg3ZHBCS0xwM1laNklTaEs1czFDRTMxYlV2TWNueEJlTHFyNEt4aVk9 DB_MANAGEMENT_PORT=5432 # Security Configuration -APP_JWT_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmQzdxRmgzam9WZE9QX2RoUGlYcGU4V3A4ajExV2tNVjFGNHZaVTB6b1hCTXlmcUphbUhaT2hrb1A3UjBsVGtfUERCSVppc2JxYVJOT2s1ZGpnR3JSOUJETzBqRExYVjVSQlNTQkZGYXc5aVZnWEJWMzFHcEpMSjgxY1RUcm1Wd3JVSDVaaktpSXBZc3hBckE0SFhrOFB5d3B6X2VFdURtVDdrT2p3UUVvdU9qU0hZQ1RNVGJZZkFaTjJHc1E1SGpSTGdFdFU1bF84STRQbG9VRTIxU1BoUnBMa0FRc3VvaE4xc0NOQUI3blZLQkxkM3BldTc3RzJfbEJjQVZ2UlhTb1dMRFpjM1k4YWthUG9kemZRekFTWThoTjRVbm05V1VDeDN1dDJzckhvb2F4d1QzY1BIT0dENEgxOXpNbkNVWHluajA2LUp1MndHYW5uSHpWRjFDYlVoUWFKQnJCRTVtMUNNdjhtV1VrV2J4Q1BUektDaFFkZXpUcTJOakpKc1JoNVFEUGdLb1hqRE4zMnRMaXZJX2tCQTZnZTkyVmMtNll1TU9VOTZZX25NelhqSTV4Tm04VHhoczRFY1QwRWpsZFdEczY0dXM1Qm95dFkyNkpjeXA3VTlReGhUeGF6NXMtV0NoYloxQzFWZndlcG9oZGtSczVyUlM1bkVSelY4aXhLcmZPSmZ5WEZ5VzluTEZOWXpBbVJQc1NvYnZ2UVNzSldvZ1VEN0lyQVhybm1vRHVVVDdBczBLWXMyb1hFSVNheFc1bV9oSVdrdGJRcjYtVHBOczIyM01SZVd3VGh2aDdtZEZubVU3al9GcHNacmRDSGVXZE9VVEJ5NmNzLTFGUnJxZ01qVmU4TlBDNWhmS2ZWNlpkdXZYeXVOWHFfLTdHYVNlTTlZR0o1NWh3V2JCMjhyNWt1eUM2S1pMTHhITHhmcE9hbHpILXZEYlJ4ZmpyMFE3aWQ3cUhnV3Ruc0NZQ1dzUWNEV3lmZFJQU3l5bWxnVkpJc0ZZT0tFN1lZYUlrX1R3Rkx3ckh0cUxfbFlwc29YQXR0dnJvNWprUzRmYnNrQVdOUldxbVZuZVNlYUNwN1VKWDN6V1Vnd241NDNxRGU3a3RXSDZTb1Q2YTQzaDN3RWJ4V1dZS0JKUHY5R2xiS3VZUG1XWVYyRTA9 +APP_JWT_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pY3JfX1R3cEJhTjAzZGx2amtRSE4yVzZhMmY3a3FHam9BdzBxVWd5R0FRSW1KbmNGS3JDMktKTWptZm4wYmZZZTVDQkh3NVlxSW1MZEdiVWdORng4dm0xV08wZDh0YlBNQTdEbmlnVWduMzNWY1RPX1BqaGtnOTc2ZWNBTnNnd1AtaTNRUExpRThVdzNmdVFHM2hkTjFjcW0ya2szMWNaT3VDeDhXMlJ1NDM4PQ== APP_TOKEN_EXPIRY=300 # CORS Configuration @@ -52,32 +52,32 @@ Service_GOOGLE_REDIRECT_URI = https://gateway-prod.poweron-center.net/api/google # OpenAI configuration Connector_AiOpenai_API_URL = https://api.openai.com/v1/chat/completions -Connector_AiOpenai_API_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFma2p6ZWhwWDdLNzQya2E5MlFiTUt5d2lOaHlnZTNNWTdQcXh5amNTaTlWalpaMXFWQVQ0NFNkSlN3OFVOVVBGYkJkUWdqenh3WVJ6SkVLYW91SGN5VHhUeDFsSlFkUGdlWk03NmE1MGtTbHBQdDFXNng5YXY5MGluN0ZKVjFTaVIxTVNhQUZaNzA3MWJwODVFWVdwelVBX0RRN1FPOF81TEpCTnpaYjVlSzJxTXNnbVZVWlZBQklqSzkzZzB0bWJhRlJ6cnZIRVl1SDdlZ1lSWEU0eFQzdnZhbVRGSkd0UDNHR2YzVjB3d19VUlVaV05LOGk0dVVMN3V4MjVaU2xPcXB0dDdNUE54U2tfRDFMM0t5R2M0UlRVdU95YzIyU3VqSFFVNVVmNll3YnY2M3F5d3NzbnVPenlkeXB0X05IUHF5MU1hWlBZZV9ubFpZcDFwYzRNdTZVaExqeFk5SGhsTTZLRmdwQTFINTFteVdQSDhRUDZMaV83bkllb2IzYXYzWGhhQ1p0TnpQUkdvLVRwOVUxN3V4MlZfSGdGS3B5WWlDSDVzRXhxN2ljWDB4QWpkWXVXdlAtdE9nMnNNX05lVThaRkNIZHV3blEzMW9obUw3Q1FMM2piYzdTdm1MajhLVGFIbVJ3aGhaNFJteFlPNVkzemRadGhGaUhhTVc3eUltVWlXMkE0UGEtZW5MaW9NSjhlMS1CT2l3S1RXLVE4dEZjbXgtdVhJOElXZjl4LVhDMmRTanhvOEJZQ3dfYU5GVEVPNGxBTmhjNlcza2dNenEwdEQ2MHBGemRtbDV5cG11dF9qLW11VU8yekxrMnRLeVRZOEx2TVBKU3EwS0VLQUFtVWluaWQxSE5qeFphZVlDTnpSbjg3UW9VWHBDQVMtUVJxOW13anI4ZHo0YmhRZlF3SGw4STlkeTJ1ZUJVVXNWUTdpaExDOElLbXQ2YVhYZlV6NlpaTnNROGJUaWYtMzlDcnhwMmZqTVNiV2tLMHFnWjJFaUdhQkxqcW9adTJLYnF5SUw5ay1yYVJJVEZxMXNJSk1HQT09 +Connector_AiOpenai_API_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pU05XM2hMaExPMnpYeFpwRVhyYl9JZmRITmlmRDlWOUJSSWE4NTFLZUptSkJhNlEycHBLZmh3WFA2ZmU5VmxHZks1UUNVOUZnckZNdXZ2MTY2dFg1Nl8yWDRrcTRlT0tHYkhyRGZINTEzU25iYVFRMzJGeUZIdlc4LU9GbmpQYmtmU3lJT2VVZ1UzLVd3R25ZQ092SUVnPT0= Connector_AiOpenai_MODEL_NAME = gpt-4o Connector_AiOpenai_TEMPERATURE = 0.2 Connector_AiOpenai_MAX_TOKENS = 2000 # Anthropic configuration Connector_AiAnthropic_API_URL = https://api.anthropic.com/v1/messages -Connector_AiAnthropic_API_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmNkx4WERQNTZmUl9CS29RblR4Nm1jbnZ3LXV4ZEd5MUhvMWMzZUZqUmo2M2pCOWFkcUFjbUZleUVnUEZoZDdlMmNTcjdZRUQ3RnU3VjV6Tm0wd3RmUWIxZDZJTHlDNmtfSVNYSEVUbEFVSVVLbDFsVFlsSUNZVU56TU5tbk5ZbG4xVTZZNGVNSHR5ZWozb1k4NjZTMkRucmo3cTAzdFpVbEFlaGNtM2h1dEpYWDhJT3V1aHFsZF9xbmw1VHNpeXNWZUVyQVUwT1J5NzM2VVpuLWstNHV0UENlSmlZc3QyVGJzdXRldUhJNTFnSnJGSUUyZnh1SHJhTzcxbVpaVllOVXN2cTh5YnVxalJOZVF4V0xKTUs4Nk1yUTFSUWJJYk1zV1hTanpjZHdHdXk3a2lEcDdDOGtZNkZYMkxCRlFQY0hLcXFWVUhUZjI5dEQ3S29QenRYN1pFbG5uN0N6cDlXUFNSSEFILVZOWVpmTmdZSlFrRDVmc0Y0dEEwTHpmRmlVaE5VaDJvNVJldVE2NV9zNVJFN0VLMW9CcmZwR0VQVkk1cnF2czNxQTN4dnc3RnpvZHVGejJYUkljSGdPS2RQM1JFYy04RVVtYkhOTnNJSW5XRW9aQ0l1TzdnSU1fNUVkcm1wc2wwbGV0WEpFNlJIZmJGSmNLWVRKcVlaNzBfWVdJX2FPM3NuTzFyVHZVUTljc0N6bjJoVVYyQ1pJcXFzbDZySmNVekNGdUtqdk1lM0tJY1pfOFcwUDhzVjdtQ1h4TjFxMlJ3OGhILUUyU0g3ajU3akhiTDF5S3lzSXdUbUVDMGVLY1NrY0VKVE1pd1R1cmtrVnZEX1hYUm8wcUtPVWtxR0twVFdMYmYwX0R6UXRiX0FkNlpoX0xlUDk5VXRweHBUb2JXQ21YTlB1b2kyck1KcHRIMDBZdjVtNW9sb2g2a2cwNW5sQURhTnlhNThKUGZhQmY5blN2LVNIRHdhN1ZDRGY0U29iM1hQaW9HSTlQUXRCN0ZKMUlsU1JtRkowTktCbnFweE9GcG1NOGZ6eDg5OGNaTEdKdDZoTGlwb180Sm43OVcyMGI4WHp5RDAxMF9Xa3hOZGZYMm9fSzNwTEtfcUZzSWVJUVhmWHJxTnRJUFNOZFgydDY2VmQ3VE9vRU10dVFNYm5LVmNHZElDRGhRRk1fRHBzVDdERk9ab09sRTBKMG8ydUxGZFoyMWFLNFJ3MnhkSm9oUjNIQ3ItbllLM1pqczdlQUE1RmdaWTMwbFRneVpSZVkzNFJGODJlOC0xMi16SC1KWW1rdWdicUdPa0VVQT09 +Connector_AiAnthropic_API_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pNTA1RkZ3UllCOXVsNVZzbkw2Rkl1TWxCZ0wwWEVXUm9ReUhBcVl1cGFUdW9FRVh4elVxR0x3NVRxZkc4SkxHVFdzSU1YNG5Rb0FqSHJhdElwWm1iLWdubTVDcUl3UkVjVHNoU0xLa0ZTSFlfTlJUVXg4cVVwUWdlVDBTSFU5SnBzS0ZnVjlQcmtiNzV2UTNMck1IakZ0OWlubUtlWDZnMk4yX2JsZ1U4Wm1yT29fM2d2NVBNOWNBbWtTRWNyQ2tZNjhwSVF6bG5SU3dTenR2MzA3Z19NUT09 Connector_AiAnthropic_MODEL_NAME = claude-3-5-sonnet-20241022 Connector_AiAnthropic_TEMPERATURE = 0.2 Connector_AiAnthropic_MAX_TOKENS = 2000 # Agent Mail configuration Service_MSFT_CLIENT_ID = c7e7112d-61dc-4f3a-8cd3-08cc4cd7504c -Service_MSFT_CLIENT_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmWV9mVkRraEczbjBqbHJSVFdYLVViTzNpd014RWlJRGRxVjNKdVhyVXEyS1dna3JBRlNMdTBkTVVXR09hWkNabktiZVhJdUxSUHhUQjNJN3RFeHlqdlFSRlNFWGU3NTdTcmVEYXQzZ3FzX09Fak1iUzhDVUN2NjUzNFhtaGpxX3hvZ180U21FSllxTnE5c3FKVkEtTVJFTFdraFBlLS03ZUlsY0FaRkVBRHVmNEdmdnlxcTQtSEUxLWlqakFueS1TcVBFMHhYV0tfM2tNSDFFMzMzc0NHSVNsdHNHTU9BVjhJSVFzblpzR19RMFp1VFJFZXBnLUI1VWZWMDJLVFNBSWNSVElRcVRNNk1KOGJRZVBsNjBnZGlrZFFfdzlqTmZFbmVPMWs2ZFBpaVVPQm5YbExRaE9KOUlZS3piTi0yTFhGM0kySTlYQldnQW9zVnFyeXFhYTFjSUZfN2VrY20wWUlpb0lCWnMtMTBRQV92TTE3aEM5RXZaYlNxWEZoVXJxLVNJT2RNOGg1YlFqaXI1dUh2dk1VY21hNW1KRzloZl95aTBMUVJZZ3E2VTE1S0JhenpkNVRvdHRfcHM5b29UVjd5MVdRdTV6clh5NEFudkNlelczYUN6ZkVIMWZxcy10TE9kYV9LNWRTX0dyRHBkN01EeDIzV0R3MDhmMnFtNjBDUzJYalFuRTlSMkJyMGRvVXZ1MFpqSGQxd2tTVUpQOVc1T3FTU19YSEhmUkFXalB2cG1aVEFZc1NNZ3FDQXNoS25ic1RmWjJXblQ5TnZDSkFVZXpYeVpCemFJNXBDVGRmckJ0UFl3Wnp0Q1FXT19XVW9tWnNOMGx3cVRFR3dqSmJZd1BFMERBdjEtbTlGQnhVX0dOOUhXekM2b29uZy1Qd0lrcE9uS1M4RFNfbmMwYl94ZkN4U3V5WGpiWmVIUExNM1hUalN6ck1CUXpVeENvSXFuUE53PT0= +Service_MSFT_CLIENT_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pVEhHdlZHU3FNMmhuRGVwaGc3YzIxSjlZNzBCQjlOV2pSYVNXb0t1ZnVwQzZsQzY4cHMtVlZtNF85OEVaV1BMTzdXMmpzaGZpaG1DalJ0bkNPMHA5ZUcwZjNDdGk1TFdxYTJSZnVrVmhhZ2VRUEZxbjJOOGFhWk9EYlY3dmRVTnI= Service_MSFT_TENANT_ID = common # Google Service configuration Service_GOOGLE_CLIENT_ID = 354925410565-aqs2b2qaiqmm73qpjnel6al8eid78uvg.apps.googleusercontent.com -Service_GOOGLE_CLIENT_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmUU4yNTRwTDFvU205NF96WENmRVUyRlBER1YwbmgxVVpucXRDUzkyd3o2SVNiVmprTzFiZ3lrbHVaQjVYbVVpV09jMFVSR0lCUEUtYmpBajloaUVtcUw3QjBoQ0lUT0NkOWdOMC1zckxZX1ljZFNNRENqb3VodlZhZ3RmQkNjUTJidUFsMlNrWi15RG5xbTdWdXlmejJGT0VLUmRSWnUtUDZpSWFzTVRPbjF2cFFSZHNRdzV6cjlMaU8tTnRtSEFkRjBERTV6RS0taHhKOXQ2YzBEamN3eEVtTnVvMEY5UzB6MWd4Qk1JdUIxQ2t5UG9SbWR5NlMxV3RtbzFpRDl2bk5IMjR3XzE4bm1OdDZlVmpHTnRNdElMSUN5TUlvdW5FRjNOZzRmR2s1YzBiT1h5U2dIeTVyMVo5UzlJQktXTWNWRHpnbzM3Z1RqSFZkSXBIRlg1WS1veWczeG4yZ2xyak1yVEpQWURXblhuZ29UMUNUZXJsMTJRWE5NUVFDV252Qm5nU2NOWElPV3J5OXRYRnNqX1J5eTZUYm1OSjhrVEVpTnBtcXVWTnJ6ZDV0Y1dhR19jaTBSQjNvR3J3eTZKWVNRMnFFNEcyVFR1cTNYSzNJZzJmMk1hR3MwVGtMQTY5NUgzb2x6R053RFVnd1pOLXMyTnE4Ti1KUDk5M09pOWt4aHhRVFNpZWxBWGc1VzFDSEl3d2E0VFQ3a3M4clBPYzNFM19NRGpSa3FUblN3R1gwTE5hNEZxX0JHNFNXLTVrQnMwR0pmbVFtcnZTNWNwQWhhUG5qMEZaUG02YWpJNTY2NU5EQUNwX0xpdUx6R0w2Rl9UQWxjeE9xYUdBMmpkVGxZNTIxRlRuVGlybmJIaFZTeGMwZG9lMkpyTTA3V3c2QWV4ZTBhSE8xSG9Nb2hfTnhIRV8yU09lWUNweHRGNkwzcHBPTkg4S2NheWVmR0ExUmdKVTRBPT0= +Service_GOOGLE_CLIENT_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pV2JEV0lNUXhwa1VTUGh2RWcyYnJHSFQyTmdBOEhwRkJWc3MwOFZlcHJGUmlGOVVFbG1XalNyUXVuaExESy1xeFNIQlRiSFVIWTB6Rm1fNFg0OHZZSkF4ZlBIcFZDMjZHcFRERXJ0WlVFclhHa29Za1BqWGxsM05NZGFRc1BLZnE= # Tavily Web Search configuration -Connector_WebTavily_API_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmSmxORGhlMzd4dkpmS0tVaUVLdG5UZ3RUckp1cTg5Y1dnXzBoYWZtc0FhR21xdzRvVnhiOVY1eU5PQTM5S1R2cUhhODljLTQzUUJHMUpJRFpucjVIbC0xTDRUVDV3UzQ0V3gxQjI0SkNLWEdHYUtSM1g0UmFueWo3SUlROXRBMjFGQWR3a2p5SnAxVzFrSWxFWHVrdnNsYjFNb0RvMmdmY3ZCUmxfd0FRS3BQUnpNUEZEMlZCSFZfY1VXa3F1Y2V2QW1aNG5uN2ctTnZvMGw1Vlp0eV9VejlZNjRtcEJPYWxtVUdVb0xpbHN6VzZnR0hZTk8wMC1YQS1DMVA3UkY4dV91OTN6dXYtczhKeGxLa3F5UTlROW5GOW9qZS05akRvZ2lfWVY1ZFk4Y21fS3AwMDU5NjY0ekdwd2pFRE9vYXFSMF9PcXRrcWwzTEZrN29VSXVIenJ5MGJ0TGVydTVUR3RVbWItd3dkX00yQTIyeUdFZktGNHJBZkNpbjQ0VjJrd09nQkx4Q3d0eTdIYVZQbU44VGE2d0g2bFd6czRWcG1pSmhhSkxSYnJ4bnRENGdqWHBKVkJHa0h3LW4yU0VCQWYxZ21kdTlqc3g5bktJN3pycFhGNDZoU2R0eU1sSVVCc19LdFIyd3MwYVEwb2tJdXBpc1Y3VXRWVUd6SnozMWhrNVFZLTk3R1FzUDlTMWgwNDFaWHctM3NjOWJiY1g5cTE5SUlIZmUzcnFQaXdJdUozMjZGYmdKTTN3UEQ2ZXZITWM4MU5tYzAxaFRrOTdWWW9iTnJBREJSYXFVZnpCRjVFc2lyam1Bd3g0cVpidV9ISU5qOEdqQWcyaTN4Z08zWUdhX1EzNTc0UXZBWVUzQTdCRWxLWW1tYzJxeXU2NkdOSVhwVVpGV0x6NTNIcERtQWdXbHNhQW1LcVE4eDJGd0E2U2FjTjVuekRiaWJ4aGpEdlNCb1Z3PT0= +Connector_WebTavily_API_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pMjhJNS1CZFJubUlkN3ZrTUoxR0Y1QzJFWEJSMk0wQkI0UndqOW1UelVieWhGaTVBcHoxRXo1VjRzVVRROHFIeHMyS3Q5cDZCeUlEMzE1ZlhVTmNveFk5VmFQMm80NTRyVW1TZHVsR3dUN0RtMnd4LW1VWlpqOXJPeXZBTmg4OEM= # Google Cloud Speech Services configuration -Connector_GoogleSpeech_API_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmZFBTcUNWVTdLSkVNWk1MSkVfMFN4eW9nbEhNZVd0OGZVZ2F0bnU3bXF0eHJmUTU1Z21ZVWNTMGF5SkR4dEJ2MTZKT2lJR3BFZjA4UFlBbGc0MF9EUEdKcnBRb3RRb3QzbTBvRndRY1V1UVZOZkRzbmhqXzBURWFfR091aDlBQms3OE53THBidXdEWjlpeGlGTENjVW02a2pZSmZYWjZLUTZEMjJuYk54MDN4LUJmaTU1bEpLY3V1bmNvSU5mZWdwVWFHbEV2YzFnaE1WQTNkT0RWbXc5N2lQbm1TZVF5RWxybkotYXFBQk9DSWJHTDJUVE04OEtHUUVZb29QNklRMFUxM3ZrM25TTUtIc2lWOVNxQzRkZDFFcTRTT251SVBIRUptS1ZpNVh5cjF6WWVpM19feXNmNGR0aERzLWxaQWdMQ0o5aHVaakJVaDloUFRRY2Vld1hIaENQZjhJVUhFYU1qWHZHQkw2R0xHTVh6MkJFRDhoQUg0X21VNlYwWjBBNk5BNVJHcUlaRXM1bHg5QXVKVzRwZUl6WjhXYlpIZUx0Q3BlYU5EZzMyamVLZzc3eGZLamUxYTRuR2NmUXpSNXlRd0NTUWdBUV9ub1lPZW9VQjA0bmlrNXRRZkdGVUw1OHF0MHdwbFpqMmx5c0V0QnBmOWhYV1drRXJ2d0ZRX2ZkZkROaW92T2lSVHphT1BGNmNZZG9Bejh1Tm1OSUowZ3h0V0doVkhNWlZJdWJoWi1COHYxclpnUnp4R3A1NTNrMC1NUjJPeHlCeEJyLTloUGdmXy00akVMemlOZ3VoVW9qZkFBRXo1bi1tYzFUaVdUV2lCNmo3OFRjZXVvS0UxdndGTDhBNXZsbmlfSThldkF4aGZLbXBiMGcwbTdQanhQc18zam90ekNhbExfNmNJdWV3ZG1GYWlZb2FOVTFLS29UWGZOZGNxdW5XQzFPZy0xUVJ3QzZOdHdTRmNwLXVHNTQ2cUpZeXNHZnowMG8zLTFST0JWTTBXUjY1OHMwME5VYXNoNXpYTTYwWlRIaVZVcmtEbWxpSGNHc0FHYVdkNzc1eTh0NmUydU1jSTZhd3FOOURIU252WmFKUnVPb2lrZlZfRmZ1UmhtenBDbzRabHh0OXBiLTY5ekIwa1RLcTFBOE1nM0h1TGVETk9tVU5MZ3hHRnNhQVBLcFhYMEg1dWg0VzdNYWc0RFRLNFNMVWJvTWhvUlFTYTdvSlBBbFQyVGtqYnQ3MmhCTGhZVlR2VW1ac1E4Y0N1aUNnTC1OM25mam9TZXY1NGJwNFJrYmRyTlFlVXUyMTRTeWRBbTRPVkh2SFpheGZkbHg5dDV0WVdkb0FVVmwwMHd4X2NGZFVISHlqZEczbThrb2xoTU9sWjVub3NRaTdscTItd0ZWMlc5dngyTG1ReGc5Rk52SE81S2NlNDZJLVphaHdKeGlUb0JhMkhuaTVGRU5jM2o3OTZRaDlNQUd4SUhMTGFyRF9WaFZhME8ybUpNWGlBQWJqdmVGcU02NDI2UWxyYTU1UzduMWVhQnlRNHhkOFpIZmN0SnVEUWFoYlNvRTlmUTVDMEZ2M3pqbzlPclZrbGl2MEhEZUk0NUVNcndnTm5haEp6RFpwRy1IcXlKYlZ0MHJpd0pUMk1nd2YzWUVJOVlBeTA5dXl4aWkxU25IUzF1WEktWHliT003SWJKcEtmMmNleVlHN25yZUJpSndYQVI4bGd3dnBvR195WmxUSVhkWVZDNDRDT0pUM0hibk9EMGQtMEd1em9naXBpTk9XYUg5OGVyT2lzQ2JxUVJmZ2RDOW1lS0c4UTBuaENGZllUeFdkdUJycGVUVWFZQVJVQTJFOTVxdGhMcXdCSmg0d29ZMDdTNzlpY25vNHVPX1JPS3RWcXJLY2ttZ0N0NUJKemljd3dYMEJZc19IR055emVVVHlVdGR5eFRSaTd3c29Ram9vNXNleGRTUkFZTElRZF9rS2x2WlJqS1RZWC03N1paOG1Od1lKWEdDeXR6dFI2R2hIZXpnYzFVWnJFcFJSeWZmVENWc0p6LWZSa09ERmhhOThQU2tkX0JGOVkxWjJsanREVHZmM2lTYVlzc3ZYcWw0bGlZSTRPdDc5d0R0Y2o4OVVMc2hxMWtDSS01RXFGZW5tRmZJNXZvbnJXUTZ0dTJmNDVlQ3oyN2w5dEo2U24xSUxLWVRmeVZwUWlwWFpEWi1XemlhejhmYlg0TF9hNG5YWjg5Q1FGSnlnVmNpVXdRYWYtWkQ2Q0hxakxNR2dTWkI1VTlfdTdlb0cxM3JkeXZqUmUxZ1BHd2FRemtHcU5ZNWIxOU9vYmZET0wzdEI3YU0ydUpwOU1mWVI5RWdKZ0w1b2ZDNHVOMndPVS03TVQ5V0pxa0IyZzR5RU8wNFdadmxsNndkeUt4OUZqeGJ5TXA3VVNVTlVkb2t4S011WFA3Y1JXUHlhRzdCYkdQUzZzMWdFazRodTlaUWVIQ2pfYTZBSm5WZkp0Vm4yckZKNndqbncyTldZNWQzbUZhXzlwTlVCUFlpeHVodDhfTUxoQmpDMXM2TEN2alpNLTVRWTJvWjJNT2VLUVpJU1l3VzRjQ0xUS29uTjRhX0ZIa2dyUG9wc280aXN3a3IyWmlXdWw3ZUJ0TUtuWjRrOVUxN0c5OWEwNGNVdTdZTTJqV3hsZmJRVUZ3cUg3bjFMOW4wWnJzS2FYOHlRY3pDVk15LV9nc3dzYUg4UWdkaGMyRDZWMUIyNl82T1E2MjNiNV9oOWNvc29nTnhuelpkZUJwLTdCcDJ2T2FYcS1FT1RQUU92VkJ1SlIyRUNfWjc2S0hvbVFyLUZKa1lsQ2RqQkVnRkxLa015UnJGNXNuNzAwRnpSRkJDbEhXZ1ZyOVZqM2F5TnpJQWZDcHZtLTJscE1XSmc4NDlJOXpkT1ZCOHItczJCbEZQR012UlJBZG1RLUlwM3QyZVNURnZHVWdZVVZwRUEyLXhMSE80YXBzQ3lrTkNCR2VoNTBKN09QckxkZXp2Q0ZDT1lwLUxDVnpMRmxHemJYeTFhbGptdFFEY1ZvemFnc0k2anlnaVRuYWd2WVQtVHoxMk1NcTgxb0ZkX0h6NldyUmdFeUc2V3B2Q0QwdU1aREVtWHRyYm5GY0JjVWZlU3M0VHJ2clR2ejlCdTZubGdWQkI4eGpESXBteEpiQzRjX19yU2UtVWpNM3JNeVhpQ2h5NjlicXVNV3Z0c3ZlcmhHUzVyX2t3aEJSZHg1cEdyVnVEQTBpSGtTSkFQa3VUUTE5Y2xGdGtNRTFyMXlOVDJWSjF4ZG9ZY0l3ZVpwRWZDc3dob1ZSRDg4Z0hCYkZXd29MTWhWSGlWS0R0UXV4bmdRZ3ZDYi1vd2JHN21ULU1WcXEzTWJram45Q3ppaFZRTWg3N0xXNmx3cUxSa2ZFUDV5dHJFUGYwMXF0YmFUVDMyT2xqZkt1aElhV1dUcUxmaGV0Z1JGWklVRF9tRzBJZGx1RnpkdTlEb0tweDVab1NuNW9QT002TlJUdjIxWnNOeWdHZ3hVWHBMZFVISy1LLWdDLUNGZFdDR3dHVHI2LVVMaE5CcDhqRExHcnR5U3p6aTZFU09NVzdIbzJGOGp0OUJSWjdBWm0wRGExaV9Ybm5PRDZSMV9vVU50YXV1cVBUNXcyTUItYzJTdGM2N3pUVXV3SnJRbEVWTS1vMWxsM05YNFg3X1N0Vy16RDlMa2p2Y2R0NGIwYWZOMXNvNFpWR19od2VDQmNaYWVpNjFOYmluTklPSmZvRi1fRFdsX050Yl9QS3hnbWdhOFF0b3FCMjNFZmN5eWgwakcyRWVTN1d0RUZGV2Q3ekxYVXlkeVdWQXh3bkxMWEJDaTZZcmVIcV95bHVVVjRTdGFYX0MtMzZra2ZHU2gySDNWTGhvejNLVUZWRFhWb1N0dFpiQmFpdWZaeTlOb0hDWm45LWZUOUJyQjZ3ek1CNFNJNVB0cG83YWthVXB5UHp2cTc4ZHo3ME03d1MzdXJ6QV9paW5VS0lkckNqWGxEclNCR3VPdTFLSDluNFMyTVpwMExhQjJRZTUtSXlaUmZjdVZFaGRCS3dWRnFQMGN5SlRvT0o3Ylk4cVcyeTBjV0tuR1N6eV9JU1I0eTEySDRYM3JucWxXYTdFSm5fdlJpMXF2aERrZWJiZm1ROHJEQkRxU1FxSkxFNzNfeW51V0xGRG41OE1pcERrM2hCbVI2aWNBMmZCaHdSUzJIUDNvOXN0M2loSnlFTDVNYmZ2bE1jcXRMamJ5NzJlTzc4bXZIWVIwZkhKSWlwSC1YYVZZT0RGZ01MbmZTd3RBeDNEdmhydDVWS29QdkRTZ1RSSWloY0V4dUVOU3VwVkZXWjNuUmJKeElQbUI1WUUwNzFqaHFWb3FkOUhRaHVQYXJYLVJkbk1WWF9idlM2LUF5OVhSUGJMMTU3UnVyTTJSOHBTcXFoS0lBclFEUmNzb25PbExqWjVydmU3VS10cmVRZnk0ekdoTXpsT1N2Xy1mUVdKVkdVc29Ga21lSVFMcWc5ZklDb3NNYng4YVZoYW5velNOcHNnM1pDbHJqd3dpN0tuZ3lCOXNNSmU4bWNaNnUyTWREU1ExT21HYy1oV1loOGxmdGU4cDBrcUtxODNSRjdvVzNKVFpSWDhrMTA0ekE5M2MxN1RNRkVZRGNUaWtLdGNJYUd0ZzhNanNPYmRpUm05Nnl2OVhtOUMybEMwVXRRY3dsNlppb1ZuN1VIZndSaFhnTFdOOGEtODZLbTh2elJvc0lSeXVVNHQ5b3E4UVlnd2wyYVFIMWRRZFU3aWZucTFFd2kxc3I2eV9RejVUeExnSEZOelRjLTdfSzRNaDkyRWZEMDhEVVA0R2ZqT2ZELW1CMzRCRnZIYzRSTU4wVU1rdWo5SGk4c2VCd042bG5VRkg4cktVQUoydDd5cWRlYkdmUE0tN2VaR2kwVmhnRUVHQUFQdnVGeGtjUFhlY0Y2X2N3aGFCTFB4ZVJHa3VuclhHUy1qVzNWWWNhMENkOFRSRmx2M2paZjhtY3VmdUpWenpDSW00YmdISEFuTDhuRl9GY3pGemlJckhwRjhGV2xOdmdMSG5qdkZFNWVIYzhNRnJzbnUzTUhmYndicEdfSVZDZm1LUlc5V1hHcllCcW9udEI4U2FWX0JITXV5MnlwbnhsV1Q3QnpIeXpScTduUTd4UmZzMzBtLTg1Wm5tN2hlLWYwNXZwdHlJQllvNHI3V0Qzb2tWZGo2VVRYYjE1RWFORHJBYW5NN3JoQ2M3UWcyazFYX1dNcWIzMG5mUWZNZi1UR3Y5RlB1Q1JTMGZ5NHBwVURNZDFNV1htVDRtUzBickcxVTZLenR0X24waHhmWFhuOGFvVUhWZkNram8tQ2lzc1NyVEdhZ2VwWlJfLVV2Vm44OXZwckIxdnMxRGpLbURnWjhmd2JqcHgwcks1RVQzZTMyc0tBNFlDN3dOaFcyczF0YmhqcXA2NzVoSG4wUnRTUHF6Slg5Tk1mOFdwX29uM2p1WGlyU3ZTdk5HRWRWU2FzZDhfLXRoZTg5UGRGZ2EyODVDODhib2UtMXdZVWxHOEptQWJhVDhydUdhTTloUmVvZEdoMDFrcmdFVE5yRTg4Tk1EN1UwcnRMQXNVMi01ZzJ2LWRuZmFsdlRSZmtHblB5VnRJalFyTVotY0dqTUpxT0lfUzdsekZmc3g3ZGJlaFpiREY0aHVSc21ZQ2NuaGZVZkV4VkNKb2dHdDltS2FFaEsxM0VKTXJWNmpyRXFmM2syZ2g1MTVnNGFZdEF3TEVMWnBKWEdXZFhMYXZrNUJ0LXlpOUpwaTFPX1NJMk5RNy13bklFMG9GSmVpMV9qVHRfWWVOUUdlajAyb1MxSU81aGlLaXBBVUc1OHhqNFh2bko3N0doeEdaNFJjcG5EemZMbGhyY2xTSkVEeGRtTlpzYUFIQXBPcDBYekVhbWw2SE4zaVVzQzlrancxMzRyN0k5WmtSRFdTc2RsMXVHQzhnOC1QNU9VamZNd0ZoVW02VEVUMEJpNnl4d01nZVFfUVJaOEVCUzBoTW44ZUZNcXoxdFpIamdPLW5KTHJwZE43am9DNjZaV1VDYW1hM2hxVHRFbHZ5cXNvV2VZbmJCanptMDAtNDBHQ3hVczB4Vlp3VmNXNDFLTjlNM1FORHJqb3BTdVRNWVhlMzNFcVVxOUhvemdfQ3VaaDdPcjVYa2V0SVRrOXprNTVlS0Zvb2dvZzcta2w1NGhyR09zU21CTThKQ2hBbkgxcEVBSThZLVdBVWhmZFFhRWxfNnhMalFuVVRldUM1TTA4cUVWejVLTWdwU3VuajNXUUYxWDZBVzB0cVRObUloalV3ZmIwQ1VPSFZOYUlEX0lZLU9XU0NsbndVeGY5cjVxTGIzcUdscU1fdXh4bXJfLTJrSUo0R0llOE1xLUdNYzJzbEpMSzR1QzM2emJQbWFqbnhVeGVHQmNmbUFWb3lfWXVDNEh2bWxrTGxSbFM1Mk9Eb1E2VlFfMkRUeDNKT2dXckpyU3VDTDk5M0tYSWVYYUtZM2ZtOHpDNDI5X1NNdXRKQ0d0OXVPaWhSV2thOVczcWgzTk9aVVRjQWxQRGRDTFkzckZQb3NZTXUwMnFoLU12MERmZXZOZm5nSkhuc0Jvak56dEtqcEVMNzVYcjdYbF9GUUwxcHpoNXBrSzU0OE5saXA4QlVkWXVUWndhRk12RVVjd1BrZUFiTnRvbzVldld6Z1ZiMVhLX3ljVVctVEVyYXFGdm85S2U3dFNHODhTOVB3ZU1iSURJSnc1SjRYZVNSWFBwWng0bmJkN1NJYjh5QWxoaVAxU2NKNlRKR2YxR05xZ1VfcE5ZcEZDSGFzeFMteFF2UE1zbkh1bjVLY3FMYjhkZ3dlMTZtdTFodTJqa1lTZ0g3QVl1b3lIVGRZd3Q4NTJCT2sxXzlmNmkwdlpydFA0aG1lWlV5a0VaTmZwdTFWVlc3WFRUVHUtTWxZdG51NHBsdUIwNlFNd05MQWVaM1pEaWp6VzlQc3J6TzJfTWtQdHc3VXJ1TTR1cFdwV0lqRGdod2RPZGtjZExCT19rR2ZVSnNmTXN2RjFzVkV1TW9yd3ZacHhuTEhDdlNDb1lvY1REUWRHSTg4a0hnd00tY3pscGNJOGlzT0U2dXFPOWlLdlRGUUZYSVVnbjJyTUMxUHRLTUJiQTFLUkMtNTQ4b2ZtVEhYUnI2cnY4Z21fWERVMFM2VVo0d3h1YlN1OUlidmdJcHRQTDlVMjZHZFFGVjMwaHliVERzejRlV3dka1hCekE2eGJxcTFwX1lCU0xZT05tOUwwQllKSmJGa0VuRG9VUWJDdnViSEhpdTBmMEdpMzhlM2Fvb1EyTGtXVGJweUUxWmlwZHJXLTBGWm1FY3RJRHE3Sk5ab2xfVE9XWFAzXzEyWXlZLV9FN1pNdG9iYWJ1b3dackJFX0RZUHRNLWtjdTN2MkpyMVpjNTlXTTliamN3SkhjYTNDY3ZiUWw2STM5ZDNVWk1yREg4bG1fYU1ZODM3anRGdjBjZm5KWjZ3c0xQb0VKYkhnRTFoR21kVmV1RWVvTldZS2lfQmFNVUktNEdpQ09vc0VrWGJoOGxCZlRZSkF0MU9iM0dfQkxOQ2cweE1tSG1sYUdsNDBQeG50TnlwZkJaOG9xLUd6bFFhOVg3N09HTW5zQ2dEQXY0UjI2MkVTVmJ4aTE0WWMyMWxzQzBKX1ZRSDUwbDdkOW82Ny1OYV81Vml4Y2Z0NlBiWDNheDVKdDduNm5qWllxcmREOEN0b3dXSmtOcHQ0ZE1PaHN4TXlOWWs1RDBhRU9wYThaQV82a29SV0hpckRJZ1g2QnlGdElTN2J4V3FJaFRUMnBBbXFBV2pQcWZfU1BqMk40c3ktLXJCcWtaS3d3bWJZM2dPWkdCekZxZmhmUDk4UHhGV24zOE91UnpBZ3E4STJmdHNyaEZUTnBUUk5tSzViek5GWC1FSXdaQkxnZ0pjdXZpY1dpSVUtNnVEUU5Jd3BGRVZocUxEU21lc216dmJ6bkd3WHBTam5rVkpaX1p3V2pOajk4QUJkVGRvWkpRVEJXR2FlbkludWVjN3JUYklVMXd2TzI3NVV1RkktaGxmMlNncWtYRm9Vci1TZ01uTzJaNzk3bTN6aXVsTHdKcHhPU1NBWWZ5a0FtUEFnaEJIWmNMWVgtdDEwdnM0dldnUmlablE2QW85ZlVkNjdiOVJHUmlBakRmSUJMQ0NIOUdqTEFlUExpeURDZ016STVISU9wc1ZPODlaaGFLdjl3aWV1Vms0UktrRkhtUGZBOEp0ZVd6RXYtYjZTVTNaaXBXbGlRMTl1NEZrUGR1UWlYa2xYOE5qcmk3SFhWLWJzLWF1ZDRyX01NeWc2a0dEdXZubTZLSVJ2azctcTBpb0RfWnNMeXRONWx6MFREMGFfRWYtbGlhZ1d1MnNNQ2JuVlVkeGlPN1kzd0tPcnZ3UkNGbGtKX3Z1Zm5lb2hEVjRIMlBNeEd0NTY0eGRacThsUU5OVXdrNkhfbE9lblp6ZjVlVHhJa2lHRERodlVmcUlxNmNNcU5KMEFBbTZIS3hzdWgyMV9BcE1GenoxWHI4ano4X3ZDTS1qcWZLTlFFWmUtTTZTc1U0NWFfbkpUTDIybUc4eWs5aFBNLXdWWm1iVi1hNnJvSWxLLXd3bUxmc2pqQy03aFZfQXJPZ0k3Q04tb2ktYVRjSHFXQUdaLUw3bzREU05BNXFfZ2I0Tm5OWmEwUEVMSDVjbWVtTFNZa1kxb0VSXzhvZTUyanh6YnNtbklndC1md1o0MzY2QmljUFJycHpUeUNrUHpnVXNzMll4d2NyVkRJby1ySEp0RGRuOHdhYkZoUEI0XzYxbkZNZ21lekJsLUZPOUtkbzFJTGQzMkVfZkF6akRUakt2YmlMSVhfd3hESThXRnpGWmJhYlh0bWhPbm9MNGViQllYQkdiazVFLVJOb1QyLThKVnEtejNuRy10dDFxTkduVG92bU9lZjVIX1BPRGJPMUNPcDdmT2ZNWlFVSzBndzVJb0QxUFd1NkJJZjQtVWF2aEhNWlgySklUbzEwR3ZtZ0c4SzVtMlR4WHFTWGtpVlRKR01EeHRIa0FFdVNwZDJDRnVRZU1fNXRqZHdrckUxOXlQMDZhMDNvSDh4UGpqYzdUWEczZXQyODBrWGU0S1B5WGlsNC1pM0JEQjA2YldGaU5LNkM4RWhtdExnT3JRQWNybVFSZWlyem82eUlBUFpoZURJd3U1cmFHS0xyblUwaTVZMUVyV2ZGXzBBTkZudnhpY0lBNFAxUmhzS1BDMkh2UXBMQjRIdHRuTlR1MGd0NUw5dmN3SjMzbGhfelVzZnNPZGpxTWM2YXZPbU0zQ1VGMlVJR2cyT1Rqc1lDV053d1ZHWjl6WW0yOEpVWUhpUUdCOURFcmFXX0NLVlJDSHlmZV95akxxYWpCaExYNzM3Vmd4Y2JZRWRJVmJjeTVTNVF5OFJhZjFKTHJpRklZdWt0OHFzaDQ1NWFyME1YZ25yNVRsSG84QnRLVWVaT3cxQnhkZ3ZIRTQ5UVN1ZHFkNHMyMnVSTFBVbXY3SWJteEs2ZUZVcGNUMVl5Q1M2SWVvSGU4bEJuclhuc0MzUnNXbWVTZEh4SEFQMlRZeTNraG5QQi1mMlUxanFtUUQyRXdKZ1R3bWNoOWNGZ29ZUHQzTHJTbjRLYVBESnVPMER3UmVNSkphU2ZvbVFFN3pUTWNsZWZaQnlKVy1yZ0xCSkFNeW52dGtEZzhXdmxqdU53azByTmpEd0VlVFFjN3V6djBNYkhiM2JBWDV0QWhGOFpNU0QxOGFuaU96X0M5MVRTR2t2NnZ0Vmk0UlJkMVh6cEZtT3BrUkhRdzV5cE43MEhOTUNXWlU3OGppVFdWWkRUeDJmR3hHeDlpVEs5SHA3MDVTaXRBYzktSWVUbzdfTjNPZmw4NU9RZVpwLVZQbGlGcVpNb1E1RDEzQjU0WGNEMVhubVlIbGRPa19HQjdHRXBnRmttcUpZc0M5Z2thZG4tX3B5cEFnZi1fc3pPMzRkdGk2MWd5Yl82N0I5d2xpSjh4MDRWYXJ0ZktOYThwMWNpdFFVdF9LZUR0VWFjZ1R1S0FCSnZhLUxDdWtLRUhPRWg4emljRmRVUmhQdVRCMTR4c0xKUTdNd2s1OWhWci11QUZIaGJicmVqVVQzVEZwdTdQay1sckhnV0VvSThKcmZaSjhZQ29BTUE4U1FkZkVvWUFGbktqRGhvQmxxRXhTcndPVlFiZ2Z2WUhwck5BVS1ySXFpaU1DS21jMXl1VnFfaTJxYS1VbFdnSUtxZTA1elliTG92S1BwVTh1emM0NnVnUWFHNUtzeWlZWjkwcEk0WU1jcHdjY0xDWTJveXNwLXVHRnVJUTZMVHppelk0MXdnTTV5OWRCa0VFVFJEd05sOU9LdUFyS1lYVi10ek8tTlcyQndBbXlDR05BTGt3dUdieDA5Qkx4Wm5PQlQ3NEFETy1vcjRTc21WOVZkdzJ6cnBJWG1PZkN4WDAyNjM3UjZSanN2UFFaa2VlTUpmSThfTDNnWmVDZjBfcWxNMUt1TkxmZFVqZldON01UMm9xQmgxZGo1RERTMFhjRmh0SHlYcm1xLVZMNGo5TUFrOHNhaXdXc3NPbmxtc3RTNTl6Q1hhaTYwTzJfNFFVRmNTbW55RmtoTWxUYWxJa3BkMVlCZXBiTUt1Tmx1UF8zWVpPcElETnQ5Y1RZS1JZOFJKYVVUMHBtX3AtQzN3UlR4NlltcHpFcHp0X2kxY3BubnZEWW5zM0gxc1k0WW5HNUZMOWdVemxSR2dPWl90MFRJQTVxUXI3RVFMQlUwSy1yM2RtZF9vSWxaaEVzdVZSNGhLQTRUai1PWHVNZ21LS1lxZFhYRFMzMzMxbU96RWFZRUVudVNqdk91TVVfbnpLZHRKMldmajZwTE85WkRWOGRSNlYxYVhHRm42VURYeVBHYnhndm03QUttVjY4anhmajVHVENMbUtwaTh0RkxCa2xnd3ZUM1ZYTE95UUpiZGkzXzNGcmV4SWRFanVIRzB2UGhEQVVwY0wzeVZPUk5iUEV6cnZfSGM0b0dKcDVlOFF5SFZHZG9MRFg0ZS1KU3JtWFplMEgwU1FyNTFuV290cXB1NzAwcFFjeVFyXy1oczBKODk0Ym9xc3VITmdiQ3FHbFc1TkVVbU1ERHlJZTJYcVhoZjB2UTNCVzhBblMxLUEyNWxpZXhPOEpvZXh0dmp0Tzh6WjJYZjg1U0NkbW1YNEo5TlUxeGxxTVlhNnJqUVJqOGFaa0s1R1QtUUV5NlM2N0w2ZFJBZDBqUklmcWRzM1JteGdqRzNteUVUNFRBcWNaaU1PMnA4akZhYXVvYlE5a1dRYTE1a2RCTjk1aUNFT2t3UnNuSFRyRWxreXNVNXZpV2h2WjE2UmFOejJ5SzhHTmN5eG9GLW1ndE9hbFJEMTdZalhUUjdqeGxmZ09fWjhmbXZRamhKZ04zd0h3MGRYTmEteHVQdnJLZDR4aUlFeHZYWko2RjF6dV9yN1FKc1FDQVhHcEpNNXB3NmNLeE91ZTZvQzhBZmE2WTRyNlZLTzM5RWpyV3pHRjlrU2pqWlZXdWhLekdxM1JrU2dyckV2NGZlNHRHQmtsWHhqc2RPc3Q0cDBYYUIxb1RFYkVxTW5KcnlBMlRTUkN6cklPaTRGMlNXTmlrQUVoNm8wVjFYQmprNXdVaXJBZ2dIbDA1emdhdkNmN2stdDN4ODYwQnkyQUdQazBxLWhhUnFNOXptUUVELVR6VG9PRExYeWdaZTIyWF93R21HbXpCc2ppSnBZc2hGNC11OEJNblZoV0VuYjBRMENUeGdzNEJNMDhRX05TTmpHQUViV21ELUVRSlR0bFhmakYzMWdJemJmZno3QlZfM2d4MnQzSTY2MVdOWW51VDItYlVjZ3FWY1BGd0R2OUViNzFOejZGZ2ZidXo2QWpfdDEtSU5FakRjYVgyNHlET2NQRUNWY29FTWlzTUJiek1ZNHdiN2pLS2Nyd2NzM1dCUHlSTDNpUjhlLUFMejdVQm9mQjhaX0lrR0JzWEdvZUZHMmdEb2VjVnZLUWRadGdyZ3ZWNXpHS240djRfZHU1TzJiSDEwNkZDQkZORjAyUTEteGJoMDFDWjdadWVkdVRvTldrNklpNUVFOUp2YlR6d283T0pDOVdUZU1vbXR1OWtxU3NLdUY1RTVSWUlSNXV0Qks2bjB5dXM2WnZCQ1VwQWZYbzNjTThzdkE3dWxVdkhYb01YX2pfeXBIdF9aMWRNalBlWkN6R3NoQWFVTktjR2VQZlRRWEEyaG42WXN6VjJyWWc5NFl3bEYyRHgySzVIdWkwQTU2bEVjamRfTE9ZLUt2cUVwcFBfeGRuOFlQaEZ0UURadzZQeUdlSmlmZ1RFbDJnalFrZnF2V3k2MmR0MGdpekktR0oyT3Z3a2g3NmlQZG5WMmdUUlc0OERMcUVlMC16LTU1V1NIMUZLMjExZldRU1BXYzBPbldzS0R3VVR6RTF3VWZkRHg4RmVXNTBLOVQ5UU9hREFGVGEwYUJrZnR2QUNJdVlkdmZLTTR0djJmZjB5bVRoR1loWU5HOWVITklveTE4YmZhVjE4WmduZmFjTkVYdFNVNkJXeFhxbGF5MFo2bEppcU1aaTJWdXRVTVZSOGY1YXNvRmc4Y0xwVGFmOW1ySjR0bnBWQm1aTFZOU0lyNG1WTHJWdWRtNnlpY0Z3M0IxaXVuM1hrY0Y0SnJrTlJvV3lyejZ2X2x1ODd3a3BEbDA3UEVVTmE3Qlhpekxuc1FoTWVSLTJCODNyMFFaQzE2SjJFYUc5eVBtZU9tTTFZS0pjYTFQMVAwTmNNd1lDT051ejd4NDVXb082SUVBanhONFc4N3RGdXRRbHhlTTR1dDdCVm9CTTE5aVJnWEkySGxDamJPZXVRM3pDWlI5a2hiR055T2tQbi1IaTdxTE1SYm9sRGpiRVlEZFlYNGVNMUxsSkItTFFaaVVHc2Eya1hOaUoyeTZXd0RtRHNiWlE2Zm1JR2ZQUG5sN3R0bzNxc3pZeEh3b1JNeHpKRk1KcVJnM3pqcGRRUnNUQTRoU0NZa1pMQzRvdzdxMWZBdi1EU2dYbEVJaUNOelEtYWF1ZGpVa21wdlBmSFVlOHpoWDlpNzR6MzhMTlo2dXcwMHlmeHk3bURiVFBDLVJyMVpQcEsyUjJVVVA0U2pGX0g4N3JRUExSZ1ZzVndLZ1A1dEo4akE2bEJidXdLZFBsclVGT1lpY3doUXBQUVEwUUxBemxTMnZlOHQyenlZcHdLNVhyNEFKbEZQM3JYczljWnN0c0xmaS0wU09lbU5FVGZjdXd6bVBNY1FaeWcwUHUxZHdFUjFMdEVkdThVejBvS3ZwVldWcl90LWVNdnBPemNTUlJvNkFMQS1mNDhjUU12ZmtXdVNKSHlab1ROZGtfM3NvazFjYldvTFR6SzNfSlZWRDFNTF9ybDFKTG1WZWt2V2NsSTVYNGEzYkpQSU1tRVlCSl9NOWRERXpQajhwOUxlUlViOW1uMkpORjdPQXRmU0RJbnVvYWw4LUpDUE9lNmM5SHMyQjN1bFRxTU85ZDNjTERrLWg5TFIzTHdTbFNDVENSY1hZMURSMEN3cW1mNFYxUTlRQ0dKZ3pkaDlEMEhpb2g3MldkSGxoa2huMTFKcUNNUkZRUjBndUlYdlRhSXgwYVhCMnl0TldvLTJ6RlFFcU5WTTJOc0IyS0tJTUhwanVSa08xM3BXVDNtNFRoeTJsaUpGSE13S2dHa29DY21UeFZZVDA1MWZwV1pKQ25haVpxTndQaGVOZkNZMm5EVEFPdjVyOEZuZDFuQjJLWE5jRDlDeWNCdjJ0UTVXbjVMUWVYYnlNX2hOYXVFQmpNMmk5cXlZcUdEU1NNSWpqa1hlZUpoZDF1M2swRl9DSXdXQmFQQ1YzODROZ1cxc0NRPT0= +Connector_GoogleSpeech_API_KEY_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pNjlJdmFMeERXUUQzR0duRUY4cGRZRzdwQlpnVFAzSzQ5cHZNRnVUZ0xWd3dQMHR3QjVsdF92NmdUQlJGRk1RcG1RYWZzcE9RbEhjQmR5Yk5Ud3ZKTW5jbmpEVGJ2ZkxVeVJpcUxaT2lNREFXaks5WHg5aVlHcXlUZldMdnZGYklHWjlJOWJ6Wm5RSkNmdm5feENjS1E0QUVXTTE5SW5sNFBEeTJ1RjRmVm9SQUNIYmF2U1U2dklsbTVlWFpCcHMwTFF1SUg5NmNfcWhQRFlpeWt0U19HMXNuUHd2RFdrVl9XdUFaY0hWdVBPYWlybU1CdGlCN1A0RzZBbi1IUVJ1TWMxTE9Ea09sTURhcDFZb1JIUW1zUFJybW15MDcxOUtfVXA2N0xwMnFrczA1YTJaN05pRHhOYWNzMjVmUHdhbVdlemF3TEIzN0pJaVo3bGJBMXJnZmNYTXVJVDdmYkRXWTlBT2F2NmN4eTlteUI1SlJTOXc2WWFWUTBCZTJBVHRLVDhEVjBFeHE0Nmk1YkxYd3N3RXgtVUdGdlZFSmk4dHM0QjFmbktsQTctbmJMT0MtMDlKS1pUR0pELXBxckhULUUycjlBZmVJQjFrM0xEUm50U2ZabExtVjZ1WWZ1WnlobUZIOVlndjNydUZfczJUWVVRZURTd1lYazllaER4VU10cXUyVS1ZNG9Ha2hnbTAzOEpGMklFSWpWeVV5eFB2UlVWYmJJakZnOVM2R2lJSXRSM3VzVEZZNUVpNmVjRzdXRUJsT2hzcjhZWERFeGV5c1dFQVM3dkhGY2Q3ckNBRDZCcVdhZnZkdzM3QVNpODZYWE81TEIyZGUycldkSVRvbm5hR3Jib2UzOEtXdUpHQ2FyWDQtMDdQbC1ycEdfUzdXd0U2dHFIVjhoRDJ0YkNsWUpva1dzOGNPdXRpZjVwUldtT3FVN3RrZUhTN3JfX1M3LU9PaXZELWkzRmtMbjgxZGZ6ZjVJNW9RZW1nM2hqUXo4Z2I5Z2tSVTVMdUNLblRxOGQ1Y3F4SGZIbWo4YkFBV3FIbjB6LUxGNHdsQWgxQUM4bzVrblBObFFfVWNaQ3QwejQ1eGFlSXVIcXlyVEZEdzVKNV9pd2o4RW1UVjlqb3VMWnF0V1JTcWF1R0RjdUNjM2lLUHRqZDl2WWtXUnhmbVdxeHA3REFHTkdkMjM4LTllajBWQnd3RHlFSVdiUThfQnduOVFJdmR6OUVGN1lOYjBqclhadHozX21kRzlUT2EtWVBkYWFRSjRGdW80dmlEUTVrVjhWbjJYNGtCeGNtNzRHQXJsRlZyWjBYdHltVDM2MV9IT0RFT2dLLTVBREtsS09HdUxrODRLcEQ1TmRoVDh6WmgybGc5MzgtbmJSYThQd3FFaUcxbmg3eE95RkJVX2hHM20wT1k2c21qd24wSkFWNGROaklQeHZrc21PdTVsdHVxR0pxd3Ztb1NQVHEtd25URHRNa1pqa3BLdVdkTnNFeDNManJST0dOb1RWM2hqekxFTlFSZkd6TlZBY1VQT1NFOVlDQzlPQWVlVXQ4MW0wdGkzd0Myam1lSWE2aEtVVTVNc3N3dENpa1BWRl9ZQ3daYllONWRmRUF0THpleFRmdWRqTFM2aldmLUFuZzFGdkFQNHR6d21SdzRGQ0Q4cU8yV0xGUTVUY01TZlYxSzZ4cmtfUGZvVDhmYmNBX1pibTVTcl9lenJoME9KSnBucUxPRU1PRXBmLWFENEgwRWZOU0RvRDlvQk9ueVp0dXJrUVgtQUk5VldVbV9MS19PYmlua3liWl80Z2hMcFRnTXBkZDA3enIxRWFzaU56TEZKa0hPQUtNY0dCY1pnQ2V3Zml6ZFczWFBESUlLd3BSVEs5ZXlGLUpINDRsd1NBVjBkR1dvbE8wLWZBeEhFQ0hvY3E5UGJsTDdteGdSRjBIZTRobXpsd29PMmhKQkxXY3Znd2FMdWtZU1VkQlVRZXlSZ3FaVnNqcXpwR3N3SktOTDA3aUZIcE9TR1VDcXdaTDhQX2E5VDlwckoyX0xlNmFQcnoydEkwc0s1S08yaVlsM0pwYktUVWl3LU5hQzF2UVZNSm9ZR3QyQWdrUXB2a25QNzhkVEFOYmZ0b1BmTXRCMmVQZTAtYzdOeUlBYlNINlZNZW1nUTFfSV92UlJiWGt6Qms1c1hBc3kzZkVRMzEwNVJDOS1JeVg4YWtVeUJyOTZPQ0FnSUs1Z25sMlY0S1V1c0dIWEpuX2pMQmZ4Z29SY1U0bVZscXNWcjJwRy1UZEFYSXBzQURGblRTelBybU5BeDF6N3hZLXZwSHBkMmlzbHZWN2JkU3hRcE0zQ0hna3QwYWlJX3hBdGcxUHdGRE55cndUNHRvbXU5VTRMRmZDRjhvXzIwajI1Y0RCcmR2OV94cS1XYkNwalNHS2lObHlkNGZBbklycnZMSlJYVnlfakRXb1ZfWUo2MGxzYUNIektYeENGTkUzMUJXRE9WRHRrY2o5UFJHckZza2RQbjNPUkstbG9GZG4yNmxKeEdtbHo4WDZFc0lvT01wZkxuN29ycXl3X1hTN1prRGdvWG9hRFYwNzBwVVpuMW0wQlZYbGZxZjFQUHp2XzBQT3Fqa3lzejVKZmJDMG0wRzhqWV9HY1dxaXB2VFNQUzV2LUJSOXRFRUllak83cUI3RGUtYVBJakF1YUVOV0otT1BxUHJqS0NLdFVHc0tsT2RGcWd6UTU4Yi1kc0JZS1VPT1NXSlc3TDM5ZDVEZlRDOURZU1hMT0YxZ25ndVBUaG1VcGsxWFZSS1RxT1ZZTU1vclZjVU5iYmZMd0VBTXlvdTE0YjdoclZ6ZnNKMmE2Yy1ORmNCMnJNX3dwcVJSN2RSd2d6aENLRXQyTjhkcDlLTFVZMHBydFowNTJoZm1mVHNRVHI1YjhTNnl1Vll4dFZhenZfa0dybk9KYVh6LUluSUo0djUzRFNEdzBoVGt5UU9tMlg5UnBLbk9WaEhoU2txY2tUSXJmemlmNEExb3Q1blI5bE9adHluWVI3NXZQNUtXdmpra05aNy15dTBXdlVqcXhteFVqSXFxNnlQR2FGeVNONkx3NVpQUk1FNk5yTUY4T1hQV1FCdm9PYzdFTGl4QXZkODltSlprbGJ6cWREcEM1VlNwN3V5aWdWYXNkekk4X3U0cjJjZ1k2X190cmNnMlpMQVlLdExxM3pFNkZudVFKci1CalE1U3kzdmotQ01LV0ZzWnp0VUxRblhkdlN6VG1MWHNQdGlrNmF4RnFtd0c3UXNqZFVRZTRFMGl1NFU5T2k3VEpjZXA1U052VkJtdUhDWEpTaDRGQnM0SDQwY2IxdDVNbUtELTQ0R0s0OHpfTHdFOHZ0VmRMTC1FUVpPSkJ4QXRWNnl5MURUdjVyUk53emRwbDBxUnloUmlheXhKY3RBUG1mX3JxM2w0VlZvcE40b2ROeG15NS01RFlvUHdoYllLNVhCZUNEd0dwQnFCLVdZU0RhVEFzR2gxTVpub3FGRnl4VDNiSVZrTnpMQUlxeGJGQzh5WlNZR2NKbklHRVRTaVJ2REduN0hXaGo5MHFGb1FOa0U5TUFwQ09zOXVWMnRRNVlJWmZpaTUxLWFIeWR0UEFtaVNDX1k5Q1p3Y2V4ckVXQVBRYzV1eGwwMWd0SE15WUxiYzUyLTUzTGlyTUhZUDFlRTFjcFpieWQwU0pxRWJXSE53Nkd5aHp5T28wZVd6Z1phLTQ4TmgxU3hvNHpySzExUk5WZlFFS3VpOXNHMDdZU0gzSGxYUlU4WmgwNUlPdlhQcUI0cGtITmQ4SlByczN0THUxNHc0a21vUEp6S1hLNnFRNmFfdlpmUWpJQ1VNYXVEOW1abzlsd2RoRG5pVXRVbjBKV2RFTGFEa3ZYTHByOTJjalc1b3hTWkFmS2RPdVlTUTVkRkpSTnZsMWtnYWZEUm1SR3lBemdON2xiN3pkZlNfX2NSYU5wWHNybHh4V0lnNHJjQ2NON1hiRHMycUdmNC1kay13bUE0OTBPN0xmNDA1NlQxVmRySEJvM1VUN2Y2Sl9KX2pZVHRPWEdfR2RYNUoxY01Va3pXb2VBd3lZb3BSXzU5NVJfWlhEYXFSVDJrUnFHWG42RVZJUVQ2RlJWUEkyQnRnREI3eHNiRERiQ3FUczJsRTBDZ3pUUGZPcjExZUFKc21QUWxVYVBmV2hPZXRGd3lJX3ZTczhCVG1jWFVwanhIZHlyTTdiR2c5cTBVSXBRV1U4ZExtWWdub1pTSHU0cU5aYWJVWmExbXI0MjE3WUVnPT0= # Feature SyncDelta JIRA configuration -Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = PROD_ENC:Z0FBQUFBQm8xRjFmUHNhOGsxT0lOaHhLTUxNUElMRlZtNWl0TlhKRWxQNWxTT0ljX3N4VEVUNnZGUzFfMy1qZVFlZzl6Z3FIT2NXdXdZYXpyUnNGUXFUMF9oZVIzdXpqRVlBWlp6TUhkMURnb2E2R1R4dGtRZ0J3VHFaM2w5STBEaW5TN0JtRS01UXdUd0xZbjd2LXc2U0Zpc3duem1SMmJCUjg0cGxPaHA0YXhITFJrZmIyUjYxWm9PZ2ZVUGNHYXl4ZkVkZ21KakdJNzhMNkRMWGFzeUNWcGhTaUM2UWdjTHZVemJ5WnJ0M3hPbndrLURYYV9SSVJwM190NEd0M3V3SzNyaW1vLWZJdHc5QlZwLXNUV2hJdHNKbTZiREY1YTVUclVpYTVkSFAxYVR1ek9JZ3VyZzVFRzQyYUpiZ3psdFlZbHdpblZVNF85Y1lwWEdTT1hOajNBUGpMMi1zOWdhNElBa0cwMFFGeTZpV25rSGJRRjZWenZPRXdWdGczSGNfM2lPUFdsYUcxWHRrTlFzRGViY1hWWU1LMG1EWUl0cnJvVHRCZnNNZGZ0MGFQUDF6TGpqTlRKcjV2YjF2RDBEVktaWmF1SkE4ZVJWeDJ3TWlVSmpCeEtXdlNsOXY5RDY3d2JPWUtINHRZVmJoaEUwYnpyZFExYWlKV3JGeDZSd20yTlE4LU14YzlYNUlIWG9NbXhqbWJUQ0hJTzhRbTlnenRxQ2V0dEhDcWpEN2lETjR1TkhRMFdpYjBuSEN3MzlVZ1dQbld1YXlhSDdfV3FCdXVkRHZMZDVUZkpjdHdoazl2OFNQc0VHM2dWdEZLaVh4Y2FsWFRwci1GQ3pxTkhoNk9uR0dDVTdndG9UMmR5SlFKOUxqXzR1YVpKNjBfd2FCY0xsMDk1bHpFd05LV3NjT3FFOFZPUEdnbElUdDZpZ3JhNFMtalVWT09PbWxvMWlMUTVHdU5JZnZTbjNLek1nPT0= +Feature_SyncDelta_JIRA_DELTA_TOKEN_SECRET = PROD_ENC:Z0FBQUFBQm8xSU5pTDhnTVNzRUhScU8wYnZsZk52bHFkSWxLc18xQmtCeC1HbnNwTzVBbXRNTmQzRjZYaGE2MVlCNGtnWDk1T2I5VXVKNHpKU1VRbXEyN2tRWUJnU2ltZE5qZ3lmNEF6Z1hMTTEwZkk2NUNBYjhmVTJEcWpRUW9HNEVpSGFWdjBWQXQ3eUtHUTFJS3U5QWpaeno0RFNhMUxnPT0= diff --git a/modules/shared/configuration.py b/modules/shared/configuration.py index e906840d..2bc2621e 100644 --- a/modules/shared/configuration.py +++ b/modules/shared/configuration.py @@ -283,9 +283,12 @@ def handleSecretJson(value: str, user_id: str = "system", key_name: str = "unkno # Structure: {user_id: {key_name: [timestamps]}} _decryption_attempts = {} -def _get_master_key() -> bytes: +def _get_master_key(env_type: str = None) -> bytes: """ - Get the master key for the current environment. + Get the master key for the specified environment. + + Args: + env_type: The environment type (dev, int, prod, etc.). If None, uses current config. Returns: bytes: The master key for encryption/decryption @@ -295,7 +298,8 @@ def _get_master_key() -> bytes: """ # Get the key location from config key_location = APP_CONFIG.get('APP_KEY_SYSVAR') - env_type = APP_CONFIG.get('APP_ENV_TYPE', 'dev') + if env_type is None: + env_type = APP_CONFIG.get('APP_ENV_TYPE', 'dev') if not key_location: raise ValueError("APP_KEY_SYSVAR not configured") @@ -370,10 +374,12 @@ def _is_encrypted_value(value: str) -> bool: if not value or not isinstance(value, str): return False - # Check for environment-specific encryption prefixes - env_type = APP_CONFIG.get('APP_ENV_TYPE', 'dev').upper() - expected_prefix = f"{env_type}_ENC:" - return value.startswith(expected_prefix) + # Check for any environment-specific encryption prefixes + return (value.startswith('DEV_ENC:') or + value.startswith('INT_ENC:') or + value.startswith('PROD_ENC:') or + value.startswith('TEST_ENC:') or + value.startswith('STAGING_ENC:')) def _get_encryption_prefix(env_type: str) -> str: """ @@ -444,7 +450,7 @@ def encrypt_value(value: str, env_type: str = None, user_id: str = "system", key env_type = APP_CONFIG.get('APP_ENV_TYPE', 'dev') try: - master_key = _get_master_key() + master_key = _get_master_key(env_type) derived_key = _derive_encryption_key(master_key) fernet = Fernet(derived_key) @@ -497,18 +503,29 @@ def decrypt_value(encrypted_value: str, user_id: str = "system", key_name: str = raise ValueError(f"Decryption rate limit exceeded for user '{user_id}' key '{key_name}' (10/sec)") try: - # Extract the encrypted part (remove prefix) - env_type = APP_CONFIG.get('APP_ENV_TYPE', 'dev') - env_type_upper = env_type.upper() - expected_prefix = f"{env_type_upper}_ENC:" + # Extract environment type from prefix + if encrypted_value.startswith('DEV_ENC:'): + env_type = 'dev' + prefix = 'DEV_ENC:' + elif encrypted_value.startswith('INT_ENC:'): + env_type = 'int' + prefix = 'INT_ENC:' + elif encrypted_value.startswith('PROD_ENC:'): + env_type = 'prod' + prefix = 'PROD_ENC:' + elif encrypted_value.startswith('TEST_ENC:'): + env_type = 'test' + prefix = 'TEST_ENC:' + elif encrypted_value.startswith('STAGING_ENC:'): + env_type = 'staging' + prefix = 'STAGING_ENC:' + else: + raise ValueError(f"Invalid encryption prefix. Expected DEV_ENC:, INT_ENC:, PROD_ENC:, TEST_ENC:, or STAGING_ENC:") - if not encrypted_value.startswith(expected_prefix): - raise ValueError(f"Invalid encryption prefix. Expected {expected_prefix}") + encrypted_part = encrypted_value[len(prefix):] - encrypted_part = encrypted_value[len(expected_prefix):] - - # Get master key and derive encryption key - master_key = _get_master_key() + # Get master key for the specific environment and derive encryption key + master_key = _get_master_key(env_type) derived_key = _derive_encryption_key(master_key) fernet = Fernet(derived_key) diff --git a/tool_security_encrypt_config_value.py b/tool_security_encrypt_config_value.py index 7abb6356..c807db66 100644 --- a/tool_security_encrypt_config_value.py +++ b/tool_security_encrypt_config_value.py @@ -32,9 +32,56 @@ sys.path.insert(0, str(Path(__file__).parent / 'modules')) from shared.configuration import encrypt_value, decrypt_value, _is_encrypted_value +def get_env_type_from_file(file_path: Path) -> str: + """ + Read the APP_ENV_TYPE from the environment file. + + Args: + file_path: Path to the environment file + + Returns: + str: The environment type (dev, int, prod) or 'dev' as default + """ + if not file_path.exists(): + return 'dev' + + try: + with open(file_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line.startswith('APP_ENV_TYPE') and '=' in line: + _, value = line.split('=', 1) + return value.strip().lower() + except Exception as e: + print(f"Warning: Could not read APP_ENV_TYPE from {file_path}: {e}") + + return 'dev' + +def is_any_encrypted_value(value: str) -> bool: + """ + Check if a value has any encryption prefix (DEV_ENC:, INT_ENC:, PROD_ENC:, etc.). + + Args: + value: The value to check + + Returns: + bool: True if the value has any encryption prefix, False otherwise + """ + if not value or not isinstance(value, str): + return False + + # Check for any environment-specific encryption prefixes + return (value.startswith('DEV_ENC:') or + value.startswith('INT_ENC:') or + value.startswith('PROD_ENC:') or + value.startswith('TEST_ENC:') or + value.startswith('STAGING_ENC:')) + def find_secret_keys_in_file(file_path: Path) -> list: """ Find all *_SECRET keys in an environment file that are not encrypted. + This function now reads the APP_ENV_TYPE from the file itself and only + processes values that are completely unencrypted (no *_ENC: prefix). Args: file_path: Path to the environment file @@ -47,6 +94,10 @@ def find_secret_keys_in_file(file_path: Path) -> list: if not file_path.exists(): return secret_keys + # Get the environment type from the file itself + file_env_type = get_env_type_from_file(file_path) + print(f"šŸ“ Detected environment type from file: {file_env_type.upper()}") + try: with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() @@ -66,8 +117,8 @@ def find_secret_keys_in_file(file_path: Path) -> list: key = key.strip() value = value.strip() - # Check if it's a secret key and not already encrypted - if key.endswith('_SECRET') and value and not _is_encrypted_value(value): + # Check if it's a secret key and not already encrypted with ANY prefix + if key.endswith('_SECRET') and value and not is_any_encrypted_value(value): # Check if value starts with { (JSON object) if value.startswith('{'): # Collect all lines until we find the closing } @@ -89,7 +140,7 @@ def find_secret_keys_in_file(file_path: Path) -> list: # Single line value secret_keys.append((i + 1, key, value, line)) # Check if it's a secret key with multiline JSON (value is just "{") - elif key.endswith('_SECRET') and value == '{' and not _is_encrypted_value(value): + elif key.endswith('_SECRET') and value == '{' and not is_any_encrypted_value(value): # Collect all lines until we find the closing } json_lines = [value] start_line = i + 1 @@ -131,33 +182,39 @@ def backup_file(file_path: Path) -> Path: def encrypt_all_secrets_in_file(file_path: Path, env_type: str, dry_run: bool = False, create_backup: bool = True) -> dict: """ Encrypt all non-encrypted secrets in a file. + The env_type parameter is now ignored - the function reads APP_ENV_TYPE from the file itself. Args: file_path: Path to the environment file - env_type: The environment type + env_type: The environment type (ignored - read from file instead) dry_run: If True, only show what would be changed create_backup: If True, create a backup before modifying Returns: dict: Results of the encryption process """ + # Get the environment type from the file itself + file_env_type = get_env_type_from_file(file_path) + results = { 'file': str(file_path), - 'env_type': env_type, + 'env_type': file_env_type, # Use the environment type from the file 'secrets_found': 0, 'secrets_encrypted': 0, 'errors': [], 'backup_created': None } - # Find all secret keys + # Find all secret keys (this function now reads APP_ENV_TYPE from the file) secret_keys = find_secret_keys_in_file(file_path) results['secrets_found'] = len(secret_keys) if not secret_keys: + print(f"\nšŸ“ Processing {file_path.name} ({file_env_type.upper()}):") + print(f" āœ… No unencrypted secrets found - all values already have encryption prefixes") return results - print(f"\nšŸ“ Processing {file_path.name} ({env_type}):") + print(f"\nšŸ“ Processing {file_path.name} ({file_env_type.upper()}):") print(f" Found {len(secret_keys)} non-encrypted secrets") if dry_run: @@ -189,8 +246,8 @@ def encrypt_all_secrets_in_file(file_path: Path, env_type: str, dry_run: bool = try: print(f" šŸ” Encrypting {key}...") - # Encrypt the value using the existing function - encrypted_value = encrypt_value(value, env_type) + # Encrypt the value using the environment type from the file + encrypted_value = encrypt_value(value, file_env_type) # Replace the line in the file content new_line = f"{key} = {encrypted_value}\n" @@ -232,7 +289,7 @@ def main(): parser.add_argument('--value', '-v', help='Plain text value to encrypt') parser.add_argument('--file', '-f', help='File containing the value to encrypt') parser.add_argument('--env', '-e', choices=['dev', 'int', 'prod'], - help='Environment type (default: current environment)') + help='Environment type (IGNORED - will read APP_ENV_TYPE from file instead)') parser.add_argument('--decrypt', '-d', help='Decrypt an encrypted value (for testing)') parser.add_argument('--interactive', '-i', action='store_true', help='Interactive mode - prompt for value') @@ -252,12 +309,11 @@ def main(): print(f"Error: File not found: {file_path}") return 1 - if not args.env: - print("Error: --env is required when using --encrypt-all") - return 1 - print("šŸ” PowerOn Secret Encryption Tool") print("=" * 50) + print("āš ļø IMPORTANT: The tool will read APP_ENV_TYPE from the file itself") + print("āš ļø Any --env parameter will be IGNORED for safety") + print() if args.dry_run: print("šŸ” DRY RUN MODE - No changes will be made") @@ -265,7 +321,7 @@ def main(): results = encrypt_all_secrets_in_file( file_path, - args.env, + args.env or 'ignored', # The env parameter is ignored anyway dry_run=args.dry_run, create_backup=not args.no_backup )