Capabilities
Declares what an implementation supports — the spec version it targets, whether it provides the optional deposit surface, the registered extensions it implements, and the search filters and facets it provides.
The version of this specification that the implementation targets.
0.3.0extensions objectrequired
The registered extensions this implementation provides, as a map of extension identifier to a details object describing how the extension is provided. Presence of a key means the extension is implemented; the value is an empty object when the extension has no extra details to communicate.
Unregistered experimental extensions use an x- prefixed identifier and are outside the scope of this specification.
Details the implementation communicates about its segments support. The extension currently has no extra details to communicate; the value is an empty object.
deposit objectrequired
Declares whether the implementation provides the optional deposit surface, and on what terms. This block is REQUIRED in /capabilities: every implementation states its position explicitly, so a client never has to infer read-only-ness from a missing key.
supported is the single flag clients check. When it is true the implementation provides the deposit and RO-Crate endpoints, and idMinting and fileUpload MUST also be present. When it is false the implementation is read-only, the deposit and RO-Crate endpoints are not provided, and the remaining fields MUST be omitted.
Deletion behaviour is declared separately, in the top-level tombstonePolicy.
Whether the implementation provides the deposit surface. true - deposits are accepted and the deposit and RO-Crate endpoints are available; false - the implementation is read-only.
trueHow RO-Crate IDs are minted at deposit creation. client - the client MUST propose an ID; server - the server always mints one; both - the client MAY propose an ID and the server mints one when absent.
Possible values: [client, server, both]
bothThe file staging modes the implementation supports on PUT /deposit/{id}/file/{fileId}. inline - the file's bytes in the request body; presigned - transport metadata in the request, bytes uploaded directly to a returned target. New modes may be added by revision of this specification; clients MUST ignore values they do not recognise.
Possible values: [inline, presigned], >= 1
["inline","presigned"]How long an open deposit lives before expiring. When absent, expiry is implementation-defined and clients should not rely on any particular TTL.
Possible values: >= 1
604800The largest file the implementation accepts in a deposit. When absent, no limit is declared.
Possible values: >= 1
5368709120What deleted resource URIs return. "410" - deleted URIs respond 410 Gone with a Tombstone body; "404" - deleted resources are indistinguishable from those that never existed. One policy covers RO-Crate, entity and file URIs alike; implementations MUST NOT mix them.
REQUIRED of every implementation, whether or not it provides the deposit surface: entities and files are mandatory core, so any catalog may hold a URI that no longer resolves.
Possible values: [410, 404]
410search objectrequired
Declares what the implementation's search endpoint supports — the filters that may be used in search requests and the facets returned in search responses.
Every field declared in facets MUST also be declared in filters, so that clients can always turn a facet value the user clicks into a filter on the next request. Filter-only fields (for example date fields, which are filterable but not meaningful as facets) are permitted.
filters objectrequired
The fields that may be used in the search request's filters object, as a map of field name to a declaration of the field's type and display label. Requests using a field not declared here MUST be rejected with a 400 ValidationError.
property name* FilterCapability
Describes a search filter field the implementation supports. The type tells clients which UI element suits the field (e.g. a date picker for date, a toggle for boolean) and which request syntax the field accepts: date and number filters accept a single range object or a non-empty array of range objects (matched as an OR of the ranges) as well as an array of values; string and boolean filters accept an array of values only.
New filter types are added by revision of this specification; clients MUST hide filters with a type value they do not recognise rather than fail.
The filter's value type. date values are ISO 8601 strings. boolean values are the strings "true" and "false".
Possible values: [string, date, number, boolean]
dateAn optional human-readable display label for the filter field.
Date createdfacets objectrequired
The facet fields the implementation supports in search responses, as a map of facet field name to its declaration. Every field listed here MUST also appear in filters.
property name* FacetCapability
Describes a search facet field the implementation supports.
An optional human-readable display label for the facet field.
Language{
"apiVersion": "0.3.0",
"extensions": {
"segments": {}
},
"deposit": {
"supported": true,
"idMinting": "both",
"fileUpload": [
"inline",
"presigned"
]
},
"tombstonePolicy": "410",
"search": {
"filters": {
"inLanguage": {
"type": "string",
"label": "Language"
},
"mediaType": {
"type": "string"
},
"createdAt": {
"type": "date",
"label": "Date created"
}
},
"facets": {
"inLanguage": {
"label": "Language"
},
"mediaType": {}
}
}
}