HTTP package
The OpenAPI 3.1 document is generated beside this preview as openapi.json. Schemas document current behavior; they never validate runtime requests. The built-in server is loopback/host-guarded and has no authentication.
managePackage
Manage device packages
managePackage description
Runs a package action on a Roku device. sign packages the sideloaded dev channel with the device's signing key and downloads the signed .pkg to the server host, reporting its path in pkgPath. rekey installs the signing key from a package on the server host, given by pkgPath or the project's package.signingKeyPackage, and reports the device's resulting developer ID in devId; when devId is sent or set as package.devId it must match, or the route answers 500 PACKAGE_REKEY_DEV_ID_MISMATCH. sign and rekey need a signing password from signingPassword or the ROKU_SIGNING_PASSWORD environment variable of the server process. delete removes the sideloaded dev channel, squashfs converts the installed dev channel to squashfs, and ls returns the installed package rows. Relative paths and the roku-config.ts defaults are resolved from root, which defaults to the server process's current working directory. The target device follows the standard selection rules: device, then the active device, or a direct host with an optional password override. Invalid fields, an unsupported action, a missing signing password and a missing rekey pkgPath answer 400 VALIDATION_ERROR, and a missing or unreadable rekey package answers 400 with its own code. An unknown device or no active device answers 404, and other target selection failures answer 400. Other rk failures answer 500 with their own code, and anything unexpected answers 500 PACKAGE_ROUTE_ERROR.
managePackage contract
POST /api/package
Responses: 200, 400, 404, 500; middleware can also return 403, 408 or 429.
managePackage see also
- rk device package delete
- rk device package ls
- rk device package rekey
- rk device package sign
- rk device package squashfs
managePackage body.action
Package action: sign, rekey, delete, squashfs or ls.
managePackage body.root
Project directory used to resolve relative paths, device configuration and roku-config.ts; defaults to the server process's current working directory.
managePackage body.config
Config file, resolved against root, read for the sign and rekey defaults; omitted searches upward from root for the project config, and a config that is missing or fails to load is silently ignored.
managePackage body.device
Target device ID, IP address or exact name.
managePackage body.host
Direct target host or IP address, bypassing device store selection.
managePackage body.password
Device developer password override; applies to host mode and can override a stored device password.
managePackage body.signingPassword
Signing password for sign and rekey; omitted or blank uses the ROKU_SIGNING_PASSWORD environment variable of the server process.
managePackage body.outDir
Directory sign downloads the signed package to, resolved against root; omitted or blank uses package.outDir from roku-config.ts, then root.
managePackage body.outFile
File name for the signed package; .pkg is appended when missing; defaults to app.pkg.
managePackage body.pkgPath
Package whose signing key rekey installs, resolved against root; omitted or blank uses package.signingKeyPackage from roku-config.ts.
managePackage body.devId
Developer ID rekey must produce; omitted or blank uses package.devId from roku-config.ts, and no check is made when neither is set.
Updated about 3 hours ago