{ "Database": { "DataSources": { "AppDatabase": { "Write": "Host=120.53.222.17;Port=5432;Database=takeout_app_db;Username=app_user;Password=AppUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50", "Reads": [ "Host=120.53.222.17;Port=5432;Database=takeout_app_db;Username=app_user;Password=AppUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50" ], "CommandTimeoutSeconds": 30, "MaxRetryCount": 3, "MaxRetryDelaySeconds": 5 }, "IdentityDatabase": { "Write": "Host=120.53.222.17;Port=5432;Database=takeout_identity_db;Username=identity_user;Password=IdentityUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50", "Reads": [ "Host=120.53.222.17;Port=5432;Database=takeout_identity_db;Username=identity_user;Password=IdentityUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50" ], "CommandTimeoutSeconds": 30, "MaxRetryCount": 3, "MaxRetryDelaySeconds": 5 }, "DictionaryDatabase": { "Write": "Host=120.53.222.17;Port=5432;Database=takeout_dictionary_db;Username=dictionary_user;Password=DictionaryUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50", "Reads": [ "Host=120.53.222.17;Port=5432;Database=takeout_dictionary_db;Username=dictionary_user;Password=DictionaryUser112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50" ], "CommandTimeoutSeconds": 30, "MaxRetryCount": 3, "MaxRetryDelaySeconds": 5 }, "LogsDatabase": { "Write": "Host=120.53.222.17;Port=5432;Database=takeout_logs_db;Username=pg_roles;Password=Logs112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50", "Reads": [ "Host=120.53.222.17;Port=5432;Database=takeout_logs_db;Username=pg_roles;Password=Logs112233;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=50" ], "CommandTimeoutSeconds": 30, "MaxRetryCount": 3, "MaxRetryDelaySeconds": 5 } } }, "Redis": "49.232.6.45:6379,password=MsuMshk112233,abortConnect=false", "Identity": { "Jwt": { "Issuer": "takeout-saas", "Audience": "takeout-saas-clients", "Secret": "psZEx_O##]Mq(W.1$?8Aia*LM03sXGGx", "AccessTokenExpirationMinutes": 120, "RefreshTokenExpirationMinutes": 10080 }, "LoginRateLimit": { "WindowSeconds": 60, "MaxAttempts": 5 }, "RefreshTokenStore": { "Prefix": "identity:refresh:" } }, "Dictionary": { "Cache": { "SlidingExpiration": "00:30:00" } }, "Tenancy": { "TenantIdHeaderName": "X-Tenant-Id", "TenantCodeHeaderName": "X-Tenant-Code", "IgnoredPaths": [ "/health" ], "RootDomain": "" }, "Otel": { "Endpoint": "", "Sampling": "ParentBasedAlwaysOn", "UseConsoleExporter": true } }