Skip to main content

Package

warning

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
}