divan/RMuseum/appsettings.json
Anas Rashid e78fc9bd99 Security pass (#11): no default JWT secret, CORS allow-list, Divan system emails
- appsettings: drop upstream's public JWT secret; API refuses to start outside Development without one
- Cors:AllowedOrigins (compose: https://SITE_DOMAIN); unset = any origin for local dev
- default admin/system/bot emails @divan.local instead of @ganjoor.net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:26:01 +02:00

122 lines
4.5 KiB
JSON

{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=divan;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"RSecurityBackend": {
"ApplicationName": "Divan",
"FirstUserEmail": "admin@divan.local"
},
"BackgroundTaskQueue": {
"MaxConcurrency": "1"
},
"DatabaseMigrate": "True",
"AggressiveCacheEnabled": "False",
"PictureFileService": {
"StoragePath": "C:\\museum",
"ResizedImageContentType": "image/jpeg",
"NormalImageMaxWidth": "800",
"NormalImageMaxHeight": "1350",
"ThumbnailImageWidth": "300",
"ThumbnailMaxHeight": "500",
"ImageInfoCacheEnabled": "False",
"TrashStoragePath": "C:\\museum-trash"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"Security": {
"Secret": "",
"DefaultTokenExpirationInSeconds": "3600",
"SessionIdleTimeoutInDays": "90"
},
"SmptConfig": {
"Server": "smtp.gmail.com",
"Port": "587",
"UseSsl": "true",
"UseTls": "true",
"Username": "test@gmail.com",
"Password": "password",
"From": "test@gmail.com"
},
"LocalSqliteImport": {
"FilePath": "C:\\Users\\moham\\AppData\\Local\\divan\\divan\\divan.s3db"
},
"AudioUploadService": {
"Enabled": "True",
"TempUploadPath": "C:\\tempaudio",
"LocalAudioRepositoryPath": "D:\\My Documents\\My Web Design\\divan\\www\\i",
"CurrentSoundFilesFolder": "a2",
"MaxRecitationsPerPoem": "0"
},
"SignUp": {
"Enabled": "True"
},
"Donations": {
"ShowAccountInfo": "False"
},
"Divan": {
"SystemEmail": "sys@divan.local",
"DeleteUserEmail": "del@divan.local",
"SitemapLocation": "C:\\inetpub\\divan\\wwwroot\\sitemap.xml",
"GDBStorage": "D:\\My Documents\\My Web Design\\divan\\www\\i\\android\\sgdb",
"GDBStorageImageSource": "D:\\My Documents\\My Web Design\\divan\\www\\i\\android\\img",
"GDBListXMLFile": "D:\\My Documents\\My Web Design\\divan\\www\\i\\android\\sitepoets.xml",
"GDBPreExisitingListXMLFile": "D:\\My Documents\\My Web Design\\divan\\www\\i\\android\\programpoets.xml",
"BooksCoverTemplate": "C:\\inetpub\\epub\\res\\cover-image.png",
"BooksCoverTitleFontName": "IranNastaliq",
"BooksCoverTitleFontSize": "40",
"ImportCommentsAsPoemSummary": "True",
"MaxWordLengthInComments": 200
},
"PublicDataExport": {
"LocalWorkingCopyPath": "C:\\divan-public-data",
"RemoteUrl": "https://github.com/ganjoor/ganjoor-data.git",
"Branch": "main",
"CommitAuthorName": "Divan Export Bot",
"CommitAuthorEmail": "bot@divan.local",
"PushEnabled": "False",
"GitUserName": "",
"GitToken": "",
"GitExecutablePath": "",
"CommandTimeoutMinutes": "45"
},
"ExternalFTPServer": {
"Host": "localhost",
"Port": "22",
"Username": "root",
"Password": "",
"RootPath": "/home",
"UploadEnabled": "False",
"RootUrl": "https://i.ganjoor.net/images",
"LoadFromExternalServer": "True"
},
"BackupFTPServer": {
"Host": "localhost",
"Port": "22",
"Username": "root",
"Password": "",
"RootPath": "/home",
"UploadEnabled": "False",
"RootUrl": "https://i.ganjoor.net/images",
"LoadFromExternalServer": "True"
},
"SemanticSearch": {
"Enabled": "False",
"EmbeddingsDirectory": "C:\\divan-embeddings-data",
"ModelPath": "C:\\divan-model\\onnx\\model_quantized.onnx",
"VocabPath": "C:\\divan-model\\vocab.json",
"MergesPath": "C:\\divan-model\\merges.txt",
"Dimension": "1024",
"AiSummaryScorePenalty": "0.97"
},
"WebServiceUrl": "http://localhost:3439",
"ReadOnlyMode": "False",
"TransilerateFormData": "ctl00%24ContentPlaceHolder2%24ScriptManager1=ctl00%24ContentPlaceHolder2%24UpdatePanel1%7Cctl00%24ContentPlaceHolder2%24btnConvert&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=50SiwtZgcWB3spddjuBb6BloHj933fgmboKNaKJBIwGTAAKq9eDHSPq%2FLjZZI2sJIMOfywb%2FVO3ZWSadvUsRVLOnxPleQwkf3EHhZT9mSeNvEFld9VKQZ0ben0y15vOMMCfoPQ%3D%3D&__VIEWSTATEGENERATOR=82B657B9&__EVENTVALIDATION=wcYH3JuIbMl7ulzDUUsJdcDMJwjBkZ%2BEyx5Gwv7F31G5yIN75QiuxDkD7acnJpR6cBC8VNNEowaHZB5xRMOF7%2BMhsiZ3AugxyWjaeeiiAUvv1BugkbhRft4aXkJpVd3%2FaeYBHFAyDrKDkYIA2jFrmtjkj1NrtRl5uSvsFY5fPVt9antJQ8kgNRfDEeNtsBzU6BH%2FCw%3D%3D&ctl00%24ContentPlaceHolder2%24txtPersian=%D8%AD%D8%B3%D9%86&ctl00%24ContentPlaceHolder2%24txtSuggest=&__ASYNCPOST=true&ctl00%24ContentPlaceHolder2%24btnConvert=%D8%A8%D8%B1%DA%AF%D8%B1%D8%AF%D8%A7%D9%86",
"OpenAIBaseUrl": "https://api.avalai.ir/v1",
"OpenAIAPIKey": "API KEY",
"AuditNetEnabled": "False",
"AllowedHosts": "*"
}