{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "Microsoft.AspNetCore": "Warning",
        "Microsoft.EntityFrameworkCore.Database.Command": "Warning",
        "System.Net.Http.HttpClient": "Warning"
      }
    },
    "Enrich": [
      "FromLogContext",
      "WithMachineName",
      "WithThreadId"
    ],
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} {Message:lj} {Properties:j}{NewLine}{Exception}"
        }
      }
    ],
    "Properties": {
      "Application": "Tiku.Api"
    }
  },
  "OpenTelemetry": {
    "OtlpEndpoint": ""
  },
  "Cors": {
    "AllowedOrigins": [],
    "AllowedHeaders": [
      "Authorization",
      "Content-Type",
      "x-tenant-code"
    ],
    "AllowedMethods": [
      "GET",
      "POST",
      "PUT",
      "PATCH",
      "DELETE",
      "OPTIONS"
    ],
    "AllowCredentials": false
  },
  "RateLimiting": {
    "Enabled": true,
    "PermitLimit": 600,
    "WindowSeconds": 60,
    "QueueLimit": 0,
    "Authentication": {
      "PasswordPermitLimit": 5,
      "PasswordWindowSeconds": 900,
      "SmsPermitLimit": 5,
      "SmsWindowSeconds": 300
    }
  },
  "Authentication": {
    "Sms": {
      "CodePepper": "",
      "MaxVerificationAttempts": 5,
      "TenantRequestsPerHour": 100,
      "PhoneRequestsPerHour": 5,
      "IpRequestsPerHour": 20,
      "DeviceRequestsPerHour": 10
    }
  },
  "Redis": {
    "KeyPrefix": "tiku"
  },
  "RabbitMq": {
    "Host": "",
    "VirtualHost": "/",
    "Username": "",
    "Password": "",
    "OutboxBacklogAlertCount": 1000,
    "OutboxOldestMessageAlertSeconds": 300
  },
  "BrowserAuth": {
    "AllowedOrigins": []
  },
  "Storage": {
    "DefaultProvider": "aliyun_oss",
    "DefaultBucket": "tenant-assets",
    "PublicBaseUrl": "",
    "MaxUploadBytes": 524288000,
    "AllowedMimePrefixes": [
      "image/",
      "video/",
      "audio/"
    ],
    "AllowedMimeTypes": [
      "application/pdf",
      "application/json",
      "text/csv",
      "application/vnd.ms-excel",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
    ],
    "RequireTenantPrefix": true,
    "AliyunOss": {
      "Region": "",
      "Endpoint": "",
      "AccessKeyId": "",
      "AccessKeySecret": "",
      "SecurityToken": "",
      "UseInternalEndpoint": false,
      "UsePathStyle": false,
      "UseCName": false,
      "PresignDefaultMinutes": 15
    }
  },
  "Security": {
    "Jwt": {
      "Issuer": "tiku-backend",
      "Audience": "tiku-api",
      "KeyId": "",
      "PrivateKeyPem": "",
      "PublicKeys": {},
      "AccessTokenMinutes": 15,
      "RefreshTokenDays": 30
    },
    "TenantSecrets": {
      "KeyId": "",
      "MasterKey": ""
    },
    "DataProtection": {
      "ApplicationName": "Tiku.Api",
      "CertificatePath": "",
      "CertificatePassword": ""
    }
  },
  "AllowedHosts": "*"
}
