Closed mansellrace closed 1 year ago
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 @mansellrace
the error message {'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
is originated by the NAS itself, so there is something wrong with it.
You may have a look into the log of the NAS, check if there were any changes done to the NAS and at least try to reboot it.
I have the same problem, impossible...
Hi @mansellrace the error message
{'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
is originated by the NAS itself, so there is something wrong with it. You may have a look into the log of the NAS, check if there were any changes done to the NAS and at least try to reboot it.
@mib1185 I tryed all the above and not works, also if I login from browser using the NAS IP address and my user credentials all works fine... so I not see why this would be a problem with NAS making the integration suddenly stop working after several months working without pronlems
did you also try to reboot the NAS?
did you also try to reboot the NAS?
@mib1185 yes I did try restart out of UI and also manually did turn off and on by use of power button.
Also did reboot my router that the NAS is connected to.
But as said through browser or mobile app the NAS is reachable and fully functional, I also run PLEX on my NAS and the HA integration for PLEX also not have any issues reaching the PLEX server on my NAS
the Plex integration does not interact with the NAS itself, but the Plex server software.
The Synology integration "speaks" direct the NAS itself and gets the response "Transmition failed." when trying to fetch the utilisation data from the NAS. Because this query has not been changed in the integration and because the response is generated by the NAS, it must be an issue with the NAS. Since it is about an issue with the 'SYNO.Core.System.Utilization' api of the NAS I would guess an issue with some attached usb drives or extension cards or internal drives or one of the drives goes into sleep while the utilisation is queries or or ... maybe an update of the NAS broke something (my nas is on DSM 7.2-64570 Update 1 and works without any issues)
@mib1185 mine did work fine till update of HA to 2023.8.4 also so maybe a other component breaks the Synology Integration....
When home I will check what version my NAS is on but I did not do any firmware update for at least a few weeks, if integration would had broken after update I would had see then.... but I will check
@mansellrace you still have the issue?
@mib1185 mine did work fine till update of HA to 2023.8.4 also so maybe a other component breaks the Synology Integration....
ok, that's a new information - which HA version did you use before?
@mib1185 2023.8.3
There was not any change between 2023.8.3 and 2023.8.4 for the Synology integration, so the update cannot be the cause. I'm still at the point, that there has to be something "wrong" with the NAS or its peripherals.
@mib1185 I am also on 7.2.64570 update 1 and my last package updates where for "Active Insight" and "QuickConnect" both done on 31st of August.... so that is only thing I can think of that could be related to this issue, I only not know in what way would be related
Since it is about an issue with the 'SYNO.Core.System.Utilization' api of the NAS I would guess an issue with some attached usb drives or extension cards or internal drives or one of the drives goes into sleep while the utilisation is queries or or
did you already checked this (the peripherals of your NAS)?
@mib1185 all I have is one HDD and I not see any unusual behavior
which NAS model do you use? please check the resource monitor app on the NAS if in any places (eq. cpu, disk, memory, ...) and any possible metrics (eq. utilisation, iops, usage, ...) are any issues. do you use any custom SNMP settings on the NAS? do you have any custom/3rd party software installed or somehow manipulated the OS off the NAS? is the HDD configured to go into standby/sleep after a while?
@mib1185 I have a DS 720 and have it set-up pretty standard, I not see any issues in NAS nor have 3rd party software or HDD configured to go to sleep mode
@mib1185 If I check connections in Source Control in my NAS it says that my user account is connected with the IP address of my HA, so it looks like.the integration actually does connect but somehow fails to setup
I also have the same problem.
I have two nos, an old one and a recent model. the old one a 3614 no problem the second a 1221 impossible.
I have exactly the same error. the nas are configured in the same way only the dms version is different.
@mib1185 you said at you did still work, but it also still works after you do a restart of your HA and NAS?
Running into an identical issue it seems,
I am on - 2023.9.2 - interestingly enough my scenario is nearly identical.
I have two Synology's one on DSM6 (DS1812+) which seems to work perfectly fine. I also have a RS1221+ on DSM7 which after initial setup worked. After having a drive failure on the RS and replacing it, connectivity stopped. Removing it and re-adding it is yielding an identical error.
For the record I have restarted the NAS in full, twice actually. I've also restarted HA.
@mib1185 any idea what is the problem, did you try restart your own NAS and check if still works..
It looks like not is just a isolated problem as more people experience this
@latez
I have the same nose as you, and the same problems.
I think there is more of a compatibility problem with the latest version of DSM 7.2
I have another nas in DSM 7.1 and no problem
@mib1185 any idea what is the problem, did you try restart your own NAS and check if still works..
did not reboot my NAS, yet. but maybe I'll find time to do so this weekend.
After having a drive failure on the RS and replacing it, connectivity stopped.
sorry interesting and do somehow correlate with my previous thoughts, that there must be some issue with the peripherals of the NAS 🤔
it is still the situation, that the message Transmition failed.
is originated by the NAS when trying to gather the utilisation data from the 'SYNO.Core.System.Utilization' api (which is already used since the beginning of this integration).
In most other cases the "issue" could be solved by rebooting the NAS or disconnect identified faulty external devices.
"sorry interesting and do somehow correlate with my previous thoughts, that there must be some issue with the peripherals of the NAS 🤔"
@mib1185
I think it is because he had to reboot the NAS because of that had to replace the RS that made issues start with integration giving error at setup
And yes it is still the same situation.
Sooner as expected, did a reboot of my NAS some moments ago - the integration did recover as expected without any issue, it is up and running.
Will going to write and provide a short test script within the next days (my private 📆 ist already filled this weekend), which should collect further debug data, so we can get the root cause of this issue.
I however am still having this issue unfortunately - It is being discovered constantly but any time I try to login with the prescribed user I am being greeted with the error.
(this user has 2FA bypass).
I've also used the admin account where 2FA is enabled, I get prompted for the 2FA which appears to work fine but am again greeted with the same error...
Logger: homeassistant.components.synology_dsm.config_flow Source: components/synology_dsm/config_flow.py:353 Integration: Synology DSM (documentation, issues) First occurred: September 17, 2023 at 12:14:08 AM (2 occurrences) Last logged: 4:13:18 PM
{'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
Here also still same
Just an update, still hoping a developer looks at this. On the latest version of HA (2023.10.0) Still happening.
Here also still same issue
I'm having the same issue since the update of home assistant.
I'm using a DS920+ on DSM 7.2-64570 Update 1
The interesting thing is, HA logs report a 200 response from Synology API. Perhaps they updated the response body structure in a way that the HA integration does not handle? See logs below:
User 1: home assistant service account. I updated the account to have full access. It as already part of the admin group, but now: part of admin group, with access to all applications and folders. Just to exclude any such issues
2023-10-10 09:14:24.768 DEBUG (MainThread) [synology_dsm.synology_dsm] Successful returned data 2023-10-10 09:14:24.768 DEBUG (MainThread) [synology_dsm.synology_dsm] RESPONSE: {'error': {'code': 1055, 'errors': {'err_line': 182, 'err_msg': 'Transmition failed.'}}, 'success': False} 2023-10-10 09:14:24.768 DEBUG (MainThread) [synology_dsm.synology_dsm] Session error: 1055 2023-10-10 09:14:24.769 ERROR (MainThread) [homeassistant.components.synology_dsm.config_flow] {'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
User 2 (my main user, with 2fa). I enter credentials, and then it prompts for 2fa. When provided, error. The interesting thing is, I see that previous requests are succeeding. So it may be something about this particular endpoint.
2023-10-10 09:16:24.907 DEBUG (MainThread) [synology_dsm.synology_dsm] Creating new session 2023-10-10 09:16:24.907 DEBUG (MainThread) [synology_dsm.synology_dsm] API: SYNO.API.Info 2023-10-10 09:16:24.907 DEBUG (MainThread) [synology_dsm.synology_dsm] Request Method: GET 2023-10-10 09:16:24.949 DEBUG (MainThread) [synology_dsm.synology_dsm] Request url: https://192.168.1.106:5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query 2023-10-10 09:16:24.949 DEBUG (MainThread) [synology_dsm.synology_dsm] Response status_code: 200 2023-10-10 09:16:24.949 DEBUG (MainThread) [synology_dsm.synology_dsm] Response headers: {'Date': 'Tue, 10 Oct 2023 13:16:24 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'} 2023-10-10 09:16:24.952 DEBUG (MainThread) [synology_dsm.synology_dsm] Successful returned data 2023-10-10 09:16:24.954 DEBUG (MainThread) [synology_dsm.synology_dsm] RESPONSE: {'data': {'SYNO.AME.Config': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.AME.License': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.AME.Pack': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.AME.Payment': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, '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.ActiveInsight.CompleteCollection': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveInsight.License': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveInsight.Package': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.ActiveInsight.Setting': {'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.Auth.RescueEmail': {'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.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.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.BackgroundTask': {'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.Ethernet': {'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': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain.Conf': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain.Schedule': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.Domain.Trust': {'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.OIDC.SSO': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.CAS': {'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.SAML': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.SAML.Metadata': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.SAML.Status': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.Setting': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Directory.SSO.Status': {'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.EW.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.EventScheduler': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.EventScheduler.Root': {'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.ConfBackup': {'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.SMB.ConfBackup': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.SMB.Control': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.FileServ.SMB.MSDFS': {'maxVersion': 1, '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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.FilterSettings.Profile': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Advance.FilterSettings.Template': {'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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Line': {'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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Mail.Oauth': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Mail.Profile.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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Mobile': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Notification.Push.Webhook.Provider': {'maxVersion': 2, '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.Notification.Sysnotify': {'maxVersion': 1, '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.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.Legal.PreRelease': {'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.Promotion.Info': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Promotion.PreInstall': {'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': 3, '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': 5, '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': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.TaskScheduler.Root': {'maxVersion': 4, '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.Cluster.Patch': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Cluster.Server': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Cluster.Server.Download': {'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.JuniorModeData': {'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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.RemoteAction': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Core.Upgrade.Server': {'maxVersion': 4, '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': 2, '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.User.UsernamePolicy': {'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.Default.API': {'maxVersion': 1, 'minVersion': 1, '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.Migrate': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Network': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Project': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Docker.Registry': {'maxVersion': 2, '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.FileStation.Worm': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FileStation.Worm.Lock': {'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': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Category': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Concept': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.ConditionAlbum': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Diff': {'maxVersion': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Folder': {'maxVersion': 2, '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': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.NormalAlbum': {'maxVersion': 3, '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': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Timeline': {'maxVersion': 5, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Browse.Unit': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Development.Admin': {'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.PhotoRequest': {'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': 6, '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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Thumbnail': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Upload.Item': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Foto.Upload.PhotoRequestItem': {'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.Concept': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Diff': {'maxVersion': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Folder': {'maxVersion': 2, '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': 4, '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': 4, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Timeline': {'maxVersion': 5, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Browse.Unit': {'maxVersion': 2, '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': 6, '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': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Thumbnail': {'maxVersion': 2, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.FotoTeam.Upload.Item': {'maxVersion': 3, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.License.HA': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Lunbackup': {'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.PersonMailAccount.Mail.Oauth': {'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.AMFA.Mail.Ex': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.AMFA.Policy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SecureSignIn.AMFA.SuggestConn': {'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': 2, '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.LoginActivity.User': {'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.EncryptionKeyVault': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.Storage.CGI.EncryptionKeyVault.UnlockMode': {'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.KMIP': {'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.Scrubbing': {'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.Storage.CGI.Volume.OfflineOp': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.SupportService.Setting': {'maxVersion': 2, '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': 3, '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': 6, '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': 2, '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.Sharing.Report': {'maxVersion': 1, '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.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.WebRTC.Proxy': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}, 'SYNO.WebRTC.Proxy.Sharing': {'maxVersion': 1, 'minVersion': 1, 'path': 'entry.cgi', 'requestFormat': 'JSON'}}, 'success': True}
Not sure if this integration is maintained any longer?
@mib1185 any news? Or maybe @Quentame can jump in also?
Not sure if this integration is maintained any longer?
I'd be surprised if it was not, given it's one of the core integrations. It has commits from the last couple of months. If I have some free time, I might try to run this on a dev instance of HA and debug what's happening. The debug logs don't tell me much about this request... It probably wouldn't be this week though. I have to install a ceiling fan and clean my house up before Friday. It's a warzone right now :)
Not sure if this integration is maintained any longer?
Hi 👋 yes it is still maintained, but first to say most of us (like myself) do this all in their free spare time and tbh my priorities during summer months lays on other things 😉 Further in the past nearly all of these "transmission failed" issues were caused by hardware issues (defect cache SSD, defect data drive, "unreachable" connected usb devices...) or manuell changes in the system of the NAS. Often just a reboot solved the issue for the users (see some of my comments above) Last but not least, till now I was not able to reproduce this error on my system (ds620slim on DSM 7.2-64570 Update 1), those I've nothing to analyse in my environment and (see first point) no time to analyse some issues on a foreign NAS system. But hey ... this is an open source project, with a great supporting and contributing community, so anyone is welcome who can reproduce the issue on it's own environment and is able to deep-dive into the NAS to analyse what's going on 🤝✌️
From my logs, it looks like the response for this call isn't logged like the other ones. Any idea why that is?
As I said, I can try to find some time to look into it, but if you have any tips or suggestions that might help, that'd be appreciated
with this simple script you can trigger a call to the SYNO.Core.System.Utilization
api (adjust IPADDRESS
, USERNAME
and PASSWORD
).
You may need first to install the py-synology-api lib via pip3 install py-synologydsm-api==2.1.4
import asyncio
import aiohttp
from synology_dsm import SynologyDSM
async def main():
async with aiohttp.ClientSession(
connector=aiohttp.TCPConnector(verify_ssl=False)
) as session:
await do(session)
async def do(session: aiohttp.ClientSession):
api = SynologyDSM(
session,
dsm_ip="IPADDRESS",
dsm_port=5001,
username="USERNAME",
password="PASSWORD",
use_https=True,
)
await api.login()
print("=== Utilization ===")
await api.utilisation.update()
print(f"api.utilisation.cpu: {api.utilisation.cpu}")
print(f"api.utilisation.memory: {api.utilisation.memory}")
print(f"api.utilisation.network: {api.utilisation.network}")
if __name__ == "__main__":
asyncio.run(main())
As i`m not an engineer or developer of Synology, i do not know, if/how/where the webapi writes logs - this is all i figured out, yet:
/var/log/synoplugin.log
here you will find the login procedure including check of permissions.../var/log/nginx/error.log
this is the error logfile of the web server/etc/nginx/nginx.conf.run
running configuration of the web server/usr/local/etc/nginx/conf.d
and /usr/local/etc/nginx/sites-enabled
config file includes/usr/syno/synoman/webapi/lib/SYNO.Core.System.Utilization.so
the binary file which "is" the SYNO.Core.System.Utilization
api endpointyou may find something helpful in the kernel messages (dmesg
) 🤔
EDIT:
AFAIK the utilization data is internally gathered via SNMP, those it should also be a good idea to check the following two OID with an snmpwalk for errors (eq. snmpwalk -v2c -c <COMMUNITYSTRING> <NASIP> <OID>
):
1.3.6.1.4.1.6574
Synology own OIDs (_see Synology MIB docs for details_)1.3.6.1.4.1.2021
UCD SNMP MIB extensionsThanks. I'll take a look as soon as I can.
with this simple script you can trigger a call to the
SYNO.Core.System.Utilization
api (adjustIPADDRESS
,USERNAME
andPASSWORD
). You may need first to install the py-synology-api lib viapip3 install py-synologydsm-api==2.1.4
import asyncio import aiohttp from synology_dsm import SynologyDSM async def main(): async with aiohttp.ClientSession( connector=aiohttp.TCPConnector(verify_ssl=False) ) as session: await do(session) async def do(session: aiohttp.ClientSession): api = SynologyDSM( session, dsm_ip="IPADDRESS", dsm_port=5001, username="USERNAME", password="PASSWORD", use_https=True, ) await api.login() print("=== Utilization ===") await api.utilisation.update() print(f"api.utilisation.cpu: {api.utilisation.cpu}") print(f"api.utilisation.memory: {api.utilisation.memory}") print(f"api.utilisation.network: {api.utilisation.network}") if __name__ == "__main__": asyncio.run(main())
As i`m not an engineer or developer of Synology, i do not know, if/how/where the webapi writes logs - this is all i figured out, yet:
/var/log/synoplugin.log
here you will find the login procedure including check of permissions.../var/log/nginx/error.log
this is the error logfile of the web server/etc/nginx/nginx.conf.run
running configuration of the web server/usr/local/etc/nginx/conf.d
and/usr/local/etc/nginx/sites-enabled
config file includes/usr/syno/synoman/webapi/lib/SYNO.Core.System.Utilization.so
the binary file which "is" theSYNO.Core.System.Utilization
api endpointyou may find something helpful in the kernel messages (
dmesg
) 🤔
=== Utilization === Traceback (most recent call last): File "/root/syno.py", line 33, in <module> asyncio.run(main()) File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete return future.result() File "/root/syno.py", line 10, in main await do(session) File "/root/syno.py", line 26, in do await api.utilisation.update() File "/usr/local/lib/python3.9/dist-packages/synology_dsm/api/core/utilization.py", line 13, in update raw_data = await self._dsm.get(self.API_KEY, "get") File "/usr/local/lib/python3.9/dist-packages/synology_dsm/synology_dsm.py", line 207, in get return await self._request("GET", api, method, params, **kwargs) File "/usr/local/lib/python3.9/dist-packages/synology_dsm/synology_dsm.py", line 296, in _request raise SynologyDSMAPIErrorException( synology_dsm.exceptions.SynologyDSMAPIErrorException: {'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
@mansellrace this is expected, because your NAS has an issue when querying the SYNO.Core.System.Utilization
api. if possible, please try to do as most as possible of the digging into the files, logs and snmpwalks as mentioned in https://github.com/home-assistant/core/issues/97392#issuecomment-1758095178
Hope this information is useful - this is output from the above mentioned logs when executing the provided python script.- hope it helps. Config files attached as zip. syno.zip
2023-10-12T07:00:00-05:00 somenas synoscgi_SYNO.API.Auth_7_login[13132]:
plugin_action.c:76 synoplugin: [PRE][weblogin][weblogin][MAIN] Plugin
Action Start
2023-10-12T07:00:00-05:00 somenas synoplugind[13135]: daemon.cpp:83
Credentials from SO_PEERCRED: pid=13132, euid=0, egid=0
2023-10-12T07:00:00-05:00 somenas synoplugind[13135]: plugin_init.cpp:48
Plugin Init [13132][PRE][weblogin][weblogin]
2023-10-12T07:00:00-05:00 somenas synoplugind[13135]: plugin_action.cpp:336
[13132][PRE][weblogin][MAIN]
Scripts=[secure_login_logger,secure_signin_weblogin_move_directory.sh,syn
[syno.zip](https://github.com/home-assistant/core/files/12882214/syno.zip)
ocgi-plugin-weblogin,user-preference-check-permission.sh];
Args=[USER=hass,TYPE=passwd,IS_KNOWN_DEVICE=no]
2023-10-12T07:00:00-05:00 somenas synoplugind[13147]: plugin_action.cpp:336
[13132][PRE][weblogin][user-preference-check-permission.sh] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13147]: plugin_action.cpp:336
[13132][PRE][weblogin][user-preference-check-permission.sh] Runtime: 0.007s
2023-10-12T07:00:00-05:00 somenas synoplugind[13144]: plugin_action.cpp:336
[13132][PRE][weblogin][secure_login_logger] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13144]: plugin_action.cpp:336
[13132][PRE][weblogin][secure_login_logger] Runtime: 0.013s
2023-10-12T07:00:00-05:00 somenas synoplugind[13146]: plugin_action.cpp:336
[13132][PRE][weblogin][synocgi-plugin-weblogin] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13146]: plugin_action.cpp:336
[13132][PRE][weblogin][synocgi-plugin-weblogin] Runtime: 0.017s
2023-10-12T07:00:00-05:00 somenas synoplugind[13145]: plugin_action.cpp:336
[13132][PRE][weblogin][secure_signin_weblogin_move_directory.sh] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13145]: plugin_action.cpp:336
[13132][PRE][weblogin][secure_signin_weblogin_move_directory.sh] Runtime:
0.046s
2023-10-12T07:00:00-05:00 somenas synoscgi_SYNO.API.Auth_7_login[13132]:
plugin_action.c:76 synoplugin: [PRE][weblogin][weblogin][MAIN] Runtime:
0.085s
2023-10-12T07:00:00-05:00 somenas synoscgi_SYNO.API.Auth_7_login[13132]:
plugin_action.c:76 synoplugin: [POST][weblogin][weblogin][MAIN] Plugin
Action Start
2023-10-12T07:00:00-05:00 somenas synoplugind[13157]: daemon.cpp:83
Credentials from SO_PEERCRED: pid=13132, euid=0, egid=0
2023-10-12T07:00:00-05:00 somenas synoplugind[13157]: plugin_init.cpp:48
Plugin Init [13132][POST][weblogin][weblogin]
2023-10-12T07:00:00-05:00 somenas synoplugind[13157]: plugin_action.cpp:336
[13132][POST][weblogin][MAIN]
Scripts=[secure_login_logger,secure_signin_weblogin_move_directory.sh,synocgi-plugin-weblogin,user-preference-check-permission.sh];
Args=[USER=hass,TYPE=passwd,SESSION=webui,API_VERSION=7,IS_KNOWN_DEVICE=no,IP=192.168.1.199,AGENT=Python/3.11
aiohttp/3.8.6,STATUS=success,RESULT=1]
2023-10-12T07:00:00-05:00 somenas synoplugind[13167]: plugin_action.cpp:336
[13132][POST][weblogin][secure_signin_weblogin_move_directory.sh] ExitCode:
0
2023-10-12T07:00:00-05:00 somenas synoplugind[13167]: plugin_action.cpp:336
[13132][POST][weblogin][secure_signin_weblogin_move_directory.sh] Runtime:
0.002s
2023-10-12T07:00:00-05:00 somenas synoplugind[13169]: plugin_action.cpp:336
[13132][POST][weblogin][user-preference-check-permission.sh] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13169]: plugin_action.cpp:336
[13132][POST][weblogin][user-preference-check-permission.sh] Runtime: 0.002s
2023-10-12T07:00:00-05:00 somenas synoplugind[13166]: plugin_action.cpp:336
[13132][POST][weblogin][secure_login_logger] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13166]: plugin_action.cpp:336
[13132][POST][weblogin][secure_login_logger] Runtime: 0.014s
2023-10-12T07:00:00-05:00 somenas synoplugind[13168]: plugin_action.cpp:336
[13132][POST][weblogin][synocgi-plugin-weblogin] ExitCode: 0
2023-10-12T07:00:00-05:00 somenas synoplugind[13168]: plugin_action.cpp:336
[13132][POST][weblogin][synocgi-plugin-weblogin] Runtime: 0.016s
2023-10-12T07:00:00-05:00 somenas synoscgi_SYNO.API.Auth_7_login[13132]:
plugin_action.c:76 synoplugin: [POST][weblogin][weblogin][MAIN] Runtime:
0.053s
It doesn't look like the error is captured in those logs. According to the other logs I've seen, it looks like the error actually occurs after "login".
What is the source of those logs btw? I'm new to troubleshooting HA. It's been working way too smoothly for me 😅
Hi, Tkanks to mib1185 comment, I solved the problem on my side. The issue was caused by snmp conf file on my nas (with SNMP disabled in DSM control panel) .
Not sure if the snmp reconfiguration is needed.
Hope that can help someone.
HA I just had the EXACT same thing, when I went to enable snmp it wouldn't start, after following your suggestion everything seems to be right as rain. What an odd set of behaviors and thank you all for your help!
On Thu, Oct 12, 2023 at 9:18 AM DidierMetral @.***> wrote:
Hi, Tkanks to mib1185 comment, I solved the problem on my side. The issue was caused by snmp conf file on my nas (with SNMP disabled in DSM control panel) .
- I tried to launch the snmpwalk from my synology and the command timeouted.
- I tried to restart snmpd but the restart failed (got this message in /var/log/synosnmpcd.log " buffer overflow detected : terminated")
- After moving /var/lib/net-snmp/snmpd.0.conf to a backup storage (juste in case) the restart was OK.
- I reconfigured the snmp (enabled and disabled SNMP in DSM control pannel)
- Integration worked again.
Not sure if the snmp reconfiguration is needed.
Hope that can help someone.
— Reply to this email directly, view it on GitHub https://github.com/home-assistant/core/issues/97392#issuecomment-1759598221, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA3MRVZOALXHO3FVIZQYBXLX67UY3AVCNFSM6AAAAAA23KFNI2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJZGU4TQMRSGE . You are receiving this because you were mentioned.Message ID: @.***>
This solved it for me too. Good find!
Some additional details:
snmpwalk
was not timing out for me@kbirger @latez where I can find the file that need to delete? It is on the NAS itself? And after deleting what need to restart? The NAS or the DSM integration in HA?
As mentioned in a previous email -
The path for the file is here - /var/lib/net-snmp/ , the file to delete is snmpd.0.conf , restart the service by toggling snmp on/off in the SNMP & Terminal (gui control panel).
What I had in /var/log/synosnmpd.log is probably what you all are experiencing - 'snmpd.sh[19931]: buffer overflow detected : terminated'
On Thu, Oct 12, 2023 at 2:08 PM sesame_madness @.***> wrote:
@kbirger https://github.com/kbirger @latez https://github.com/latez where I can find the file that need to delete? It is on the NAS itself? And after deleting what need to restart? The NAS or the DSM integration in HA?
— Reply to this email directly, view it on GitHub https://github.com/home-assistant/core/issues/97392#issuecomment-1760123049, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA3MRVYHSMB5R5LUDHJOXM3X7AW3TAVCNFSM6AAAAAA23KFNI2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRQGEZDGMBUHE . You are receiving this because you were mentioned.Message ID: @.***>
As mentioned in a previous email - The path for the file is here - /var/lib/net-snmp/ , the file to delete is snmpd.0.conf , restart the service by toggling snmp on/off in the SNMP & Terminal (gui control panel). What I had in /var/log/synosnmpd.log is probably what you all are experiencing - 'snmpd.sh[19931]: buffer overflow detected : terminated' … On Thu, Oct 12, 2023 at 2:08 PM sesame_madness @.> wrote: @kbirger https://github.com/kbirger @latez https://github.com/latez where I can find the file that need to delete? It is on the NAS itself? And after deleting what need to restart? The NAS or the DSM integration in HA? — Reply to this email directly, view it on GitHub <#97392 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA3MRVYHSMB5R5LUDHJOXM3X7AW3TAVCNFSM6AAAAAA23KFNI2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRQGEZDGMBUHE . You are receiving this because you were mentioned.Message ID: @.>
@latez I did see this in your previous post but I not know where or how to open this path?
The only way I know to do this is to use ssh. Are you familiar with ssh? There may be a package for synology that allows you to edit such files, but I doubt it.
This guy's guides are usually pretty digestible https://mariushosting.com/how-to-ssh-into-a-synology-nas/
You will need to run the command as root by using sudo
It works perfectly! Thank you very much!
Hi, Tkanks to mib1185 comment, I solved the problem on my side. The issue was caused by snmp conf file on my nas (with SNMP disabled in DSM control panel) .
- I tried to launch the snmpwalk from my synology and the command timeouted.
- I tried to restart snmpd but the restart failed (got this message in /var/log/synosnmpcd.log " buffer overflow detected : terminated")
- After moving /var/lib/net-snmp/snmpd.0.conf to a backup storage (juste in case) the restart was OK.
- I reconfigured the snmp (enabled and disabled SNMP in DSM control pannel)
- Integration worked again.
Not sure if the snmp reconfiguration is needed.
Hope that can help someone.
It works perfectly! Thank you very much!
The only way I know to do this is to use ssh. Are you familiar with ssh? There may be a package for synology that allows you to edit such files, but I doubt it.
This guy's guides are usually pretty digestible https://mariushosting.com/how-to-ssh-into-a-synology-nas/
You will need to run the command as root by using
sudo
@kbirger you mentioned in previous post you only deleted the file and "restarted" ..... what exactly you restarted?
The problem
I have used this integration for years without any problems. Now I have this error. I have tried deleting and reinserting integration and I get the same error.
{'api': 'SYNO.Core.System.Utilization', 'code': 1055, 'reason': 'Unknown', 'details': {'err_line': 182, 'err_msg': 'Transmition failed.'}}
Full debug log here: https://pastebin.com/sAE1958R
What version of Home Assistant Core has the issue?
core-2023.7.2
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Synology DSM
Link to integration documentation on our website
https://www.home-assistant.io/integrations/synology_dsm
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response