Package
This API is partially documented or under construction.
Overview​
Core Package API implementation for Synology NAS.
This class provides methods to manage packages, including:
- Listing installed and installable packages.
- Installing, upgrading, and uninstalling packages.
- Uploading package files.
- Configuring package center settings.
Methods​
get_package(package_id, additional) Get information about a package. list_installed(additional, ignore_hidden) List installed packages. list_installable() List installable packages. get_package_center_settings() Get package center settings. set_package_center_settings(...) Set package center settings. get_package_center_infos() Get package center information. feasibility_check_install(packages) Check if installation is possible. download_package(url, package_id, checksum, filesize) Start download of a package. get_dowload_package_status(task_id) Get current download status of a package. check_installation_from_download(task_id) Get info about downloaded package file. upload_package_file(file_path, verify, progress_bar, additional) Upload a file for installing a package. get_default_install_volume() Get default install volume for packages. check_installation(...) Check installation of a package. upgrade_package(...) Upgrade an existing package. install_package(...) Install a package that is already downloaded. uninstall_package(package_id) Uninstall a package. easy_install(package_id, volume_path, install_dependencies) Execute an easy installation process of a package.
Methods​
get_package
​
Get infos of a package.
Internal API​
SYNO.Core.Package
Parameters​
package_id str
Package ID.
additional List[str]
Additional field to retrieves. Defaults to []
.
All filed known are:
["status","dsm_apps"]
.
Returns​
dict
Informations about the package.
Example return​
Click to expand
{
"data": {
"additional": {
"dsm_apps": " com.plexapp.plexmediaserver",
"status": "running",
"status_code": 0,
"status_description": "retrieve from status script",
"status_origin": "running"
},
"id": "PlexMediaServer",
"name": "Plex Media Server",
"timestamp": 1739228562839,
"version": "1.41.3.9314-72009314"
},
"success": true
}
list_installed
​
List installed packages.
Internal API​
SYNO.Core.Package
Parameters​
additional list[str]
Additional fields to retrieve. Defaults to []
.
All fields known are:
["description", "description_enu", "dependent_packages", "beta", "distributor", "distributor_url", "maintainer", "maintainer_url", "dsm_apps", "dsm_app_page", "dsm_app_launch_name","report_beta_url", "support_center", "startable", "installed_info", "support_url", "is_uninstall_pages","install_type", "autoupdate", "silent_upgrade", "installing_progress", "ctl_uninstall", "updated_at", "status", "url","available_operation"]
.
ignore_hidden bool
Whether to ignore hidden packages.
Returns​
dict
List of packages installed on the NAS.
Example return​
Click to expand
{
"data": {
"packages": [
{
"additional": {
"install_type": ""
},
"id": "ActiveBackup-Office365",
"name": "Active Backup for Microsoft 365",
"timestamp": 1738880043640,
"version": "2.5.5-14034"
}
}
},
"success": true
}
list_installable
​
List installable packages.
Internal API​
SYNO.Core.Package.Server
Returns​
dict
List of beta_package, categories and packages available.
Example return​
Click to expand
{
"data": {
"banners": [],
"beta_packages": [...],
"categories": [...],
"packages": [...]
},
"success": true
}
get_package_center_settings
​
Get package center settings.
Internal API​
SYNO.Core.Package.Setting
Returns​
dict
List settings of the Package center.
Example return​
Click to expand
{
"data": {
"autoupdateall": false,
"autoupdateimportant": true,
"default_vol": "/volume1",
"enable_autoupdate": true,
"enable_dsm": true,
"enable_email": false,
"mailset": true,
"trust_level": 0,
"update_channel": true,
"volume_count": 2,
"volume_list": [
{
"desc": "",
"display": "Volume 1 (Available capacity: 184.72 GB )",
"mount_point": "/volume1",
"size_free": "198336327680",
"size_total": "206158430208",
"vol_desc": "Apps",
"volume_features": []
},
{
"desc": "",
"display": "Volume 2 (Available capacity: 2391.14 GB )",
"mount_point": "/volume2",
"size_free": "2567467421696",
"size_total": "3623234412544",
"vol_desc": "Stockage",
"volume_features": []
}
]
},
"success": true
}
set_package_center_settings
​
Set settings of the package center.
Internal API​
SYNO.Core.Package.Setting
Parameters​
enable_email bool
Enable email notification.
enable_dsm bool
Enable desktop notification.
enable_autoupdate bool
Update packages automatically.
autoupdateall bool
Auto update all packages.
autoupdateimportant bool
Auto update "important" packages.
default_vol str
Default volume for installation, all your volumes or "no_default_vol" = Always ask me
.
update_channel str
"stable" => Disable beta packages.
"beta" => Enable beta packages.
Returns​
dict
Return some settings.
Example return​
Click to expand
{
"data": {
"enable_dsm": true,
"enable_email": false,
"update_channel": "stable"
},
"success": true
}
get_package_center_infos
​
Get package center informations.
Internal API​
SYNO.Core.Package.Info
Returns​
dict
List of configs.
Example return​
Click to expand
{
"data": {
"config": {
"auth_key": "------------------------------",
"blBetaChannel": false,
"blOtherServer": false,
"def_void": "",
"ds_build": "72806",
"ds_major": "7",
"ds_minor": "2",
"ds_timezone": "Amsterdam",
"ds_unique": "synology_r1000_723+",
"myPayBaseURL": "https://payment.synology.com",
"myds_id": "7886858",
"serial": "2260TPR7X30E6",
"success": true
},
"prerelease": {
"agreed": true,
"success": true
},
"term": {
"agreed_term_version": "0003",
"curr_term_version": "0003",
"success": true
}
},
"success": true
}
feasibility_check_install
​
Check if installation is possible.
Internal API​
SYNO.Core.Package.Setting
Parameters​
packages List[str]
List of package IDs to check for feasibility.
Returns​
dict
Feasibility check result.
Example return​
Click to expand
{
"data": {
"template": "data"
},
"success": true
}
download_package
​
Start download of the package, return a taskId for check status.
Internal API​
SYNO.Core.Package.Installation
Parameters​
url str
Url that can be retrieve from package info using get_installable
function, in the link
field.
package_id str
Package ID that can be retrieve from package info using get_installable
function, in the id
field.
checksum str
Checksum that can be retrieve from package info using get_installable
function, in the md5
field.
filesize str
Filesize that can be retrieve from package info using get_installable
function, in the size
field.
Returns​
dict
Retrieve first progress of the download and the taskid used to check download status with get_dowload_package_status
function.
Example return​
Click to expand
{
"data": {
"progress": 1.0000000000000001e-05,
"taskid": "@SYNOPKG_DOWNLOAD_DhcpServer"
},
"success": true
}
get_dowload_package_status
​
Get current download status of the package.
Internal API​
SYNO.Core.Package.Installation
Parameters​
task_id str
Task ID retrieved from response of download_package
function.
Returns​
dict
Retrieve informations about the download, important info is the progress
field.
Example return​
Click to expand
{
"data": {
"beta": false,
"blqinst": false,
"finished": false,
"id": "DhcpServer",
"installing": false,
"name": "DhcpServer",
"pid": 27844,
"progress": 1.0000000000000001e-05,
"remote_link": "https://global.synologydownload.com/download/Package/spk/DhcpServer/1.0.2-0046/DhcpServer-x86_64-1.0.2-0046.spk",
"size": "1378697",
"success": true,
"taskid": "@SYNOPKG_DOWNLOAD_DhcpServer",
"tmp_folder": "/volume1/@tmp/synopkg/download.esnnkb"
},
"success": true
}
check_installation_from_download
​
Get info about downloaded package file, response field is used for check_installation
and install_package
function.
Internal API​
SYNO.Core.Package.Installation.Download
Parameters​
task_id str
Task ID retrieved from response of download_package
function.
Returns​
dict
Retrieve information about downloaded package installation file, response field is used for check_installation
and install_package
function.
Example return​
Click to expand
{
"data": {
"description": "DHCP Server turns your DiskStation into a DHCP server within LAN to assign dynamic IP addresses and manage DHCP clients.",
"distributor": "",
"dsm_apps": "SYNO.SDS.DHCP.Instance",
"filename": "/volume1/@tmp/synopkg/download.esnnkb/@SYNOPKG_DOWNLOAD_DhcpServer",
"id": "DhcpServer",
"install_on_cold_storage": false,
"install_reboot": false,
"install_type": "system",
"maintainer": "Synology Inc.",
"name": "DHCP Server",
"startable": true,
"status": "non_installed",
"status_code": 255,
"status_description": "failed to locate given package",
"status_origin": "non_installed",
"version": "1.0.2-0046"
},
"success": true
}
upload_package_file
​
Upload a file for install a package.
Internal API​
SYNO.Core.Package.Installation
Parameters​
file_path str
File path.
verify bool
Use https. Defaults to False
.
progress_bar bool
Enable progress bar in the terminal. Defaults to True
.
additional list
Additional field to retrieves. Defaults to []
.
All fields know are:
["description","maintainer","distributor","startable","dsm_apps","status","install_reboot", "install_type","install_on_cold_storage","break_pkgs","replace_pkgs"]
.
Returns​
dict
Informations about the uploaded file for installation.
Example return​
Click to expand
{
"data": {
"additional": {
"break_pkgs": null,
"description": "Plex organizes all of your personal media so you can easily access and enjoy it.",
"distributor": "",
"dsm_apps": " com.plexapp.plexmediaserver",
"install_on_cold_storage": false,
"install_reboot": false,
"install_type": "",
"maintainer": "Plex Inc",
"replace_pkgs": { "Plex Media Server": "" },
"startable": true,
"status": "running",
"status_code": 0,
"status_description": "retrieve from status script",
"status_origin": "running"
},
"codesign_error": 4532,
"id": "PlexMediaServer",
"name": "Plex Media Server",
"task_id": "@SYNOPKG_UPLOAD_17392283048566DD3",
"version": "1.41.3.9314-72009314"
},
"success": true
}
get_default_install_volume
​
Get default install volume for package.
Internal API​
SYNO.Core.Package.Setting.Volume
Returns​
dict
Return default volume, if default volume is set to Always ask me
it return error 4501.
Example return​
Click to expand
{
"data": {
"default_vol": "/volume1"
},
"success": true
}
check_installation
​
Check installation of the package on the default volume.
Internal API​
SYNO.Core.Package.Installation
Parameters​
package_id str
Id of the package to install.
install_type str, optionnal
Installation type, Defaults to ""
. TODO: Add description and possible types.
install_on_cold_storage bool
Defaults to False
. TODO: Add description.
blCheckDep bool
Defaults to False
. TODO: Add description.
replacepkgs dict
Defaults to {}
. TODO: Add description.
Returns​
dict
List of usefull informations about volumes.
Example return​
Click to expand
{
"data": {
"is_occupied": false,
"volume_count": 2,
"volume_list": [
{
"desc": "",
"display": "Volume 1 (Available capacity: 184.52 GB )",
"mount_point": "/volume1",
"size_free": "198126022656",
"size_total": "206158430208",
"vol_desc": "vol1",
"volume_features": []
},
{
"desc": "",
"display": "Volume 2 (Available capacity: 2391.16 GB )",
"mount_point": "/volume2",
"size_free": "2567484923904",
"size_total": "3623234412544",
"vol_desc": "vol2",
"volume_features": []
}
],
"volume_path": "/volume1"
},
"success": true,
}
upgrade_package
​
Upgrade an existing package.
Internal API​
SYNO.Core.Package.Installation
Parameters​
task_id str
Task id of the download or the upload file.
check_codesign bool
Check signature of the source code of the package (is it a Synology one). Defaults to False
.
force bool
Force installation. Defaults to False
.
installrunpackage bool
Run package after installation. Defaults to True
.
extra_values dict
Extra values due to some package installation. Defaults to {}
.
Returns​
dict
Message and some info about installation.
Example return​
Click to expand
{
"data": {
"message": "message",
"packageName": "Plex Media Server",
"worker_message": []
},
"success": true,
}
install_package
​
Install a package that is already downloaded.
Internal API​
SYNO.Core.Package.Uninstallation
Parameters​
package_id str
Id of the package to install.
volume_path str
Volume path of the installation, can get from check_installation
function.
file_path str
File path of the installation, can get from check_installation_from_download
function.
check_codesign bool
Check signature of the source code of the package (is it a Synology one). Defaults to False
.
force bool
Force installation. Defaults to False
.
installrunpackage bool
Run package after installation. Defaults to True
.
extra_values dict
Extra values due to some package installation. Defaults to {}
.
Returns​
dict
Message and some info about installation.
Example return​
Click to expand
{
"data": {
"has_fail": false,
"result": [
{
"api": "SYNO.Core.Package.Installation",
"data": {
"is_occupied": false,
"volume_count": 2,
"volume_list": [
{
"desc": "",
"display": "Volume 1 (Available capacity: 185.09 GB )",
"mount_point": "/volume1",
"size_free": "198739943424",
"size_total": "206158430208",
"vol_desc": "Apps",
"volume_features": []
},
{
"desc": "",
"display": "Volume 2 (Available capacity: 2391.17 GB )",
"mount_point": "/volume2",
"size_free": "2567495630848",
"size_total": "3623234412544",
"vol_desc": "Stockage",
"volume_features": []
}
],
"volume_path": "/volume1"
},
"method": "check",
"success": true,
"version": 1
},
{
"api": "SYNO.Core.Package.Installation",
"data": {
"packageName": "Text Editor",
"worker_message": []
},
"method": "install",
"success": true,
"version": 1
}
]
},
"success": true
}
uninstall_package
​
Uninstall a package.
Internal API​
SYNO.Core.Package.Uninstallation
Parameters​
package_id str
Id of the package to uninstall.
Returns​
dict
Possible message to the user.
Example return​
Click to expand
{
"data": {
"message": "",
"worker_message": []
},
"success": true
}
easy_install
​
Execute an easy installation process of the package.
Internal API​
hotfix
Parameters​
package_id str
Package ID to install.
volume_path str
Volume path where you want to install the package.
install_dependencies bool
If you want to install dependencies. Defaults to True.
Returns​
dict[str, object]
Information about installation, same as install_package function.
Example return​
Click to expand
{
"data": {
"has_fail": false,
"result": [
{
"api": "SYNO.Core.Package.Installation",
"data": {
"is_occupied": false,
"volume_count": 2,
"volume_list": [
{
"desc": "",
"display": "Volume 1 (Available capacity: 185.11 GB )",
"mount_point": "/volume1",
"size_free": "198759485440",
"size_total": "206158430208",
"vol_desc": "Apps",
"volume_features": []
},
{
"desc": "",
"display": "Volume 2 (Available capacity: 2391.17 GB )",
"mount_point": "/volume2",
"size_free": "2567495565312",
"size_total": "3623234412544",
"vol_desc": "Stockage",
"volume_features": []
}
],
"volume_path": "/volume1"
},
"method": "check",
"success": true,
"version": 1
},
{
"api": "SYNO.Core.Package.Installation",
"data": {
"packageName": "Text Editor",
"worker_message": []
},
"method": "install",
"success": true,
"version": 1
}
]
},
"success": true
}