Keboola SUPER - Storage Backends Management API
Manage Snowflake, BigQuery and other storage backends used by projects.
Manage Snowflake, BigQuery and other storage backends used by projects.
openapi: 3.0.0
info:
title: AI Service Actions SUPER - Storage Backends Management API
version: 1.0.0
contact:
email: devel@keboola.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
description: Manage Snowflake, BigQuery and other storage backends used by projects.
tags:
- name: SUPER - Storage Backends Management
description: Manage Snowflake, BigQuery and other storage backends used by projects.
paths:
/manage/storage-backend/{backendId}/activate:
post:
tags:
- SUPER - Storage Backends Management
summary: Activate Snowflake backend
description: Activate a Snowflake storage backend after the SQL template created via [Create a new Snowflake backend with certificate authentication](#reference/super-storage-backends-management/snowflake-storage-backend-collection/create-a-new-snowflake-backend-with-certificate-authentication) has been executed in Snowflake. This validates the backend configuration and enables it for use.
operationId: post_/manage/storage-backend/{backendId}/activate::StorageBackendActivateAction
parameters:
- name: backendId
in: path
description: Backend ID.
required: true
schema:
type: integer
pattern: '[1-9][0-9]*'
example: 123
responses:
'200':
description: Snowflake storage backend activated successfully. The backend is now ready for use.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendResponse'
example:
id: 123
backend: snowflake
region: us-east-1
owner: keboola
technicalOwner: keboola
technicalOwnerContactEmails:
- devel@keboola.com
host: demo.snowflakecomputing.com
useDynamicBackends: false
useNetworkPolicies: false
useSso: false
isSsoEnabled: false
isSsoConfigured: false
isEnabled: true
'400':
description: Returned when the backend cannot be activated or validation fails (connection test, missing certificate, already-enabled certificate, unsupported backend).
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the user does not have permission to activate storage backends.
'404':
description: Returned when the storage backend with the given ID does not exist.
/manage/storage-backend/snowflake:
post:
tags:
- SUPER - Storage Backends Management
summary: Create a new Snowflake backend with certificate authentication
description: 'Create a new Snowflake storage backend with RSA certificate authentication. The backend is created as disabled and returns an SQL template for setting up Snowflake roles and users, along with the public keys. After running the generated query, you can activate the backend using the [Activate Snowflake Storage Backend](#reference/super-storage-backends-management/activate-snowflake-storage-backend/activate-snowflake-backend) endpoint.
Warehouse name cannot contain warehouse size suffixes (_X-SMALL, _SMALL, etc.) when dynamic backends are enabled. Size suffixes will be automatically added to the warehouse name.
Registration will provide personalized queries based on this template:
```sql
// base
CREATE ROLE "KBC_STORAGE";
GRANT CREATE DATABASE ON ACCOUNT TO ROLE "KBC_STORAGE";
GRANT CREATE ROLE ON ACCOUNT TO ROLE "KBC_STORAGE" WITH GRANT OPTION;
GRANT CREATE USER ON ACCOUNT TO ROLE "KBC_STORAGE" WITH GRANT OPTION;
CREATE WAREHOUSE "WH_SMALL" WITH WAREHOUSE_SIZE = ''SMALL'' WAREHOUSE_TYPE = ''STANDARD'' AUTO_SUSPEND = 60 AUTO_RESUME = TRUE MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 4 RESOURCE_CONSTRAINT = ''STANDARD_GEN_1'';
GRANT USAGE ON WAREHOUSE "WH_SMALL" TO ROLE "KBC_STORAGE" WITH GRANT OPTION;
CREATE USER "KBC_STORAGE" DEFAULT_ROLE = "KBC_STORAGE" RSA_PUBLIC_KEY = ''PUBLICKEY'';
GRANT OWNERSHIP ON USER "KBC_STORAGE" TO ROLE "KBC_STORAGE";
GRANT ROLE "KBC_STORAGE" TO USER "KBC_STORAGE";
GRANT ROLE "KBC_STORAGE" TO ROLE SYSADMIN;
// dynamic backends
CREATE WAREHOUSE "WH_MEDIUM" WITH WAREHOUSE_SIZE = ''MEDIUM'' WAREHOUSE_TYPE = ''STANDARD'' AUTO_SUSPEND = 60 AUTO_RESUME = TRUE MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 2 RESOURCE_CONSTRAINT = ''STANDARD_GEN_1'';
CREATE WAREHOUSE "WH_LARGE" WITH WAREHOUSE_SIZE = ''LARGE'' WAREHOUSE_TYPE = ''STANDARD'' AUTO_SUSPEND = 60 AUTO_RESUME = TRUE MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 1 RESOURCE_CONSTRAINT = ''STANDARD_GEN_1'';
GRANT USAGE ON WAREHOUSE "WH_MEDIUM" TO ROLE "KBC_STORAGE" WITH GRANT OPTION;
GRANT USAGE ON WAREHOUSE "WH_LARGE" TO ROLE "KBC_STORAGE" WITH GRANT OPTION;
// network policies
-- BEGIN_OPTIONAL_RESOURCES: These SQL statements are optional as the resources may already exist. In case of query failures due to existence of resources, you can skip this part.
CREATE DATABASE "STACK_INTERNAL";
CREATE SCHEMA "STACK_INTERNAL"."NETWORK_RULES";
USE SCHEMA "STACK_INTERNAL"."NETWORK_RULES";
CREATE NETWORK RULE STACK_INTERNAL.NETWORK_RULES.ALLOW_SYSTEM_IPS TYPE = IPV4 MODE = INGRESS VALUE_LIST = (''1.1.1.1/32'',''2.2.2.2/32'');
CREATE NETWORK POLICY "STACK_SYSTEM_IPS_ONLY" allowed_network_rule_list = (STACK_INTERNAL.NETWORK_RULES.ALLOW_SYSTEM_IPS);
ALTER USER "KBC_STORAGE" SET NETWORK_POLICY = "STACK_SYSTEM_IPS_ONLY";
GRANT OWNERSHIP ON NETWORK POLICY "STACK_SYSTEM_IPS_ONLY" TO ROLE "KBC_STORAGE";
GRANT OWNERSHIP ON DATABASE "STACK_INTERNAL" TO ROLE "KBC_STORAGE";
GRANT OWNERSHIP ON SCHEMA "STACK_INTERNAL"."NETWORK_RULES" TO ROLE "KBC_STORAGE";
GRANT OWNERSHIP ON NETWORK RULE STACK_INTERNAL.NETWORK_RULES.ALLOW_SYSTEM_IPS TO ROLE "KBC_STORAGE";
-- END_OPTIONAL_RESOURCES
// sso
CREATE SECURITY INTEGRATION "STACK_SAML_INTEGRATION"
TYPE = SAML2
ENABLED = TRUE
SAML2_PROVIDER = ''CUSTOM''
SAML2_ISSUER = ''issuer''
SAML2_SSO_URL = ''https://sso''
SAML2_X509_CERT = ''ABC''
SAML2_SNOWFLAKE_ACS_URL =''https://host/fed/login''
SAML2_ENABLE_SP_INITIATED = FALSE
SAML2_FORCE_AUTHN = FALSE
SAML2_SIGN_REQUEST = TRUE
SAML2_REQUESTED_NAMEID_FORMAT = ''urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'';
GRANT OWNERSHIP ON INTEGRATION "STACK_SAML_INTEGRATION" TO ROLE "KBC_STORAGE";
```
The returned `sqlTemplate` contains the actual personalized SQL to run in Snowflake.'
operationId: post_/manage/storage-backend/snowflake::StorageBackendCreateAction
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSnowflakeBackendWithCertRequest'
responses:
'200':
description: Snowflake storage backend created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSnowflakeStorageBackendResponse'
example:
id: 123
host: demo.snowflakecomputing.com
warehouse: KEBOOLA
username: KEBOOLA_STORAGE
owner: keboola
technicalOwner: keboola
region: us-east-1
created: '2024-01-15T10:30:00Z'
creatorName: John Doe
creatorId: 123
useDynamicBackends: false
useNetworkPolicies: false
useSso: false
isSsoEnabled: false
isSsoConfigured: false
edition: standard
sqlTemplate: CREATE ROLE "KEBOOLA_STORAGE";...
isEnabled: false
userPublicKey: MIIBIjANBgkqhki...
securityIntegrationKey: null
'400':
description: Returned when the request validation fails.
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the user does not have permission to create storage backends.
/manage/storage-backend:
get:
tags:
- SUPER - Storage Backends Management
summary: List backends
description: Returns the list of registered storage backends (Snowflake, BigQuery).
operationId: get_/manage/storage-backend::StorageBackendListAction
responses:
'200':
description: Storage backend credentials list.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendListResponse'
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the current admin is not a super admin.
post:
tags:
- SUPER - Storage Backends Management
summary: Create storage backend credentials
description: '**Deprecated.** Generic storage-backend create endpoint. Use the backend-specific endpoints instead — `POST /manage/storage-backend/snowflake` or `POST /manage/storage-backend/bigquery`.'
operationId: post_/manage/storage-backend::StorageBackendCreateAction
responses:
'200':
description: Storage backend credentials created.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendResponse'
'400':
description: Returned when the backend is not supported or connection test fails.
'409':
description: Returned when support for the backend was discontinued.
deprecated: true
/manage/storage-backend/bigquery:
post:
tags:
- SUPER - Storage Backends Management
summary: Create a new BigQuery backend
description: 'You must create a new project and service account in a folder in your organization,
this service account must have the right to create new projects (roles/resourcemanager.projectCreator) in this folder (only in this folder)
and use the generated json [keyFile](https://cloud.google.com/iam/docs/creating-managing-service-account-keys)
for this `service account` in the `credentials` parameter, the folder id then as `folderId`.'
operationId: post_/manage/storage-backend/bigquery::StorageBackendCreateBigqueryAction
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendCreateBigqueryRequest'
responses:
'200':
description: BigQuery storage backend credentials created.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendBigqueryResponse'
example:
id: 12
region: us-east-1
backend: bigquery
credentials:
type: service_account
project_id: '123456789'
private_key_id: xxx
client_email: something@else.iam.gserviceaccount.com
client_id: '123456789'
auth_uri: https://accounts.google.com/o/oauth2/auth
token_uri: https://oauth2.googleapis.com/token
auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/something
folderId: 123
bqExternalSharingRoleName: roles/custom.analyticsHubListingAdmin
'422':
description: Returned when the BigQuery backend cannot be assigned (validation of GCP project / folder fails).
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the current admin is not a super admin.
/manage/storage-backend/{id}:
get:
tags:
- SUPER - Storage Backends Management
summary: Backend detail
description: Returns detail of a single storage backend identified by its numeric ID.
operationId: get_/manage/storage-backend/{id}::StorageBackendDetailAction
parameters:
- name: id
in: path
description: Backend ID.
required: true
schema:
type: integer
pattern: \d+
example: 123
responses:
'200':
description: Storage backend credentials detail.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendDetailResponse'
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the current admin is not a super admin.
'404':
description: Returned when the storage backend with the given ID does not exist.
delete:
tags:
- SUPER - Storage Backends Management
summary: Delete backend
description: Deletes a storage backend. All projects using the backend must be deleted and purged before it can be deleted.
operationId: delete_/manage/storage-backend/{id}::StorageBackendDeleteAction
parameters:
- name: id
in: path
description: Id of storage backend.
required: true
schema:
type: integer
pattern: '[0-9]+'
example: 123
responses:
'204':
description: Storage backend deleted.
'400':
description: Returned when the storage backend is still in use by projects or workspaces.
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the current admin is not a super admin.
'404':
description: Returned when the storage backend with the given ID does not exist.
patch:
tags:
- SUPER - Storage Backends Management
summary: Update backend
description: A partial update of a storage backend; at least one of the attributes is required.
operationId: patch_/manage/storage-backend/{id}::StorageBackendUpdateAction
parameters:
- name: id
in: path
description: Backend ID.
required: true
schema:
type: integer
pattern: '[0-9]+'
example: 123
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendUpdateRequest'
responses:
'200':
description: Storage backend credentials updated.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendResponse'
example:
id: 123
host: sapi-37-demo.snowflakecomputing.com
backend: snowflake
region: us-east-1
technicalOwnerContactEmails:
- devel@keboola.com
'400':
description: Returned when the backend connection test fails or the request payload is invalid.
'401':
description: Returned when the Manage token is missing or invalid.
'403':
description: Returned when the current admin is not a super admin.
'404':
description: Returned when the storage backend with the given ID does not exist.
/manage/storage-backend/{id}/bigquery:
patch:
tags:
- SUPER - Storage Backends Management
summary: Update BigQuery storage backend credentials
description: Update BigQuery root credentials for storage backend.
operationId: patch_/manage/storage-backend/{id}/bigquery::StorageBackendUpdateBigqueryAction
parameters:
- name: id
in: path
description: Identifier of the storage backend credentials.
required: true
schema:
type: integer
pattern: '[0-9]+'
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/StorageBackendUpdateBigqueryRequest'
responses:
'200':
description: BigQuery storage backend credentials updated.
content:
application/json:
schema:
$ref: '#/components/schemas/StorageBackendBigqueryResponse'
'400':
description: Returned when the backend connection test fails.
'404':
description: Returned when the storage backend credentials are not found.
'403':
description: Returned when access is denied.
components:
schemas:
StorageBackendBigqueryResponse:
required:
- id
- backend
- region
- owner
- technicalOwner
- technicalOwnerContactEmails
properties:
id:
description: Root credentials identifier.
type: integer
backend:
description: Storage backend type. Always "bigquery" for this response.
type: string
region:
description: Backend region.
type: string
owner:
description: Associated GCP account owner (e.g. keboola, client-<name>).
type: string
technicalOwner:
description: 'Technical owner who manages the account. One of: keboola, internal, kbdb, byodb.'
type: string
technicalOwnerContactEmails:
description: Contact emails of the technical owner.
type: array
items:
type: string
format: email
credentials:
description: GCP service account credentials in JSON form.
type: object
nullable: true
folderId:
description: GCP folder identifier under which projects are created.
type: string
nullable: true
bqExternalSharingRoleName:
description: Name of the custom IAM role pre-configured for Analytics Hub external bucket sharing. When set, the bucket sharing setup guide surfaces this role name to the user. When null, the guide falls back to recommending the built-in roles/analyticshub.listingAdmin role.
type: string
nullable: true
type: object
StorageBackendListResponse:
type: array
items:
$ref: '#/components/schemas/StorageBackendDetailResponse'
CreateSnowflakeBackendWithCertRequest:
required:
- host
- warehouse
- username
- region
- owner
- technicalOwner
properties:
host:
description: Snowflake host name.
type: string
example: demo.snowflakecomputing.com
warehouse:
description: Snowflake warehouse name. Warehouse name cannot contain warehouse size suffixes (_X-SMALL, _SMALL, etc.) when dynamic backends are enabled. Size suffixes will be automatically added to the warehouse name.
type: string
example: KEBOOLA
username:
description: Snowflake username.
type: string
example: KEBOOLA_STORAGE
region:
description: Backend region.
type: string
example: us-east-1
owner:
description: 'Associated legal owner (mostly: keboola, client-<name>).'
type: string
example: keboola
technicalOwner:
description: 'Associated technical owner (who technically manages the account). Enum: keboola, internal, kbdb, byodb.'
type: string
example: keboola
technicalOwnerContactEmails:
description: Array of technical owner contact emails for notifications.
type: array
items:
type: string
format: email
example:
- devel@keboola.com
nullable: true
useDynamicBackends:
description: Enable dynamic backends.
type: boolean
example: false
nullable: true
useNetworkPolicies:
description: Enable network policies.
type: boolean
example: false
nullable: true
useSso:
description: Enable SSO.
type: boolean
example: false
nullable: true
edition:
description: 'Snowflake edition type. Enum: enterprise, standard. Enterprise enables multi-cluster warehouses when dynamic backends are enabled.'
type: string
example: standard
nullable: true
type: object
StorageBackendCreateBigqueryRequest:
description: Create a new BigQuery storage backend by providing GCP service-account credentials and folder.
required:
- owner
- technicalOwner
- folderId
- region
- credentials
properties:
owner:
description: 'Associated GCP account owner (mostly: keboola, client-<name>).'
type: string
example: keboola
technicalOwner:
description: 'Associated technical owner (who technically manages the account). Enum: keboola, internal, kbdb, byodb.'
type: string
example: keboola
folderId:
description: GCP folder ID where the service account is allowed to create projects.
type: string
example: '123'
region:
description: Backend region.
type: string
example: us-east-1
credentials:
description: GCP service-account key file content (full JSON keyfile).
type: object
example:
type: service_account
project_id: '123456789'
private_key_id: xxx
private_key: '-----BEGIN PRIVATE KEY-----<key contents>-----END PRIVATE KEY-----
'
client_email: something@else.iam.gserviceaccount.com
client_id: '123456789'
auth_uri: https://accounts.google.com/o/oauth2/auth
token_uri: https://oauth2.googleapis.com/token
auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/something
bqExternalSharingRoleName:
description: Name of the custom IAM role pre-configured for Analytics Hub external bucket sharing. When set, the bucket sharing setup guide surfaces this role name to the user. When absent, the guide falls back to recommending the built-in `roles/analyticshub.listingAdmin` role.
type: string
example: roles/custom.analyticsHubListingAdmin
nullable: true
type: object
StorageBackendResponse:
required:
- id
- backend
- region
- technicalOwner
- technicalOwnerContactEmails
properties:
id:
description: Root credentials identifier.
type: integer
backend:
description: Storage backend type.
type: string
region:
description: Backend region.
type: string
owner:
description: 'Associated legal owner (mostly: keboola, client-<name>).'
type: string
nullable: true
technicalOwner:
description: 'Associated technical owner (who technically manages the account). One of: keboola, internal, kbdb, byodb.'
type: string
technicalOwnerContactEmails:
description: Array of technical owner contact emails.
type: array
items:
type: string
format: email
host:
description: Hostname of the backend (non-BigQuery backends).
type: string
nullable: true
credentials:
description: BigQuery credentials in JSON form.
type: object
nullable: true
folderId:
description: BigQuery folder identifier.
type: string
nullable: true
useDynamicBackends:
description: Flag for Snowflake dynamic backends.
type: boolean
nullable: true
useNetworkPolicies:
description: Flag for Snowflake network policies.
type: boolean
nullable: true
useSso:
description: Deprecated; use isSsoEnabled. Snowflake SSO flag.
type: boolean
nullable: true
deprecated: true
isSsoEnabled:
description: Whether SSO (SAML2) is enabled for the Snowflake backend.
type: boolean
nullable: true
isSsoConfigured:
description: Whether SAML2 SSO configuration exists for the Snowflake backend.
type: boolean
nullable: true
isEnabled:
description: Whether the Snowflake backend certificate is validated and the backend is usable.
type: boolean
nullable: true
type: object
StorageBackendUpdateRequest:
description: Partial update of a storage backend; at least one of `username`, `password`, `useDynamicBackends`, `owner`, `technicalOwner` or `technicalOwnerContactEmails` must be supplied. Individual attributes are optional on their own.
required: []
properties:
username:
description: Backend username.
type: string
example: keboola
nullable: true
password:
description: Backend password.
type: string
example: '1234'
nullable: true
useDynamicBackends:
description: Only for backends supporting dynamic sizing (Snowflake). When enabled, new projects get dynamic backends assigned automatically.
type: boolean
example: false
nullable: true
owner:
description: 'Associated legal owner (mostly: keboola, client-<name>).'
type: string
example: keboola
nullable: true
technicalOwner:
description: 'Associated technical owner (who technically manages the account). Enum: keboola, internal, kbdb, byodb.'
type: string
example: keboola
nullable: true
technicalOwnerContactEmails:
description: Array of technical owner contact emails.
type: array
items:
type: string
format: email
example:
- devel@keboola.com
nullable: true
skipValidation:
description: If true, the backend validation step is skipped during the update. Only possible to use with owner and technicalOwner not with other options.
type: boolean
example: false
default: false
type: object
StorageBackendUpdateBigqueryRequest:
description: Update BigQuery storage backend settings. At least one parameter must be provided.
minProperties: 1
properties:
credentials:
description: GCP service-account key file contents (full JSON keyfile).
required:
- type
- project_id
- private_key_id
- private_key
- client_email
- client_id
- auth_uri
- token_uri
- auth_provider_x509_cert_url
- client_x509_cert_url
properties:
type:
type: string
example: service_account
project_id:
type: string
example: '123456789'
private_key_id:
type: string
example: xxx
private_key:
type: string
example: '-----BEGIN PRIVATE KEY-----<key contents>-----END PRIVATE KEY-----
'
client_email:
type: string
example: something@else.iam.gserviceaccount.com
client_id:
type: string
example: '123456789'
auth_uri:
type: string
example: https://accounts.google.com/o/oauth2/auth
token_uri:
type: string
example: https://oauth2.googleapis.com/token
auth_provider_x509_cert_url:
type: string
example: https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url:
type: string
example: https://www.googleapis.com/robot/v1/metadata/x509/something
type: object
default: []
owner:
description: Associated GCP account owner.
type: string
example: keboola
default: null
technicalOwner:
description: Associated technical owner.
type: string
example: keboola
default: null
enum:
- keboola
- internal
- kbdb
- byodb
bqExternalSharingRoleName:
description: Name of the custom IAM role pre-configured for Analytics Hub external bucket sharing.
type: string
example: roles/custom.analyticsHubListingAdmin
nullable: true
default: null
type: object
additionalProperties: false
CreateSnowflakeStorageBackendResponse:
required:
- id
- host
- warehouse
- username
- owner
- technicalOwner
- region
- created
- creatorId
- creatorName
- useDynamicBackends
- useNetworkPolicies
- useSso
- isSsoEnabled
- isSsoConfigured
- edition
- sqlTemplate
- isEnabled
- userPublicKey
properties:
id:
description: Snowflake storage backend ID
type: integer
host:
description: Snowflake host
type: string
warehouse:
description: Snowflake warehouse
type: string
username:
description: Snowflake username
type: string
owner:
description: Owner identifier
type: string
technicalOwner:
description: Technical owner identifier
type: string
region:
description: Backend region
type: string
created:
description: Creation timestamp
type: string
format: date-time
creatorId:
description: Creator ID
type: integer
creatorName:
description: Creator name
type: string
useDynamicBackends:
description: Whether dynamic backends are enabled
type: boolean
useNetworkPolicies:
description: Whether network policies are enabled
type: boolean
useSso:
description: Deprecated use isSsoEnabled
type: boolean
deprecated: true
isSsoEnabled:
description: Whether SSO is enabled (SAML2 activated)
type: boolean
isSsoConfigured:
description: Whether SAML2 SSO configuration exists
type: boolean
edition:
description: Snowflake edition type (enterprise/standard). Enterprise enables multi-cluster warehouses when dynamic backends are enabled.
type: string
sqlTemplate:
description: SQL template for setting up Snowflake roles and users
type: string
isEnabled:
description: Whether backend is validated and can be use
type: boolean
userPublicKey:
description: RSA public key for user authentication
type: string
securityIntegrationKey:
description: SAML2 public key for security integration (only present when SSO is enabled)
type: string
nullable: true
type: object
StorageBackendDetailResponse:
required:
- id
- backend
- region
- owner
- technicalOwner
- stats
- created
- creator
- useDynamicBackends
- technicalOwnerContactEmails
properties:
id:
description: Root credentials identifier.
type: integer
host:
description: Hostname of the backend.
type: string
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/keboola/refs/heads/main/openapi/keboola-super-storage-backends-management-api-openapi.yml