Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

distribution.model

The distribution model

What it is

The one-line install command, where an installation goes, and every declared target with the artifact name it derives. This is what the installation page, the landing page's install block and the cockpit's install card render; none of them holds a platform list of its own.

Descriptor

Canonical id
distribution.model
Module
distribution
Kind
query
Stability
behaviorallyverified
Provenance
declared
Source
apps/majordomus-cli/src/capability/builtin/distribution.rs
Cache
disabled
Benchmark
required
Tags
distributioninstallintrospection

Run

query
A query. It reads and changes nothing.

This capability takes no input.

GET /api/v1/distribution

Projections

InterfaceAsWhere
MCP toolmajordomus_distribution-
MCP resourcenot exposed-
HTTPGET /api/v1/distributionSwagger
Command linemajordomus distribution show-

Schemas

Input · Empty
{
  "type": "object",
  "additionalProperties": false,
  "description": "No input.",
  "title": "Empty"
}
Output · DistributionReport
{
  "type": "object",
  "properties": {
    "binary": {
      "type": "string",
      "description": "The command a person types after installing."
    },
    "repository": {
      "type": "string",
      "description": "`owner/name`, the only host release assets come from."
    },
    "installer_url": {
      "type": "string",
      "description": "The installer's canonical URL."
    },
    "install_command": {
      "type": "string",
      "description": "The one-line install command, composed from its parts."
    },
    "install_and_init_command": {
      "type": "string",
      "description": "The same, initialising the repository afterwards."
    },
    "next_command": {
      "type": "string",
      "description": "What a person runs next."
    },
    "checksum": {
      "type": "string",
      "description": "The digest algorithm the installer verifies."
    },
    "install_dir": {
      "type": "string",
      "description": "Where the launchers go by default."
    },
    "prefix": {
      "type": "string",
      "description": "Where the versioned trees go by default."
    },
    "latest_url": {
      "type": "string",
      "description": "Where the stable release metadata is published."
    },
    "supported": {
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "description": "How many targets a release builds."
    },
    "targets": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TargetView"
      },
      "description": "Every declared target, in the model's order."
    }
  },
  "required": [
    "binary",
    "repository",
    "installer_url",
    "install_command",
    "install_and_init_command",
    "next_command",
    "checksum",
    "install_dir",
    "prefix",
    "latest_url",
    "supported",
    "targets"
  ],
  "description": "The distribution, as a person or a script asks for it.",
  "title": "DistributionReport",
  "$defs": {
    "TargetView": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The target's id in the model."
        },
        "title": {
          "type": "string",
          "description": "How it is written in prose: `Linux x86_64 musl`."
        },
        "os": {
          "$ref": "#/$defs/Os",
          "description": "The operating system."
        },
        "arch": {
          "$ref": "#/$defs/Arch",
          "description": "The architecture."
        },
        "libc": {
          "anyOf": [
            {
              "$ref": "#/$defs/Libc"
            },
            {
              "type": "null"
            }
          ],
          "description": "The C library, on Linux."
        },
        "rust_target": {
          "type": "string",
          "description": "The Rust target triple."
        },
        "status": {
          "$ref": "#/$defs/TargetStatus",
          "description": "What the project promises about it."
        },
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "Why, when it is not built."
        },
        "artifact": {
          "type": "string",
          "description": "The artifact name, with `{tag}` where a release's tag goes."
        }
      },
      "required": [
        "id",
        "title",
        "os",
        "arch",
        "rust_target",
        "status",
        "artifact"
      ],
      "description": "One target, as every projection shows it: what it is, what it is called in prose, and\nthe artifact name the naming function derives for a tag yet to be chosen."
    },
    "Os": {
      "oneOf": [
        {
          "type": "string",
          "const": "macos",
          "description": "Apple's, detected as `Darwin`."
        },
        {
          "type": "string",
          "const": "linux",
          "description": "Linux, detected as `Linux`, and the only one where the C library matters."
        },
        {
          "type": "string",
          "const": "windows",
          "description": "Windows; representable, and not built today."
        }
      ],
      "description": "An operating system a target runs on."
    },
    "Arch": {
      "oneOf": [
        {
          "type": "string",
          "const": "x86_64",
          "description": "64-bit x86, detected as `x86_64` or `amd64`."
        },
        {
          "type": "string",
          "const": "aarch64",
          "description": "64-bit ARM, detected as `aarch64` or `arm64`."
        }
      ],
      "description": "A processor architecture."
    },
    "Libc": {
      "oneOf": [
        {
          "type": "string",
          "const": "gnu",
          "description": "GNU libc: the ordinary distributions."
        },
        {
          "type": "string",
          "const": "musl",
          "description": "musl: Alpine, and any statically linked artifact."
        }
      ],
      "description": "The C library a Linux artifact is linked against."
    },
    "TargetStatus": {
      "oneOf": [
        {
          "type": "string",
          "const": "supported",
          "description": "Built by every release, offered by the installer, listed as supported. A release\nthat is missing this artifact is not published."
        },
        {
          "type": "string",
          "const": "experimental",
          "description": "Built and offered, and documented as not yet proven."
        },
        {
          "type": "string",
          "const": "unavailable",
          "description": "Documented, never built, refused by the installer with its recorded reason."
        }
      ],
      "description": "What the project promises about a target.\n\nSee `crate::deploy::Status`: both are `Status` in their own module and neither is in\nthe one component namespace the schema document has."
    }
  }
}

Examples

These are the capability's own benchmark cases: the same inputs the benchmark runs and the OpenAPI document shows.

default
{}