{
  "id": "observable-axiom",
  "name": "observable-axiom",
  "version": "9.7.4",
  "description": "Axiom.co observability integration for logs, metrics, and traces",
  "category": "observable",
  "tags": [
    "axiom",
    "observability",
    "logs",
    "metrics",
    "traces",
    "analytics"
  ],
  "documentation": [],
  "packages": {
    "nodejs": "@bsb/observable-axiom"
  },
  "dependencies": [],
  "author": {
    "name": "BetterCorp (PTY) Ltd",
    "email": "ninja@bettercorp.dev",
    "url": "https://bettercorp.dev/"
  },
  "license": "(AGPL-3.0-only OR Commercial)",
  "image": "./axiom-co-logo.png",
  "configSchema": {
    "anyvaliVersion": "1.0",
    "schemaVersion": "1.1",
    "root": {
      "kind": "object",
      "properties": {
        "serviceName": {
          "kind": "string",
          "default": "bsb-service",
          "metadata": {
            "description": "Service name reported to Axiom and OpenTelemetry"
          }
        },
        "serviceVersion": {
          "kind": "optional",
          "inner": {
            "kind": "string"
          },
          "metadata": {
            "description": "Optional service version reported with telemetry"
          }
        },
        "axiom": {
          "kind": "object",
          "properties": {
            "token": {
              "kind": "string",
              "metadata": {
                "description": "Axiom API token used for ingesting telemetry",
                "sensitive": true,
                "writeonly": true
              }
            },
            "dataset": {
              "kind": "string",
              "default": "bsb-logs",
              "metadata": {
                "description": "Axiom dataset used for logs and metrics"
              }
            },
            "orgId": {
              "kind": "optional",
              "inner": {
                "kind": "string"
              },
              "metadata": {
                "description": "Optional Axiom organization ID"
              }
            },
            "url": {
              "kind": "optional",
              "inner": {
                "kind": "string",
                "format": "url"
              },
              "metadata": {
                "description": "Optional custom Axiom API base URL"
              }
            }
          },
          "required": [
            "token",
            "dataset"
          ],
          "unknownKeys": "strip",
          "metadata": {
            "description": "Axiom connection settings"
          }
        },
        "enabled": {
          "kind": "object",
          "properties": {
            "logs": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether log export to Axiom is enabled"
              }
            },
            "metrics": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether metric export to Axiom is enabled"
              }
            },
            "traces": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether trace export to Axiom is enabled"
              }
            }
          },
          "required": [
            "logs",
            "metrics",
            "traces"
          ],
          "unknownKeys": "strip",
          "metadata": {
            "description": "Telemetry signal enablement"
          }
        },
        "export": {
          "kind": "object",
          "properties": {
            "flushIntervalMs": {
              "kind": "int32",
              "min": 100,
              "default": 5000,
              "metadata": {
                "description": "Interval in milliseconds between batched log flushes"
              }
            },
            "maxBatchSize": {
              "kind": "int32",
              "min": 1,
              "default": 1000,
              "metadata": {
                "description": "Maximum number of log entries sent in one batch"
              }
            }
          },
          "required": [
            "flushIntervalMs",
            "maxBatchSize"
          ],
          "unknownKeys": "strip",
          "metadata": {
            "description": "Axiom export batching settings"
          }
        },
        "resourceAttributes": {
          "kind": "record",
          "valueSchema": {
            "kind": "string"
          },
          "default": {},
          "metadata": {
            "description": "Additional OpenTelemetry resource attributes attached to exported telemetry"
          }
        }
      },
      "required": [
        "serviceName",
        "axiom",
        "enabled",
        "export",
        "resourceAttributes"
      ],
      "unknownKeys": "strip",
      "metadata": {
        "description": "Axiom observable plugin configuration"
      }
    },
    "definitions": {},
    "extensions": {}
  }
}