Studio integration
Studio API Endpoints
The Data Hub Bundle provides a RESTful API for the Pimcore Studio interface, enabling management of Data Hub configurations, GraphQL explorer access, and user/thumbnail management. All endpoints are prefixed with /pimcore-studio/api/data-hub and require appropriate permissions.
Configuration Management
List Configurations
Endpoint: GET /config
Operation ID: bundle_data_hub_config_collection
Permission: PLUGIN_DATA_HUB_CONFIG
Lists all available Data Hub configurations. This endpoint returns a collection of configurations that can be managed and used for data integration.
Response: Collection of Configuration objects
Get Configuration
Endpoint: GET /config/{name}
Operation ID: bundle_data_hub_config_get
Permission: PLUGIN_DATA_HUB_CONFIG
Retrieves detailed information about a specific Data Hub configuration by name.
Path Parameter:
name(string): The name of the configuration to retrieve
Response: ConfigurationDetail object
Example:
GET /config/assets
Add Configuration
Endpoint: POST /config/add
Operation ID: bundle_data_hub_config_add
Permission: PLUGIN_DATA_HUB_CONFIG
Creates a new Data Hub configuration with the specified name, type, and optional path.
Query Parameters:
name(string, required): The name of the configuration (e.g., "assets")type(string, required): Type of the adapter (e.g., "graphql")path(string, optional): Configuration path (default: "")
Response: HTTP 200 OK (empty response)
Example:
POST /config/add?name=assets&type=graphql&path=
Clone Configuration
Endpoint: POST /config/clone
Operation ID: bundle_data_hub_config_clone
Permission: PLUGIN_DATA_HUB_CONFIG
Creates a copy of an existing Data Hub configuration with a new name.
Query Parameters:
name(string, required): The name of the new configuration (e.g., "assets_copy")originalName(string, required): The name of the configuration to clone (e.g., "assets")
Response: JSON object with clonedConfigurationName (HTTP 201 Created)
Example:
POST /config/clone?name=assets_copy&originalName=assets
Delete Configuration
Endpoint: DELETE /config/delete/{name}
Operation ID: bundle_data_hub_config_delete
Permission: PLUGIN_DATA_HUB_CONFIG
Deletes a Data Hub configuration by name.
Path Parameter:
name(string): The name of the configuration to delete
Response: HTTP 200 OK (empty response)
Example:
DELETE /config/delete/assets
Export Configuration
Endpoint: GET /config/{name}/export
Operation ID: bundle_data_hub_config_export
Permission: PLUGIN_DATA_HUB_CONFIG
Exports a Data Hub configuration as a JSON file for backup or transfer purposes.
Path Parameter:
name(string): The name of the configuration to export
Response: JSON file download with Content-Disposition header
Example:
GET /config/assets/export
Import Configuration
Endpoint: POST /config/import
Operation ID: bundle_data_hub_config_import
Permission: PLUGIN_DATA_HUB_CONFIG
Imports a Data Hub configuration from a JSON file.
Request Body: Multipart form data with file field containing the JSON configuration file
Response: JSON object with import result (HTTP 201 Created)
Possible Errors:
- 400 Bad Request: No file uploaded or failed to read file contents
Example:
POST /config/import
Content-Type: multipart/form-data
GraphQL Explorer
Get GraphQL Explorer
Endpoint: GET /graphql/explorer/{clientname}
Operation ID: bundle_data_hub_graphql_explorer
Permission: None specified
Returns the GraphQL Explorer HTML interface for a specific client configuration, allowing interactive query building and testing.
Path Parameter:
clientname(string): The name of the GraphQL client configuration
Query Parameters: All query and request parameters are passed to the explorer
Response: HTML content (GraphQL Explorer interface)
Example:
GET /graphql/explorer/assets
Get GraphQL Explorer URL
Endpoint: GET /graphql/explorer-url/{name}
Operation ID: bundle_data_hub_graphql_explorer_url
Permission: PLUGIN_DATA_HUB_CONFIG
Retrieves the URL to access the GraphQL Explorer for a specific configuration.
Path Parameter:
name(string): The name of the configuration
Response: JSON object with explorerUrl field
Example:
GET /graphql/explorer-url/assets
Users
List Users
Endpoint: GET /users
Operation ID: bundle_data_hub_users_collection
Permission: PLUGIN_DATA_HUB_CONFIG
Retrieves a list of users or roles that can be assigned permissions in Data Hub configurations.
Query Parameters:
type(string, optional): Filter by user type - "user" or "role" (default: "user")
Response: Collection of PermissionUser objects
Example:
GET /users?type=user
GET /users?type=role
Thumbnails
List Thumbnails
Endpoint: GET /thumbnails
Operation ID: bundle_data_hub_thumbnails_collection
Permission: thumbnails
Retrieves a list of available image thumbnail configurations that can be used in Data Hub queries.
Response: Collection of Thumbnail objects
Example:
GET /thumbnails
Permissions
The Studio API uses the following permission constants:
PLUGIN_DATA_HUB_CONFIG: Required for managing Data Hub configurations, viewing users, and accessing GraphQL explorer URLsthumbnails: Required for listing thumbnail configurations
Common Response Codes
- 200 OK: Successful request
- 201 Created: Resource created successfully (configuration add, clone, import)
- 400 Bad Request: Invalid request data (import failures)
- 401 Unauthorized: Missing or invalid authentication
- 403 Forbidden: User lacks required permissions
- 404 Not Found: Resource not found
API Tags
All endpoints are tagged with DataHub for OpenAPI documentation grouping.
Configuration Types
The Data Hub Bundle supports the following adapter types:
- graphql: GraphQL API adapter for querying and mutating Pimcore data
Usage Examples
Creating and Managing Configurations
-
Create a new GraphQL configuration:
POST /config/add?name=products&type=graphql -
Get configuration details:
GET /config/products -
Clone an existing configuration:
POST /config/clone?name=products_dev&originalName=products -
Export for backup:
GET /config/products/export -
Delete configuration:
DELETE /config/delete/products_dev
Working with GraphQL
-
Get explorer URL:
GET /graphql/explorer-url/products -
Access GraphQL Explorer:
GET /graphql/explorer/products
Managing Permissions
-
List available users:
GET /users?type=user -
List available roles:
GET /users?type=role