Delta Lake · OpenAPI Overlay 1.0.0

API Evangelist enhancements to the Delta Sharing Protocol OpenAPI

9 actions 9 updates update
Generated by API Evangelist Written by API Evangelist tooling for Delta Lake's API. It is a proposal applied on top of the contract, not a document Delta Lake publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-real-shapex-shape-sourcelicensecontactx-spec-lagx-artifactsx-server-notesx-idempotency

Targets 6

$.info
$.servers
$.components.schemas.TableMetadataResponse
$.components.schemas.TableQueryResponse
$.components.schemas.ChangeDataFeedResponse
$.paths['/shares/{share}/schemas/{schema}/tables/{table}/query'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements to the Delta Sharing Protocol OpenAPI
  version: 1.0.0
x-provenance:
  generated: '2026-09-05'
  method: generated
  source: openapi/delta-lake-delta-sharing-protocol-openapi.yml
  extends: openapi/delta-lake-delta-sharing-protocol-openapi.yml
  note: >-
    Non-destructive enhancements only. The original specification is left byte-for-byte as
    published in https://github.com/delta-io/delta-sharing/blob/main/delta-sharing-protocl-api-description.yml
    (note the typo in the upstream filename). Every action below is either a correction the
    provider's own repository contradicts, or a pointer to an artifact in this repo. Nothing
    invents API behaviour.
actions:
  - target: $.info
    description: >-
      Correct the license. The document declares "AGPL v3.0", but the delta-io/delta-sharing
      repository that publishes it is Apache-2.0 (confirmed via the GitHub repository license
      field, 2026-09-05) and the project ships Apache-2.0 artifacts to Maven Central.
    update:
      license:
        name: Apache-2.0
        url: https://github.com/delta-io/delta-sharing/blob/main/LICENSE.txt
  - target: $.info
    description: >-
      Add the contact the project publishes on its own site; the upstream document carries an
      empty contact.email string.
    update:
      contact:
        name: Delta Lake community
        url: https://delta.io/resources/getting-help
  - target: $.info
    description: >-
      Record that the published document lags the normative prose specification. info.version
      is 0.2 while PROTOCOL.md documents Get Query Info and Generate Temporary Table
      Credential, neither of which appears in paths.
    update:
      x-spec-lag:
        machine_readable_version: '0.2'
        normative_specification: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md
        undocumented_operations:
          - Get Query Info
          - Generate Temporary Table Credential
  - target: $.info
    description: Cross-link the derived artifacts in this repository.
    update:
      x-artifacts:
        conventions: conventions/delta-lake-conventions.yml
        errors: errors/delta-lake-problem-types.yml
        data_model: data-model/delta-lake-data-model.yml
        conformance: conformance/delta-lake-conformance.yml
        authentication: authentication/delta-lake-authentication.yml
        lifecycle: lifecycle/delta-lake-lifecycle.yml
        sandbox: sandbox/delta-lake-sandbox.yml
        skills: skills/_index.yml
  - target: $.servers
    description: >-
      Annotate the servers block. The demo server was probed live on 2026-09-05 and answered
      HTTP 200 anonymously; the localhost entry is a development placeholder, not a callable host.
    update:
      x-server-notes:
        - url: https://sharing.delta.io/delta-sharing/
          role: open demo server operated by the Delta Lake project
          probed: '2026-09-05'
          http_status: 200
        - url: http://localhost:8000/api/v1
          role: local development placeholder
        - note: >-
            Delta Sharing is a self-hosted protocol. In production the base URL is whatever the
            data provider's own sharing server publishes, carried in the recipient's profile file
            endpoint field.
  - target: $.components.schemas.TableMetadataResponse
    description: >-
      Record that this schema is declared as a bare string. The real body is newline-delimited
      JSON action objects defined in PROTOCOL.md, so generated clients cannot type it.
    update:
      x-real-shape: application/x-ndjson — protocol action followed by metaData action
      x-shape-source: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md#api-response-actions
  - target: $.components.schemas.TableQueryResponse
    description: Record the real newline-delimited JSON shape behind the bare string type.
    update:
      x-real-shape: >-
        application/x-ndjson — protocol, metaData, one file/add action per data file,
        optionally terminated by endStreamAction
      x-shape-source: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md#api-response-actions
  - target: $.components.schemas.ChangeDataFeedResponse
    description: Record the real newline-delimited JSON shape behind the bare string type.
    update:
      x-real-shape: >-
        application/x-ndjson — protocol, metaData, then add/cdf/remove actions across the
        requested version or timestamp range
      x-shape-source: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md#data-change-files
  - target: $.paths['/shares/{share}/schemas/{schema}/tables/{table}/query'].post
    description: >-
      Record the idempotency and capability semantics PROTOCOL.md defines for this operation
      but the document omits.
    update:
      x-idempotency:
        field: idempotencyKey
        location: requestBody
        applies_when: the client negotiates asyncquery=true via delta-sharing-capabilities
        docs: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md#asyncquery
      x-capabilities-header:
        name: delta-sharing-capabilities
        keys: [responseformat, readerfeatures, includeendstreamaction, asyncquery]
        docs: https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md#delta-sharing-capabilities-header