{
  "schema": "kallipolis.resource-quality.v1",
  "id": "resource.infrastructure.grafana-http-api",
  "version": "1.0.0",
  "title": "Grafana HTTP API infrastructure boundary",
  "summary": "Official-source query, mutation, authorization, deployment, and interpretation boundaries for Grafana HTTP API infrastructure.",
  "content": {
    "kind": "infrastructure-boundary",
    "facts": [
      {
        "id": "fact.grafana.http-api.role",
        "statement": "Grafana documents HTTP APIs for dashboards, folders, data sources, alerting, annotations, service accounts, organizations, users, and other resources.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.grafana.http-api"
        ]
      },
      {
        "id": "fact.grafana.http-api.read",
        "statement": "GET and search requests are distinct from POST, PUT, PATCH, DELETE, provisioning, alert changes, and administrative operations.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.grafana.http-api"
        ]
      },
      {
        "id": "fact.grafana.http-api.write",
        "statement": "Basic authentication, service-account tokens, role and resource permissions, organization scope, edition, and version determine allowed operations.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.grafana.http-api"
        ]
      },
      {
        "id": "fact.grafana.http-api.boundary",
        "statement": "API documentation does not prove an endpoint is enabled, a token is authorized, data-source results are correct, a write succeeded, or Grafana is deployed.",
        "normativeLevel": "informative",
        "sourceIds": [
          "source.grafana.http-api"
        ]
      }
    ]
  },
  "language": "en",
  "category": "data-knowledge-infrastructure",
  "state": "prepared",
  "canonicalUrl": "https://platoskallipolis.com/resources/data-knowledge-infrastructure/grafana-http-api.json",
  "contentHash": "sha256:641d1a355f3b869e339c102a85ce4d1c7cb7075ef7909b969ff85831a1d030bb",
  "owner": {
    "id": "platos-kallipolis",
    "name": "Plato's Kallipolis",
    "type": "organization",
    "accountabilityUrl": "https://platoskallipolis.com/about"
  },
  "access": {
    "mode": "public",
    "url": "https://platoskallipolis.com/resources/data-knowledge-infrastructure/grafana-http-api.json",
    "authentication": "none",
    "robotsAllowed": true
  },
  "provenance": {
    "method": "primary-source",
    "sources": [
      {
        "id": "source.grafana.http-api",
        "url": "https://grafana.com/docs/grafana/latest/developers/http_api/",
        "title": "Grafana HTTP API",
        "publisher": "Grafana Labs",
        "observedAt": "2026-08-28T09:25:24Z"
      }
    ]
  },
  "observedAt": "2026-08-28T09:25:24Z",
  "freshness": {
    "policy": "max-age",
    "state": "current",
    "nextReviewAt": "2026-09-04T09:25:24Z",
    "maxAgeSeconds": 604800
  },
  "license": {
    "id": "source-terms-apply",
    "url": "https://grafana.com/legal/terms/",
    "redistributionAllowed": false
  },
  "evidence": [
    {
      "id": "evidence.grafana.http-api",
      "type": "source-claim",
      "url": "https://grafana.com/docs/grafana/latest/developers/http_api/",
      "observedAt": "2026-08-28T09:25:24Z"
    }
  ]
}
