applyPackageUpdate
const url = 'https://example.com/api/v1/packages/example/update';const options = { method: 'POST', headers: { cookie: 'tilecast_session=<tilecast_session>', 'Content-Type': 'application/json' }, body: '{"digest":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/packages/example/update \ --header 'Content-Type: application/json' \ --cookie tilecast_session=<tilecast_session> \ --data '{ "digest": "example" }'Requires the Owner or Administrator role with the admin scope. Cookie requests additionally require the X-CSRF-Token header. Activates the digest an update check approved. The check re-resolves fresh, so a stale digest answers update_check_expired instead of installing old bytes. Audited.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Store package identifier such as countdown_bar.
Header Parameters
Section titled “Header Parameters”Cookie-backed browser requests only, and only on unsafe methods. Bearer grants never send it.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Pinned artifact digest as sha256 colon hex.
Examplegenerated
{ "digest": "example"}Responses
Section titled “ Responses ”Update result
object
object
One installed extension package with its contributions and, for custom packages, the repository binding.
object
The human-readable face of an installed or resolved package manifest.
object
Pinned artifact digest as sha256 colon hex.
One activated contribution: its kind, its package-qualified identity, and its path inside the package.
object
External server behavior module (manifest version 2 only).
object
Package-relative WebAssembly module path.
Bounded capabilities the package requests. Every entry is a request the host reviews before installation; nothing here grants itself.
object
Approved outbound HTTPS origins.
object
Package-owned background jobs the host runs.
object
object
One bounded high-frequency background job, separately reviewed.
object
object
Request plugin-owned key/value storage.
Sandboxed Studio UI entry.
object
Requested Tilecast service grants with registry-resolved display metadata.
object
object
The custom repository binding behind an installed custom package.
object
Last verified artifact digest as sha256 colon hex.
Example
{ "data": { "package": { "capabilities": { "services": [ { "category": "read" } ] } } }}Invalid_request — a digest is required
Dashboard authentication required
Owner or Administrator role required
Package_not_installed
Update_check_expired, package_mismatch, contribution_collision, source_conflict, or package_in_use — the update drops a contribution persisted content still uses; remaining resources are listed in error.details
A 409 from applying a package update. Only package_in_use carries details, listing the content the update would strand.
object
object
The package and the contributed content that blocks the operation.
object
object
Example
{ "error": { "code": "update_check_expired" }}Repository_private, no_published_release, manifest_not_found, manifest_invalid, release_tag_unusable, no_published_package, package_unsigned, artifact_invalid, package_incompatible, or namespace_violation
Upstream_unavailable — GitHub, the registry, or Sigstore is unreachable