{
  "repo": "tidbcloud/VictoriaMetrics",
  "binary": "vmagent",
  "binary_path": "app/vmagent/main.go",
  "surface_kind": "mixed_service",
  "services": [
    {
      "name": "VMAgentLifecycle",
      "package": "main",
      "methods": [
        {
          "name": "DryRunPromscrapeConfig",
          "name_key": "Runtime VMAgentLifecycle.DryRunPromscrapeConfig",
          "input": "promscrape.config",
          "output": "validated scrape config and immediate process exit",
          "type": "local"
        },
        {
          "name": "DryRunAllConfigs",
          "name_key": "Runtime VMAgentLifecycle.DryRunAllConfigs",
          "input": "promscrape.config + remote write relabel/stream aggregation configs",
          "output": "validated configs and immediate process exit",
          "type": "local"
        },
        {
          "name": "StartIngestionRateLimiter",
          "name_key": "Runtime VMAgentLifecycle.StartIngestionRateLimiter",
          "input": "maxIngestionRate",
          "output": "active ingestion-rate limiter",
          "type": "local"
        },
        {
          "name": "InitializeRemoteWrite",
          "name_key": "Runtime VMAgentLifecycle.InitializeRemoteWrite",
          "input": "remoteWrite.url + relabel + stream aggregation + queue settings",
          "output": "configured remote-write queues, config reloader, and optional on-disk persistence",
          "type": "local"
        },
        {
          "name": "StartUnmarshalWorkers",
          "name_key": "Runtime VMAgentLifecycle.StartUnmarshalWorkers",
          "input": "protoparser worker settings",
          "output": "running parser worker pool",
          "type": "local"
        },
        {
          "name": "StartInfluxListener",
          "name_key": "Runtime VMAgentLifecycle.StartInfluxListener",
          "input": "influxListenAddr + influxListenAddr.useProxyProtocol",
          "output": "optional TCP/UDP Influx line-protocol listener",
          "type": "local"
        },
        {
          "name": "StartGraphiteListener",
          "name_key": "Runtime VMAgentLifecycle.StartGraphiteListener",
          "input": "graphiteListenAddr + graphiteListenAddr.useProxyProtocol",
          "output": "optional TCP/UDP Graphite plaintext listener",
          "type": "local"
        },
        {
          "name": "StartOpenTSDBListener",
          "name_key": "Runtime VMAgentLifecycle.StartOpenTSDBListener",
          "input": "opentsdbListenAddr + opentsdbListenAddr.useProxyProtocol",
          "output": "optional shared TCP/UDP OpenTSDB telnet plus HTTP-put listener",
          "type": "local"
        },
        {
          "name": "StartOpenTSDBHTTPListener",
          "name_key": "Runtime VMAgentLifecycle.StartOpenTSDBHTTPListener",
          "input": "opentsdbHTTPListenAddr + opentsdbHTTPListenAddr.useProxyProtocol",
          "output": "optional dedicated OpenTSDB HTTP listener",
          "type": "local"
        },
        {
          "name": "InitializePromscrape",
          "name_key": "Runtime VMAgentLifecycle.InitializePromscrape",
          "input": "promscrape.config + push callback",
          "output": "running scrape/service-discovery/config-reload runtime",
          "type": "local"
        },
        {
          "name": "StartHTTPServer",
          "name_key": "Runtime VMAgentLifecycle.StartHTTPServer",
          "input": "httpListenAddr + optional proxy protocol",
          "output": "main HTTP listener serving ingest, status, config, debug, static, and builtin routes",
          "type": "local"
        },
        {
          "name": "InitializePushMetrics",
          "name_key": "Runtime VMAgentLifecycle.InitializePushMetrics",
          "input": "pushmetrics flags",
          "output": "optional pushmetrics loop",
          "type": "local"
        },
        {
          "name": "WaitForSigterm",
          "name_key": "Runtime VMAgentLifecycle.WaitForSigterm",
          "input": "SIGINT or SIGTERM",
          "output": "shutdown trigger",
          "type": "local"
        },
        {
          "name": "StopIngestionRateLimiter",
          "name_key": "Runtime VMAgentLifecycle.StopIngestionRateLimiter",
          "input": "shutdown signal",
          "output": "stopped ingestion-rate limiter",
          "type": "local"
        },
        {
          "name": "StopPushMetrics",
          "name_key": "Runtime VMAgentLifecycle.StopPushMetrics",
          "input": "shutdown signal",
          "output": "terminated pushmetrics loop",
          "type": "local"
        },
        {
          "name": "StopHTTPServer",
          "name_key": "Runtime VMAgentLifecycle.StopHTTPServer",
          "input": "httpListenAddr list",
          "output": "gracefully stopped main HTTP listeners",
          "type": "local"
        },
        {
          "name": "StopPromscrape",
          "name_key": "Runtime VMAgentLifecycle.StopPromscrape",
          "input": "promscrape runtime state",
          "output": "stopped scrape and service-discovery runtime",
          "type": "local"
        },
        {
          "name": "StopProtocolListeners",
          "name_key": "Runtime VMAgentLifecycle.StopProtocolListeners",
          "input": "optional influx, graphite, opentsdb, and opentsdbhttp listener instances",
          "output": "stopped all secondary protocol listeners",
          "type": "local"
        },
        {
          "name": "StopUnmarshalWorkers",
          "name_key": "Runtime VMAgentLifecycle.StopUnmarshalWorkers",
          "input": "parser worker pool state",
          "output": "stopped parser workers",
          "type": "local"
        },
        {
          "name": "StopRemoteWrite",
          "name_key": "Runtime VMAgentLifecycle.StopRemoteWrite",
          "input": "remote write runtime state",
          "output": "stopped relabel/stream-aggregation reloaders, queues, deduplicators, and remote write workers",
          "type": "local"
        }
      ]
    },
    {
      "name": "VMAgentHTTP",
      "type": "http",
      "methods": [
        {
          "name": "GET /",
          "name_key": "HTTP GET /",
          "input": "none",
          "output": "vmagent info HTML",
          "path": "/",
          "type": "http"
        },
        {
          "name": "POST /api/v1/import/prometheus",
          "name_key": "HTTP POST /api/v1/import/prometheus",
          "input": "Prometheus exposition import request; aliases include /prometheus/api/v1/import/prometheus and pushgateway-style metrics/job/* paths",
          "output": "204 No Content on success, or 200 OK for pushgateway-style paths",
          "path": "/api/v1/import/prometheus",
          "type": "http"
        },
        {
          "name": "POST /api/v1/write",
          "name_key": "HTTP POST /api/v1/write",
          "input": "single-tenant Prometheus remote write request; aliases include /prometheus/api/v1/write, /api/v1/push, and /prometheus/api/v1/push",
          "output": "204 No Content on success",
          "path": "/api/v1/write",
          "type": "http"
        },
        {
          "name": "POST /api/v1/import",
          "name_key": "HTTP POST /api/v1/import",
          "input": "single-tenant VM JSON import request; alias /prometheus/api/v1/import",
          "output": "204 No Content on success",
          "path": "/api/v1/import",
          "type": "http"
        },
        {
          "name": "POST /api/v1/import/csv",
          "name_key": "HTTP POST /api/v1/import/csv",
          "input": "single-tenant CSV import request; alias /prometheus/api/v1/import/csv",
          "output": "204 No Content on success",
          "path": "/api/v1/import/csv",
          "type": "http"
        },
        {
          "name": "POST /api/v1/import/native",
          "name_key": "HTTP POST /api/v1/import/native",
          "input": "single-tenant native import request; alias /prometheus/api/v1/import/native",
          "output": "204 No Content on success",
          "path": "/api/v1/import/native",
          "type": "http"
        },
        {
          "name": "POST /influx/write",
          "name_key": "HTTP POST /influx/write",
          "input": "single-tenant Influx line protocol write request; aliases /influx/api/v2/write, /write, /api/v2/write",
          "output": "204 No Content on success",
          "path": "/influx/write",
          "type": "http"
        },
        {
          "name": "GET /influx/query",
          "name_key": "HTTP GET /influx/query",
          "input": "Influx compatibility query request; alias /query",
          "output": "static database-name response",
          "path": "/influx/query",
          "type": "http"
        },
        {
          "name": "GET /influx/health",
          "name_key": "HTTP GET /influx/health",
          "input": "Influx compatibility health request",
          "output": "static health response",
          "path": "/influx/health",
          "type": "http"
        },
        {
          "name": "POST /opentelemetry/v1/metrics",
          "name_key": "HTTP POST /opentelemetry/v1/metrics",
          "input": "single-tenant OpenTelemetry request; alias /opentelemetry/api/v1/push",
          "output": "success response compatible with OTLP / Firehose mode",
          "path": "/opentelemetry/v1/metrics",
          "type": "http"
        },
        {
          "name": "GET /newrelic",
          "name_key": "HTTP GET /newrelic",
          "input": "New Relic check request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/newrelic",
          "type": "http"
        },
        {
          "name": "POST /newrelic/inventory/deltas",
          "name_key": "HTTP POST /newrelic/inventory/deltas",
          "input": "New Relic inventory delta request",
          "output": "accepted inventory delta payload",
          "path": "/newrelic/inventory/deltas",
          "type": "http"
        },
        {
          "name": "POST /newrelic/infra/v2/metrics/events/bulk",
          "name_key": "HTTP POST /newrelic/infra/v2/metrics/events/bulk",
          "input": "New Relic metrics bulk request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/newrelic/infra/v2/metrics/events/bulk",
          "type": "http"
        },
        {
          "name": "POST /datadog/api/v1/series",
          "name_key": "HTTP POST /datadog/api/v1/series",
          "input": "DataDog v1 series request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/datadog/api/v1/series",
          "type": "http"
        },
        {
          "name": "POST /datadog/api/v2/series",
          "name_key": "HTTP POST /datadog/api/v2/series",
          "input": "DataDog v2 series request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/datadog/api/v2/series",
          "type": "http"
        },
        {
          "name": "POST /datadog/api/beta/sketches",
          "name_key": "HTTP POST /datadog/api/beta/sketches",
          "input": "DataDog sketches request",
          "output": "202 Accepted",
          "path": "/datadog/api/beta/sketches",
          "type": "http"
        },
        {
          "name": "GET /datadog/api/v1/validate",
          "name_key": "HTTP GET /datadog/api/v1/validate",
          "input": "DataDog validate request",
          "output": "{\"valid\":true}",
          "path": "/datadog/api/v1/validate",
          "type": "http"
        },
        {
          "name": "POST /datadog/api/v1/check_run",
          "name_key": "HTTP POST /datadog/api/v1/check_run",
          "input": "DataDog service-check request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/datadog/api/v1/check_run",
          "type": "http"
        },
        {
          "name": "GET /datadog/intake",
          "name_key": "HTTP GET /datadog/intake",
          "input": "DataDog intake request",
          "output": "{}",
          "path": "/datadog/intake",
          "type": "http"
        },
        {
          "name": "GET /datadog/api/v1/metadata",
          "name_key": "HTTP GET /datadog/api/v1/metadata",
          "input": "DataDog metadata request",
          "output": "{}",
          "path": "/datadog/api/v1/metadata",
          "type": "http"
        },
        {
          "name": "GET /targets",
          "name_key": "HTTP GET /targets",
          "input": "target status request; alias /prometheus/targets",
          "output": "human-readable target status page",
          "path": "/targets",
          "type": "http"
        },
        {
          "name": "GET /service-discovery",
          "name_key": "HTTP GET /service-discovery",
          "input": "service-discovery status request; alias /prometheus/service-discovery",
          "output": "human-readable service-discovery page",
          "path": "/service-discovery",
          "type": "http"
        },
        {
          "name": "ANY /metric-relabel-debug",
          "name_key": "HTTP ANY /metric-relabel-debug",
          "input": "metric relabel debug request; alias /prometheus/metric-relabel-debug",
          "output": "metric relabel debug page",
          "path": "/metric-relabel-debug",
          "type": "http"
        },
        {
          "name": "ANY /target-relabel-debug",
          "name_key": "HTTP ANY /target-relabel-debug",
          "input": "target relabel debug request; alias /prometheus/target-relabel-debug",
          "output": "target relabel debug page",
          "path": "/target-relabel-debug",
          "type": "http"
        },
        {
          "name": "GET /api/v1/targets",
          "name_key": "HTTP GET /api/v1/targets",
          "input": "state and scrapePool query parameters; alias /prometheus/api/v1/targets",
          "output": "Prometheus-compatible JSON target status",
          "path": "/api/v1/targets",
          "type": "http"
        },
        {
          "name": "GET /target_response",
          "name_key": "HTTP GET /target_response",
          "input": "target response debug request; alias /prometheus/target_response",
          "output": "debug response for a selected scrape target",
          "path": "/target_response",
          "type": "http"
        },
        {
          "name": "GET /config",
          "name_key": "HTTP GET /config",
          "input": "configAuthKey; alias /prometheus/config",
          "output": "raw promscrape config contents",
          "path": "/config",
          "type": "http"
        },
        {
          "name": "GET /api/v1/status/config",
          "name_key": "HTTP GET /api/v1/status/config",
          "input": "configAuthKey; alias /prometheus/api/v1/status/config",
          "output": "Prometheus-compatible JSON config response",
          "path": "/api/v1/status/config",
          "type": "http"
        },
        {
          "name": "ANY /-/reload",
          "name_key": "HTTP ANY /-/reload",
          "input": "reloadAuthKey; alias /prometheus/-/reload",
          "output": "200 OK and self-triggered SIGHUP reload",
          "path": "/-/reload",
          "type": "http"
        },
        {
          "name": "GET /ready",
          "name_key": "HTTP GET /ready",
          "input": "none",
          "output": "200 OK when all scrape configs are ready, otherwise 425 Too Early",
          "path": "/ready",
          "type": "http"
        },
        {
          "name": "ANY /static/*",
          "name_key": "HTTP ANY /static/*",
          "input": "static asset request",
          "output": "embedded static asset",
          "path": "/static/*",
          "type": "http"
        },
        {
          "name": "GET /health",
          "name_key": "HTTP GET /health",
          "input": "none",
          "output": "health response from lib/httpserver",
          "path": "/health",
          "type": "http"
        },
        {
          "name": "ANY /ping",
          "name_key": "HTTP ANY /ping",
          "input": "none",
          "output": "ping response from lib/httpserver",
          "path": "/ping",
          "type": "http"
        },
        {
          "name": "GET /metrics",
          "name_key": "HTTP GET /metrics",
          "input": "optional metricsAuthKey",
          "output": "Prometheus metrics for vmagent",
          "path": "/metrics",
          "type": "http"
        },
        {
          "name": "GET /-/healthy",
          "name_key": "HTTP GET /-/healthy",
          "input": "none",
          "output": "healthy response from lib/httpserver",
          "path": "/-/healthy",
          "type": "http"
        },
        {
          "name": "GET /-/ready",
          "name_key": "HTTP GET /-/ready",
          "input": "none",
          "output": "ready response from lib/httpserver",
          "path": "/-/ready",
          "type": "http"
        },
        {
          "name": "GET /debug/pprof/*",
          "name_key": "HTTP GET /debug/pprof/*",
          "input": "optional pprofAuthKey",
          "output": "pprof diagnostics from lib/httpserver",
          "path": "/debug/pprof/*",
          "type": "http"
        },
        {
          "name": "GET */favicon.ico",
          "name_key": "HTTP GET /favicon.ico",
          "input": "favicon request",
          "output": "built-in favicon response",
          "path": "/favicon.ico",
          "type": "http"
        }
      ]
    },
    {
      "name": "VMAgentMultitenantHTTP",
      "type": "http",
      "methods": [
        {
          "name": "POST /insert/{tenant}/prometheus/api/v1/import/prometheus",
          "name_key": "HTTP POST /insert/{tenant}/prometheus/api/v1/import/prometheus",
          "input": "tenant-qualified Prometheus exposition import request; pushgateway-style metrics/job/* suffix is also accepted",
          "output": "204 No Content on success, or 200 OK for pushgateway-style paths",
          "path": "/insert/{tenant}/prometheus/api/v1/import/prometheus",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/prometheus/api/v1/write",
          "name_key": "HTTP POST /insert/{tenant}/prometheus/api/v1/write",
          "input": "tenant-qualified Prometheus remote write request; suffix aliases include prometheus/ and prometheus/api/v1/push",
          "output": "204 No Content on success",
          "path": "/insert/{tenant}/prometheus/api/v1/write",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/prometheus/api/v1/import",
          "name_key": "HTTP POST /insert/{tenant}/prometheus/api/v1/import",
          "input": "tenant-qualified VM JSON import request",
          "output": "204 No Content on success",
          "path": "/insert/{tenant}/prometheus/api/v1/import",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/prometheus/api/v1/import/csv",
          "name_key": "HTTP POST /insert/{tenant}/prometheus/api/v1/import/csv",
          "input": "tenant-qualified CSV import request",
          "output": "204 No Content on success",
          "path": "/insert/{tenant}/prometheus/api/v1/import/csv",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/prometheus/api/v1/import/native",
          "name_key": "HTTP POST /insert/{tenant}/prometheus/api/v1/import/native",
          "input": "tenant-qualified native import request",
          "output": "204 No Content on success",
          "path": "/insert/{tenant}/prometheus/api/v1/import/native",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/influx/write",
          "name_key": "HTTP POST /insert/{tenant}/influx/write",
          "input": "tenant-qualified Influx write request; alias /insert/{tenant}/influx/api/v2/write",
          "output": "204 No Content on success",
          "path": "/insert/{tenant}/influx/write",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/influx/query",
          "name_key": "HTTP GET /insert/{tenant}/influx/query",
          "input": "tenant-qualified Influx compatibility query request",
          "output": "static database-name response",
          "path": "/insert/{tenant}/influx/query",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/influx/health",
          "name_key": "HTTP GET /insert/{tenant}/influx/health",
          "input": "tenant-qualified Influx compatibility health request",
          "output": "static health response",
          "path": "/insert/{tenant}/influx/health",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/opentelemetry/v1/metrics",
          "name_key": "HTTP POST /insert/{tenant}/opentelemetry/v1/metrics",
          "input": "tenant-qualified OpenTelemetry request; alias /insert/{tenant}/opentelemetry/api/v1/push",
          "output": "success response compatible with OTLP / Firehose mode",
          "path": "/insert/{tenant}/opentelemetry/v1/metrics",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/newrelic",
          "name_key": "HTTP GET /insert/{tenant}/newrelic",
          "input": "tenant-qualified New Relic check request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/insert/{tenant}/newrelic",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/newrelic/inventory/deltas",
          "name_key": "HTTP POST /insert/{tenant}/newrelic/inventory/deltas",
          "input": "tenant-qualified New Relic inventory delta request",
          "output": "accepted inventory delta payload",
          "path": "/insert/{tenant}/newrelic/inventory/deltas",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/newrelic/infra/v2/metrics/events/bulk",
          "name_key": "HTTP POST /insert/{tenant}/newrelic/infra/v2/metrics/events/bulk",
          "input": "tenant-qualified New Relic metrics bulk request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/insert/{tenant}/newrelic/infra/v2/metrics/events/bulk",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/datadog/api/v1/series",
          "name_key": "HTTP POST /insert/{tenant}/datadog/api/v1/series",
          "input": "tenant-qualified DataDog v1 series request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/insert/{tenant}/datadog/api/v1/series",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/datadog/api/v2/series",
          "name_key": "HTTP POST /insert/{tenant}/datadog/api/v2/series",
          "input": "tenant-qualified DataDog v2 series request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/insert/{tenant}/datadog/api/v2/series",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/datadog/api/beta/sketches",
          "name_key": "HTTP POST /insert/{tenant}/datadog/api/beta/sketches",
          "input": "tenant-qualified DataDog sketches request",
          "output": "202 Accepted",
          "path": "/insert/{tenant}/datadog/api/beta/sketches",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/datadog/api/v1/validate",
          "name_key": "HTTP GET /insert/{tenant}/datadog/api/v1/validate",
          "input": "tenant-qualified DataDog validate request",
          "output": "{\"valid\":true}",
          "path": "/insert/{tenant}/datadog/api/v1/validate",
          "type": "http"
        },
        {
          "name": "POST /insert/{tenant}/datadog/api/v1/check_run",
          "name_key": "HTTP POST /insert/{tenant}/datadog/api/v1/check_run",
          "input": "tenant-qualified DataDog service-check request",
          "output": "{\"status\":\"ok\"} with HTTP 202",
          "path": "/insert/{tenant}/datadog/api/v1/check_run",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/datadog/intake",
          "name_key": "HTTP GET /insert/{tenant}/datadog/intake",
          "input": "tenant-qualified DataDog intake request",
          "output": "{}",
          "path": "/insert/{tenant}/datadog/intake",
          "type": "http"
        },
        {
          "name": "GET /insert/{tenant}/datadog/api/v1/metadata",
          "name_key": "HTTP GET /insert/{tenant}/datadog/api/v1/metadata",
          "input": "tenant-qualified DataDog metadata request",
          "output": "{}",
          "path": "/insert/{tenant}/datadog/api/v1/metadata",
          "type": "http"
        }
      ]
    },
    {
      "name": "VMAgentProtocol",
      "package": "main",
      "methods": [
        {
          "name": "TCP/UDP influx://{influxListenAddr}",
          "name_key": "Runtime VMAgentProtocol.InfluxListener",
          "input": "Influx line protocol stream",
          "output": "accepted rows forwarded into remote write queues",
          "type": "tcp"
        },
        {
          "name": "TCP/UDP graphite://{graphiteListenAddr}",
          "name_key": "Runtime VMAgentProtocol.GraphiteListener",
          "input": "Graphite plaintext metric stream",
          "output": "accepted rows forwarded into remote write queues",
          "type": "tcp"
        },
        {
          "name": "TCP/UDP opentsdb://{opentsdbListenAddr}",
          "name_key": "Runtime VMAgentProtocol.OpenTSDBListener",
          "input": "OpenTSDB telnet stream and shared HTTP put requests",
          "output": "accepted rows forwarded into remote write queues",
          "type": "tcp"
        },
        {
          "name": "POST opentsdbhttp://{opentsdbHTTPListenAddr}/insert/{tenant}/opentsdb/api/put",
          "name_key": "HTTP POST /insert/{tenant}/opentsdb/api/put",
          "input": "OpenTSDB HTTP put request on the dedicated listener",
          "output": "accepted rows forwarded into remote write queues",
          "type": "http"
        }
      ]
    }
  ],
  "extensions": {
    "notes": [
      "The previous app-vmagent interface used the legacy endpoint/listener schema and collapsed the runtime into HTTPIngestAPI.* plus TCPListeners.*.",
      "The fresh interface models vmagent as a deployable binary with four runtime surfaces: lifecycle, single-tenant HTTP, multitenant HTTP, and flag-gated secondary protocol listeners.",
      "The same logical parser implementations are reused between single-tenant and multitenant paths, but tenant resolution differs: single-tenant handlers pass a nil auth token, while multitenant handlers derive tenant tokens from /insert/{tenant}/... paths.",
      "The main HTTP listener also includes status, config, debug, ready, static, and builtin httpserver routes; those were missing from the old approved output."
    ]
  }
}
