Skip to content

GET /api/admin/resolve-egress-path/v1

Info

This page was generated by extracting information from a JSON Schema data file for the API. It may be missing some information, or otherwise suggest approximate or placeholder values based on information in the schema file; this is due to limitations on how that data is extracted from the underlying Rust code and into the JSON Schema, and then again from there and into these docs.

Resolve the effective egress path configuration and throughput ceilings for a destination domain and egress source.

This API endpoint is used by the kcli resolve-egress-path command.

Since: Dev Builds Only

The functionality described in this section requires a dev build of KumoMTA. You can obtain a dev build by following the instructions in the Installation section.

Mirrors the diagnostic that kcli inspect-ready-q provides for live ready queues, but operates from the configuration side: it invokes the get_queue_config and get_egress_path_config event callbacks for the supplied domain/source pair, performs the associated MX lookup, and returns the resulting configuration, derived ceilings and the ready-queue name that would be used.

Query Parameters

  • domain - required string. Destination domain. Drives the MX lookup and is passed through to the get_egress_path_config event callback.
  • source - optional nullable string. Egress source name. Defaults to "unspecified" if omitted.

Responses

Status 200

Resolved egress path

Content-Type: application/json

Response body for the resolve-egress-path endpoint.

Since: Dev Builds Only

The functionality described in this section requires a dev build of KumoMTA. You can obtain a dev build by following the instructions in the Installation section.

This is an object value, with the following properties:

  • constraints - required EffectiveConstraints. Steady-state ceilings implied by an EgressPathConfig. Each ceiling carries a tag for which configuration term produced it.
Since: Dev Builds Only

The functionality described in this section requires a dev build of KumoMTA. You can obtain a dev build by following the instructions in the Installation section.

These are per-queue ceilings; shared limits in additional_* maps are reported at their full value and may be tighter in practice when the bucket is contended.

  • domain - required string.

  • mx - optional nullable MxResolution.

  • path_config - required object.

  • queue_config - required object. Snapshot of the resolved scheduled-queue configuration for this domain. Carried as an untyped JSON object because QueueConfig contains protocol variants that don't all round-trip cleanly through the OpenAPI schema.

  • queue_name - required string. The ready-queue name that this domain/source pair would resolve to. Lets the caller pivot to inspect-ready-q for live runtime detail when the queue exists.

  • source - required string.

Examples

{
  "constraints": {
    "max_concurrent_dispatchers": {
      "display": "string",
      "source": {
        "kind": "primary"
      },
      "value": 4.2
    },
    "max_connection_rate": {
      "display": "string",
      "source": {
        "kind": "primary"
      },
      "value": 4.2
    },
    "max_message_rate": {
      "display": "string",
      "source": {
        "kind": "primary"
      },
      "value": 4.2
    },
    "max_message_rate_declared": "string",
    "max_source_selection_rate": {
      "display": "string",
      "source": {
        "kind": "primary"
      },
      "value": 4.2
    }
  },
  "domain": "string",
  "mx": {
    "by_preference": {},
    "is_domain_literal": false,
    "is_mx": false,
    "is_secure": false,
    "site_name": "string"
  },
  "path_config": {},
  "queue_config": {},
  "queue_name": "string",
  "source": "string"
}