/api/v1/publish

Record publishings of fylr objects in external systems. fylr has no publishing layer of its own — the publication itself (for example a DataCite DOI, an external gallery page or a share link) is produced and hosted elsewhere. A publish entry is fylr's record of such a publication: it ties an object's system_object_id to the collector it was published through (a target configured in the base config, e.g. datacite) and to the external publish_uri where the publication lives, plus a deep-link back into fylr (easydb_uri). These endpoints create, list and delete those records — they do not generate or serve the published artifacts.

GET /publish — List publish records.

List publish records.

get

Requires the system.api.publish[get] system right.

Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Responses
200

Array of publish descriptors.

application/json

A publish record — fylr's note that an object was published in an external system. fylr does not produce or host the publication itself; this entry links the object to the collector it was published through and to the external URL where the publication lives.

_basetypestring · enumRequired

Fixed marker identifying this object as a publish.

Possible values:
_timestamp_createdstring · date-timeOptional

UTC time the publish entry was created.

POST /publish — Record one or more publishings.

Record one or more publishings.

post

The payload is an array of publish descriptors. Requires the system.api.publish[post] system right and a non-read-only instance.

A descriptor that carries an existing _id updates that publish row in place; a descriptor without _id (or with _id 0) inserts a new one. Both kinds may be mixed in one request.

Differs from easydb 5: easydb 5 documents this endpoint as insert-only — "Only new publishing can be done using this API. There is no possibility to update an existing objects." (DELETE + re-POST is the documented way to change a publication there). fylr additionally updates the existing row when a descriptor's _id is set.

Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Bodyobject[]

A publish record — fylr's note that an object was published in an external system. fylr does not produce or host the publication itself; this entry links the object to the collector it was published through and to the external URL where the publication lives.

_basetypestring · enumRequired

Fixed marker identifying this object as a publish.

Possible values:
_timestamp_createdstring · date-timeOptional

UTC time the publish entry was created.

Responses
200

The created publish entries.

application/json

A publish record — fylr's note that an object was published in an external system. fylr does not produce or host the publication itself; this entry links the object to the collector it was published through and to the external URL where the publication lives.

_basetypestring · enumRequired

Fixed marker identifying this object as a publish.

Possible values:
_timestamp_createdstring · date-timeOptional

UTC time the publish entry was created.

GET /publish/{systemObjectId} — Retrieve a single publish record by its id.

Retrieve a single publish record by its id.

get

The path parameter is named systemObjectId in the route for historical reasons; in fact the value is the publish entry's own id. The handler returns a single-element array (or an empty array if no publish has that id). Requires system.api.publish[get].

Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
systemObjectIdinteger · int64 · min: 1Required

Publish entry id (not the system_object_id of an object).

Responses
200

Array of zero-or-one publish entries that match the id. An id matching no stored entry yields an empty array with 200, not a 404.

application/json

A publish record — fylr's note that an object was published in an external system. fylr does not produce or host the publication itself; this entry links the object to the collector it was published through and to the external URL where the publication lives.

_basetypestring · enumRequired

Fixed marker identifying this object as a publish.

Possible values:
_timestamp_createdstring · date-timeOptional

UTC time the publish entry was created.

DELETE /publish/{publishId} — Delete a publish record.

Delete a publish record.

delete

Deletes the publish entry with the given _id. Requires the system.api.publish[delete] system right and a non-read-only instance. Deleting an unknown publish id is a no-op that still returns 200 with {"status":{"acknowledged":"ok"}}.

Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
publishIdinteger · int64 · min: 1Required

The publish entry's _id.

Responses
200

The publication was deleted (or the id did not exist — the delete is a no-op in that case).

application/json

Last updated