{
  "$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": "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"
        ]
      },
      {
        "id": "go-native-wire",
        "package": "github.com/RusticStack/lockwell-sdk-go/lockwellwire",
        "version": "0.1.0",
        "runtimes": [
          "go>=1.27"
        ],
        "docs": "/sdks/go",
        "status": "merged-tested",
        "absent": [
          "browser",
          "sse-c",
          "admin",
          "fallback"
        ]
      }
    ]
  },
  "pendingNativeIntegrations": [
    {
      "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"
    }
  ]
}
