PostHog · Schema

SdkAssessment

A/B TestingAnalyticsFeature FlagsOpen SourceProduct AnalyticsSession Recording

Properties

Name Type Description
lib string SDK identifier, e.g. 'web', 'posthog-python', 'posthog-node', 'posthog-ios'.
readable_name string Human-readable SDK name matching the SDK Doctor UI (e.g. 'Python', 'Node.js', 'Web', 'iOS').
latest_version string Most recent published version of this SDK.
needs_updating boolean True if this SDK needs attention (is_outdated OR is_old).
is_outdated boolean True if the primary in-use version is flagged as outdated.
is_old boolean True if the primary in-use version is flagged as old by age alone.
severity object UI severity badge — 'none' when healthy, 'warning' when outdated, 'danger' when the majority of team SDKs are outdated. * `none` - none * `warning` - warning * `danger` - danger
reason string Per-SDK programmatic summary (used for ranking/filtering). For user-facing copy, prefer releases[].status_reason (badge tooltip) and banners (top-level alert text) — those match the UI exactly.
banners array Top-level alert sentences matching the SDK Doctor UI's 'Time for an update!' banner — one per outdated version with significant traffic. Quote verbatim when surfacing the headline to users.
releases array Per-version assessment for all versions seen in the last 7 days.
outdated_traffic_alerts array Outdated versions that handle a significant share of traffic (above the threshold). Not populated for mobile SDKs.
View JSON Schema on GitHub

JSON Schema

posthog-sdkassessment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/SdkAssessment",
  "title": "SdkAssessment",
  "type": "object",
  "properties": {
    "lib": {
      "type": "string",
      "description": "SDK identifier, e.g. 'web', 'posthog-python', 'posthog-node', 'posthog-ios'."
    },
    "readable_name": {
      "type": "string",
      "description": "Human-readable SDK name matching the SDK Doctor UI (e.g. 'Python', 'Node.js', 'Web', 'iOS')."
    },
    "latest_version": {
      "type": "string",
      "description": "Most recent published version of this SDK."
    },
    "needs_updating": {
      "type": "boolean",
      "description": "True if this SDK needs attention (is_outdated OR is_old)."
    },
    "is_outdated": {
      "type": "boolean",
      "description": "True if the primary in-use version is flagged as outdated."
    },
    "is_old": {
      "type": "boolean",
      "description": "True if the primary in-use version is flagged as old by age alone."
    },
    "severity": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SdkAssessmentSeverityEnum"
        }
      ],
      "description": "UI severity badge \u2014 'none' when healthy, 'warning' when outdated, 'danger' when the majority of team SDKs are outdated.\n\n* `none` - none\n* `warning` - warning\n* `danger` - danger"
    },
    "reason": {
      "type": "string",
      "description": "Per-SDK programmatic summary (used for ranking/filtering). For user-facing copy, prefer releases[].status_reason (badge tooltip) and banners (top-level alert text) \u2014 those match the UI exactly."
    },
    "banners": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Top-level alert sentences matching the SDK Doctor UI's 'Time for an update!' banner \u2014 one per outdated version with significant traffic. Quote verbatim when surfacing the headline to users."
    },
    "releases": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SdkReleaseAssessment"
      },
      "description": "Per-version assessment for all versions seen in the last 7 days."
    },
    "outdated_traffic_alerts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OutdatedTrafficAlert"
      },
      "description": "Outdated versions that handle a significant share of traffic (above the threshold). Not populated for mobile SDKs."
    }
  },
  "required": [
    "banners",
    "is_old",
    "is_outdated",
    "latest_version",
    "lib",
    "needs_updating",
    "outdated_traffic_alerts",
    "readable_name",
    "reason",
    "releases",
    "severity"
  ]
}