lakeFS · Capability

lakeFS API — objects

lakeFS API — objects. 10 operations. Lead operation: delete object. Missing objects will not return a NotFound error.. Self-contained Naftiko capability covering one Lakefs business surface.

Run with Naftiko Lakefsobjects

What You Can Do

POST
Uploadobject — uploadobject
/v1/repositories/{repository}/branches/{branch}/objects
DELETE
Deleteobject — delete object. Missing objects will not return a NotFound error.
/v1/repositories/{repository}/branches/{branch}/objects
POST
Copyobject — create a copy of an object
/v1/repositories/{repository}/branches/{branch}/objects/copy
POST
Deleteobjects — delete objects. Missing objects will not return a NotFound error.
/v1/repositories/{repository}/branches/{branch}/objects/delete
PUT
Updateobjectusermetadata — rewrite (all) object metadata
/v1/repositories/{repository}/branches/{branch}/objects/stat/user-metadata
GET
Getobject — get object content
/v1/repositories/{repository}/refs/{ref}/objects
HEAD
Headobject — check if object exists
/v1/repositories/{repository}/refs/{ref}/objects
GET
Listobjects — list objects under a given prefix
/v1/repositories/{repository}/refs/{ref}/objects/ls
GET
Statobject — get object metadata
/v1/repositories/{repository}/refs/{ref}/objects/stat
GET
Getunderlyingproperties — get object properties on underlying storage
/v1/repositories/{repository}/refs/{ref}/objects/underlyingproperties

MCP Tools

uploadobject

uploadobject

delete-object-missing-objects-will

delete object. Missing objects will not return a NotFound error.

idempotent
create-copy-object

create a copy of an object

delete-objects-missing-objects-will

delete objects. Missing objects will not return a NotFound error.

rewrite-all-object-metadata

rewrite (all) object metadata

idempotent
get-object-content

get object content

read-only idempotent
check-if-object-exists

check if object exists

list-objects-under-given-prefix

list objects under a given prefix

read-only idempotent
get-object-metadata

get object metadata

read-only idempotent
get-object-properties-underlying-storage

get object properties on underlying storage

read-only idempotent

Capability Spec

lakefs-objects.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: lakeFS API — objects
  description: 'lakeFS API — objects. 10 operations. Lead operation: delete object. Missing objects will not return a NotFound
    error.. Self-contained Naftiko capability covering one Lakefs business surface.'
  tags:
  - Lakefs
  - objects
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    LAKEFS_API_KEY: LAKEFS_API_KEY
capability:
  consumes:
  - type: http
    namespace: lakefs-objects
    baseUri: ''
    description: lakeFS API — objects business capability. Self-contained, no shared references.
    resources:
    - name: repositories-repository-branches-branch-objects
      path: /repositories/{repository}/branches/{branch}/objects
      operations:
      - name: uploadobject
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: storageClass
          in: query
          type: string
          description: Deprecated, this capability will not be supported in future releases.
        - name: force
          in: query
          type: boolean
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deleteobject
        method: DELETE
        description: delete object. Missing objects will not return a NotFound error.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: force
          in: query
          type: boolean
    - name: repositories-repository-branches-branch-objects-copy
      path: /repositories/{repository}/branches/{branch}/objects/copy
      operations:
      - name: copyobject
        method: POST
        description: create a copy of an object
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: repositories-repository-branches-branch-objects-delete
      path: /repositories/{repository}/branches/{branch}/objects/delete
      operations:
      - name: deleteobjects
        method: POST
        description: delete objects. Missing objects will not return a NotFound error.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: repositories-repository-branches-branch-objects-stat-user_metadata
      path: /repositories/{repository}/branches/{branch}/objects/stat/user_metadata
      operations:
      - name: updateobjectusermetadata
        method: PUT
        description: rewrite (all) object metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: repositories-repository-refs-ref-objects
      path: /repositories/{repository}/refs/{ref}/objects
      operations:
      - name: getobject
        method: GET
        description: get object content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Range
          in: header
          type: string
          description: Byte range to retrieve
        - name: If-None-Match
          in: header
          type: string
          description: Returns response only if the object does not have a matching ETag
        - name: presign
          in: query
          type: boolean
      - name: headobject
        method: HEAD
        description: check if object exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Range
          in: header
          type: string
          description: Byte range to retrieve
    - name: repositories-repository-refs-ref-objects-ls
      path: /repositories/{repository}/refs/{ref}/objects/ls
      operations:
      - name: listobjects
        method: GET
        description: list objects under a given prefix
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: repositories-repository-refs-ref-objects-stat
      path: /repositories/{repository}/refs/{ref}/objects/stat
      operations:
      - name: statobject
        method: GET
        description: get object metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: repositories-repository-refs-ref-objects-underlyingProperties
      path: /repositories/{repository}/refs/{ref}/objects/underlyingProperties
      operations:
      - name: getunderlyingproperties
        method: GET
        description: get object properties on underlying storage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.LAKEFS_API_KEY}}'
  exposes:
  - type: rest
    namespace: lakefs-objects-rest
    port: 8080
    description: REST adapter for lakeFS API — objects. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/repositories/{repository}/branches/{branch}/objects
      name: repositories-repository-branches-branch-objects
      description: REST surface for repositories-repository-branches-branch-objects.
      operations:
      - method: POST
        name: uploadobject
        description: uploadobject
        call: lakefs-objects.uploadobject
        with:
          storageClass: rest.storageClass
          force: rest.force
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteobject
        description: delete object. Missing objects will not return a NotFound error.
        call: lakefs-objects.deleteobject
        with:
          force: rest.force
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/branches/{branch}/objects/copy
      name: repositories-repository-branches-branch-objects-copy
      description: REST surface for repositories-repository-branches-branch-objects-copy.
      operations:
      - method: POST
        name: copyobject
        description: create a copy of an object
        call: lakefs-objects.copyobject
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/branches/{branch}/objects/delete
      name: repositories-repository-branches-branch-objects-delete
      description: REST surface for repositories-repository-branches-branch-objects-delete.
      operations:
      - method: POST
        name: deleteobjects
        description: delete objects. Missing objects will not return a NotFound error.
        call: lakefs-objects.deleteobjects
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/branches/{branch}/objects/stat/user-metadata
      name: repositories-repository-branches-branch-objects-stat-user-metadata
      description: REST surface for repositories-repository-branches-branch-objects-stat-user_metadata.
      operations:
      - method: PUT
        name: updateobjectusermetadata
        description: rewrite (all) object metadata
        call: lakefs-objects.updateobjectusermetadata
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/refs/{ref}/objects
      name: repositories-repository-refs-ref-objects
      description: REST surface for repositories-repository-refs-ref-objects.
      operations:
      - method: GET
        name: getobject
        description: get object content
        call: lakefs-objects.getobject
        with:
          Range: rest.Range
          If-None-Match: rest.If-None-Match
          presign: rest.presign
        outputParameters:
        - type: object
          mapping: $.
      - method: HEAD
        name: headobject
        description: check if object exists
        call: lakefs-objects.headobject
        with:
          Range: rest.Range
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/refs/{ref}/objects/ls
      name: repositories-repository-refs-ref-objects-ls
      description: REST surface for repositories-repository-refs-ref-objects-ls.
      operations:
      - method: GET
        name: listobjects
        description: list objects under a given prefix
        call: lakefs-objects.listobjects
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/refs/{ref}/objects/stat
      name: repositories-repository-refs-ref-objects-stat
      description: REST surface for repositories-repository-refs-ref-objects-stat.
      operations:
      - method: GET
        name: statobject
        description: get object metadata
        call: lakefs-objects.statobject
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/repositories/{repository}/refs/{ref}/objects/underlyingproperties
      name: repositories-repository-refs-ref-objects-underlyingproperties
      description: REST surface for repositories-repository-refs-ref-objects-underlyingProperties.
      operations:
      - method: GET
        name: getunderlyingproperties
        description: get object properties on underlying storage
        call: lakefs-objects.getunderlyingproperties
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: lakefs-objects-mcp
    port: 9090
    transport: http
    description: MCP adapter for lakeFS API — objects. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: uploadobject
      description: uploadobject
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: lakefs-objects.uploadobject
      with:
        storageClass: tools.storageClass
        force: tools.force
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-object-missing-objects-will
      description: delete object. Missing objects will not return a NotFound error.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: lakefs-objects.deleteobject
      with:
        force: tools.force
      outputParameters:
      - type: object
        mapping: $.
    - name: create-copy-object
      description: create a copy of an object
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: lakefs-objects.copyobject
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-objects-missing-objects-will
      description: delete objects. Missing objects will not return a NotFound error.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: lakefs-objects.deleteobjects
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: rewrite-all-object-metadata
      description: rewrite (all) object metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: lakefs-objects.updateobjectusermetadata
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-object-content
      description: get object content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lakefs-objects.getobject
      with:
        Range: tools.Range
        If-None-Match: tools.If-None-Match
        presign: tools.presign
      outputParameters:
      - type: object
        mapping: $.
    - name: check-if-object-exists
      description: check if object exists
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: lakefs-objects.headobject
      with:
        Range: tools.Range
      outputParameters:
      - type: object
        mapping: $.
    - name: list-objects-under-given-prefix
      description: list objects under a given prefix
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lakefs-objects.listobjects
      outputParameters:
      - type: object
        mapping: $.
    - name: get-object-metadata
      description: get object metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lakefs-objects.statobject
      outputParameters:
      - type: object
        mapping: $.
    - name: get-object-properties-underlying-storage
      description: get object properties on underlying storage
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lakefs-objects.getunderlyingproperties
      outputParameters:
      - type: object
        mapping: $.