Closed j6s33m closed 2 years ago
synology documentation synology source (message by IssueLinks)
Hey there @hacf-fr, @quentame, @mib1185, mind taking a look at this issue as it has been labeled with an integration (synology_dsm
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
synology_dsm documentation synology_dsm source (message by IssueLinks)
Hi @j6s33m ,
please enable debug logging and provide the logs.
To do so add the following to your configuration.yaml
:
logger:
default: info
logs:
homeassistant.components.synology_dsm: debug
synology_dsm: debug
Furthermore, are still able to login to you NAS with the same account directly via UI?
Hi @j6s33m , please enable debug logging and provide the logs. To do so add the following to your
configuration.yaml
:logger: default: info logs: homeassistant.components.synology_dsm: debug synology_dsm: debug
Furthermore, are still able to login to you NAS with the same account directly via UI?
I've added this, but am not getting logs that are different from the error I added above. Nothing is showing up related to Synology for debug.
Did you have a look into the full log for this?
There must be many more outputs with DEBUG [homeassistant.components.synology_dsm]
and DEBUG [synology_dsm]
visible.
Nope. Only shows Warning…not debug. I get plenty of logs, but can’t seem to get the debug to work…seems like a bug many others have had over the years.
Another person who’s having the same issue replied with their debug output…can you just use theirs?
On Jan 25, 2022, at 10:12 AM, Michael @.***> wrote:
Did you have a look into the full log for this? There must be many more outputs with DEBUG [homeassistant.components.synology_dsm] and DEBUG [synology_dsm] visible.
— Reply to this email directly, view it on GitHub https://github.com/home-assistant/core/issues/64867#issuecomment-1021352713, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEIZISW3AD62YINCBP3RI2TUX3DYNANCNFSM5MWLBCLQ. You are receiving this because you were mentioned.
Could you please try again to enable the debug logging, since the very first visible error could be the same, even the cause is different and to obtain the cause I need the debug logs. Did you try to get the full log of home assistant via UI or by console/ssh or maybe fileshare access?
I’ve tried six ways to Sunday and am in the log file in my console … no dice getting the debug data. If you look in the forums, this is a problem for a bunch of folks. Can you not use the debug data from the other poster having the same problem (including below)?
Same , web ui login is ok. Here is my log. 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request url: https://192.168.2.225:5001/webapi/entry.cgi?account=********&passwd=********&enable_device_token=yes&device_name=homeassistant&format=sid&api=SYNO.API.Auth&version=7&method=login https://192.168.2.225:5001/webapi/entry.cgi?account=********&passwd=********&enable_device_token=yes&device_name=homeassistant&format=sid&api=SYNO.API.Auth&version=7&method=login 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request status_code: 200 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request headers: {'Server': 'nginx', 'Date': 'Tue, 25 Jan 2022 11:37:56 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'} 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request Method: GET 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Successful returned data 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] API: SYNO.API.Auth 2022-01-25 19:37:56 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 403, 'errors': {'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIyRkEiLCJleHAiOjE2NDMxMTA5NzYsImlhdCI6MTY0MzExMDY3Niwic3ViIjoiYWRtaW4ifQ.pVpXkRQrxJTdLadzk_aGwKw0jtFnm7Rjo1JLDIf8AX8', 'types': [{'type': 'otp'}]}}, 'success': False} 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Creating new session 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Request url: https://192.168.2.225:5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query https://192.168.2.225:5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Request status_code: 200 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Request headers: {'Server': 'nginx', 'Date': 'Tue, 25 Jan 2022 11:38:02 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'} 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Request Method: GET 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] Successful returned data 2022-01-25 19:38:02 DEBUG (SyncWorker_9) [synology_dsm.synology_dsm] API: SYNO.API.Info
On Jan 25, 2022, at 12:14 PM, Michael @.***> wrote:
Did you try to get the full log of home assistant via UI or by console/ssh or maybe fileshare access?
If you look in the forums, this is a problem for a bunch of folks
Sorry, but on a first fast search I only found one actual forum thread which is about connection issues from HA to Synology -> https://community.home-assistant.io/t/did-2021-12-break-synology-integration/367264 The this issue was caused by an issue with an local NFS service ... so not related to HA. If you could point my out some current forum threads/posts, where the user observe connection issues from HA to Synology DSM, than please provide them.
use the debug data from the other poster
There is no other user involved in this issue here, so I do not have any clue where this (partial) logs came from 🧐
I’ve tried six ways to Sunday and am in the log file in my console
If you share your configuration.yaml
(limited to the part about logging configuration, so that no sensitive data is shared), so I could have a look and maybe give you a hint, why the debug log will not work for you?
Please allow me further questions about your issue description:
Since restarting HA this morning, I have a notification that let's me know that I need to reconfigure my Synology integration
logger: default: info logs: homeassistant.components.synology_dsm: debug synology_dsm: debug
On Jan 25, 2022, at 1:56 PM, Michael @.***> wrote:
If you look in the forums, this is a problem for a bunch of folks
Sorry, but on a first fast search I only found one actual forum thread which is about connection issues from HA to Synology -> https://community.home-assistant.io/t/did-2021-12-break-synology-integration/367264 https://community.home-assistant.io/t/did-2021-12-break-synology-integration/367264 The this issue was caused by an issue with an local NFS service ... so not related to HA. If you could point my out some current forum threads/posts, where the user observe connection issues from HA to Synology DSM, than please provide them.
use the debug data from the other poster
There is no other user involved in this issue here, so I do not have any clue where this (partial) logs came from 🧐
I’ve tried six ways to Sunday and am in the log file in my console
If you share your configuration.yaml (limited to the part about logging configuration, so that no sensitive data is shared), so I could have a look and maybe give you a hint, why the debug log will not work for you?
— Reply to this email directly, view it on GitHub https://github.com/home-assistant/core/issues/64867#issuecomment-1021554473, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEIZISWAKDEG7GB5NABZ7BTUX355LANCNFSM5MWLBCLQ. You are receiving this because you were mentioned.
logger:
default: info
logs:
homeassistant.components.synology_dsm: debug
synology_dsm: debug
if the indention is correct and there is no other logger:
defined which overwrites this one than this should work after a reboot of HA
2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Request url: https://192.168.**xxx.xxx:xxxx**/webapi/entry.cgi?account=********&passwd=********&enable_device_token=yes&device_name=**[mynasnamehere]**&format=sid&api=SYNO.API.Auth&version=7&method=login 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Request status_code: 200 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Request headers: {'Server': 'nginx', 'Date': 'Tue, 25 Jan 2022 20:09:34 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'} 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Request Method: GET 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Successful returned data 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] API: SYNO.API.Auth 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 403, 'errors': {'token': '**[MYTOKENREMOVED]**', 'types': [{'type': 'otp'}]}}, 'success': False}
Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'} 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Request Method: GET 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Successful returned data 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] API: SYNO.API.Auth 2022-01-25 14:09:34 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 403, 'errors': {'token': '[MYTOKENREMOVED]', 'types': [{'type': 'otp'}]}}, 'success': False} 2022-01-25 14:09:34 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.ipp
I removed some of my information (url, NAS name, token, etc)
could you please provide more logs around this single log entry? These will contain many more needed debug information, which are needed to consider the whole setup process of the Synology DSM integration
I have no idea what else you want me to give you...these are the DEBUG logs tied to the Synology_dsm
2022-01-25 14:19:29 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Creating new session
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request url: https://192.168.[xxx.xxx:xxxx]/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request status_code: 200
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request headers: {'Server': 'nginx', 'Date': 'Tue, 25 Jan 2022 20:19:30 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'}
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request Method: GET
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Successful returned data
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] API: SYNO.API.Info
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] RESPONSE: {'data': {'SYNO.API.Auth': {'maxVersion': 7, 'minVersion': 1, 'path': 'entry.cgi'}, 'SYNO.API.Auth.Key': {'maxVersion': 7, 'minVersion': 7, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Auth.Key.Code': {'maxVersion': 7, 'minVersion': 7, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Auth.RedirectURI': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Auth.Type': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Auth.UIConfig': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Encryption': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.API.OTP': {'maxVersion': 1, 'minVersion': 1, 'path': 'otp.cgi'}, 'SYNO.ActiveBackup.Activation': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Agent': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Agent.Device': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Agentless': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Device': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Inventory': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Log': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.NFSPrivilege': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Overview': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Report': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.ReportConfig': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.ReportGet': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Restore': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.RestoreVM': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Server': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Setting': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Share': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Storage': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Task': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.TaskTemplate': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.UserGroup': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveBackup.Version': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveInsight.Package': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.AudioPlayer': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.AudioPlayer.Stream': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Auth.ForgotPwd': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.App': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.App.Backup': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.App.Restore': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.App2.Backup': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.App2.Restore': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Config.AutoBackup': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Config.Backup': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Config.Restore': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Lunbackup': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Repository': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Repository.Certificate': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Repository.LoginPort': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Restore': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Service.NetworkBackup': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Share.Restore': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Source.Folder': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.AmazonCloudDrive.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Azure.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Connect.Network': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Dropbox.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.GoogleDrive.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.HiDrive.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.OpenStack.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.OpenStack.Region': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.S3.Bucket': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Share.Local': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Share.Network': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.Share.Rsync': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.WebDAV.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Storage.hubiC.Container': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Target': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Target.Config': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Task': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Version': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Backup.Version.History': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Btrfs.Replica.Core': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Account': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Bucket': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.File': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Share': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Share.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Transform': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.C2FS.Utils': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.CloudSync': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ACL': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ActionPriv': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ActionPriv.Role': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppNotify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPortal': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPortal.AccessControl': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPortal.Config': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPortal.ReverseProxy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPriv': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPriv.App': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.AppPriv.Rule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.BandwidthControl': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.BandwidthControl.Protocol': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.BandwidthControl.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Cache': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Identity': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Policy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.ServerInfo': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Task': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CMS.Token': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.CRT': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.CSR': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.LetsEncrypt': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.LetsEncrypt.Account': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.Service': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Certificate.Tencent': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.CurrentConnection': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DDNS.ExtIP': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DDNS.Provider': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DDNS.Record': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DDNS.Synology': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DDNS.TWNIC': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DSMNotify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DSMNotify.MailContent': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DSMNotify.Strings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DataCollect': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DataCollect.Application': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.Defs': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.Initdata': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.JSUIString': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.PersonalUpdater': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.SessionData': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.Timeout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.UIString': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Desktop.Upgrade': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Azure.SSO': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain.Conf': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain.Schedule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP.BaseDN': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP.Login.Notify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP.Profile': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP.Refresh': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.LDAP.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.IWA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.utils': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.WebSphere.SSO': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.Common': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.Debug': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.Domain': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.DomainJoin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.DomainService': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.DomainValidation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.LDAP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DirectoryServiceCheck.Progress': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.DisableAdmin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.EventScheduler': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Bluetooth': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Bluetooth.Device': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Bluetooth.Settings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.DefaultPermission': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.BonjourSharing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.Driver': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.Network': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.Network.Host': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.OAuth': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Printer.USB': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Storage.EUnit': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Storage.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Storage.USB': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.Storage.eSATA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ExternalDevice.UPS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Factory.Config': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Factory.Manutild': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.File': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.File.Thumbnail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileHandle': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.AFP': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.FTP': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.FTP.ChrootUser': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.FTP.SFTP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.FTP.Security': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.NFS': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.NFS.AdvancedSetting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.NFS.IDMap': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.NFS.Kerberos': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.NFS.SharePrivilege': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.ReflinkCopy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.Rsync.Account': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.SMB': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.ServiceDiscovery': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.ServiceDiscovery.WSTransfer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Findhost': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Group.ExtraAdmin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Group.Member': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Group.ValidLocalAdmin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.GroupSettings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.BeepControl': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.FanSpeed': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.Hibernation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.LCM': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.Led.Brightness': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.MemoryLayout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.NeedReboot': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.OOBManagement': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.PowerRecovery': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.PowerSchedule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.RemoteFanStatus': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.SpectreMeltdown': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.VideoTranscoding': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Hardware.ZRAM': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Help': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.FCTarget': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.Host': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.LUN': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.Lunbkp': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.Node': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.Replication': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.Target': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ISCSI.VMware': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MediaIndexing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MediaIndexing.IndexFolder': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MediaIndexing.MediaConverter': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MediaIndexing.Scheduler': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MediaIndexing.ThumbnailQuality': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MyDSCenter': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MyDSCenter.Account': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MyDSCenter.Login': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MyDSCenter.Logout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.MyDSCenter.Purchase': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Authentication': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Authentication.Cert': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Bond': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Ethernet': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Ethernet.External': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.IPv6': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.IPv6.Router': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.IPv6.Router.Prefix': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Interface': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.MACClone': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.OVS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.PPPoE': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.PPPoE.Relay': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Proxy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Router.Gateway.List': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.Router.Static.Route': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.TrafficControl.RouterRules': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.TrafficControl.Rules': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.UPnPServer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.L2TP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.OpenVPN': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.OpenVPN.CA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.OpenVPNWithConf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.OpenVPNWithConf.Certs': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.VPN.PPTP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Network.WOL': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.NormalUser': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.NormalUser.LoginNotify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.CustomizedData': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.FilterSettings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.Variables': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.WarningPercentage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.CMS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.CMS.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Mail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Mail.Auth': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Mail.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.AuthToken': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Mail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Mobile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Webhook.Provider': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.SMS': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.SMS.Conf': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.SMS.Provider': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OAuth.Scope': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OAuth.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OTP': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OTP.Admin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OTP.EnforcePolicy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OTP.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.OTP.Mail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.AutoUpgrade.Progress': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Control': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.FakeIFrame': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Feed': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Feed.Keyring': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Installation': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Installation.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.MyDS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.MyDS.Purchase': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Progress': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Screenshot': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Screenshot.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Server': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Setting.Update': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Setting.Volume': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Thumb': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Thumb.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Package.Uninstallation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalNotification.Device': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalNotification.Event': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalNotification.Filter': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalNotification.Mobile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalNotification.Settings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PersonalSettings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PhotoViewer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Polling.Data': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.Compatibility': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.RouterConf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.RouterInfo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.RouterList': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.Rules': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.Rules.Serv': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.PortForwarding.UserDataCollector': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Promotion.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect.Hostname': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect.Permission': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect.RegisterSite': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect.SNI': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickConnect.Upnp': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickStart.Info': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.QuickStart.Install': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Quota': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.RecycleBin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.RecycleBin.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Region.Language': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Region.NTP': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Region.NTP.DateTimeFormat': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Region.NTP.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.ResetAdmin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SNMP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.AutoBlock': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.AutoBlock.Rules': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.DSM': {'maxVersion': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.DSM.Embed': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.DSM.Proxy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.DoS': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Adapter': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Geoip': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Profile.Apply': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Rules': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Security.Firewall.Rules.Serv': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SecurityScan.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SecurityScan.Operation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SecurityScan.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Service': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Service.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Service.PortInfo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Crypto': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Crypto.Key': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.CryptoFile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.KeyManager.AutoKey': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.KeyManager.Key': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.KeyManager.MachineKey': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.KeyManager.Store': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Migration': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Migration.Task': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Permission': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.PermissionReport': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Share.Snapshot': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Sharing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Sharing.Initdata': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Sharing.Login': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Sharing.Session': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SmartBlock': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SmartBlock.Device': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SmartBlock.Trusted': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SmartBlock.Untrusted': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SmartBlock.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Storage.Disk': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Storage.Disk.FWUpgrade': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Storage.Pool': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Storage.Volume': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Storage.iSCSILUN': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SupportForm.Form': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SupportForm.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SupportForm.Service': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Synohdpack': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SyslogClient.FileTransfer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SyslogClient.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SyslogClient.PersonalActivity': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SyslogClient.Setting.Notify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.SyslogClient.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.Process': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.ProcessGroup': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.ResetButton': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.SystemHealth': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.System.Utilization': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.TFTP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.TaskScheduler': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Terminal': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Theme.AppPortalLogin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Theme.Desktop': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Theme.FileSharingLogin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Theme.Image': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Theme.Login': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.TrustDevice': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Tuned': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.UISearch': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.AutoUpgrade': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Group.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Group.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.GroupInstall': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.GroupInstall.Network': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Patch': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.PreCheck': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Server': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Server.Download': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Setting': {'maxVersion': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.Home': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.PasswordConfirm': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.PasswordExpiry': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.PasswordMeter': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.User.PasswordPolicy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.UserSettings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Virtualization.Host.Capability': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Web.DSM': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Web.DSM.External': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Web.Security.HTTPCompression': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Web.Security.TLSProfile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DR.Node': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DR.Node.Credential': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DR.Node.Session': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DSM.FindMe': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DSM.Info': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DSM.Network': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DSM.PortEnable': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DSM.PushNotification': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DisasterRecovery.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.DisasterRecovery.Retention': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Container': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Container.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Container.PkgProfile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Container.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Container.Resource': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Image': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Network': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Registry': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Entry.Request': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Entry.Request.Polling': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Entry.SocketIo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.BackgroundTask': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.CheckExist': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.CheckPermission': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Compress': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.CopyMove': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.CreateFolder': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Delete': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.DirSize': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Download': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.External.GoogleDrive': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Extract': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Favorite': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.FormUpload': {'maxVersion': 2, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Info': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.List': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.MD5': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Mount': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Mount.List': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Notify': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.PhotoUpload': {'maxVersion': 3, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Property': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Property.ACLOwner': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Property.CompressSize': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Property.Mtime': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Rename': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Search': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Search.History': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Settings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Sharing': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Sharing.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Snapshot': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Thumb': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Timeout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.UIString': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Upload': {'maxVersion': 3, 'minVersion': 2, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.UserGrp': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.Connection': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.File': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.GDrive': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.Protocol': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VFS.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.VirtualFolder': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.AppIndexing.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Bookmark': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Elastic.SearchHistory': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Elastic.Spotlight': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Elastic.Term': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.File': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.File.Cover': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.File.Thumbnail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Folder': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Highlight': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Indicate': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.FileIndexing.Term': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Preference': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.Settings': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Finder.UserGrp': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FolderSharing.Download': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FolderSharing.List': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FolderSharing.Thumb': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.BackgroundTask.File': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.BackgroundTask.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Album': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Category': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.ConditionAlbum': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Diff': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Folder': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.GeneralTag': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Geocoding': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Item': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.NormalAlbum': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Person': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.RecentlyAdded': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Timeline': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Unit': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Favorite': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Index': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Migration': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Notification': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.PublicSharing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Search.Filter': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Search.Search': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.Admin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.Guest': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.MobileCompatibility': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.TeamSpace': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Setting.Wizard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Sharing.Misc': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Sharing.Passphrase': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Streaming': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Thumbnail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Upload.Item': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.UserInfo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.BackgroundTask.File': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Diff': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Folder': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.GeneralTag': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Geocoding': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Item': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Person': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.RecentlyAdded': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Timeline': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Unit': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Index': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Search.Filter': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Search.Search': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Sharing.FolderBatchPermission': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Sharing.FolderPermission': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Sharing.Passphrase': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Streaming': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Thumbnail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Upload.Item': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.License.HA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.Client': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.Client.CA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.History': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.RecvRule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.LogCenter.Setting.Storage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.MariaDB10.lib': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer': {'maxVersion': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer.ClientList': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer.PXE': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer.Reservation': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer.Vendor': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Network.DHCPServer.WPAD': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.OAUTH.Client': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.OAUTH.Common': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.OAUTH.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.OAUTH.Token': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Package': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.PersonMailAccount': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.PersonMailAccount.Contacts': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.PersonMailAccount.Mail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Application.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.MailAccount': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.MailAccount.Contacts': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.MailAccount.Mail': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Conf': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Device': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Event': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Filter': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.GDPR': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Identifier': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Mobile': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Settings': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.Token': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Notification.VapidPublicKey': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Profile': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Personal.Profile.Photo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Remote.Credential': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Remote.Credential.Challenge': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Remote.Credential.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Remote.Credential.Verifier': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ResourceMonitor.EventRule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ResourceMonitor.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ResourceMonitor.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.S2S.Client': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.S2S.Client.Job': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.S2S.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.S2S.Server.Pair': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.APIRunner': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.APIRunner.Chatbot': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.Encryption': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.Group.Members': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SAS.Guest': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Common.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Common.Statistic': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Common.Target': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Common.Version': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Explore.File': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Explore.Folder': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Explore.Job': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Explore.Target': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Explore.Version': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SDS.Backup.Client.Fuse.Target': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Info': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Registration': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Registration.Ex': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Request': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Authenticator.Verdict': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Fido.Manage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Fido.Manage.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Fido.Register': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Fido.Register.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Method': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Method.Admin': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Method.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Package': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Package.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.Package.Request': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Conf.Checklist': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Conf.Checklist.Alert': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Conf.Location': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.LoginActivity': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Report': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecurityAdvisor.Report.HTML': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Snap.Usage.Share': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.BtrfsDedupe': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Cache.Protection': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Check': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.DetectedPool': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.DualEnclosure': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Enclosure': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Flashcache': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.HddMan': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Pool': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Smart': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Smart.Scheduler': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Spare': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Spare.Conf': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Storage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.TaipeiEnclosure': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Volume': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.Volume.Installer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ActionRule': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AddOns': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Alert': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Alert.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Analytics.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AppCenter': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Archiving.Pull': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Archiving.Push': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AudioOut': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AudioPattern': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AudioStream': {'maxVersion': 2, 'minVersion': 1, 'path': 'SurveillanceStation/audioStreaming.cgi'}, 'SYNO.SurveillanceStation.AxisAcsCtrler': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.AxisAcsCtrler.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS.DsSearch': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS.Failover': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS.GetDsStatus': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS.SlavedsList': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CMS.SlavedsWizard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera': {'maxVersion': 9, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Event': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Export': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Import': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Intercom': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Status': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.VolEval': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Camera.Wizard': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.CameraCap': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Device': {'maxVersion': 2, 'minVersion': 1, 'path': 'SurveillanceStation/device.cgi'}, 'SYNO.SurveillanceStation.DigitalOutput': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.DualAuth': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Emap': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Emap.Image': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Event': {'maxVersion': 5, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Event.Export': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Event.Mount': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Event.Mount.Wizard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ExternalDevice.IFTTT': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ExternalDevice.Storage.USB': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ExternalDevice.Webhook': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ExternalEvent': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.ExternalRecording': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Face': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Face.Archive': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Face.CMS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Face.Result': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Fisheye': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.GlobalSearch': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Help': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.HomeMode': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.HomeMode.Mobile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IOModule': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IOModule.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IPSpeaker': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IPSpeaker.Broadcast': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IPSpeaker.Group': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IPSpeaker.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.Archive': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.License': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.Recording': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.Report': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.Simulator': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.IVA.TaskGroup': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Info': {'maxVersion': 8, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.JoystickSetting': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Layout': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.License': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.LocalDisplay': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Log': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.MobileCam': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification': {'maxVersion': 8, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.Email': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.Filter': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.MobileSetting': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.PushService': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.SMS': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.SMS.ServiceProvider': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Notification.Schedule': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PTZ': {'maxVersion': 6, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PTZ.Patrol': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PTZ.Preset': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PersonalSettings.Image': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PersonalSettings.Layout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.PersonalSettings.Photo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Player': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Player.LiveviewSrc': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Preload': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording': {'maxVersion': 6, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.Bookmark': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.Export': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.Mount': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.Mount.Wizard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.Reindex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Recording.ShareRecording': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.RecordingPicker': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Share': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.SnapShot': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Sort': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Stream': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Stream.VideoStreaming': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Streaming': {'maxVersion': 2, 'minVersion': 1, 'path': 'SurveillanceStation/streaming.cgi'}, 'SYNO.SurveillanceStation.System': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.TaskQueue': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.TimeLapse': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.TimeLapse.Recording': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Transactions.Device': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Transactions.Transaction': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.UserPrivilege': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.VideoStream': {'maxVersion': 1, 'minVersion': 1, 'path': 'SurveillanceStation/videoStreaming.cgi'}, 'SYNO.SurveillanceStation.VideoStreaming': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.VisualStation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.VisualStation.Install': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.VisualStation.Layout': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.VisualStation.Search': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.Webhook': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SurveillanceStation.YoutubeLive': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.AdvanceSharing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.AdvanceSharing.Public': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.AppIntegration': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Authentication': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Config': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Connection': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.DBUsage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.DSM': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Dashboard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Files': {'maxVersion': 5, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.HybridShare.Privilege': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Index': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Info': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.KeyManagement': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Labels': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Log': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Metrics': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Metrics.Token': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Migration': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Migration.UserHome': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Node': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Node.Delete': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Node.Download': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Node.Restore': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Notifications': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Office': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Photos': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Privilege': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Profiles': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Revisions': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.SCIM.Photo': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.SCIM.User': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Services.DocumentViewer': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Services.SynologyChat': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Services.VideoStation': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Settings': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Shard': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Share': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Share.Priv': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Sharing': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Statistics': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.String': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Tasks': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.TeamFolders': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Trash': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Users': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDrive.Webhooks': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDriveShareSync.Config': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDriveShareSync.Connection': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDriveShareSync.Session': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SynologyDriveShareSync.Session.Set': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.TextEditor': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.TextEditor.Preference': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Utils': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.VideoPlayer.Subtitle': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.VideoPlayer.SynologyDrive.Subtitle': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.Default': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.ErrorPage': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.HTTP.VHost': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.PHP': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.PHP.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.Shortcut': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.WebService.Portal': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebStation.WebService.Service': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}}, 'success': True}
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request url: https://192.168.[removed rest of url xxx.xxx:xxxx]/webapi/entry.cgi?account=********&passwd=********&enable_device_token=yes&device_name=[removedNASname]&format=sid&api=SYNO.API.Auth&version=7&method=login
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request status_code: 200
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request headers: {'Server': 'nginx', 'Date': 'Tue, 25 Jan 2022 20:19:30 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Encoding': 'gzip'}
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Request Method: GET
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] Successful returned data
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] API: SYNO.API.Auth
2022-01-25 14:19:30 DEBUG (SyncWorker_4) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 403, 'errors': {'token': '[removedtoken]', 'types': [{'type': 'otp'}]}}, 'success': False}
Could you also please answer my last questions from https://github.com/home-assistant/core/issues/64867#issuecomment-1021554473 and also provide the DSM version and model of your NAS?
From the provided logs, it looks like, that the NAS is not configured with 2FA in HA, since there is not device_id
passed during the login call (_/webapi/entry.cgi?account=********&passwd=********&enable_device_token=yes&device_name=[removedNASname]&format=sid&api=SYNO.API.Auth&version=7&method=login
_) 🤔
Therefore may I ask you to perform the reconfiguration via UI and provide the logs (debug and info and warning ... just the logs during the timeframe, you perform the reconfiguration)
I'm using 2FA...I tried deleting the integration and reading it and so I don't know if that's the reason it's not showing the 2FA anymore. I just reconfigured again and can't include the logs because they exceeded the maximum 655536 character limit.
Synology DS220+ DSM Version: 7.01-42218
they exceeded the maximum 655536 character limit.
Sorry, forgot to mention that - just save the logs in a txt file and drag&drop it here - so it will be added as attachment
could you please provide the log including the integration related log messages?
If you filter the log with grep, than please just grep synology_dsm homeassistant.log
There is nothing in the log with "grep" or grep synology_dsm homeassistant.log
I noticed you pushed new code 4 days ago here: https://github.com/home-assistant/core/pull/64480
Everything seemed to be working fine until right around this date. Are you sure your latest pull request didn't break the code somewhere?
Others are having this problem too...
https://community.home-assistant.io/t/synology-dsm-7-2fa-problem/314505
There is nothing in the log with "grep" or grep synology_dsm homeassistant.log
no no, grep
is a shell command to filter the output of a file ... for me every line from your (overall!) log which contains synology_dsm
is of interesst - even it is info, warning or debug and if it is [synology_dsm...]
or [homeassistant.components.synology_dsm...]
I noticed you pushed new code 4 days ago here: #64480
on initial post you mentioned, that you are on home assistant version 2021.12.10? So #64480 is not included in this version.
From the provided logs, I can see, that your NAS does not provide the device_id
, which will be stored in HA to re-authenticate after a reboot.
I'm on DSM DSM 7.0.1-42218 (without update 2!) and everything works as expected ... from the logs I see, that you are already on DSM "7.0.1-42218 update 2". DId you do an update of your DSM?
Yes, my synology pushed an update last week (released on Jan 13) for v2. If that's the only variable that's different, then you probably found the culprit ...
ok, than I will skip this update on my NAS 😆 To be serious, if this is really the cause, than we cannot do anything for now, besides waiting for a fix from Synology. As workaround you could disable 2FA for the user you are using for HA to login to Syno.
Removing 2FA works, but I don’t like that as a long-term solution. Will you log the bug w/ Synology?
On Jan 25, 2022, at 4:50 PM, Michael @.***> wrote:
ok, than I will skip this update on my NAS 😆 To be serious, if this is really the cause, than we cannot do anything for now, besides waiting for a fix from Synology. As workaround you could disable 2FA for the user you are using for HA to login to Syno.
— Reply to this email directly, view it on GitHub https://github.com/home-assistant/core/issues/64867#issuecomment-1021682010, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEIZISXQ4S7QBUSJJ32UTSLUX4SMFANCNFSM5MWLBCLQ. You are receiving this because you were mentioned.
Could you please do a further test?
The OTA code should not be asked while re-login, since "remember this device" was enabled.
Will you log the bug w/ Synology?
I'm not familiar with the support contact possibilities for developer (API) related issues 🤔 Maybe I find some spare time on upcoming weekend, but cannot promise that. Further, since my NAS is not affected yet, I would not have the possibilities to perform any from Synology support requested actions/debug to reproduce the issue.
Yes I’ve done the above and 2FA works as it’s supposed to. It’s the HA integration that is broken.
From: Michael @.> Sent: Tuesday, January 25, 2022 5:10:40 PM To: home-assistant/core @.> Cc: Jordan @.>; Mention @.> Subject: Re: [home-assistant/core] Synology 2FA Broken Again (Issue #64867)
Could you please do a further test?
The OTA code should not be asked while re-login, since "remember this device" was enabled.
Will you log the bug w/ Synology?
I'm not familiar with the support contact possibilities for developer (API) related issues 🤔 Maybe I find some spare time on upcoming weekend, but cannot promise that.
— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/64867#issuecomment-1021694457, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEIZISXBP75QKYF7RQ6JRVTUX4UXBANCNFSM5MWLBCLQ. You are receiving this because you were mentioned.Message ID: @.***>
I have filed a support ticket with Synology, but cannot promis, that they will fix this … further I cannot really do any additional debugging or other checks, which could be requested by Synology within this support ticket, since my NAS is still on the unaffected version.
so cross fingers 🤞
Can confirm I'm also getting this error.
I also have the same issue. I have no issue logging on using the DSM ui, but the 2FA fails from HA. Here is my log.
2022-02-12 22:27:48 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Response status_code: 200 2022-02-12 22:27:48 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Response headers: {'Server': 'nginx', 'Date': 'Sat, 12 Feb 2022 21:27:48 GMT', 'Content-Type': 'application/json; charset="UTF-8"', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0'} 2022-02-12 22:27:48 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] Successful returned data 2022-02-12 22:27:48 DEBUG (SyncWorker_3) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 403, 'errors': {'token': '[myToken], 'types': [{'type': 'otp'}]}}, 'success': False}
I have exactly the same issue - 2FA is fine with a browser but not via HA integration.
Unfortunately, me too. After "successful" login it will print "Failed to set up: reason: Two-step authentication required for account: ABC"
Same here, hopefully with the following update they will have a fix..
There is nothing we can do from HA side, since it is a bug in the API of DSM version "7.0.1-42218 update 2". Unfortunately there is no (visible) progress in the Synology support ticket, yet (see https://github.com/home-assistant/core/issues/64867#issuecomment-1024963725)
But feel free to open an support ticket on your own with Synology and reference to #3011170 - feel free to use the following as template/blueprint:
[Symptome] when login with OTP and to enable to omit 2-factor verification via SYNO.API.Auth (example 3 on page 15), the response does not have the parameter did anymore, so later login with omitted OTP (example 4 on page 15) is not possible anymore.
This issue was first observed with 7.0.1-42218 Update 2, in prior version 7.0.1-42218 it works as expected
Referenced documentation: https://global.download.synology.com/download/Document/Software/DeveloperGuide/Os/DSM/All/enu/DSM_Login_Web_API_Guide_enu.pdf
[Schritte zum Reproduzieren]
- login with OTP and enable to omit 2-factor verification (example 3 on page 15)
- logout (example on page 16)
- login with omitted OTP (example 4 on page 15)
Further I would kindly ask you to ❗ stop commenting, that you have the same issue, unless have any further helpful information to solve the issue ❗ please use just the 👍 button on the initial post. This will help to keep the overview in this issue, thx.
Synology has released DSM 7.1 (beta), did someone already test whether this solves the issue mentioned here?
On the release notes of DSM 7.1-beta I can not see a proper fixed mentioned
Edit: tested 7.1 beta with a vDSM, unfortunately the issue still persists
Did someone of you already created a ticket with Synology support, as suggested in https://github.com/home-assistant/core/issues/64867#issuecomment-1042862897? If yes, is there any noteworthy progress visible?
Did someone of you already created a ticket with Synology support, as suggested in #64867 (comment)? If yes, is there any progress visible?
I did and I got the information that they forwarded things to their development team, but can't give any time frame on when the issue will be fixed. The last update to the ticket was two days ago. If it had been fixed in the beta, the would likely have directed me to download that.
Seems DSM 7.0.1 Update 3 was released and Update 2 was pulled, from the release notes it doesn't look like the bug is solved
Would be appreciated if someone of you could test this DSM update?
Would be appreciated if someone of you could test this DSM update?
I just did, seems it doesn't - as expected - resolve the two-step authentication issue.
Not sure if this can help but here it is.
I did raise a ticket with Synology and this is the answer I received.
_Hello,
Thanks for providing the additional information. This issue appears to be specific to the docker container home assistant. I would suggest reaching out to their support to see if there is a known fix for this issue. For now, I would suggest using an account for Home Assistant that does not have 2FA enabled.
If you have any questions please let me know.
Thanks,_
@snowmangh did you added a reference to my ticket as mentioned in https://github.com/home-assistant/core/issues/64867#issuecomment-1042862897 ?
@mib1185 I did as you suggested.
It seems that 2FA is also broken with iCloud (https://github.com/home-assistant/core/issues/67510). Could it be an issue with HA?
It seems that 2FA is also broken with iCloud (#67510). Could it be an issue with HA?
Not sure what is the mentioned case about, but here (the 2fa issue with Synology DSM) is caused by an bug in DSM (see all previous posts for details)
Would it help if a few of us reported the issue to Synology to get it up the priority list? If so, let me know how to best phrase it, e.g. if we can set it out in such a way that the 1st line support people make the connection with a known issue (rather than going round and round getting me to reboot the server etc).
From: Michael @.> Date: Friday, 11 March 2022 at 21:13 To: home-assistant/core @.> Cc: Brian Cox @.>, Comment @.> Subject: Re: [home-assistant/core] 2FA broken with Synology DSM version 7.0.1-42218 update 2 (Issue #64867)
It seems that 2FA is also broken with iCloud (#67510https://github.com/home-assistant/core/issues/67510). Could it be an issue with HA?
Not sure what is the mentioned case about, but here (the 2fa issue with Synology DSM) is caused by an bug in DSM (see all previous posts for details)
— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/64867#issuecomment-1065531456, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUXIZMFRWPCX54JCCUUCJLU7OZNVANCNFSM5MWLBCLQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.Message ID: @.***>
Would it help if a few of us reported the issue to Synology to get it up the priority list?
See https://github.com/home-assistant/core/issues/64867#issuecomment-1042862897 😉
Strike two.
I contacted Synology for a second time and specifically asked to escalate the issue with the developer's team. Same answer.
This issue is specific to the docker container home assistant and I will not be able to escalate this ticket. Please reach out to the Home Assistant developers as they will need to look into this issue and provide a fix.
I’m pretty sure, unless Docker forms part of the VMWare image that I downloaded that I’m Docker free so you can cite Synology call
[Synology Support] Ticket 3041680https://account.synology.com/en-global/support/3041680/detail has been updated
Get Outlook for iOShttps://aka.ms/o0ukef
From: snowmangh @.> Sent: Tuesday, March 15, 2022 17:22 To: home-assistant/core @.> Cc: Brian Cox @.>; Comment @.> Subject: Re: [home-assistant/core] 2FA broken with Synology DSM version 7.0.1-42218 update 2 (Issue #64867)
Strike two.
I contacted Synology for a second time and specifically asked to escalate the issue with the developer's team. Same answer.
This issue is specific to the docker container home assistant and I will not be able to escalate this ticket. Please reach out to the Home Assistant developers as they will need to look into this issue and provide a fix.
— Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/64867#issuecomment-1068249226, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUXIZPUR6V64AAYUMXTF53VADBLLANCNFSM5MWLBCLQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you commented.Message ID: @.***>
Checklist
Describe the issue you are experiencing
Since restarting HA this morning, I have a notification that let's me know that I need to reconfigure my Synology integration. I follow the steps and use my login/password + 2FA and get success message. However, the integration does not update and show connection. I've restarted several times and it's still showing the same problem.
Describe the behavior you expected
I expect after successfully logging in that it works and the integration refreshes properly.
Steps to reproduce the issue
1.Click Reconfigure button in integration page for Synology 2.Login in with username, password, and then 2FA code
...
What version of Home Assistant Core has the issue?
core-2021.12.10
What was the last working version of Home Assistant Core?
core-2021.12.10
In which browser are you experiencing the issue with?
Google Chrome Version 97.0.4692.99 (Official Build) (x86_64)
Which operating system are you using to run this browser?
macOS Big Sur 11.6.2
State of relevant entities
No response
Problem-relevant frontend configuration
No response
Javascript errors shown in your browser console/inspector
Additional information
No response