Skip to content

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"
  }
}