lakeFS internal API
The internal API from lakeFS — 24 operation(s) for internal.
The internal API from lakeFS — 24 operation(s) for internal.
openapi: 3.0.0
info:
description: lakeFS HTTP API
title: lakeFS actions internal API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
servers:
- url: /api/v1
description: lakeFS server endpoint
security:
- jwt_token: []
- basic_auth: []
- cookie_auth: []
- oidc_auth: []
- saml_auth: []
tags:
- name: internal
paths:
/setup_comm_prefs:
post:
tags:
- internal
operationId: setupCommPrefs
summary: setup communications preferences
security: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CommPrefsInput'
responses:
200:
description: communication preferences saved successfully
400:
$ref: '#/components/responses/BadRequest'
409:
description: setup was already completed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
412:
description: wrong setup state for this operation
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/setup_lakefs:
get:
tags:
- internal
operationId: getSetupState
summary: check if the lakeFS installation is already set up
security: []
responses:
200:
description: lakeFS setup state
content:
application/json:
schema:
$ref: '#/components/schemas/SetupState'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
post:
tags:
- internal
operationId: setup
summary: setup lakeFS and create a first user
security: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Setup'
responses:
200:
description: user created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CredentialsWithSecret'
400:
$ref: '#/components/responses/BadRequest'
409:
description: setup was already called
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/auth/capabilities:
get:
tags:
- internal
operationId: getAuthCapabilities
summary: list authentication capabilities supported
security: []
responses:
200:
description: auth capabilities
content:
application/json:
schema:
$ref: '#/components/schemas/AuthCapabilities'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/metadata:
parameters:
- in: path
name: repository
required: true
schema:
type: string
post:
tags:
- internal
operationId: setRepositoryMetadata
summary: set repository metadata
description: 'Set repository metadata. This will only add or update the provided keys, and will not remove any existing keys.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryMetadataSet'
responses:
204:
description: repository metadata set successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
delete:
tags:
- internal
operationId: deleteRepositoryMetadata
summary: delete repository metadata
description: 'Delete specified keys from the repository''s metadata.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RepositoryMetadataKeys'
responses:
204:
description: repository metadata keys deleted successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/refs/dump:
parameters:
- in: path
name: repository
required: true
schema:
type: string
put:
tags:
- internal
operationId: dumpRefs
summary: 'Dump repository refs (tags, commits, branches) to object store
Deprecated: a new API will introduce long running operations
'
responses:
201:
description: refs dump
content:
application/json:
schema:
$ref: '#/components/schemas/RefsDump'
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/refs/restore:
parameters:
- in: path
name: repository
required: true
schema:
type: string
put:
tags:
- internal
operationId: restoreRefs
summary: 'Restore repository refs (tags, commits, branches) from object store.
Deprecated: a new API will introduce long running operations
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefsRestore'
responses:
200:
description: refs successfully loaded
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/commits:
parameters:
- in: path
name: repository
required: true
schema:
type: string
post:
tags:
- internal
operationId: CreateCommitRecord
summary: create commit record
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CommitRecordCreation'
responses:
204:
description: commit record created
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/branches/{branch}/objects/stage_allowed:
parameters:
- in: path
name: repository
required: true
schema:
type: string
- in: path
name: branch
required: true
schema:
type: string
- in: query
name: path
description: relative to the branch
required: true
schema:
type: string
get:
tags:
- internal
operationId: uploadObjectPreflight
responses:
204:
description: User has permissions to upload this object. This does not guarantee that the upload will be successful or even possible. It indicates only the permission at the time of calling this endpoint
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/branches/{branch}/objects:
parameters:
- in: path
name: repository
required: true
schema:
type: string
- in: path
name: branch
required: true
schema:
type: string
- in: query
name: path
description: relative to the branch
required: true
schema:
type: string
put:
deprecated: true
tags:
- internal
operationId: stageObject
summary: stage an object's metadata for the given branch
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStageCreation'
responses:
201:
description: object metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStats'
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/refs/{branch}/symlink:
parameters:
- in: path
name: repository
required: true
schema:
type: string
- in: path
name: branch
required: true
schema:
type: string
- in: query
name: location
schema:
type: string
description: path to the table data
post:
tags:
- internal
operationId: createSymlinkFile
summary: creates symlink files corresponding to the given directory
responses:
201:
description: location created
content:
application/json:
schema:
$ref: '#/components/schemas/StorageURI'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/metadata/object/{type}/{object_id}:
parameters:
- in: path
name: repository
required: true
schema:
type: string
- in: path
name: object_id
required: true
schema:
type: string
- in: path
name: type
required: true
schema:
type: string
enum:
- range
- meta_range
get:
tags:
- internal
operationId: getMetadataObject
summary: return a lakeFS metadata object by ID
parameters:
- in: query
name: presign
required: false
schema:
type: boolean
responses:
200:
description: object content
content:
application/octet-stream:
schema:
type: string
format: binary
headers:
Content-Length:
schema:
type: integer
format: int64
302:
description: Redirect to a pre-signed URL for the object
headers:
Location:
schema:
type: string
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/rules/set_allowed:
parameters:
- in: path
name: repository
required: true
schema:
type: string
get:
tags:
- internal
operationId: setGarbageCollectionRulesPreflight
responses:
204:
description: User has permissions to set garbage collection rules on this repository
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/rules:
parameters:
- in: path
name: repository
required: true
schema:
type: string
get:
deprecated: true
tags:
- internal
operationId: internalGetGarbageCollectionRules
description: Deprecated; use getGCRules.
responses:
200:
description: gc rule list
content:
application/json:
schema:
$ref: '#/components/schemas/GarbageCollectionRules'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
post:
deprecated: true
tags:
- internal
operationId: internalSetGarbageCollectionRules
description: Deprecated; use setGCRules.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GarbageCollectionRules'
responses:
204:
description: set garbage collection rules successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
delete:
deprecated: true
tags:
- internal
operationId: internalDeleteGarbageCollectionRules
description: Deprecated; use deleteGCRules.
responses:
204:
description: deleted garbage collection rules successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/prepare_commits:
parameters:
- in: path
name: repository
required: true
schema:
type: string
post:
tags:
- internal
operationId: prepareGarbageCollectionCommits
summary: save lists of active commits for garbage collection
responses:
201:
description: paths to commit dataset
content:
application/json:
schema:
$ref: '#/components/schemas/GarbageCollectionPrepareResponse'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/prepare_commits/async:
parameters:
- in: path
name: repository
required: true
schema:
type: string
post:
tags:
- internal
operationId: prepareGarbageCollectionCommitsAsync
summary: prepare gc commits
responses:
202:
description: GC prepare task started
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCreation'
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/prepare_commits/status:
parameters:
- in: path
name: repository
required: true
schema:
type: string
get:
tags:
- internal
operationId: prepareGarbageCollectionCommitsStatus
summary: get status of prepare gc commits operation
parameters:
- in: query
name: id
description: Unique identifier of the prepare GC commits task
schema:
type: string
required: true
responses:
200:
description: prepare GC commits task status
content:
application/json:
schema:
$ref: '#/components/schemas/PrepareGarbageCollectionCommitsStatus'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/gc/prepare_uncommited:
parameters:
- in: path
name: repository
required: true
schema:
type: string
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PrepareGCUncommittedRequest'
tags:
- internal
operationId: prepareGarbageCollectionUncommitted
summary: save repository uncommitted metadata for garbage collection
responses:
201:
description: paths to commit dataset
content:
application/json:
schema:
$ref: '#/components/schemas/PrepareGCUncommittedResponse'
400:
$ref: '#/components/responses/ValidationError'
401:
$ref: '#/components/responses/Unauthorized'
403:
$ref: '#/components/responses/Forbidden'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/branch_protection/set_allowed:
parameters:
- in: path
name: repository
required: true
schema:
type: string
get:
tags:
- internal
operationId: createBranchProtectionRulePreflight
responses:
204:
description: User has permissions to create a branch protection rule in this repository
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
409:
$ref: '#/components/responses/Conflict'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/repositories/{repository}/branch_protection:
parameters:
- in: path
name: repository
required: true
schema:
type: string
get:
deprecated: true
tags:
- internal
operationId: internalGetBranchProtectionRules
summary: get branch protection rules
responses:
200:
description: branch protection rules
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BranchProtectionRule'
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
post:
deprecated: true
tags:
- internal
operationId: internalCreateBranchProtectionRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BranchProtectionRule'
responses:
204:
description: branch protection rule created successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
delete:
deprecated: true
tags:
- internal
operationId: internalDeleteBranchProtectionRule
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
pattern:
type: string
required:
- pattern
responses:
204:
description: branch protection rule deleted successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/config/version:
get:
tags:
- internal
operationId: getLakeFSVersion
description: get version of lakeFS server
deprecated: true
responses:
200:
description: lakeFS version
content:
application/json:
schema:
$ref: '#/components/schemas/VersionConfig'
401:
$ref: '#/components/responses/Unauthorized'
/config/storage:
get:
tags:
- internal
operationId: getStorageConfig
description: retrieve lakeFS storage configuration
deprecated: true
responses:
200:
description: lakeFS storage configuration
content:
application/json:
schema:
$ref: '#/components/schemas/StorageConfig'
401:
$ref: '#/components/responses/Unauthorized'
/config/garbage-collection:
get:
tags:
- internal
operationId: getGarbageCollectionConfig
description: get information of gc settings
responses:
200:
description: lakeFS garbage collection config
content:
application/json:
schema:
$ref: '#/components/schemas/GarbageCollectionConfig'
401:
$ref: '#/components/responses/Unauthorized'
/statistics:
post:
tags:
- internal
operationId: postStatsEvents
summary: post stats events, this endpoint is meant for internal use only
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatsEventsList'
responses:
204:
description: reported successfully
400:
$ref: '#/components/responses/BadRequest'
401:
$ref: '#/components/responses/Unauthorized'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
/usage-report/summary:
get:
tags:
- internal
operationId: getUsageReportSummary
summary: get usage report summary
responses:
200:
description: Usage report
content:
application/json:
schema:
$ref: '#/components/schemas/InstallationUsageReport'
application/text:
schema:
type: string
401:
$ref: '#/components/responses/Unauthorized'
404:
$ref: '#/components/responses/NotFound'
429:
description: too many requests
default:
$ref: '#/components/responses/ServerError'
components:
responses:
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Conflict:
description: Resource Conflicts With Target
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
AuthCapabilities:
type: object
properties:
invite_user:
type: boolean
forgot_password:
type: boolean
StorageConfig:
type: object
required:
- blockstore_type
- blockstore_namespace_example
- blockstore_namespace_ValidityRegex
- pre_sign_support
- pre_sign_support_ui
- import_support
- import_validity_regex
properties:
blockstore_type:
type: string
blockstore_namespace_example:
type: string
blockstore_namespace_ValidityRegex:
type: string
default_namespace_prefix:
type: string
pre_sign_support:
type: boolean
pre_sign_support_ui:
type: boolean
import_support:
type: boolean
import_validity_regex:
type: string
pre_sign_multipart_upload:
type: boolean
blockstore_id:
type: string
blockstore_description:
type: string
ObjectStats:
type: object
required:
- checksum
- physical_address
- path
- path_type
- mtime
properties:
path:
type: string
path_type:
type: string
enum:
- common_prefix
- object
physical_address:
type: string
description: 'The location of the object on the underlying object store.
Formatted as a native URI with the object store type as scheme ("s3://...", "gs://...", etc.)
Or, in the case of presign=true, will be an HTTP URL to be consumed via regular HTTP GET
'
physical_address_expiry:
type: integer
format: int64
description: 'If present and nonzero, physical_address is a pre-signed URL and
will expire at this Unix Epoch time. This will be shorter than
the pre-signed URL lifetime if an authentication token is about
to expire.
This field is *optional*.
'
checksum:
type: string
size_bytes:
type: integer
format: int64
description: 'The number of bytes in the object. lakeFS always populates this
field when returning ObjectStats. This field is optional _for
the client_ to supply, for instance on upload.
'
mtime:
type: integer
format: int64
description: Unix Epoch in seconds
metadata:
$ref: '#/components/schemas/ObjectUserMetadata'
content_type:
type: string
description: Object media type
PrepareGCUncommittedResponse:
type: object
properties:
run_id:
type: string
gc_uncommitted_location:
type: string
description: location of uncommitted information data
continuation_token:
type: string
required:
- run_id
- gc_uncommitted_location
CommitRecordCreation:
type: object
required:
- commit_id
- version
- committer
- message
- metarange_id
- creation_date
- parents
- generation
properties:
commit_id:
type: string
description: id of the commit record
version:
type: integer
minimum: 0
maximum: 1
description: version of the commit record
committer:
type: string
description: committer of the commit record
message:
type: string
description: message of the commit record
metarange_id:
type: string
description: metarange_id of the commit record
creation_date:
type: integer
format: int64
description: Unix Epoch in seconds
parents:
type: array
items:
type: string
description: parents of the commit record
metadata:
type: object
additionalProperties:
type: string
description: metadata of the commit record
generation:
type: integer
format: int64
description: generation of the commit record
force:
type: boolean
default: false
RepositoryMetadataSet:
type: object
required:
- metadata
properties:
metadata:
type: object
additionalProperties:
type: string
GarbageCollectionRule:
type: object
properties:
branch_id:
type: string
retention_days:
type: integer
required:
- branch_id
- retention_days
UsageReport:
type: object
properties:
year:
type: integer
month:
type: integer
count:
type: integer
format: int64
required:
- year
- month
- count
StorageURI:
description: URI to a path in a storage provider (e.g. "s3://bucket1/path/to/object")
required:
- location
type: object
properties:
location:
type: string
SetupState:
type: object
properties:
state:
type: string
enum:
- initialized
- not_initialized
comm_prefs_missing:
type: boolean
description: true if the comm prefs are missing.
login_config:
$ref: '#/components/schemas/LoginConfig'
CommPrefsInput:
type: object
properties:
firstName:
description: the provided first name
type: string
lastName:
description: the provided last name
type: string
email:
description: the provided email
type: string
companyName:
description: the provided company name
type: string
featureUpdates:
description: user preference to receive feature updates
type: boolean
securityUpdates:
description: user preference to receive security updates
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lakefs/refs/heads/main/openapi/lakefs-internal-api-openapi.yml