{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "schemaVersion": "lockwell.sdk-docs.capabilities.v1",
  "canonicalUrl": "https://lockwell.rusticstack.com/reference/sdk-capabilities",
  "sourceAuthority": "https://github.com/RusticStack/lockwell/tree/main",
  "languages": ["go", "node-typescript", "java"],
  "unsupportedNativeSdkLanguages": ["dotnet", "rust", "php", "ruby"],
  "nativeWire": {
    "status": "experimental",
    "defaultEnabled": false,
    "protocol": "/native-wire-v1.json",
    "advertisedCapabilities": ["BUCKETS", "OBJECTS", "PAGINATION", "MULTIPART", "VERSIONING", "OBJECT_LOCK", "TAGS", "SIGNED_CAPABILITY", "TRACE_CONTEXT", "CORS", "NOTIFICATIONS"],
    "excludedCapabilities": { "SSE_C": "native server enforcement path absent" },
    "releaseGate": "experimental until byte fixtures, malformed-frame/auth/replay/tenant/object-lock denials, resource bounds, remote quality, and three-node failover evidence are green",
    "consumers": [
      {
        "id": "typescript-native",
        "package": "@kelphect/sdk-native",
        "version": "0.1.0",
        "runtimes": ["node>=22", "bun>=1.4"],
        "docs": "/sdks/bun-native",
        "status": "merged-tested",
        "absent": ["browser", "sse-c", "admin", "fallback"]
      },
      {
        "id": "solidstart",
        "package": "@kelphect/sdk-solidstart",
        "version": "0.1.0",
        "runtimes": ["solidstart-v2", "node>=22", "bun>=1.4", "nitro:node_server", "nitro:node_cluster", "nitro:bun"],
        "docs": "/sdks/solidstart",
        "status": "merged-tested",
        "absent": ["browser", "edge", "static", "unknown-nitro", "sse-c", "admin", "fallback"]
      },
      {
        "id": "nextjs",
        "package": "@kelphect/sdk-nextjs",
        "version": "0.1.0",
        "runtimes": ["next>=16.3.3<17", "node>=22", "bun>=1.4", "app-router", "node-serverless"],
        "docs": "/sdks/nextjs",
        "status": "merged-tested",
        "absent": ["browser", "client-components", "edge", "middleware", "sse-c", "admin", "fallback"]
      },
      {
        "id": "spring-boot-native-wire",
        "package": "com.lockwell:lockwell-spring-boot-starter",
        "version": "0.2.2",
        "runtimes": ["jdk>=25", "spring-boot>=4.1.1"],
        "docs": "/sdks/java-spring-wire",
        "status": "merged-tested",
        "absent": ["browser", "edge", "sse-c", "admin", "fallback"]
      }
    ]
  },
  "pendingNativeIntegrations": [
    { "id": "go-native-wire", "status": "open-source-owner-pr", "docs": "/reference/sdk-capabilities" },
    { "id": "node-primary-native-wire", "status": "open-source-owner-pr", "docs": "/reference/sdk-capabilities" },
    { "id": "java-shared-native-wire", "status": "open-source-owner-pr", "docs": "/reference/sdk-capabilities" },
    { "id": "nuxt-native-wire", "status": "open-source-owner-pr", "docs": "/reference/sdk-capabilities" }
  ],
  "surfaces": {
    "s3": { "path": "/", "auth": "sigv4", "listener": "public" },
    "native": { "path": "/api/v1/", "auth": "managed-short-lived-bearer", "listener": "public" },
    "admin": { "path": "/admin/api/v1/", "auth": "admin-bearer", "listener": "private" }
  },
  "capabilities": [
    { "id": "endpoint-prefix", "languages": ["go", "node-typescript", "java"], "docs": "/guide/client-configuration" },
    { "id": "explicit-region", "languages": ["go", "node-typescript", "java"], "docs": "/guide/client-configuration" },
    { "id": "custom-tls-transport", "languages": ["go", "node-typescript", "java"], "docs": "/guide/client-configuration" },
    { "id": "attempt-timeout-cancellation", "languages": ["go", "node-typescript", "java"], "docs": "/guide/client-configuration" },
    { "id": "retry-policy", "languages": ["go", "node-typescript", "java"], "docs": "/guide/errors-and-retries" },
    { "id": "progress", "languages": ["go", "node-typescript", "java"], "docs": "/guide/client-configuration" },
    { "id": "response-correlation", "languages": ["go", "node-typescript", "java"], "docs": "/guide/operations-and-observability" },
    { "id": "bucket-object-stream-range", "languages": ["go", "node-typescript", "java"], "docs": "/guide/data-operations" },
    { "id": "conditional-create", "languages": ["go", "node-typescript", "java"], "docs": "/guide/conditional-writes" },
    { "id": "checksums", "languages": ["go", "node-typescript", "java"], "docs": "/guide/checksums" },
    { "id": "multipart-ssec", "languages": ["go", "node-typescript", "java"], "docs": "/guide/multipart-uploads" },
    { "id": "versioning-tagging", "languages": ["go", "node-typescript", "java"], "docs": "/guide/versioning" },
    { "id": "object-lock", "languages": ["go", "node-typescript", "java"], "docs": "/guide/object-lock" },
    { "id": "s3-presign-four-methods", "languages": ["go", "node-typescript", "java"], "docs": "/guide/signed-urls" },
    { "id": "native-constrained-signed-urls", "languages": ["go", "node-typescript", "java"], "docs": "/guide/signed-urls" },
    { "id": "native-cors-webhooks", "languages": ["go", "node-typescript", "java"], "docs": "/guide/webhooks" },
    { "id": "health-readiness", "languages": ["go", "node-typescript", "java"], "docs": "/guide/operations-and-observability" },
    { "id": "admin-tenant-key-quota-audit", "languages": ["go", "node-typescript", "java"], "docs": "/guide/operations-and-observability" },
    { "id": "app-kit-erp-helpers", "languages": ["go", "node-typescript", "java"], "docs": "/guide/app-kit" },
    { "id": "edge-native-admin-kit", "languages": ["node-typescript"], "docs": "/guide/edge-runtimes" }
  ]
}
