{ "ConnectionStrings": { "SqlServer": "Server=87.107.152.16,1433;Database=Baya;User Id=hamid_root_un_sa;Password=N8@s5Taw1zWeh@#Hm;TrustServerCertificate=True;Encrypt=False;", "logDb": "Server=87.107.152.16,1433;Database=Baya_Logs;User Id=hamid_root_un_sa;Password=N8@s5Taw1zWeh@#Hm;TrustServerCertificate=True;Encrypt=False;" }, "IdentitySettings": { "SecretKey": "dev-only-jwe-signing-key-not-for-production-0123456789abcdef", "Encryptkey": "dev-only-16bytes", "Issuer": "Balinyaar", "Audience": "BalinyaarClient", "NotBeforeMinutes": "0", "ExpirationMinutes": "60" }, "Seams": { "FieldEncryption": { "//": "DO NOT CHANGE. Every encrypted column in the Baya database (phones, addresses, IBANs, clinical notes) was written with these exact values, and users.PhoneHash — which every login looks up — is derived from HashKey. Rotating either makes the existing data unreadable and locks every account out.", "Key": "local-dev-field-encryption-key-not-for-production", "HashKey": "local-dev-field-hash-key-not-for-production" }, "ObjectStorage": { "RootPath": "" }, "Sms": { "Provider": "telegram", "Telegram": { "BaseUrl": "http://127.0.0.1:5010", "//": "Must equal the relay's API_KEY. NOT the value in telegram-otp-bot/.env.example — that one is published, so TelegramSmsSender rejects it.", "ApiKey": "6a8dfaeea1aa375eb61da7663cadf23a3ea245fd939264dd", "TimeoutSeconds": 10 } }, "Geocoding": { "ReturnNullCoordinates": false, "LowConfidenceMarker": "NO_GEO", "ResolvedConfidence": 0.9 } }, "Cors": { "AllowedOrigins": [ "https://balinyaar.ir", "https://www.balinyaar.ir", "http://localhost:3000" ] }, "ForwardedHeaders": { "//": "Docker bridge ranges — the reverse proxy (Caddy) shares a container network with the API, so its hop must be trusted for X-Forwarded-For to resolve the real client IP the rate limiter partitions on.", "KnownProxies": [], "KnownNetworks": [ "172.16.0.0/12", "192.168.0.0/16", "10.0.0.0/8" ] }, "AllowedHosts": "*", "Kestrel": { "EndpointDefaults": { "Protocols": "Http1AndHttp2" } } }