# Django configurations
DEBUG=on
SECRET_KEY=django-insecure-nr98kt6$s%^9=$j3=iyrqhx+6k73pm2+)-xdhp$ucje!-=h=_s
ENCRYPTION_KEYS=fwX-YKu52yV6Fc6y_Yiwfc72T5CQsUur04K897Kwcz0=,Wy7ktwCtIN3OQc3C4l5OnUiPGC2sDZbWYcow_6JXuH8=

# Application configurations
SYSTEM_NAME=CMP
DISABLE_IAM=true
DISABLE_SYNC_TENANT=true
ENABLE_ACTION_LOG=true
ENABLE_ADMIN_ENDPOINT=true
ENABLE_ADMIN_ENDPOINT_V2=true
ENABLE_USER_ENDPOINT=true
ENABLE_USER_ENDPOINT_V2=true
ENABLE_SALE_CHANNEL_ENDPOINT=true
ENABLE_VIETTEL_PAYGATE_V2_ENDPOINT=true
ENABLE_STRUCTURED_LOG=false
PUBLIC_SWAGGER_SCHEMA=true
PROMETHEUS_MULTIPROC_DIR=/tmp/
SYSLOG_ADDRESS=127.0.0.1
SYSLOG_PORT=5514

# Media file storage config
USE_OBJECT_STORAGE=false
STORAGE_CONFIG_S3_ACCESS_KEY_ID=61O9GA9T0WIUVZJI0QR7
STORAGE_CONFIG_S3_SECRET_ACCESS_KEY=vKkUfNyGOJ8rHDsAxT3I7W8c8BL43sHicBEl0RfO
STORAGE_CONFIG_S3_STORAGE_BUCKET_NAME=cmp-product
STORAGE_CONFIG_S3_ENDPOINT_URL=https://10.240.201.235:8888
STORAGE_CONFIG_S3_FILE_OVERWRITE=false

# Database config
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=15102003
DB_HOST=127.0.0.1
DB_PORT=5434
DB_APPLICATION_NAME=cmp-api
DB_CONNECT_TIMEOUT=3
DB_CONNECT_MAX_ATTEMPTS=3

# Redis config
REDIS_USE_SENTINEL=false

## Sentinel configurations
REDIS_SENTINEL_SERVICE=cmp
REDIS_SENTINELS=sentinel-1:6379,sentinel-2:6379,sentinel-3:6379
REDIS_SENTINEL_ENABLE_AUTHENTICATION=false
REDIS_SENTINEL_PASSWORD=password

## Redis-standalone configurations
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=password

# Cache configurations
CACHING_REDIS_DISABLED=false
CACHING_REDIS_DATABASE=0

# Task configurations
TASK_WORKER_DISABLED=false
TASK_REDIS_DATABASE=1

# Lock configurations
LOCK_REDIS_DISABLED=false
LOCK_REDIS_DATABASE=2
LOCK_EXPIRE_TIME=120

# Email configurations
EMAIL_USE_FILE_BACKEND=false
EMAIL_FILE_PATH=/tmp/app-messages
EMAIL_HOST=localhost
EMAIL_PORT=465
EMAIL_HOST_USER=user
EMAIL_HOST_PASSWORD=password
EMAIL_USE_SSL=true
DEFAULT_FROM_EMAIL=admin@localhost.com

# Keycloak configurations
KEYCLOAK_SERVER_URL=https://example.com/
KEYCLOAK_REALM_NAME=realm
KEYCLOAK_PUBLIC_KEY=key
KEYCLOAK_CLIENT_ID=client_id
KEYCLOAK_CLIENT_SECRET_KEY=secret
KEYCLOAK_VERIFY_SSL=false
KEYCLOAK_DISABLE_SYNC_TENANT=true
KEYCLOAK_CONTAINER_IMAGE=10.60.129.132:8890/cmp/keycloak:26.2.4

# Invitation configurations
INVITATION_EXPIRY_TIMEOUT=300
INVITATION_BASE_URL=http://127.0.0.1:3000
GROUP_USER_INVITATION_BASE_URL=http://127.0.0.1:3000
ORGANIZATION_USER_INVITATION_BASE_URL=http://127.0.0.1:3000
INVITATION_CONFIG_MOUNT_POINT=""

# Container registry configurations
CONTAINER_REGISTRY_PRIVATE_URL=http://10.61.123.211:8088
CONTAINER_REGISTRY_PUBLIC_URL=""
CONTAINER_REGISTRY_ADMIN_USER=admin
CONTAINER_REGISTRY_ADMIN_PASSWORD=Harbor12345
CONTAINER_REGISTRY_API_VERSION=v2.0
CONTAINER_REGISTRY_VERIFY_SSL=false
## Use this to disable synchronizing tenancy information on dev environment
CONTAINER_REGISTRY_DISABLE_SYNC_TENANT=true
CONTAINER_REGISTRY_ACTIVE_REGIONS='os232,vn-central-1'

# KAAS Configuration (base64-encoded version of the kubeconfig file)
KAAS_KUBE_CONFIG=YXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnCnByZWZlcmVuY2VzOiB7fQpjdXJyZW50LWNvbnRleHQ6IGt1YmVybmV0ZXMtYWRtaW5AY2x1c3Rlci1rOHMtdnRuZXQtY2xvdWQtdGVhbQpjbHVzdGVyczoKICAtIG5hbWU6IGNsdXN0ZXItazhzLXZ0bmV0LWNsb3VkLXRlYW0KICAgIGNsdXN0ZXI6CiAgICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiA+LQogICAgICAgIExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVU0xZWtORFFXTXJaMEYzU1VKQlowbENRVVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUkVGV1RWSk5kMFZSV1VSV1VWRkVSWGR3Y21SWFNtd0tZMjAxYkdSSFZucE5RalJZUkZSSmVFMVVSWGhQUkVFeVRsUkJlazB4YjFoRVZFMTRUVlJGZUU1cVFUSk9WRUY2VFRGdmQwWlVSVlJOUWtWSFFURlZSUXBCZUUxTFlUTldhVnBZU25WYVdGSnNZM3BEUTBGVFNYZEVVVmxLUzI5YVNXaDJZMDVCVVVWQ1FsRkJSR2RuUlZCQlJFTkRRVkZ2UTJkblJVSkJUR2R4Q25aV1JYcG5kMjgzVm5oVmJVbGpZU3N5TldScU1IcG1lazR5ZUdGbU1UTk9RV3BzUlZGWVRWWkNUSFZ0V0RsUFZVbHJNMWsyZFVwT1YySllVRUY2Tm1ZS1dsZGhVMnd4VUc1S1RFMXBlR294VjBodWJqWlFSVk55UmxwM1FXaERha3R6WW5NNE9ETlBjVTFpU21KTGJVbHBkR1JPU1VaUmRIbG5jWEZQUzFONVRRcGlVVzF3Y0VjelUwdFVMMDlLVWpoemJuZzJWa2RKUTFCUVZIQkpPSEYwTXpSUWFrNDJUbmxoWVZkdFRHcEVUWHBZYldwUlRIUTRiMHA0YlZZeE56VnNDa1ZIT1VscVpqaFhRM0pQVm5wSWRrVjBlbWhSUVVaRmRUVkxabE5sTkdaWmFUZ3haMFk1TjI5UlRHdG1RVkJzUjBSNU9UazRWRWRVUkdJNVFsRkRiU3NLT0ZnNWREVmtSWGd6VkdSWk0zQm1WR3A0YlhvdmJHRjFMeXRvUkRkSmNEbE9jV2RFVldobWJIVk5ZemRPWlhkdGEwa3hLMDVQVm1aMlZYVXhNa3RCZGdwMVFuVmhWa0pIUWxoWU9WaEdaalJNZGxjNFEwRjNSVUZCWVU1RFRVVkJkMFJuV1VSV1VqQlFRVkZJTDBKQlVVUkJaMHRyVFVFNFIwRXhWV1JGZDBWQ0NpOTNVVVpOUVUxQ1FXWTRkMGhSV1VSV1VqQlBRa0paUlVaTlVWaG1SV1UzTDJSNmN6bDJjRzFoYVUxSWIzRlJiaTlNUXpkTlFUQkhRMU54UjFOSllqTUtSRkZGUWtOM1ZVRkJORWxDUVZGQ1IycGFTM0JMYWs4MVlrSlZiMmhLYkcwMVl5OUhWRkZKVjJ4U1ZuQkhVVVpxUzFacWEzWlpVeko1WlRaRlMyMVpTd28ySzFKeWJUUlZXVTlvWlRkUFRHOVRLek4xYlVWek9EZHZSMFZLTW1sdk5UVXdaVTh4UTNkc2JIUTFhakZtUTFwdlYwVnlaa2RYVEdObFZVTnJaR2h6Q25aQ2JHbFFWV2hQZUhGUlMzbENWVlJ4Ym5CR1RWVnRObkZxTm5oRE5XNVZaaTlDWWtoeFFqaGpSMDVSYjFRNVNUTTRkRUl2UTNwSk5YTlZkRFJIVFU4S05uZHZZVEZGZVZKTVl6Vm1TaXQ1UzNKUUt6ZEljbGRVTlVaWlVUaFNOVEJGWldGSmNsbFJUekJ6WW5jemIwbHlWbkJWWTFSa2EwcFVibWRDTmpJeVRRbzBkSGxJYVM5NE0wbGhORnBqVHpsVk5uZERaMjVYTVN0dmMxYzVjWGRPZVhreFQyY3ZUSFUwVVZaUVdVeEpkRlIwZGxScVpVOVJPV292YWxkVWRYaEZDbEIyTUd0UGVsZ3dUV2RZVWt4U2EyVnljMjUwWWxGcVdIbHNWVzlxWVRnclVTOUlZUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09CiAgICAgIHNlcnZlcjogJ2h0dHBzOi8vMTAuMjQwLjIwMy4yMTQ6ODA4NCcKICAgICAgaW5zZWN1cmUtc2tpcC10bHMtdmVyaWZ5OiBmYWxzZQpjb250ZXh0czoKICAtIG5hbWU6IGt1YmVybmV0ZXMtYWRtaW5AY2x1c3Rlci1rOHMtdnRuZXQtY2xvdWQtdGVhbQogICAgY29udGV4dDoKICAgICAgY2x1c3RlcjogY2x1c3Rlci1rOHMtdnRuZXQtY2xvdWQtdGVhbQogICAgICB1c2VyOiBrdWJlcm5ldGVzLWFkbWluCnVzZXJzOgogIC0gbmFtZToga3ViZXJuZXRlcy1hZG1pbgogICAgdXNlcjoKICAgICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6ID4tCiAgICAgICAgTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkZla05EUVdaMVowRjNTVUpCWjBsSlVGVmpVMlJyU0hGWVpUQjNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGRHVkVWVVRVSkZSMEV4VlVVS1FYaE5TMkV6Vm1sYVdFcDFXbGhTYkdONlFXVkdkekI1VFZSRmVFMVVaM2RPYWxWM1RYcE9ZVVozTUhsTmFrVjRUVlJuZDA1cVZYZE5lbEpoVFVSUmVBcEdla0ZXUW1kT1ZrSkJiMVJFYms0MVl6TlNiR0pVY0hSWldFNHdXbGhLZWsxU2EzZEdkMWxFVmxGUlJFVjRRbkprVjBwc1kyMDFiR1JIVm5wTVYwWnJDbUpYYkhWTlNVbENTV3BCVGtKbmEzRm9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVc5MlNHUlNhamhVYms0dlpFcHdVa3NLY3pnMFQwRktUa3A0WTB0WFZWQTFibUZ1VW5Wc1lXWmFZMU53WWk5eUsxUlZibmR4TDJGSlQyaDJXVEJqWjJGMVZYZFFXbUpqY1U1dVJrMXlVbXhDVEFwUFdubzBWVmRXVFdOWFdqQmhZVEZFZDNOVWQzbFRSamM0SzJaRGRrNTVRa3RUYVhaU00ySkNPVFJUWmk5VFJrRlNUakF4SzFrNE1tZHhUamRpU1ZoakNrVllVVFYzVkZaNFppdDRhWHByUkRsSVpUTldVVkZNVTNVMVJpOVVjblI0TkZOb1VVSnRUVTU0TTAwMGFEZEJNMHRETVN0S2VqSnZZMGg1U2xKMmFVVUtNbXRMYld0RUt6QkJNa1U0Tm1WVlpYSjJOSFpyUmxSMFpFbDFRWGR1WVRGdlRYSktSMUZ0T1ZwTFNrWkRSMFk0ZUVsM01XWnpObEEzYnpKQk5UaHFMd3BtUW1oNmNFdDBPVkprS3pBd2NXdElNRUZxT1c1UE0zSlVkMmRHUTNrd2FEaHRXWEpFVTNadGEwTnNkMXBGVDFFNGFqZFljR2wyV0hSWk5tVnlOMWN2Q2tRMVZYaFBkMGxFUVZGQlFtOHdaM2RTYWtGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBKaFFYZEZkMWxFVmxJd2JFSkJkM2REWjFsSlMzZFpRa0pSVlVnS1FYZEpkMGgzV1VSV1VqQnFRa0puZDBadlFWVjRRbVE0VWpkMk9UTlBlaklyYlZweFNYZGxhWEJEWmpoelRITjNSRkZaU2t0dldrbG9kbU5PUVZGRlRBcENVVUZFWjJkRlFrRkpWME5NZEdNdllrTXpkQ3RYYzI1RmRWaFpLeXRVVVc5UGFFUkJZV1F4VXpoWlpXcDBTa1kwU1V0eWVraE9TMGN2UnpObk9TOTNDamh2Y1RCa2RGbDNaazVLTlVSNlEyTjFOa3d6VUhKWE5ISnBLMWROZVZvM2RTOVdkVmwxUWtOV05rVlJha3RhYVd4WGEzRmpRVXd4S3pWeVJEWkVkemdLY1dKUmNqTTRSVlJIWVdkWmNFNW5SblJTYW5OSmIzTXpVbVZwTms5WlZHbHNZemhrU0RBeGRGTklLM0kzZEhjeVRrdEpVbXAwWlZkRFlUUlZMMUF2UmdwdmNtNXZZVGh3TVZKVk0xUmhURnBZYlVObFVrSlNWMDFGYlRGbVZtSjJLM1pMZUM5eFVHSXJlR1J1TmpCT2VIUklabWxLZEM5VWVuZGFUVzVzZVVwdkNqZFVjMUZHTW05aFdUZzFOVTFJYVdGNlREVkZWbkppWjFCMlJuTm9MMXBxU0c1MWJ6QmhjM2RxTDJORWFFbElWRmw1Y2pGM2JHbDBVVTEyU0UxcFRFOEtLMHhEVEdSbFNWTnlSMFI1ZGtFNFNHOVJWekExVWxKdU9YQkdXbFpFYnowS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPQogICAgICBjbGllbnQta2V5LWRhdGE6ID4tCiAgICAgICAgTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGY0VGSlFrRkJTME5CVVVWQmIzWklaRkpxT0ZSdVRpOWtTbkJTUzNNNE5FOUJTazVLZUdOTFYxVlFOVzVoYmxKMWJHRm1XbU5UY0dJdmNpdFVDbFZ1ZDNFdllVbFBhSFpaTUdObllYVlZkMUJhWW1OeFRtNUdUWEpTYkVKTVQxcDZORlZYVmsxalYxb3dZV0V4UkhkelZIZDVVMFkzT0N0bVEzWk9lVUlLUzFOcGRsSXpZa0k1TkZObUwxTkdRVkpPTURFcldUZ3laM0ZPTjJKSldHTkZXRkUxZDFSV2VHWXJlR2w2YTBRNVNHVXpWbEZSVEZOMU5VWXZWSEowZUFvMFUyaFJRbTFOVG5nelRUUm9OMEV6UzBNeEswcDZNbTlqU0hsS1VuWnBSVEpyUzIxclJDc3dRVEpGT0RabFZXVnlkalIyYTBaVWRHUkpkVUYzYm1FeENtOU5ja3BIVVcwNVdrdEtSa05IUmpoNFNYY3habk0yVURkdk1rRTFPR292WmtKb2VuQkxkRGxTWkNzd01IRnJTREJCYWpsdVR6TnlWSGRuUmtONU1HZ0tPRzFaY2tSVGRtMXJRMngzV2tWUFVUaHFOMWh3YVhaWWRGazJaWEkzVnk5RU5WVjRUM2RKUkVGUlFVSkJiMGxDUVVONVlqbHhOVU50YjFnMlN6ZDBhUXBKWTJ3d1FXaFdZVkJZYjNOMVlWcFhNemd3Wmt4NE9EbHZjVkFyY1hONmJHVmtiVGxOU3k5aVlrRnhOalJOVkU4eU1qZFRkMUJZZWpORE1FNHZLM3A1Q2tWdldXeFhWRFF2WXpGM1oxcHZTaTg0ZFhOb2NUWkpSWHB6UTBwc1MwUk1OVmhvTVUxUVpIQndaRk42ZEVoR1ExcDVkbnBQT1VkcmVWcEhaVmhETTNJS2RqaElkbWhrYUVaWU1YUmpVbVpwWkdocE5YQmlSbUYxUWxNNVoxTkJVRWcyVlVOc09VRTRhVlV5Y1hJeVNHRXpjMlZoYjBkcldqRlhVVlIzYW5NMlJnb3JkV0ZGTmxSb0t6bElSRmRGT1VoaVExaFdhMWRpUlV0eVptdFVhMWRyVG1sNlVXSnFWR1EwWW1Sd1F6WXZRV3hGV0RWaVFWUnNkV3hHWlVOQmNGQnJDa3BVTlVnd2JUVkNPR0YyU0M5WlYxSlpPVUpWTlhKdUwxRlFUVTFJV0M5VlZIZG9iV3RLZWt4clFuQnFiMkpoTDBGeFpHTkhUVVJXY0cxU1VDdGFWMFVLUVd0RU9YaFVSVU5uV1VWQk1VeHhTMEU1Ym1GUVNqaHplbWxwWlV4MFJuSlJha2hOWlRKWVdGSjBSMDFTWVhkaFV6WkNOVUpxVG1KVFJsVlVSWGc0UWdwNWRUVmlZbVpJYzJzM1RucHdLMnhGWTFKWU5HdGxSamN4YVdFNFZFVXhPR3BxYVU1QmJqRjNVVEJyV1VKNmVXWjRUV0pHU3pCeU5USldWRUZIVVRReENtZDFia2d3WXpoTWEwRXpVbkp3VkdOTFZFNDFOVFJWU0RKQ2VGRlVTblI1VDAwclZtaEhTMVZDVUc5a2MxWnhjRWxJWTBSWFVUQkRaMWxGUVhoQ1luSUtWemROTDJkNGRVOWpiR2RNVUdGemVEWm5OVEp5TWxORk9EUllOWEF2YzBkU1RFTjZhMnN5U21oT1RVNW9UbkJ0VTJ4MVpXOWlTRFpqVlZkUmVtczVSUXBNTVdjcllqTkxXalZtUzJwQ1ltODFUemhhUzBwRk1razJSU3RzUjJVMGRYaDRiblE0U2trdllWRlRiSEp5Umpsa1YyZzRRbk0zY0dFMFVXdDFVbGQ0Q2pOdVVXbG1lakI2Y0hrMFZXMDNRbWhYVUZWd05rcDNOSEZzVFM4ek9UZE5NekYyT0d0WFkwTm5XVVZCYUdscmRrdGpZVmhOUjNocE5GcEpWVlZSY1dFS1ZIRkZRbWxWUm5SU05tbFpaM05vVEhaVE5YcHdWV3d5V2tkUWFrbzRaME5hVnpFeVJrSjZhbE42VGpreVdWQjNUMnBJVmtadmRsTm5abXByUVVkMFR3cENjRkEzZFc1d1NqbDFWaXRXWmtsVFFWSlJjUzlYWWtoMFFqQlVSMkp2ZDFoWFVEZE9XVTFUYXpoT2FsaHRkR0ptYkVOTmNsVnlhelkxVEZCM1kwTXpDbWhOVkVkVmVuVnZhRzl6U0dSMlluRmxlVTFVTlZoRlEyZFpRa0ZGZUd0MlMzTkNZazFDY2pRMVEyOTNTMWwxZVRWeE1FUnVVRFJSYzFSMWJVWXhSM2tLUTIxa2VreERSQ3R3VWxKeE1FRTNVM2d5VG5Kb1RWQkpWbUZ1SzNORmIyZHBiRFZGWm5CamNGYzBURWh6VmxaWldXWkJRMDF6TDBVd1dtMXhaMjVyU1FwdFJVWXlPV1ZOUVdoM1RUUjBWV3BCYmpkaEwxcHpaRUpYWW01RFVGRlBWa3BETDA1clozTmFNblZZYWtKa2VWcGxLM05KTVd4MGVERkxaM1p0UW1OeUNpdFdkbkpwZDB0Q1oxRkRSR3g0WVdaRWJWQm5jR3g1ZWl0cWFqaDVURUpXUVhsRFducExRMEl4WW00NU5XMUpSMWRMVVRSbU5VSTRWVE5EVDFSYVQzZ0tVVFpXZGpselMxcG5VM1JsU21KSmFITmFiRUpSY0dRM2Ftd3lRak14V0Rnd1NrdDNWRVZTZFdsbkwwUXplamN5Y1Rsd2JEYzNLMGh1WWk5clVrUktNd29yUVc5TWRuQnRUM3BYTW1vNVdFSk1lQzkxTTBoM1ZrZ3ljWFV6Y25sdWEydHZWMnBKU0ZaTUwybElWbTlFYjAxTGNHZFlRMEU5UFFvdExTMHRMVVZPUkNCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRbz0K
KAAS_MACHINE_IMAGE_PREFIX=xxx
KAAS_CLUSTER_IMAGE_REPOSITORY=xxx
KAAS_DISABLE_SYNC_TENANT=true
KAAS_WEB_LB=117.1.28.200
KAAS_CLI_SERVER=http://117.1.28.251:8080
KAAS_CLI_SERVER_VERIFY_SSL=false
KAAS_TERMINAL_BASE_ENDPOINT=http://cli.k8s.viettelcloud.vn
KAAS_VAULT_SECRET_ENGINE=kaas-secret
KAAS_CMP_SYSTEM_USER=system_vke
KAAS_DEFAULT_ETCD_VERSION=3.5.6
KAAS_DEFAULT_ETCD_VOLUME_SIZE=10
KAAS_DEFAULT_STORAGE_CLASS=ssd-cinder-csi
KAAS_DEFAULT_MANAGED_CP_REPLICAS=1
KAAS_PROMETHEUS_URL=http://10.0.0.1:9090
KAAS_INGEST_ENDPOINT_URL=https://ingest.domain.test/monitoring
KAAS_CERT_RENEW_DAYS_BEFORE_EXPIRATION=30

# OBSERVABILITY configurations
OBSERVABILITY_BACKEND_URL=http://x.x.x.x:xxxx
OBSERVABILITY_BASIC_AUTH_USER_NAME=admin
OBSERVABILITY_BASIC_AUTH_PASSWORD=thisisatest

# IAAS configurations
IAAS_API_VERSION=xxx
IAAS_API_ENDPOINT=xxx
IAAS_API_TOKEN=xxx
IAAS_API_RETRY_TOTAL=5
IAAS_API_RETRY_BACKOFF_FACTOR=0.5
IAAS_POOL_CONNECTIONS=20
IAAS_POOL_MAX_SIZE=20
IAAS_VNC_URL_EXPIRE=60
IAAS_API_RETRY_STATUS_CODE_LIST="413,429,500,502,503,504"
IAAS_VNC_DOMAIN=https://vnc.viettelcloud.vn

# Data Sync configurations
DATA_SYNC_API_ENDPOINT=http://127.0.0.1:8081
DATA_SYNC_RETRY_STATUS_CODE_LIST="500,502,503,504"
DATA_SYNC_TOKEN=eyJhbGciOiJIUzI1NiIsIn...

# DBAAS API config
DBAAS_API_URL=10.61.123.215:8081
DBAAS_API_TOKEN=6cc7ea91155c7aad1debcc909edbf9546eee7c72
DBAAS_API_RETRY_TOTAL=5
DBAAS_API_RETRY_BACKOFF_FACTOR=5
DBAAS_API_MAX_CONNECTION=5
DBAAS_API_VERIFY_SSL=False
DBAAS_API_PAGE_SIZE=50
DBAAS_MAX_ERROR_MSG_SIZE=1022
DBAAS_API_RETRY_STATUS_CODES="502,503,504"

# Object Storage Configuration
OBJECT_STORAGE_API_ENDPOINT=https://10.240.201.235:8888
OBJECT_STORAGE_ADMIN_USERNAME=admin
OBJECT_STORAGE_ADMIN_ACCESS_KEY=SQ45MB2LG6E1MBPQQXN4
OBJECT_STORAGE_ADMIN_SECRET_KEY=RZDsp4FBEVHHGox3MqCCOjEG0Zz6a98R83k0sWjg
OBJECT_STORAGE_VERIFY_SSL=false
OBJECT_STORAGE_DOMAIN=https://10.240.201.235:8888
OBJECT_STORAGE_ZONEGROUP_DEFAULT=vn-central-1
OBJECT_STORAGE_CMP_ADDRESS_BYPASS=10.240.234.71

# Backup as a Service Configuration
BAAS_VEEAM_VSPC_PORTAL_ENDPOINT=https://vspc.viettelcloud.vn:6180
BAAS_VEEAM_VSPC_API_ENDPOINT=https://vspc.viettelcloud.vn:6180
BAAS_VEEAM_VSPC_API_VERSION=v3
BAAS_VEEAM_API_TOKEN=xxx
BAAS_VEEAM_VERIFY_SSL=false

# Key management configuration
MAX_CERTIFICATE_COUNT=100
MAX_SECRET_COUNT=100

# Secret management configuration
SECRET_MANAGER_VAULT_SECRET_ENGINE=secret-manager

# Vault configuration
# For local Docker development, use: http://vault:8200 with token: root-token
# For remote Vault server, use the actual URL and token
VAULT_URL=http://10.240.201.232:8200
VAULT_TOKEN=hvs.ci5hsFuD8mGIcrDUFSCVWe5y
VAULT_VERIFY_SSL=false

# Model Registry Vault secret engine (for multi-cluster credentials)
MODEL_REGISTRY_VAULT_SECRET_ENGINE=kv

# Consul KV configuration
CONSUL_KV_HOST=127.0.0.1
CONSUL_KV_PORT=8500

# BCCS configuration
BCCS_MOCK_REQUESTS=false
BCCS_LOG_LEVEL=INFO
BCCS_USE_CACHE=true
BCCS_CACHE_TIMEOUT=86400
BCCS_PAYMENT_TIMEOUT=300
SEND_TRANSITION_EMAIL=True

# Customer management API config
CM_API_WSDL=http://test/Api?wsdl
CM_API_USERNAME=username
CM_API_PASSWORD=password

# Invoice management API config
IM_API_WSDL=http://test/Api?wsdl
IM_API_USERNAME=username
IM_API_PASSWORD=password

# Product API config
PRODUCT_API_WSDL=//test/Api?wsdl
PRODUCT_API_USERNAME=username
PRODUCT_API_PASSWORD=password

# Admin division API config
AD_API_WSDL=//test/Api?wsdl
AD_API_USERNAME=username
AD_API_PASSWORD=password

# Order API config
ORDER_API_WSDL=http://test/Api?wsdl
ORDER_API_USERNAME=username
ORDER_API_PASSWORD=password
ORDER_SYSTEM_TYPE=CMP
ORDER_SYSTEM_STAFF_CODE=test
ORDER_REC_TYPE_ID_GPKD=978
ORDER_REC_TYPE_ID_CMNDMT=2103
ORDER_REC_TYPE_ID_CMNDMS=2104

# Payment API config
PAYMENT_API_URL=http://test/myviettel.php/checkout/
PAYMENT_API_USERNAME=username
PAYMENT_API_PASSWORD=password
PAYMENT_API_MERCHANT_CODE=merchant

# MBCCS API config
MBCCS_API_WSDL=http://test/Api?wsdl
MBCCS_API_USERNAME=username
MBCCS_API_PASSWORD=password
MBCCS_API_WSCODE=ndha_recognizeImageCustomerForCMP

# Document API config
DOCUMENT_FTP_HOST=10.0.0.1
DOCUMENT_FTP_USERNAME=username
DOCUMENT_FTP_PASSWORD=password
DOCUMENT_FTP_BASE_DIR=/app/

# Flower API config
FLOWER_URL=http://127.0.0.1:5555
FLOWER_TIME_QUERY_DAYS=30

# API Gateway config
API_GATEWAY_VAULT_URL=http://local
API_GATEWAY_VAULT_TOKEN=token
API_GATEWAY_API_KEY=key
API_GATEWAY_API_SIX_URL=http://local
API_GATEWAY_PROMETHEUS_ENDPOINT=http://local
API_GATEWAY_RATE_LIMIT_POLICY=redis-cluster
API_GATEWAY_REDIS_CLUSTER_NODES=redis-cluster-0.redis-cluster-headless.apisix:6379,redis-cluster-1.redis-cluster-headless.apisix:6379,redis-cluster-2.redis-cluster-headless.apisix:6379,redis-cluster-3.redis-cluster-headless.apisix:6379,redis-cluster-4.redis-cluster-headless.apisix:6379,redis-cluster-5.redis-cluster-headless.apisix:6379
API_GATEWAY_REDIS_CLUSTER_NAME=redis1
API_GATEWAY_REDIS_PASSWORD=superuser@123
API_GATEWAY_ALLOW_DEGRADATION=True

# Support config
SUPPORT_MAX_ACTIVE_QUESTIONS=100
SUPPORT_MAX_DAY_QUESTION_RESPONDED=30
SUPPORT_MAX_ACTIVE_TIME=15
SUPPORT_MAX_DAY_QUESTION_REOPEN=15
SUPPORT_ENABLE_SIGNAL_SEND_EMAIL=false

# CI/CD Service config
CICD_IMAGE_REPOSITORY=10.60.129.132:8890
CICD_KUBERNETES_CLUSTER_URL=http://127.0.0.1:6443
# Base64 encode of kubeconfig yaml content
CICD_KUBE_CONFIG_DICT=YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VNdmFrTkRRV1ZoWjBGM1NVSkJaMGxDUVVSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFRldUVkpOZDBWUldVUldVVkZFUlhkd2NtUlhTbXdLWTIwMWJHUkhWbnBOUWpSWVJGUkplazFFVVhkT1JFRTBUVlJuTUUxc2IxaEVWRTE2VFVSUmQwMVVRVFJOVkdjd1RXeHZkMFpVUlZSTlFrVkhRVEZWUlFwQmVFMUxZVE5XYVZwWVNuVmFXRkpzWTNwRFEwRlRTWGRFVVZsS1MyOWFTV2gyWTA1QlVVVkNRbEZCUkdkblJWQkJSRU5EUVZGdlEyZG5SVUpCVFRJMUNqazJLemxZVVdaNk4zQkRSVXByVFZCbk4wdGtjVGxwYmxaYVJXRnFlV3R5Y2xsS1QyTlpNVUZFV2pKdlJ6SjJXV05PZW5Wd1MzcGFWV1pEUldJck1sWUtiMlZ4VEZCQmFFWjBVVkJpU0U5M2RuWm1ja0ZTZFhONlRpdDVRV1l5VUhrcmVIaFNkbGhJWVhjMU56VkNPV3R5ZGpaTE5tMHpja3RDVkdaTlpqaFlad3BUVTJSTFJYWlNVbEJ4WlVreVNIbE1PVEZFWkRaaU0wdHhkMjFSTWl0TVdsSlRSakZ4S3pGTlRITktkRkYxTUdGdmNGVjVWRVUwTWxsUWVrRTJSM1psQ21vM2JHNDNOR2hHWVhrMlpFeERlbkYxZW5ZNU5FeGplQ3N4TkdadWJXdG1NelZyYVVoUUszVkRhRXRVTUhkTE5GaHNlVFJpYjFOS1dVcHBRVmhuUm5BS1NVaFFWa05VTkhWeFNFVlRjMUZyZVhZd2RpOW1NRlpvTWxwV2RHOHZaU3M1VkhVMFQwcFVTRGQzVUN0NldqQkpSMVJRT1RkaldISlpRblZWVVhWamJnb3JVbXBvV0hobU1rSkVXRTVCYmtVeFIycGpRMEYzUlVGQllVNWFUVVpqZDBSbldVUldVakJRUVZGSUwwSkJVVVJCWjB0clRVRTRSMEV4VldSRmQwVkNDaTkzVVVaTlFVMUNRV1k0ZDBoUldVUldVakJQUWtKWlJVWkpVemsyWVhRM2VWRlJaVThyWVhJeVZsTklla3hyYzBFelRqTk5RbFZIUVRGVlpFVlJVVThLVFVGNVEwTnRkREZaYlZaNVltMVdNRnBZVFhkRVVWbEtTMjlhU1doMlkwNUJVVVZNUWxGQlJHZG5SVUpCUlZndlNXNTJZakpOVlhsMGFtSTFMMkU0UWdwRVkxQnpiSE5xVTBOS0x6bENlSGxXTlVGcmVXZGpWR2NyTTBRd1dHRkVVVUZ2Y1hacVVrTTVaQ3MyVEhVNUwwUkJVemRKVlhFM1kwTnBMMjFXY0d3MUNrTXhZekZYTlVFMFluQklTRmw1Y1doQ2VuUjBkMFJDVGtwWWVqYzBTVEpaU1NzdlpXZ3dNMVkwU2pOVFJXOW9hRVJ3VFZOTVFXaGFURTEzYUM5NU5VMEtaRTlIWlVoUVduTjBNakZEWlZWRlJFc3lNazFHV0VjMlEwbG5Xa05OTjNWa05UZFJWV2htT0ZCQ1YxQlBWRWRrYzJOdk5rNWxlakZMWW1sVFpXUmxZUXB2TDJaNWFtNXhUaTlGVW5kbVVscHlURnB0YWpKVlp6ZGhXVEZQVEZOQ1YxSlRhMnhWVDJaTlMwWndjV2s1ZFRkTVIwaEhiVGhaTmsxMGFrUndielJVQ2tOdFdsZzFWR3RNZFdSNlNIRkZPR016YzJVeFFXdE5VemhyU0dGdVpsRkRZMUpaZHpJeVkyWjNNRmR6TUhaT1JGZEZhbFoxTW5WeFNHMDVlbTlvVlRNS2JYVTRQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09CiAgICBzZXJ2ZXI6IGh0dHBzOi8vMTI3LjAuMC4xOjQ1MTIzCiAgbmFtZToga2luZC1hcmdvCmNvbnRleHRzOgotIGNvbnRleHQ6CiAgICBjbHVzdGVyOiBraW5kLWFyZ28KICAgIHVzZXI6IGtpbmQtYXJnbwogIG5hbWU6IGtpbmQtYXJnbwpjdXJyZW50LWNvbnRleHQ6IGtpbmQtYXJnbwpraW5kOiBDb25maWcKcHJlZmVyZW5jZXM6IHt9CnVzZXJzOgotIG5hbWU6IGtpbmQtYXJnbwogIHVzZXI6CiAgICBjbGllbnQtY2VydGlmaWNhdGUtZGF0YTogTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkpWRU5EUVdkdFowRjNTVUpCWjBsSlJGQlhhbWxUTjB0amFEUjNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGRHVkVWVVRVSkZSMEV4VlVVS1FYaE5TMkV6Vm1sYVdFcDFXbGhTYkdONlFXVkdkekI1VFhwQk1FMUVVWGRQUkVVMFRrUktZVVozTUhsT1JFRXdUVVJOZDA5RVJUUk9SRTVoVFVSUmVBcEdla0ZXUW1kT1ZrSkJiMVJFYms0MVl6TlNiR0pVY0hSWldFNHdXbGhLZWsxU2EzZEdkMWxFVmxGUlJFVjRRbkprVjBwc1kyMDFiR1JIVm5wTVYwWnJDbUpYYkhWTlNVbENTV3BCVGtKbmEzRm9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVRCSmRYcDJPV2xhVHpaR2JWQnBXbE1LTDBaTU4yZHlTbk5oU1doWmRXcG5SemxrTlZGVlVYTkRRemx3U2xKSE1rY3dkalZoZGxScE5FcFJMMGx6UlhCeWFpdGpaVW8wTjBWM1FucDVTVEozVmdwdFdXMUhNMnM1TmxCbFprUmpWRlZIU0ZOYVZTOXlXV1IyV2k5M1dqVnVURlV4UmpCblUxVm5UbFJOVUVWMVN6VjRiMnBqTTB4cWEwMXJTR0YxTkRockNsQTJZakZwT0hKVFJrMXNMMWx5Wkd4bkx6QkpPRmhqYW1RdlpVZE1MMWRSWlZKd2RXSkJPVkIzTTI1NUx6UnFWakIwUkRoSGFEUmtWVmxHZURaSGJURUtTakpVUVRsTmJWRm1PVWxsU0RCeldGbG5SVk5wY0hKeE5ESXJOM1pwZDNGR2NYaDVNbFJoY0ZsR2JFOU9NemRoUTI1WFRXMU1lRWN2VG5WSGFVUTRWUXB2SzNsdmIwVXpTVFJZTUN0QkwwVlpiRVJDWWtkbU4yeENPV28wU2xSdE5YWkNjR2gxTm1KQk0xRm5OVkpNYUU5UGRteDBlVk14YlZWdGFHWm9ZV1JXQ2xGQmVIVTJkMGxFUVZGQlFtOHhXWGRXUkVGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBKaFFYZEZkMWxFVmxJd2JFSkJkM2REWjFsSlMzZFpRa0pSVlVnS1FYZEpkMFJCV1VSV1VqQlVRVkZJTDBKQlNYZEJSRUZtUW1kT1ZraFRUVVZIUkVGWFowSlRSWFpsYlhKbE9HdEZTR3AyYlhFNWJGVm9PSGsxVEVGT2VncGtla0ZPUW1kcmNXaHJhVWM1ZHpCQ1FWRnpSa0ZCVDBOQlVVVkJUMHhDZFhSNlIybFRLMGR4ZDBsR1MxVXlPR2R1ZW5Cd2JXUklSSEZMVmxSb1NtMXhDalptYnpsdFJGUkdNRkZhUms1alpsZHlLMHcxVTJaSlRVbDZaMDVDVlZNNE1uWmtXV0ZIZEN0NWJrRXdlbGN4TDNVcldXMVNhRU53Y2tWdlprUmlVV2dLY0RWS2NUTkNiV3hDTkZJNVkzRlVjVE53Ym14R09XbEdNbHBaV1ZoTFNGRmpibmRwUmpKc1JXRnpiakl5YmpabWJFWTBNRUpHV210RGR6UjBXVGhEU3dwWE1ETmFiR3RTY2t4eU5HNW5LelprZFZSMlR6ZEJkV3BFUjJVMWRuUmtVVk13ZEdGdlEycFRVazlGUTFGeVJrVnhiRkZzYUhZeVNVaFRSREZtZFZjM0NtNXJPVk5xZVVoUVVFUlZhVkpuWldKb05WQk5UVVJ3SzBWSFdTdElObWt3VnpGNE5TdGFOMlIyU21abUwxQXJkVWQxUTNrMFJsZDBiaXRhZVZWNGJGQUtUVWxDUVdrclVVbExhSFF5YWxVMk5XYzFaVXRGUmtwNlFqVXpkR1JLUmpSaFRqUk5iV2xXU2tGV2MyVjFWU3RvV1ZFOVBRb3RMUzB0TFVWT1JDQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENnPT0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGY0VGSlFrRkJTME5CVVVWQk1FbDFlblk1YVZwUE5rWnRVR2xhVXk5R1REZG5ja3B6WVVsb1dYVnFaMGM1WkRWUlZWRnpRME01Y0VwU1J6SkhDakIyTldGMlZHazBTbEV2U1hORmNISnFLMk5sU2pRM1JYZENlbmxKTW5kV2JWbHRSek5yT1RaUVpXWkVZMVJWUjBoVFdsVXZjbGxrZGxvdmQxbzFia3dLVlRGR01HZFRWV2RPVkUxUVJYVkxOWGh2YW1NelRHcHJUV3RJWVhVME9HdFFObUl4YVRoeVUwWk5iQzlaY21Sc1p5OHdTVGhZWTJwa0wyVkhUQzlYVVFwbFVuQjFZa0U1VUhjemJua3ZOR3BXTUhSRU9FZG9OR1JWV1VaNE5rZHRNVW95VkVFNVRXMVJaamxKWlVnd2MxaFpaMFZUYVhCeWNUUXlLemQyYVhkeENrWnhlSGt5VkdGd1dVWnNUMDR6TjJGRGJsZE5iVXg0Unk5T2RVZHBSRGhWYnl0NWIyOUZNMGswV0RBclFTOUZXV3hFUW1KSFpqZHNRamxxTkVwVWJUVUtka0p3YUhVMllrRXpVV2MxVWt4b1QwOTJiSFI1VXpGdFZXMW9abWhoWkZaUlFYaDFObmRKUkVGUlFVSkJiMGxDUVVoUVltVlFVREkyUlVwS2FURjVlQXAxT1RZd1ZqQm5ibmxpVWxaTmVqTmFWRWg1YUd0dGRFUjFNVXBOV21aSVprTXdNRU4zTDFKc2J6RXZjbTlsYmxkdWJWVnRNa0ZxVURsNGVHNTFSbTVZQ21aVVVqaFJMMGxVYnpKNmNUWm9hR3hvWXpCQ09EWjRRMFJ6YlM5S2FtSlpTMU0xVkdwWE9FWTJhSFpGUkhaaVIwRk5SamhZV0RnclRrbENOMDQwUzBZS2NHNVRObFUyV0drcmN6RlViVVJMUjJkd05VOUlMemRPTW0xWFZtMTZOWEJrTWpCSFEzcDRSalk1UlU1cmJFSnRkRFV3YVVkb1VpOWxiREF2SzNONWFBbzNjbU5NU2tab05VWlhkME4wYVdOdk0wMXliVkJZVkVoeFQybElkVWRWZVZFNFZVVXJSR2xPZG1nMFVtRkhjSEZuYTI0MFlWSjJRa3N6YWxoTFdqRlVDblEyYUZsSFVXeHNZemN3WW1rdlRFaEJWMHhFZGpjNGRrcHpRMVo2Wlc4M01GaFFOM2htS3pCTGRsRTJPV1JwTXpWWVRub3phVU4wY2tOQmNWcEZlV0lLVWpCSFZrY3JSVU5uV1VWQk1EWTVVMUUwY0daalFubzVNVUZUUjFweldGUnRXV0ZZVEV4UFV6WndURFpqYUdZNVRqWjZMMDVoZUZsNGIzZ3liM0J2TVFwUldYZGpUMk5vVDBWb2VteDNSMlJTWmt0SU5UQm1WMUZZU0ROUGJrRlpUbVpoVlROTVkzZGtla2x3Y25kR0sxVm5iRmxHTlZOWE5uWlJWbFVyWWt4WENsVm9jVEZaTjNSeFQwOVdRelp3U1dGMFYzRkJXV2d4T0dRM1RuSkJVVE15VlVaV1RGWkdOR0Y0ZVhObGRYZGpUbnBTUjNSV2RITkRaMWxGUVM5RVVXd0tjbTlZUm05VWRqUmhjSEZqWldwMVUweFlLMEp5YnprNVdFcHdhV0ZKTTFoQ2JEWkpZa1p5TVUwMlRHNTBTVkZUYlRkc1pVNWtURGt3ZWt4T1MyMTJSUXBsVTBwMFdFeFlNa0ZIYjJ0all6RnZLMWxvTVZOS01WY3dTRGRCVDA5Q0t6RktSSGRYWm5obFJVdHBUSGw1VG5GbWIxUkJTRmRWVTFGRFlTdHdaR1UzQ2pFdldFeEZRVXhyZEZGb2NIcE1ZelJYY2sxME9YaE1jWEJ2YlZNeFdtNUVjVGgxV1VoVVJVTm5XVVZCY1U5UU5HWnRjVzlQYjNKdEsxbEhhWFZrZVdNS1RuRkdjbVV2TjBvclRqTk1ZemQzZDBNemRUZEpkR1ZsTDAxeFZUTkxZWE5XZEN0NWNGZGtjVFJ2YVhKNGFHRnZjbEZsVDJscVYybFBRMnR1TjNSUWJBcGlOVzFvY2t0b2RVaG5UbE5rVDI1T1ZYa3ZVRUpGVWxZclVHMUpSWEpFWTNwcFZVSkZPVVY2Y25KRk56aHRjMlphUWpkVmVqTk5NMGN3YmtzeFkzbE9DaXRSYjFWVUwzWkZOR0ZPUm05WVN5OVZRalJMWW05RlEyZFpSVUY1V1hGVGIydHFZMmxsUWpKM1FtOVdLMk5uY0VwS2NrVmpNRGRRYVROVlJVNTZSa01LUzBORVlsQkdkbXB1ZDFGTWVtTklUbUpSZUZKTlVXOVFUbEIwWmpSUmNVWXdOV1ZxWkZoamFuY3lhMDh2Y2tvM2RGRXhURlJIUVZCNFJWaEhUSEV5V1FwTVVqUXlUa2hNYzJGTWRVbEhlVzFQVEU1VVFrRmllVWhRVTFNMVRHRmhZM2RvVURFeGFrYzFkWE5IYVdGeGJuZExkWE5PVkVkcFpHYzRRbXQ1Y2xVMkNraE5kSGxJT0VWRFoxbENZVlI0WlM5blFXRTFRbFE1Vmt4WFFXbGhZVms1YWpRMFRHcHhSM3BUTUZKcllqTmhkalJoVkc5bWMySmpUMFZCY1M5clNUa0tRa2RUT1VKc1RESXlOemwyTjFwR1RrTllUM0k0VjJJMVdIZExTM2hKTW10alZVUmFUbkJ5YjJsTFRVOWFla1phUmtwNGVuVXpRakZVT1N0R05qaGtVQXBzTVRWU2JXNW5lRTQyUmlzMWVXOTZWbXQ1VjJWWlJtZzJORTV0VjNweE5IbFZUblp6UkcwdlRtVjRZMnR0VUZOMlNtTlFUWGM5UFFvdExTMHRMVVZPUkNCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRbz0K
CICD_REQUEST_TIMEOUT=60

# Expose marketplace API or not
ENABLE_MARKETPLACE=true
MARKETPLACE_MAX_BANNER_SIZE=2000000

# FILESTORAGE config
FILESTORAGE_PROJECT_ID=1519180a3a6f45b5815aeeceefb6a99d

# User default timezone
DEFAULT_USER_TIMEZONE=Asia/Ho_Chi_Minh

# User default locale
DEFAULT_USER_LOCALE=vi

# VTP API config
PAYMENT_API_VTP_ACCESS_CODE=d41d8cd98f00b204e9800998ecf8427e48209754186169568586813229686713
PAYMENT_API_VTP_HASH_KEY=d41d8cd98f00b204e9800998ecf8427e30735596597368978087989610154578
PAYMENT_API_VTP_PAYGATE_BASE_URL=https://sandbox.viettel.vn
PAYMENT_API_VTP_PAYGATE_PATH=/PaymentGateway/payment
PAYMENT_API_VTP_API_URL=https://sandbox.viettel.vn
PAYMENT_API_VTP_RETRIEVE_PATH=/PaymentAPI/webresources/postData
PAYMENT_API_VTP_RETURN_URL=https://example.com
PAYMENT_API_VTP_VERSION=2.0
PAYMENT_API_VTP_MERCHANT_CODE=VTCLOUD

# VTP 2.0 API config
PAYMENT_API_VTP2_API_URL=https://sandbox.viettel.vn
PAYMENT_API_VTP2_INITIAL_PATH=/paybiz/payment-gateway/public/api/v2/create-transaction
PAYMENT_API_VTP2_REFUND_PATH=paybiz/payment-gateway/public/api/v2/merchant/refund-transaction
PAYMENT_API_VTP2_RETRIEVE_PATH=/paybiz/payment-gateway/public/api/v2/merchant/search-transaction
PAYMENT_API_VTP2_MERCHANT_CODE=VTCLOUD
PAYMENT_API_VTP2_ACCESS_TOKEN=access_token
PAYMENT_API_VTP2_SIGNATURE_KEY_BASE64=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZnc3YUdZNlpxVklXc1d6V0MrWHN6M1Bxd1BNQUVOZE1NWXlqd3QxUAp3UTdCNmZSRlU3Q2Uwc1dKSHhFdWh3WDRtTkM2WnJYVk1OMTZ2aUl6V29Qc1hRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t
PAYMENT_API_VTP2_PRIVATE_KEY_BASE64=LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUVFeFlpMm82Q2Q4KzErWGcvOGh5UkM4ZjFPaXF2Wkp3bmQ0K2crVUIwTE5vQW9HQ0NxR1NNNDlBd0VIb1VRRFFnQUUKZnc3YUdZNlpxVklXc1d6V0MrWHN6M1Bxd1BNQUVOZE1NWXlqd3QxUHdRN0I2ZlJGVTdDZTBzV0pIeEV1aHdYNG1OQzZaclhWTU4xNgp2aUl6V29Qc1hRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQ==
PAYMENT_API_VTP2_PUBLIC_KEY_BASE64=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZnc3YUdZNlpxVklXc1d6V0MrWHN6M1Bxd1BNQUVOZE1NWXlqd3QxUAp3UTdCNmZSRlU3Q2Uwc1dKSHhFdWh3WDRtTkM2WnJYVk1OMTZ2aUl6V29Qc1hRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t
PAYMENT_API_VTP2_QR_EXPIRATION_TIME=300
PAYMENT_API_VTP2_MAX_IPN_RETRY=10

# SM(QLBH) config
SM_API_BASE_URL=http://10.60.155.11:8054
SM_API_PROVISION_CODE='CMP'
SM_API_USERNAME=cmp_cloud
# Base64 encoded SM API password. Example: base 64 code for 'secret'
SM_API_PASSWORD=c2VjcmV0

# Lotus config
LOTUS_HOST=lotus
LOTUS_API_KEY=lotus

# Billing config
BILLING_PAYG_SUBSCRIPTION_API_CLASS=billing.apis.subscription.LotusPaygSubscriptionAPI
BILLING_INVOICE_ENABLED=true
BILLING_INVOICE_VAT=10
BILLING_INVOICE_STOCK_MODEL_CODE=vtcloud_balance
BILLING_INVOICE_STOCK_MODEL_NAME=vtcloud_balance
BILLING_INVOICE_STAFF_CODE=cmp
BILLING_INVOICE_DEFAULT_RECIPIENT_EMAIL=invoice@example.com
BILLING_BILL_SYNC_HOURS=24
BILLING_MIN_DEPOSIT_AMOUNT=1

DEFAULT_MAX_PROJECTS_PER_ACCOUNT=0

DEFAULT_PLAN_TERMINATION_ALERT_BEFORE=1,3,5,10

# throttle
THROTTLE_ENABLED=false
THROTTLE_RATE_BUCKET=600
THROTTLE_RATE_PERIOD=30

# DEVOPS_SPHERE configurations
DEVOPS_SPHERE_VAULT_SECRET_ENGINE=devops_sphere-secret

# Infra DNS config
DNS_SERVER_CONFIG=127.0.0.53

#AP Platform Core Service
AIPLATFORM_BASE_URL=http://localhost:8080/api/v1
AIPLATFORM_API_KEY=75360f26a1e5ce5df59284dc447de604fe25ec59
AI_NOTEBOOK_DISABLE_TENANT_SYNC=false
AI_NOTEBOOK_ACCESS_URL_BASE=http://ai.aiplatformdev.freeddns.org