http://localhost/mod-finc-config
This documents the API calls that can be made to query filters of metadata collections
Collection of filter items.
Get all filters
GET /finc-config/filters
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
((label="test*") and type="Blacklist") sortby label
Order by field: label, type
Order
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
Requested language. Optional. [lang=en]
Returns a list of filter items
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Collection of filters in finc select",
"properties": {
"fincSelectFilters": {
"type": "array",
"id": "fincSelectFilters",
"description": "List of filters in finc select",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Schema",
"description": "Filter of a metadata collection in finc select",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter"
},
"type": {
"type": "string",
"description": "The type of this filter",
"enum": [
"Whitelist",
"Blacklist"
]
},
"filterFiles": {
"type": "array",
"id": "filterFiles",
"description": "List of filter files associated with this filter",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Files Schema",
"description": "The filter files which can be contained in a filter",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter file"
},
"criteria": {
"type": "string",
"description": "The criteria of this filter"
},
"fileId": {
"type": "string",
"description": "UUID of the binary file (which is uploaded before this filter file document)"
},
"filename": {
"type": "string",
"description": "The file's filename"
},
"_delete": {
"type": "boolean",
"description": "Indicator if this filter file shall be deleted from it surrounding filter"
}
},
"required": [
"label",
"file"
],
"additionalProperties": false
}
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
},
"metadata": {
"description": "Metadata about creation and changes, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"label",
"type"
],
"additionalProperties": false
}
},
"totalRecords": {
"type": "integer"
}
},
"required": [
"fincSelectFilters",
"totalRecords"
]
}
Example:
{
"fincSelectFilters": [
{
"id": "084befb6-a264-4dd0-ade9-1aaae390c483",
"label": "Holdings 1",
"type": "Whitelist",
"filterFiles": [
{
"label": "Holdings",
"criteria": "Column: ISSN",
"filename": "filterFile.txt",
"fileId": "aa9202b7-754a-414a-8bf6-378df78e5985"
}
],
"isil": "DE-15"
}
],
"totalRecords": 1
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
unable to list filters -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list filters -- unauthorized
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Post new filter
POST /finc-config/filters
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Schema",
"description": "Filter of a metadata collection in finc select",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter"
},
"type": {
"type": "string",
"description": "The type of this filter",
"enum": [
"Whitelist",
"Blacklist"
]
},
"filterFiles": {
"type": "array",
"id": "filterFiles",
"description": "List of filter files associated with this filter",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Files Schema",
"description": "The filter files which can be contained in a filter",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter file"
},
"criteria": {
"type": "string",
"description": "The criteria of this filter"
},
"fileId": {
"type": "string",
"description": "UUID of the binary file (which is uploaded before this filter file document)"
},
"filename": {
"type": "string",
"description": "The file's filename"
},
"_delete": {
"type": "boolean",
"description": "Indicator if this filter file shall be deleted from it surrounding filter"
}
},
"required": [
"label",
"file"
],
"additionalProperties": false
}
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
},
"metadata": {
"description": "Metadata about creation and changes, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"label",
"type"
],
"additionalProperties": false
}
Example:
{
"id": "084befb6-a264-4dd0-ade9-1aaae390c483",
"label": "Holdings 1",
"type": "Whitelist",
"filterFiles": [
{
"label": "Holdings",
"criteria": "Column: ISSN",
"filename": "filterFile.txt",
"fileId": "aa9202b7-754a-414a-8bf6-378df78e5985"
}
],
"isil": "DE-15"
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created filter item
Media type: application/json
Type: any
Example:
{
"id": "084befb6-a264-4dd0-ade9-1aaae390c483",
"label": "Holdings 1",
"type": "Whitelist",
"filterFiles": [
{
"label": "Holdings",
"criteria": "Column: ISSN",
"filename": "filterFile.txt",
"fileId": "aa9202b7-754a-414a-8bf6-378df78e5985"
}
],
"isil": "DE-15"
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to add filter -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create filters -- unauthorized
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Get one finc select filter identified by id
GET /finc-config/filters/{id}
Requested language. Optional. [lang=en]
Returns item with a given ID
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Schema",
"description": "Filter of a metadata collection in finc select",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter"
},
"type": {
"type": "string",
"description": "The type of this filter",
"enum": [
"Whitelist",
"Blacklist"
]
},
"filterFiles": {
"type": "array",
"id": "filterFiles",
"description": "List of filter files associated with this filter",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Files Schema",
"description": "The filter files which can be contained in a filter",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter file"
},
"criteria": {
"type": "string",
"description": "The criteria of this filter"
},
"fileId": {
"type": "string",
"description": "UUID of the binary file (which is uploaded before this filter file document)"
},
"filename": {
"type": "string",
"description": "The file's filename"
},
"_delete": {
"type": "boolean",
"description": "Indicator if this filter file shall be deleted from it surrounding filter"
}
},
"required": [
"label",
"file"
],
"additionalProperties": false
}
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
},
"metadata": {
"description": "Metadata about creation and changes, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"label",
"type"
],
"additionalProperties": false
}
Example:
{
"id": "084befb6-a264-4dd0-ade9-1aaae390c483",
"label": "Holdings 1",
"type": "Whitelist",
"filterFiles": [
{
"label": "Holdings",
"criteria": "Column: ISSN",
"filename": "filterFile.txt",
"fileId": "aa9202b7-754a-414a-8bf6-378df78e5985"
}
],
"isil": "DE-15"
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"filter not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Put a filter identified by id
PUT /finc-config/filters/{id}
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Schema",
"description": "Filter of a metadata collection in finc select",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter"
},
"type": {
"type": "string",
"description": "The type of this filter",
"enum": [
"Whitelist",
"Blacklist"
]
},
"filterFiles": {
"type": "array",
"id": "filterFiles",
"description": "List of filter files associated with this filter",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Files Schema",
"description": "The filter files which can be contained in a filter",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string",
"description": "A unique name for this filter file"
},
"criteria": {
"type": "string",
"description": "The criteria of this filter"
},
"fileId": {
"type": "string",
"description": "UUID of the binary file (which is uploaded before this filter file document)"
},
"filename": {
"type": "string",
"description": "The file's filename"
},
"_delete": {
"type": "boolean",
"description": "Indicator if this filter file shall be deleted from it surrounding filter"
}
},
"required": [
"label",
"file"
],
"additionalProperties": false
}
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
},
"metadata": {
"description": "Metadata about creation and changes, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"label",
"type"
],
"additionalProperties": false
}
Example:
{
"id": "084befb6-a264-4dd0-ade9-1aaae390c483",
"label": "Holdings 1",
"type": "Whitelist",
"filterFiles": [
{
"label": "Holdings",
"criteria": "Column: ISSN",
"filename": "filterFile.txt",
"fileId": "aa9202b7-754a-414a-8bf6-378df78e5985"
}
],
"isil": "DE-15"
}
Item successfully updated
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to update filter -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"filter not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Delete a filter identified by id
DELETE /finc-config/filters/{id}
Requested language. Optional. [lang=en]
Item deleted successfully
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to delete filter -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"filter not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Get collections the current filter is assigned to
GET /finc-config/filters/{id}/collections
The collection IDs of collection assigned to this filter
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Collections Schema",
"description": "List of metadata collection IDs assigned to a filter in finc select",
"type": "object",
"properties": {
"id": {
"description": "ID of associated filter",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"collectionIds": {
"type": "array",
"id": "collectionIds",
"description": "List of ids of associated metadata collections",
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
}
},
"collectionsCount": {
"type": "integer",
"description": "Number of collection ids."
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
}
},
"required": [
"collectionIds"
],
"additionalProperties": false
}
Example:
{
"id": "6dd325f8-b1d5-4568-a0d7-aecf6b8d6123",
"collectionIds": [
"4c890350-4ddf-4851-ae2b-e4403eacca08",
"4c890350-4ddf-4851-ae2b-e4403eacca09",
"4c890350-4ddf-4851-ae2b-e4403eacca07"
],
"isil": "DE-15",
"collectionsCount": 3
}
Not found
Media type: text/plain
Type: any
Example:
Not found
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Add collections to this filter
PUT /finc-config/filters/{id}/collections
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Collections Schema",
"description": "List of metadata collection IDs assigned to a filter in finc select",
"type": "object",
"properties": {
"id": {
"description": "ID of associated filter",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"collectionIds": {
"type": "array",
"id": "collectionIds",
"description": "List of ids of associated metadata collections",
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
}
},
"collectionsCount": {
"type": "integer",
"description": "Number of collection ids."
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
}
},
"required": [
"collectionIds"
],
"additionalProperties": false
}
The added collections
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Finc Select Filter Collections Schema",
"description": "List of metadata collection IDs assigned to a filter in finc select",
"type": "object",
"properties": {
"id": {
"description": "ID of associated filter",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"collectionIds": {
"type": "array",
"id": "collectionIds",
"description": "List of ids of associated metadata collections",
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
}
},
"collectionsCount": {
"type": "integer",
"description": "Number of collection ids."
},
"isil": {
"type": "string",
"description": "Isil of library using this filter"
}
},
"required": [
"collectionIds"
],
"additionalProperties": false
}
Example:
{
"id": "6dd325f8-b1d5-4568-a0d7-aecf6b8d6123",
"collectionIds": [
"4c890350-4ddf-4851-ae2b-e4403eacca08",
"4c890350-4ddf-4851-ae2b-e4403eacca09",
"4c890350-4ddf-4851-ae2b-e4403eacca07"
],
"isil": "DE-15",
"collectionsCount": 3
}
Bad request
Media type: text/plain
Type: any
Example:
Bad request
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error