Dissemination API
The Dissemination Service is designed to retrieve documents previously ingested into the Docbyte Vault.
1. Retrieve Package
Description
Retrieves package details (AIP) for a given package ID. Optional enrichers allows you to get extra details (e.g., plugin reports, permissions, metadata, breadcrumb).
Request
GET /aip/{packageId}
Headers
Name | Description | Type | Required |
|---|---|---|---|
| Bearer token (e.g., |
| Yes |
| Optional list to specify what information should be part of the result. If no value is provided only the basic information of a package is returned.
|
| No |
Path Parameters
Name | Description | Type | Required |
|---|---|---|---|
| Path parameter; unique ID of the package to retrieve |
| Yes |
Response
200
Returns the package details (AIP) as defined in the Dissemination API | AIP-Schema .404
Package with the specified ID was not found.default
An error response, see Dissemination API | ErrorResponse-Schema .
2. List Root Packages
Description
Lists all root packages from the file plan.
Request
GET /fileplan
Headers
Name | Description | Type | Required |
|---|---|---|---|
| Bearer token (e.g., |
| Yes |
| Optional list to specify what information should be part of the result. If no value is provided only the basic information of a package is returned.
|
| No |
Query Parameters
Name | Description | Default | Type | Required |
|---|---|---|---|---|
| Page number for pagination | 0 |
| No |
| Number of items per page | 100 |
| No |
Response
200
Returns a Search Response (an Dissemination API | AIPList-Schema ) containing a list of root packages.default
An error response, see Dissemination API | ErrorResponse-Schema .
3. List Subpackages for a Package
Description
Lists all subpackages for a given package ID from the file plan.
Request
GET /fileplan/{packageId}
Headers
Name | Description | Type | Required |
|---|---|---|---|
| Bearer token (e.g., |
| Yes |
| Optional list to specify what information should be part of the result. If no value is provided only the basic information of a package is returned.
|
| No |
Path Parameters
Name | Description | Type | Required |
|---|---|---|---|
| unique ID of the parent package |
| Yes |
Query Parameters
Name | Description | Default | Type | Required |
|---|---|---|---|---|
| Page number for pagination | 0 |
| No |
| Number of items per page | 100 |
| No |
Response
200
Returns a SearchResponse (an Dissemination API | AIPList-Schema ) with subpackages details. #AIPList-Schema404
Package with the specified ID was not found.default
An error response, seeDissemination API | ErrorResponse-Schema
4. List Search Configurations
Description
Retrieves a list of all search configurations.
Request
GET /search
Headers
Name | Description | Type | Required |
|---|---|---|---|
| Bearer token (e.g., |
| Yes |
Query / Body / Path Parameters
(None)
Response
200
Returns a JSON object matching the Dissemination API | SearchConfig-Schema containing the search configurations.default
An error response, see Dissemination API | ErrorResponse-Schema .
5. Execute Search
Description
Executes a search operation based on a given search configuration, including pagination and optional enrichers for extra details.
Request
GET /search/{searchConfig}
Headers
Name | Description | Type | Required |
|---|---|---|---|
| Bearer token (e.g., |
| Yes |
| Optional list to specify what information should be part of the result. If no value is provided only the basic information of a package is returned.
|
| No |
Path Parameters
Name | Description | Type | Required |
|---|---|---|---|
| Identifier for the search configuration to be used. |
| Yes |
Query Parameters
Name | Description | Default | Type | Required |
|---|---|---|---|---|
| Page number for pagination | 0 |
| No |
| Number of items per page | 100 |
| No |
| Filters applied using the pattern See |
| No |
Filtering
To filter the search results, add query parameters using the following format:
filter.<fieldName>=<value>
Replace
<fieldName>with the actual field you want to filter on ( Seefiltersin the/searchresponse for details on available field names).Replace
<value>with the value you want to filter by.You can include multiple
filter.<fieldName>=<value>parameters to apply multiple filters (these are typically combined with an AND logic).For the
BETWEENoperator, you need to specify bothfieldMinNameandfieldMaxName
Example: ?filter.ecm_fulltext=michiel&filter.dc:creator=jsmith
Response
200
Returns a SearchResponse (an Dissemination API | AIPList-Schema ) with search results.default
An error response, see Dissemination API | ErrorResponse-Schema .
Schemas
AIPList Schema
{
"totalResults": 123, // Total number of packages matching the query
"page": 0, // Current page number
"pageSize": 100, // Number of items per page
"items": [
{
// Each item is an AIP object, see AIP Schema below
}
]
}
AIP Schema
{
"packageId": "uuid-1234", // Unique identifier for the package
"packageType": "AIP", // Type of the package (e.g., AIP)
"pluginReports": [ // List of plugin execution reports
{
"executionDate": "2023-01-01T00:00:00Z", // Date/time of plugin execution
"pluginName": "examplePlugin", // Name of the plugin
"message": "Plugin executed successfully", // Execution message
"status": "SUCCESS" // Plugin status (SUCCESS, WARNING, FAILURE)
}
],
"permissions": [ // Permissions available to the current user
],
"title": "Sample Package", // Title of the package
"searchcolumns": { // Key Value pairs of all the columns from search config
"hr-doc:category": "Contract",
"hr-doc:expiryDate": "2025-11-05T23:00:00.000Z",
"hr-doc:department": "CSS",
"hr-doc:employeeId": "mark.janssens",
"hr-doc:title": "Contract Mark Janssens - 2019-07-13"
},
"metadata": {
// See MetadataSection Schema below
"schema": "exampleSchema", // Metadata schema name
"fields": { // Key-value pairs containing metadata
"key": "value" // Example field
}
},
"representations": [
{
"id": "rep-1", // Unique identifier for the representation
"metadata": {
// See MetadataSection Schema
"schema": "repSchema", // Representation metadata schema name
"fields": {} // Representation metadata fields
},
"data": [
{
"url": "https://example.com/file", // URL for the representation data
"format": "pdf" // Format of the file (e.g., pdf, jpg)
}
]
}
],
"breadcrumb": [
{
"title": "Home", // Breadcrumb title
"packageId": "uuid-home" // Package ID referenced in the breadcrumb
}
]
}
MetadataSection Schema
{
"schema": "exampleSchema", // Name or identifier of the metadata schema
"fields": {
"fieldName": "value" // Arbitrary key-value pairs for metadata fields
}
}
Representation Schema
{
"id": "rep-1", // Unique identifier for the representation
"metadata": {
"schema": "repSchema", // Name or identifier for the representation metadata schema
"fields": {
"field": "value" // Representation metadata field
}
},
"data": [
{
"url": "https://example.com/file", // URL of the representation data
"format": "pdf" // Format of the file (e.g., pdf, jpg)
}
]
}
Breadcrumb Schema
{
"title": "Sample Breadcrumb", // Title for the breadcrumb navigation element
"packageId": "uuid-breadcrumb" // Associated package identifier
}
SearchConfig Schema
{
"name": "defaultSearch", // Name of the search configuration
"limit": "100", // Limit for the search results
"offset": "0", // Offset for search results
"columns": [
{
"xpath": "field1", // Key used to identify the column in the search results
"label": "Field 1", // Human-readable label for the column
"dataType": "string", // Data type for the column (string, number, boolean, date, datetime, object)
"sortable": true, // Indicates if the column is sortable
"hidden": false, // Indicates if the column should be hidden in the UI
"visibleByDefault": true // Indicates if the column should be visible by default in the UI ( useful if you have a column selector )
}
],
"filters": [
{
"filterName": "name", // Key used to identify the filter ( this is what you should use in the search api )
"filterMinName": "min_name" // Key used as an identifier for the filter's min value ( only applicable when the Operator is "BETWEEN" )
"filterMaxName": "max_name". // Key used as an identifier for the filter's max value ( only applicable when the Operator is "BETWEEN" )
"fields": [ // Columns this filter applies to
"field1", "field2"
],
"label": "label1", // Label for UI
"dataType": "string", // Possible Values : string, integer, decimal, date, datetime, boolean
"operator": "FULLTEXT" // Possible Values : FULLTEXT, LIKE, ILIKE, EQ, GT, GTEQ, LT, LTEQ, BETWEEN, AGGREGATE
},
...
]
}
ErrorResponse Schema
{
"code": "ERROR_CODE", // A short code identifying the error
"message": "Error description"// A detailed description of the error
}