Skip to content

distribution.model

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.

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.

Exposure

Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.

surfaceas
MCPtool majordomus_distribution
HTTPGET /api/v1/distribution operationId distribution.model
command linemajordomus distribution show

Schemas

The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.

input · Empty

No input.

No properties: the capability takes no input.

JSON Schema
{
  "additionalProperties": false,
  "description": "No input.",
  "title": "Empty",
  "type": "object"
}

output · DistributionReport

The distribution, as a person or a script asks for it.

propertytyperequireddescription
binary string yes The command a person types after installing.
checksum string yes The digest algorithm the installer verifies.
install_and_init_command string yes The same, initialising the repository afterwards.
install_command string yes The one-line install command, composed from its parts.
install_dir string yes Where the launchers go by default.
installer_url string yes The installer's canonical URL.
latest_url string yes Where the stable release metadata is published.
next_command string yes What a person runs next.
prefix string yes Where the versioned trees go by default.
repository string yes `owner/name`, the only host release assets come from.
supported integer yes How many targets a release builds.
targets array yes Every declared target, in the model's order.
JSON Schema
{
  "$defs": {
    "Arch": {
      "description": "A processor architecture.",
      "oneOf": [
        {
          "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`.",
          "type": "string"
        }
      ]
    },
    "Libc": {
      "description": "The C library a Linux artifact is linked against.",
      "oneOf": [
        {
          "const": "gnu",
          "description": "GNU libc: the ordinary distributions.",
          "type": "string"
        },
        {
          "const": "musl",
          "description": "musl: Alpine, and any statically linked artifact.",
          "type": "string"
        }
      ]
    },
    "Os": {
      "description": "An operating system a target runs on.",
      "oneOf": [
        {
          "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.",
          "type": "string"
        }
      ]
    },
    "TargetStatus": {
      "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.",
      "oneOf": [
        {
          "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.",
          "type": "string"
        }
      ]
    },
    "TargetView": {
      "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.",
      "properties": {
        "arch": {
          "$ref": "#/$defs/Arch",
          "description": "The architecture."
        },
        "artifact": {
          "description": "The artifact name, with `{tag}` where a release's tag goes.",
          "type": "string"
        },
        "id": {
          "description": "The target's id in the model.",
          "type": "string"
        },
        "libc": {
          "anyOf": [
            {
              "$ref": "#/$defs/Libc"
            },
            {
              "type": "null"
            }
          ],
          "description": "The C library, on Linux."
        },
        "os": {
          "$ref": "#/$defs/Os",
          "description": "The operating system."
        },
        "reason": {
          "description": "Why, when it is not built.",
          "type": [
            "string",
            "null"
          ]
        },
        "rust_target": {
          "description": "The Rust target triple.",
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/TargetStatus",
          "description": "What the project promises about it."
        },
        "title": {
          "description": "How it is written in prose: `Linux x86_64 musl`.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "os",
        "arch",
        "rust_target",
        "status",
        "artifact"
      ],
      "type": "object"
    }
  },
  "description": "The distribution, as a person or a script asks for it.",
  "properties": {
    "binary": {
      "description": "The command a person types after installing.",
      "type": "string"
    },
    "checksum": {
      "description": "The digest algorithm the installer verifies.",
      "type": "string"
    },
    "install_and_init_command": {
      "description": "The same, initialising the repository afterwards.",
      "type": "string"
    },
    "install_command": {
      "description": "The one-line install command, composed from its parts.",
      "type": "string"
    },
    "install_dir": {
      "description": "Where the launchers go by default.",
      "type": "string"
    },
    "installer_url": {
      "description": "The installer's canonical URL.",
      "type": "string"
    },
    "latest_url": {
      "description": "Where the stable release metadata is published.",
      "type": "string"
    },
    "next_command": {
      "description": "What a person runs next.",
      "type": "string"
    },
    "prefix": {
      "description": "Where the versioned trees go by default.",
      "type": "string"
    },
    "repository": {
      "description": "`owner/name`, the only host release assets come from.",
      "type": "string"
    },
    "supported": {
      "description": "How many targets a release builds.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "targets": {
      "description": "Every declared target, in the model's order.",
      "items": {
        "$ref": "#/$defs/TargetView"
      },
      "type": "array"
    }
  },
  "required": [
    "binary",
    "repository",
    "installer_url",
    "install_command",
    "install_and_init_command",
    "next_command",
    "checksum",
    "install_dir",
    "prefix",
    "latest_url",
    "supported",
    "targets"
  ],
  "title": "DistributionReport",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
disabled — every call runs the handler

Benchmark targets

Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.

transportstatecasestargets
directcovered1default
mcpcovered1default
httpcovered1default