Breadcrumbs

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

Authorization

Bearer token (e.g., Bearer your_jwt_token)

string

Yes

enrichers

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.

VALUES: pluginreports, permissions, metadata, breadcrumb

string[]

No

Path Parameters

Name

Description

Type

Required

packageId

Path parameter; unique ID of the package to retrieve

string

Yes

Response


2. List Root Packages

Description
Lists all root packages from the file plan.

Request

GET /fileplan

Headers

Name

Description

Type

Required

Authorization

Bearer token (e.g., Bearer your_jwt_token)

string

Yes

enrichers

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.

VALUES: pluginreports, permissions, metadata, breadcrumb

string[]

No

Query Parameters

Name

Description

Default

Type

Required

page

Page number for pagination

0

integer

No

pageSize

Number of items per page

100

integer

No

Response


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

Authorization

Bearer token (e.g., Bearer your_jwt_token)

string

Yes

enrichers

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.

VALUES: pluginreports, permissions, metadata, breadcrumb

string[]

No

Path Parameters

Name

Description

Type

Required

packageId

unique ID of the parent package

string

Yes

Query Parameters

Name

Description

Default

Type

Required

page

Page number for pagination

0

integer

No

pageSize

Number of items per page

100

integer

No

Response


4. List Search Configurations

Description
Retrieves a list of all search configurations.

Request

GET /search

Headers

Name

Description

Type

Required

Authorization

Bearer token (e.g., Bearer your_jwt_token)

string

Yes

Query / Body / Path Parameters
(None)

Response


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

Authorization

Bearer token (e.g., Bearer your_jwt_token)

string

Yes

enrichers

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.

VALUES: pluginreports, permissions, metadata, breadcrumb, searchcolumns

string[]

No

Path Parameters

Name

Description

Type

Required

searchConfig

Identifier for the search configuration to be used.

string

Yes

Query Parameters

Name

Description

Default

Type

Required

page

Page number for pagination

0

integer

No

pageSize

Number of items per page

100

integer

No

filter.*

Filters applied using the pattern filter.<fieldName>=<value>. Multiple filter parameters can be added.

See filters in the /search response for details on available field names.


string (value)

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 ( See filters in the /search response 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 BETWEEN operator, you need to specify both fieldMinName and fieldMaxName

Example: ?filter.ecm_fulltext=michiel&filter.dc:creator=jsmith

Response


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)
    }
  ]
}

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