lakeFS Enterprise Configuration Reference¶
lakeFS Enterprise configuration extends lakeFS's configuration and uses the same config file.
lakeFS Configuration¶
For a complete list of configuration options, see the lakeFS Server Configuration. The sections below provide additional configuration references that complement the main configuration guide.
Reference¶
This reference uses .
to denote the nesting of values.
auth¶
Configuration section for authentication services, like SAML or OIDC.
auth.logout_redirect_url
(string : "/auth/login")
- The URL to redirect to after logout. The behavior depends on the authentication provider:- For OIDC: The logout URL of the OIDC provider (e.g., Auth0 logout endpoint)
- For SAML: The URL within lakeFS where the IdP should redirect after logout (e.g.,
/auth/login
)
auth.providers¶
Configuration section external identity providers
auth.providers.ldap¶
auth.providers.ldap.server_endpoint
(string : "")
- The LDAP server address, e.g.'ldaps://ldap.company.com:636'
auth.providers.ldap.bind_dn
(string : "")
- The bind string, e.g.'uid=<bind-user-name>,ou=Users,o=<org-id>,dc=<company>,dc=com'
auth.providers.ldap.bind_password
(string : "")
- The password for the user to bindauth.providers.ldap.username_attribute
(string : "")
- The user name attribute, e.g. 'uid'auth.providers.ldap.user_base_dn
(string : "")
- The search request base dn, e.g.'ou=Users,o=<org-id>,dc=<company>,dc=com'
auth.providers.ldap.user_filter
(string : "")
- The search request user filter, e.g.'(objectClass=inetOrgPerson)'
auth.providers.ldap.connection_timeout_seconds
(int : 0)
- The timeout for a single connectionauth.providers.ldap.request_timeout_seconds
(int : 0)
- The timeout for a single requestauth.providers.ldap.default_user_group
(string : "")
- The default group for the users initially authenticated by the remote service
auth.providers.saml¶
Configuration section for SAML
auth.providers.saml.sp_root_url
(string : '')
- The base lakeFS-URL, e.g.'https://<lakefs-url>'
auth.providers.saml.sp_x509_key_path
(string : '')
- The path to the private key, e.g'/etc/saml_certs/rsa_saml_private.cert'
auth.providers.saml.sp_x509_cert_path
(string : '')
- The path to the public key, '/etc/saml_certs/rsa_saml_public.pem'auth.providers.saml.sp_sign_request
(bool : false)
Some IdP require the SLO request to be signedauth.providers.saml.sp_signature_method
(string : '')
Optional valid signature values depending on the IdP configuration, e.g. 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256'auth.providers.saml.idp_metadata_url
(string : '')
- The URL for the metadata server, e.g.'https://<adfs-auth.company.com>/federationmetadata/2007-06/federationmetadata.xml'
auth.providers.saml.idp_metadata_file_path
(string : '')
- The path to the Identity Provider (IdP) metadata XML file, e.g. '/etc/saml/idp-metadata.xml'auth.providers.saml.idp_skip_verify_tls_cert
(bool : false)
- Insecure skip verification of the IdP TLS certificate, like when signed by a private CAauth.providers.saml.idp_authn_name_id_format
(string : 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')
- The format used in the NameIDPolicy for authentication requestsauth.providers.saml.idp_request_timeout
(duration : '10s')
The timeout for remote authentication requestsauth.providers.saml.post_login_redirect_url
(string : '')
- The URL to redirect users to after successful SAML authentication, e.g.'http://localhost:8000/'
auth.providers.oidc¶
Configuration section for OIDC
auth.providers.oidc.url
(string : '')
- The OIDC provider url, e.g.'https://oidc-provider-url.com/'
auth.providers.oidc.client_id
(string : '')
- The application's IDauth.providers.oidc.client_secret
(string : '')
- The application's secretauth.providers.oidc.callback_base_url
(string : '')
- A default callback address of the lakeFS serverauth.providers.oidc.callback_base_urls
(string[] : '[]')
- If callback_base_urls is configured, check current host is whitelisted otherwise use callback_base_url (without 's'). These config keys are mutually exclusive
Note
You may configure a list of URLs that the OIDC provider may redirect to. This allows lakeFS to be accessed from multiple hostnames while retaining federated auth capabilities. If the provider redirects to a URL not in this list, the login will fail. This property and callback_base_url are mutually exclusive.
auth.providers.oidc.authorize_endpoint_query_parameters
(map[string]string : {} )
- key/value parameters that are passed to a provider's authorization endpointauth.providers.oidc.logout_endpoint_query_parameters
(string[] : [])
- The query parameters that will be used to redirect the user to the OIDC provider after logout, e.g.["returnTo", "https://<lakefs.ingress.domain>/oidc/login"]
auth.providers.oidc.logout_client_id_query_parameter
(string : '')
- The claim name that represents the client identifier in the OIDC providerauth.providers.oidc.additional_scope_claims
(string[] : '[]')
- Specifies optional requested permissions, other thanopenid
andprofile
that are being usedauth.providers.oidc.post_login_redirect_url
(string : '')
- The URL to redirect users to after successful OIDC authentication, e.g.'http://localhost:8000/'
auth.external¶
Configuration section for the external authentication methods
auth.external.aws_auth¶
Configuration section for authenticating to lakeFS using AWS presign get-caller-identity request: External Principals AWS Auth
auth.external.aws_auth.enabled
(bool : false)
- If true, external principals API will be enabled, e.g auth service and login api'sauth.external.aws_auth.get_caller_identity_max_age
(duration : 15m)
- The maximum age in seconds for the GetCallerIdentity request to be valid, the max is 15 minutes enforced by AWS, smaller TTL can be setauth.external.aws_auth.valid_sts_hosts
([]string)
- The default are all the valid AWS STS hosts (sts.amazonaws.com
,sts.us-east-2.amazonaws.com
etc.)auth.external.aws_auth.required_headers
(map[string]string : )
- Headers that must be present by the client when doing login request. For security reasons it is recommended to setX-LakeFS-Server-ID: <lakefs.ingress.domain>
, lakeFS clients assume that's the defaultauth.external.aws_auth.optional_headers
(map[string]string : )
- Optional headers that can be present by the client when doing login requestauth.external.aws_auth.http_client.timeout
(duration : 10s)
- The timeout for the HTTP client used to communicate with AWS STSauth.external.aws_auth.http_client.skip_verify
(bool : false)
- Skip SSL verification with AWS STS
blockstores¶
Info
The blockstores
configuration is required for multi-storage backend setups and replaces the previous blockstore
configuration.
blockstores.signing.secret_key
(string : required)
- A random generated string that is used for HMAC signing when using get/link physical addressblockstores.stores
([{id: string, type: string, ...}] : required)
- Defines multiple storage backends used in a multi-storage backend setup. Each storage backend must have a unique id and a valid configuration.
Common Fields for All Stores¶
blockstores.stores[].id
(string : required)
- Unique identifier for the storage backend.blockstores.stores[].backward_compatible
(bool : false)
- Optional. Defaults to false. Used to migrate from a single to a multi-storage backend setup.blockstores.stores[].description
(string : )
- A human-readable description of the storage backend.blockstores.stores[].type
(string : required)
-(one of ["local", "s3", "gs", "azure", "mem"] : required)
. Block adapter to use. This controls where the underlying data will be stored.
blockstores.stores[].local.path
(string: "~/lakefs/data")
- When using the local Block Adapter, which directory to store files inblockstores.stores[].local.import_enabled
(bool: false)
- Enable import for local Block Adapter, relevant only if you are using shared locationblockstores.stores[].local.import_hidden
(bool: false)
- When enabled import will scan and import any file or folder that starts with a dot character.blockstores.stores[].local.allowed_external_prefixes
([]string: [])
- List of absolute path prefixes used to match any access for external location (ex: /var/data/). Empty list mean no access to external location.
blockstores.stores[].s3.region
(string : "us-east-1")
- Default region for lakeFS to use when interacting with S3.blockstores.stores[].s3.profile
(string : )
- If specified, will be used as a named credentials profileblockstores.stores[].credentials_file
(string : )
- If specified, will be used as a credentials fileblockstores.stores[].credentials.access_key_id
(string : )
- If specified, will be used as a static set of credentialblockstores.stores[].credentials.secret_access_key
(string : )
- If specified, will be used as a static set of credentialblockstores.stores[].s3.credentials.session_token
(string : )
- If specified, will be used as a static session tokenblockstores.stores[].s3.endpoint
(string : )
- If specified, custom endpoint for the AWS S3 API (https://s3_compatible_service_endpoint:port)blockstores.stores[].s3.force_path_style
(bool : false)
- When true, use path-style S3 URLs (https:/// instead of https:// . ) blockstores.stores[].s3.discover_bucket_region
(bool : true)
- (Can be turned off if the underlying S3 bucket doesn't support the GetBucketRegion API).blockstores.stores[].s3.skip_verify_certificate_test_only
(bool : false)
- Skip certificate verification while connecting to the storage endpoint. Should be used only for testing.blockstores.stores[].s3.server_side_encryption
(string : )
- Server side encryption format used (Example on AWS using SSE-KMS while passing "aws:kms")blockstores.stores[].s3.server_side_encryption_kms_key_id
(string : )
- Server side encryption KMS key IDblockstores.stores[].s3.pre_signed_expiry
(time duration : "15m")
- Expiry of pre-signed URL.blockstores.stores[].s3.pre_signed_endpoint
(string : )
- Custom endpoint for pre-signed URLs.blockstores.stores[].s3.disable_pre_signed
(bool : false)
- Disable use of pre-signed URL.blockstores.stores[].s3.disable_pre_signed_ui
(bool : true)
- Disable use of pre-signed URL in the UI.blockstores.stores[].s3.disable_pre_signed_multipart
(bool : )
- Disable use of pre-signed multipart upload experimental, enabled on S3 block adapter with presign support.blockstores.stores[].s3.client_log_request
(bool : false)
- Set SDK logging bit to log requestsblockstores.stores[].s3.client_log_retries
(bool : false)
- Set SDK logging bit to log retries
blockstores.stores[].azure.storage_account
(string : )
- If specified, will be used as the Azure storage accountblockstores.stores[].azure.storage_access_key
(string : )
- If specified, will be used as the Azure storage access keyblockstores.stores[].azure.pre_signed_expiry
(time duration : "15m")
- Expiry of pre-signed URL.blockstores.stores[].azure.disable_pre_signed
(bool : false)
- Disable use of pre-signed URL.blockstores.stores[].azure.disable_pre_signed_ui
(bool : true)
- Disable use of pre-signed URL in the UI.blockstores.stores[].azure.domain
(string : blob.core.windows.net)
- Enables support of different Azure cloud domains. Current supported domains (in Beta stage): [blob.core.chinacloudapi.cn
,blob.core.usgovcloudapi.net
]
blockstores.stores[].gs.credentials_file
(string : )
- If specified will be used as a file path of the JSON file that contains your Google service account keyblockstores.stores[].gs.credentials_json
(string : )
- If specified will be used as JSON string that contains your Google service account key (when credentials_file is not set)blockstores.stores[].gs.pre_signed_expiry
(time duration : "15m")
- Expiry of pre-signed URL.blockstores.stores[].gs.disable_pre_signed
(bool : false)
- Disable use of pre-signed URL.blockstores.stores[].gs.disable_pre_signed_ui
(bool : true)
- Disable use of pre-signed URL in the UI.blockstores.stores[].gs.server_side_encryption_customer_supplied
(string : )
- Server side encryption with AES key in hex format, exclusive with key ID belowblockstores.stores[].gs.server_side_encryption_kms_key_id
(string : )
- Server side encryption KMS key ID, exclusive with above
features¶
features.local_rbac
(bool: true)
- Backward compatibility if you use an external RBAC service (such as legacy fluffy). Iffalse
lakeFS will expect to useauth.api
and all fluffy related configuration for RBAC.
iceberg_catalog¶
Configuration section for the Iceberg REST Catalog
iceberg_catalog.token_duration
(duration : 1h)
- Authenticated token duration
Using Environment Variables¶
All the configuration variables can be set or overridden using environment variables.
To set an environment variable, prepend LAKEFS_
to its name, convert it to upper case, and replace .
with _
:
For example, auth.logout_redirect_url
becomes LAKEFS_AUTH_LOGOUT_REDIRECT_URL
, auth.external.aws_auth.enabled
becomes LAKEFS_AUTH_EXTERNAL_AWS_AUTH_ENABLED
, etc.
To set a value for a map[string]string
type field, use the syntax key1=value1,key2=value2,...
.