Repository Management
In Contendo Server, repositories are storage units within a domain that contain objects, providing a way to organize and manage content within a tenant's environment.
Repository Operations
Operation | Description |
---|---|
Create Repository | Creates a new repository in a specific domain. |
Get Repositories | Retrieves all repositories in a domain. |
Get Repository Details | Retrieves the details for a single repository. |
Create Repository
The createRepository
operation in Contendo Server allows you to create a new repository within a specific domain.
Repositories provide a way to logically separate and organize content within a tenant's environment.
Request Format
- Operation:
createRepository
- HTTP method:
POST
- URL:
{DOMAIN_URL}
- Content-Type:
application/json
,multipart/form-data
,application/x-www-form-urlencoded
Parameters
Name | Required | Description |
---|---|---|
repositoryId |
Yes | A unique identifier for the repository within the domain. |
repositoryName |
Yes | A human-readable name for the repository. |
repositoryDescription |
Yes | The description providing context about the repository's purpose. |
Example Request - create a repository for a pet store:
curl -X 'POST' \
'{DOMAIN_URL}/api' \
-H 'Content-Type: application/json' \
-d '{
"operation": "createRepository",
"repositoryId": "petStoreRepo",
"repositoryName": "Pet Store Repository",
"repositoryDescription": "Repository for managing pet store inventory and records"
}'
Response Format
- Http 200 for success
- No response body
Errors
HTTP Status | Message | Description |
---|---|---|
409 Conflict | "Repository already exists" | Repository ID is already used in this domain. |
400 Bad Request | "Acceptable repositoryId format is ^[a-zA-Z0-9\\-]{3,}$" | Repository ID contains invalid characters. |
Get Repositories
The getRepositories
operation in Contendo Server retrieves all repositories within a specific domain. Each repository
is represented by its unique repository ID, with detailed information about its configuration and capabilities.
Request Format
- HTTP method:
GET
Note that there is no operation to be declared - simply performing a GET request for '{DOMAIN_URL}' with no operation fetches all repositories for a domain.
Example Request:
curl -X 'GET' \
'{DOMAIN_URL}'
Response Format
- Content-Type:
application/json
- Response body: A JSON object where keys are repository IDs and values are repository details
Field Name | Description |
---|---|
repositoryId |
Unique identifier for the repository within the domain. |
repositoryName |
Human-readable name of the repository. |
repositoryDescription |
Optional description of the repository's purpose. |
vendorName |
Name of the software vendor. |
productName |
Name of the product. Always Contendo Server |
productVersion |
Version of the product. |
rootFolderId |
Unique identifier of the repository's root folder. |
capabilities |
Detailed information about the repository's supported capabilities. |
aclCapabilities |
Information about access control list (ACL) capabilities. |
repositoryUrl |
Full URL to access this repository. |
rootFolderUrl |
Full URL to the repository's root folder. |
Example Response:
{
"petStoreRepo": {
"repositoryId": "petStoreRepo",
"repositoryName": "Pet Store Repository",
"repositoryDescription": "Repository for managing pet store inventory and records",
"vendorName": "codenamecode d.o.o.",
"productName": "Contendo",
"productVersion": "2025.1",
"rootFolderId": "8d3469dd-bbeb-48bd-a6b5-69ab8a395398",
"capabilities": {
"capabilityContentStreamUpdatability": "anytime",
"capabilityChanges": "all",
"capabilityRenditions": "read",
...
},
...,
"repositoryUrl": "http://my-host/api/domain/third",
"rootFolderUrl": "http://my-host/api/domain/third/root"
},
"bingoRepo": {
"repositoryId": "bingoRepo",
...
}
}
Get Repository Details
The repositoryInfo
operation in Contendo Server retrieves the details for specific repository. The repository
is represented by its unique repository ID, with detailed information about its configuration and capabilities.
Request Format
- Operation:
repositoryInfo
- HTTP method:
GET
- URL:
{REPOSITORY_URL}
Example Request:
curl -X 'GET' \
'{REPOSITORY_URL}?operation=repositoryInfo'
Response Format
- Content-Type:
application/json
- Response body: A JSON object with a single field whose key is the repository ID and value is an object with repository details
Field Name | Description |
---|---|
repositoryId |
Unique identifier for the repository within the domain. |
repositoryName |
Human-readable name of the repository. |
repositoryDescription |
Optional description of the repository's purpose. |
vendorName |
Name of the software vendor. |
productName |
Name of the product. Always Contendo Server |
productVersion |
Version of the product. |
rootFolderId |
Unique identifier of the repository's root folder. |
capabilities |
Detailed information about the repository's supported capabilities. |
aclCapabilities |
Information about access control list (ACL) capabilities. |
repositoryUrl |
Full URL to access this repository. |
rootFolderUrl |
Full URL to the repository's root folder. |
Example Response:
{
"petStoreRepo": {
"repositoryId": "petStoreRepo",
"repositoryName": "Pet Store Repository",
"repositoryDescription": "Repository for managing pet store inventory and records",
"vendorName": "codenamecode d.o.o.",
"productName": "Contendo",
"productVersion": "2025.1",
"rootFolderId": "8d3469dd-bbeb-48bd-a6b5-69ab8a395398",
"capabilities": {
"capabilityContentStreamUpdatability": "anytime",
"capabilityChanges": "all",
"capabilityRenditions": "read",
...
},
...,
"repositoryUrl": "http://my-host/api/domain/third",
"rootFolderUrl": "http://my-host/api/domain/third/root"
}
}