Skip to content

mesh.identity

The node identity kept under the user's state directory, public half only: node id, public key, display name. The signing key appears in no projection. Absent is an answer, not an error — the identity is created when a mesh first activates.

The node identity kept under the user's state directory, public half only: node id, public key, display name. The signing key appears in no projection. Absent is an answer, not an error — the identity is created when a mesh first activates.

Exposure

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

surfaceas
MCPtool majordomus_mesh_identity
HTTPGET /api/v1/mesh/identity operationId mesh.identity
command linemajordomus mesh identity

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 · MeshIdentityReport

The answer of mesh.identity: this machine's node identity, public half only.
propertytyperequireddescription
error string | null no Why the identity did not load, when it did not.
identity one of 2 no The public identity, when the file exists and loads. The signing key is not here, not in any projection, and not in any log.
path string | null no Where the identity file lives (or would).
present boolean yes Whether the file exists.
JSON Schema
{
  "$defs": {
    "InstanceId": {
      "description": "One run of a node: 16 hex characters of OS entropy, new at every process start. A\nrestart keeps the node id and changes this, which is how a reader tells \"the same\nnode came back\" from \"the same process is still there\".",
      "type": "string"
    },
    "NodeId": {
      "description": "The stable identity of a node: 32 hex characters of the SHA-256 of its Ed25519 public\nkey. Derived, never chosen: two nodes with one id hold one key.",
      "type": "string"
    },
    "PublicIdentity": {
      "description": "What everyone may know about this node: the id, the public key, a display name and\nthis run's instance. Everything an advertisement carries; nothing that signs.",
      "properties": {
        "display_name": {
          "description": "A human name for the node, from the identity file; defaults to the first eight\ncharacters of the node id. Presentation only — never used for trust.",
          "type": "string"
        },
        "instance_id": {
          "$ref": "#/$defs/InstanceId",
          "description": "This run of the node."
        },
        "node_id": {
          "$ref": "#/$defs/NodeId",
          "description": "The node id: a digest of the public key."
        },
        "public_key": {
          "description": "The Ed25519 public key, 64 hex characters. Whoever holds the matching secret is\nthis node; there is no other proof.",
          "type": "string"
        }
      },
      "required": [
        "node_id",
        "public_key",
        "display_name",
        "instance_id"
      ],
      "type": "object"
    }
  },
  "description": "The answer of `mesh.identity`: this machine's node identity, public half only.",
  "properties": {
    "error": {
      "description": "Why the identity did not load, when it did not.",
      "type": [
        "string",
        "null"
      ]
    },
    "identity": {
      "anyOf": [
        {
          "$ref": "#/$defs/PublicIdentity"
        },
        {
          "type": "null"
        }
      ],
      "description": "The public identity, when the file exists and loads. The signing key is not\nhere, not in any projection, and not in any log."
    },
    "path": {
      "description": "Where the identity file lives (or would).",
      "type": [
        "string",
        "null"
      ]
    },
    "present": {
      "description": "Whether the file exists.",
      "type": "boolean"
    }
  },
  "required": [
    "present"
  ],
  "title": "MeshIdentityReport",
  "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

Searches the titles and descriptions of every page this site publishes.