/api/system/update/apply

GET

Inspect the current apply stub and discover whether a verified staged update is available.

Description

The /api/system/update/apply endpoint is currently a stub. It does not install the staged update yet. Instead, it returns a 501 Not Implemented response that tells the caller whether a verified staged update is available.

Current Purpose

Use this endpoint to inspect the future apply contract during development. If a staged package exists, the response includes the staged version, package path, manifest path, hash, and size.

GET for Testing

This endpoint is exposed as a GET command to make browser-based testing and direct command-line checks easy while the helper-based installer flow is still under development.

Parameters

This endpoint does not require any parameters.

Response

The endpoint returns an error-shaped JSON object with additional fields that describe the staged update state.

Response Properties

error boolean
Always true because the endpoint is not implemented yet.
message string
Always "Update apply is not implemented yet".
code integer
Always 501.
apply_not_implemented boolean
Always true.
staged_update_available boolean
true when a verified staged package exists.
download_required boolean
true when no staged package is currently available.
current_version string
Current running version. Present when a staged update exists.
staged_version string
Version of the staged package. Present when a staged update exists.
package_path string
Absolute path to the staged package. Present when a staged update exists.
manifest_path string
Absolute path to the staged manifest copy. Present when a staged update exists.
sha256 string
Hash of the staged package. Present when a staged update exists.
size_bytes integer
Staged package size in bytes. Present when a staged update exists.
detail string
Short explanation of the future helper-based installer direction.

Response: No Staged Update Available

{
  "error": true,
  "message": "Update apply is not implemented yet",
  "code": 501,
  "apply_not_implemented": true,
  "staged_update_available": false,
  "download_required": true,
  "detail": "A helper-based installer flow will be added in a later update."
}

Response: Staged Update Available

{
  "error": true,
  "message": "Update apply is not implemented yet",
  "code": 501,
  "apply_not_implemented": true,
  "staged_update_available": true,
  "download_required": false,
  "current_version": "2026-04-22",
  "staged_version": "2026-04-29",
  "package_path": "E:\\Client_Data\\Updates\\core.2026-04-29.exe",
  "manifest_path": "E:\\Client_Data\\Updates\\manifest.2026-04-29.exe.json",
  "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
  "size_bytes": 7340032,
  "detail": "A helper-based installer flow will be added in a later update."
}

Examples

JavaScript (fetch)

const API_HOST = 'http://localhost:8080';

async function inspectApplyStub() {
    const response = await fetch(`${API_HOST}/api/system/update/apply`);
    const result = await response.json();
    console.log(result);
}

inspectApplyStub();

cURL

# Inspect the apply stub
curl -X GET "http://localhost:8080/api/system/update/apply"

# Pretty-print the stub response
curl -s "http://localhost:8080/api/system/update/apply" | jq

Go

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

const ApiHost = "http://localhost:8080"

func main() {
    resp, err := http.Get(fmt.Sprintf("%s/api/system/update/apply", ApiHost))
    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}

Related Endpoints

/api/system/update/download

Download and stage the verified package before checking apply status.

/api/system/tasks

Inspect the async download task that prepares a staged update.