Event Type Reference
Reference of all server event types: when each event is created and which data is stored in its info field.
Every action the fylr server logs is stored as an event. Besides the type and the timestamp, an event record can carry:
the acting user — only for event types marked user-logged below, and only if the event's group is enabled in the base configuration (user settings,
user_in_event_group). Login events always store the user, regardless of this setting. User fields selected incopy_to_eventare additionally copied intoinfoas flatuser.<field>keys (e.g.user.login,user.first_name), so a CSV export of events can expand them into columns.record references — for events about records or base objects: object ID, version, object type or basetype, and the global object ID.
info— a JSON object with additional data, different per event type. This is what the largest part of this page describes.the remote address of the request that caused the event.
Events marked pollable can be retrieved by clients through the event poll API (GET /api/v1/event/poll) to react to changes; all events can be searched in the Events manager and through GET /api/v1/event/list.
This reference reflects fylr 6.34.0. Events are listed by their group as defined by the server. The quoted line underneath each heading is the display name the Events manager shows; event types without one are displayed by their internal name.
ADMIN
BACKUP_DONE
"Backup Done"
Created when a backup started via the Backup Manager finishes successfully. User-logged, pollable.
info:
Started— when the backup startedElapsed— how long the backup tookBackupOpts— the backup options (format, whether events were included)
BACKUP_FAILED
"Backup Failed"
Created when a backup fails. User-logged, pollable.
info: same as BACKUP_DONE, plus:
Error— what failed
BASE_CONFIG_UPDATE
"Base Configuration Updated"
Created when the base configuration is saved successfully. User-logged, pollable.
info:
ScopedNames— the configuration sections that were savedMethod— HTTP method of the request (POSTorPATCH)Path— the configuration path that was saved (/for the whole configuration)
BASE_CONFIG_ERROR
"Base Configuration Update Failed"
Created when saving the base configuration fails (validation or save error). User-logged.
info:
Error— the error messageMethod,Path— as above
DATAMODEL_COMMIT
"Data model commited"
Created when a data model change is committed. User-logged, pollable.
info:
version— the committed data model versioncommitted_at— the commit timestamp
SYSTEM
CUSTOM_DATA_TYPE_UPDATER
"Custom Data Type Updater"
Created when a custom data type updater run (background update of custom data type values, usually provided by a plugin) finishes successfully. User-logged.
info:
log— log lines of the runstats— counts:total,updated,de_duplicated
CUSTOM_DATA_TYPE_UPDATER_ERROR
"Custom Data Type Updater Error"
Created when a custom data type updater run fails. User-logged.
info: same as CUSTOM_DATA_TYPE_UPDATER, plus:
error— the error message
EMAIL_SENT
"Email Sent"
Created when the server sends an email successfully.
info:
Template— name of the email templateTo,Cc,Bcc— recipient addressesSubject— the subject lineAttachments— per attachment:ContentType,Filename,Size(human readable),Filesize(bytes)additional keys describing what caused the email, merged in by the sender — for example
Collection/CollectionID/CollectionURL(the mailed deep link, from version 6.34.0) andUser/UserIDfor a collection-share email, orTaskIDfor an email sent by a background task
EMAIL_SENT_FAILED
"Sending Email Failed"
Created when sending an email fails.
info: same as EMAIL_SENT, plus:
Error— the error message
FILE_METADATA
"Metadata Mapping Applied"
Created when technical metadata is successfully extracted from an uploaded file. User-logged.
info:
metadata— the job receipt of the metadata job (commands run with their output, timing, exit codes; secrets removed)
FILE_METADATA_ERROR
"Metadata Mapping Error"
Created when metadata extraction for a file fails. User-logged.
info:
recipe— name of the metadata recipe attemptedreceipt— the job receipt (secrets removed)body— raw response body, only present when the response could not be parsed
FILE_PRODUCE
"File Version Produced"
Created when a file version (rendition) is successfully produced from an original.
info:
recipe— name of the production recipe usedreceipt— the job receipt of the production job (secrets removed)connInfos— connection information of the executing server
FILE_PRODUCE_ERROR
"File Version Produce Error"
Created when producing a file version fails.
info: same as FILE_PRODUCE.
FILE_DELETE
"File Deleted"
Created when a file is deleted from storage (e.g. by the janitor after it is no longer referenced).
info:
location_key,location_id— the storage locationfilename— the deleted filelog— log lines of the deletion
FILE_DELETE_ERROR
"File Deletion Failed"
Created when deleting a file from storage fails.
info: same as FILE_DELETE, plus:
error— the error message
FILE_MOVE
"Remote File Was Moved"
Created when a remote file is copied or moved into a fylr storage location (e.g. after an rput upload that referenced a remote URL).
info:
remote_url— where the file came fromlocation_key,location_id— the target storage locationstartet,took— start time and durationsize— the transferred size (human readable)
FILE_MOVE_ERROR
"Error When Moving Remote File"
Created when copying/moving a remote file fails.
info:
remote_url,location_key,location_id— as aboveerror— the error message
NOTIFICATION_SCHEDULER_FAILED
"Notification Scheduler Failed"
Created when the background notification scheduler (which compiles and sends scheduled notification emails) fails.
info:
Error— the error message
LICENSE_VALIDATION_FAILED
"License Validation Failed"
Created when the periodic license validation fails.
info:
Error— the error message
LICENSE_EXPIRATION_EMAIL
"License Expiration Mail Sent"
Created when a license expiration reminder email is sent to the administrators.
info:
expire_type— phase of the expiry:valid_to(license still valid),valid_to_grace(in the grace period) orexpireddays— days until the expiry the email refers tovalid_to,grace_to— end of the license period and of the grace periodexternal_url— URL of the instanceemail_to,email_cc— recipients
LICENSE_BINARY_TOO_NEW_EMAIL
Created when a reminder email is sent because the installed fylr binary is newer than the license allows.
info:
version— the running fylr versionbinary_release_date— release date of the running binaryvalid_to— the license's valid-to date (if present)external_url— URL of the instance
OBJECT_INSERT / OBJECT_UPDATE / OBJECT_DELETE
"Record Created" / "Record Updated" / "Record Deleted"
Created when a record is saved through the API or frontend: OBJECT_INSERT for a new record (version 1), OBJECT_UPDATE for a new version of an existing record, OBJECT_DELETE when a record is moved to the trash (deleted, but not yet purged). The record references (object ID, version, object type, global object ID) are stored on the event. User-logged, pollable.
info:
standard— the rendered standard (short display text) of the record in the database languages
Saved exports are stored as records too: creating or changing an export also emits OBJECT_INSERT/OBJECT_UPDATE (basetype export), whose info carries state (the export status) instead of standard.
OBJECT_UNDELETE
"Record Restored"
Created when a record is restored from the trash. User-logged, pollable.
info: same as above (standard).
OBJECT_PURGE
"Record Permanently Deleted"
Created when a record is permanently purged from the trash. User-logged, pollable.
info: same as above (standard).
USER_INSERT / USER_UPDATE / USER_DELETE
"User Created" / "User Updated" / "User Deleted"
Created when a user is created, updated or deleted. The user's ID and version are stored on the event (basetype user). User-logged, pollable.
info:
login— the user's login namedisplayname— the user's display namereference— the user's reference
GROUP_INSERT / GROUP_UPDATE / GROUP_DELETE
"Group Created" / "Group Updated" / "Group Deleted"
Created when a group is created, updated or deleted. User-logged, pollable.
info:
name— the group namedisplayname— the group's display namereference— the group's reference
POOL_INSERT / POOL_UPDATE / POOL_DELETE
"Pool Created" / "Pool Updated" / "Pool Deleted"
Created when a pool is created, updated or deleted. A POOL_UPDATE is also created for a parent pool when its children change; deleting a pool cascades to its child pools. User-logged, pollable.
info:
displayname— the pool's nameshortname— the pool's shortnamereference— the pool's reference
TAG_INSERT / TAG_UPDATE / TAG_DELETE
"Tag Created" / "Tag Updated" / "Tag Deleted"
Created when a tag is created, updated or deleted. User-logged, pollable.
info:
displayname— the tag's display nameshortname— the tag's shortnamereference— the tag's reference
MESSAGE_INSERT / MESSAGE_UPDATE / MESSAGE_DELETE
"Message Created" / "Message Updated" / "Message Deleted"
Created when a message is created, updated or deleted. User-logged, pollable.
info:
title— the message titlemessage— the message contentreference— the message's reference
OBJECTTYPE_UPDATE
"Object Type Updated"
Created for every object type whose definition changes during a data model commit (fields, masks, tags, workflows etc.). User-logged, pollable.
info: none — the object type is identified by the references stored on the event.
COLLECTION_INSERT / COLLECTION_UPDATE / COLLECTION_DELETE
"Collection Created" / "Collection Updated" / "Collection Deleted"
Created when a collection is created, updated or deleted. Deleting a collection also creates events for its deleted child collections. User-logged, pollable.
info:
displayname— the collection's display nameshortname— the collection's shortname (if set)reference— the collection's reference (if set)
COLLECTION_UPLOAD
"Upload into collection"
Created when files are uploaded into an upload collection (e.g. through the hotfolder). One upload batch creates several of these events; all of them carry path (the file path of the upload). Depending on what happened, the events carry: User-logged, pollable.
per created or updated record:
object_in_batch(position in the batch),file_eas_id,file(filename),filesizeif a metadata mapping was applied:
metadata_mapping_profile,file_eas_id,file,filesizeif records were linked into a hierarchy from the directory structure:
file_eas_id,path,file,filesizeif an upload plugin ran: per log entry
log_entry,pluginand the plugin's log fields (file,file_eas_id,filesize,msg,status,system_object_id)
TRANSITION_INSERT / TRANSITION_UPDATE / TRANSITION_DELETE
"Workflow Created" / "Workflow Updated" / "Workflow Deleted"
Created when a workflow (transition) is created, updated or deleted. User-logged, pollable.
info:
type— the workflow typeoperation_insert,operation_update,operation_delete— which operations the workflow applies tocomment— the workflow's comment
MAPPING_INSERT / MAPPING_UPDATE / MAPPING_DELETE
"Metadata Mapping Created" / "Metadata Mapping Updated" / "Metadata Mapping Deleted"
Created when a metadata mapping is created, updated or deleted (deletion also removes the mapping from collections that reference it). User-logged, pollable.
info:
displayname— the mapping's display nameprofilename— the mapping profile
JANITOR
"Janitor Run"
Created when a run of a janitor (periodic background maintenance, e.g. deleting unreferenced files or expired sessions) finishes successfully and processed at least one item — idle runs are not logged.
info:
type— which janitor ranrun_time— when the run startedbatch_size— the batch size usedcount— how many items were processedlog— detailed log of the runindividual janitors add their own keys — for example the
objects_purgejanitor addssystem_object_ids(the records it purged)
JANITOR_ERROR
"Janitor Run Error"
Created when a janitor run fails.
info: same as JANITOR, plus:
error— the error messagecount— items processed before the error
WEBHOOK
Created when a workflow webhook is called and answers with a success status.
info:
webhook— name of the webhookresponse— the webhook's JSON response, orresponse_no_jsonwith the raw body if the response was not valid JSON
WEBHOOK_ERROR
Created when a webhook call fails or answers with an error status.
info: same as WEBHOOK, plus:
error— the error message or HTTP status
INDEX
OBJECT_INDEX
"Record Indexed"
Created when a record or base object (user, group, pool, collection, message) is queued for indexing with elevated priority — routine background indexing is not logged.
info:
Priority— the priority of the indexing jobIndexName— the target index
OBJECT_INDEX_ERROR
Created when the search cluster rejects a document during bulk indexing (e.g. disk full, mapping error).
info:
IndexName— the target indexDocID— the document that failedError— the error reported by the search cluster
OBJECT_INDEX_REQUEUE
Created when a document is rejected because the search cluster is overloaded and the document is automatically queued again.
info: same as OBJECT_INDEX_ERROR.
INDEX_SWITCH
"Index Switch"
Created when the indexer finishes filling new indices and switches reading over to them. Pollable.
info:
IndexNames— the new read/write index namesDeleted— old indices that were removedErrors— errors during the switch, if any
REINDEX_START
"Reindex Started"
Created when a full reindex starts. Pollable.
info:
Datamodel— the data model version being indexedBlockFrontend— whether the frontend is blocked during the reindex
REINDEX_QUEUED
"Reindex Queued"
Created when all records and base objects have been queued for the new indices (from this point on, normal operation continues while the indexer works through the queue).
info:
Counts— per indexed type, how many items were queuedIndexVersions— the index versions created for this reindexTook— duration from reindex start until queueing finished
REINDEX_DONE
"Reindex Finished"
Created when a full reindex finishes and the indices have been switched. Pollable.
info:
BlockFrontend— whether the frontend was blockedIndexVersionsQueued,IndexVersions— the index versions at queue time and after the switchTook— total duration of the reindex
REINDEX_ERROR
"Reindex Error"
Created when a full reindex fails during preparation. Pollable.
info:
Error— the error message
REINDEX_INDEX_PURGED
"Index Purged After Reindex"
Created when a leftover index from an earlier, unfinished reindex is purged before a new reindex starts.
info:
Indexes— the purged index
FRONTEND — events sent by the web frontend
The events of this group are not created by the server: the web frontend sends them via POST /api/v1/event. The server stores their info as sent — so any API client may post these types with its own info — but the standard web frontend sends the payloads documented here. All are user-logged.
DETAIL_VIEW
"Detail View Opened"
Sent when a user opens the detail view of a record.
info:
global_object_id— the viewed recordobject_id,objecttype— the record's ID and object typepool— for records in a pool: the pool'sid,shortnameandname; additionallypool.1…pool.Nwith the same keys for every level of the pool pathconnector_name,connector_url— for records viewed from a connected remote instance: its name and URL
SEARCH
"Search"
Sent after a search with a non-empty query returns.
info:
request— the executed search:search(the full search definition),offset,limitresponse—count(number of hits) andtimings(request_timeon the server,clientin the browser)version— version of the frontend's search-state format
FRONTEND_ERROR
"Frontend Error"
Sent when a JavaScript error occurs in the frontend.
info:
message— the error messagestack— the JavaScript stack tracenavigator— the browser's user agent
ASSET_DOWNLOAD_CONFIRMATION_MESSAGE
"Asset download - Message confirmation"
Sent when a user confirms a download confirmation dialog (an admin message of type download with "send confirmation event" enabled) before downloading assets.
info:
identifier— the confirmation identifier configured on the admin messagechoices— the options the user selected in the dialog (reference,text)assets— the assets the confirmation coversglobal_object_ids— the records the assets belong to
TASK
TASK_INSERT / TASK_UPDATE
Created when a background task (e.g. a scheduled metadata update) is created or updated. User-logged.
info:
module— the task moduledescription— the task description
TASK_DELETE
Defined, but currently never created by the server.
TASK
"Task executed"
Created when a background task finishes successfully. User-logged.
info:
task_module— the task moduleparams— the task parameters (with defaults applied)status— the final status (DONE)status_msg— status message, if anystart,end,took— start time, end time and duration
TASK_ERROR
Created when a background task fails or is canceled. User-logged.
info: same as TASK (status is ERROR or CANCELED), plus:
error— the error message
EXPORT
All export events carry state in info — the status of the export at the time of the event. All are user-logged.
EXPORT_START
"Export Started"
Created when an export starts.
info:
state— the export statuslastRunAt— when the export ran the last time (only for re-runs)
EXPORT_FINISH
"Export Finished"
Created when an export finishes successfully with at least one exported record.
info:
totalCount— number of exported recordswarnings— warnings, if anyplugin_log— log of the export plugin, if one ran
EXPORT_FINISH_EMPTY
"Empty Export"
Created when an export finishes but matched no records (totalCount is 0). info: same as EXPORT_FINISH.
EXPORT_FAILED
"Export Failed"
Created when an export fails.
info:
error— the error messagejob_receipt— receipt of the plugin job, if one ran
EXPORT_CANCELED
Created when a user stops a running export.
info: only state.
EXPORT_TRANSPORT
Defined, but currently never created by the server (see the two events below).
EXPORT_TRANSPORT_FINISH
"Transport of Export Finished"
Created for each transport of an export (e.g. copy to another server, send by email) that finishes successfully.
info:
transport— the transport configurationtransport_state— the transport result (DONEorDONE_WITH_WARNINGS)transport_log— log of the transport pluginjob_receipt— receipt of the transport job, if availableemail_sent_to— recipients, if the transport sent emailsemail_sent_error— error while sending emails, if any
EXPORT_TRANSPORT_FAILED
"Transport of Export Failed"
Created when a transport fails.
info: same as EXPORT_TRANSPORT_FINISH (with transport_state = FAILED), plus:
error— the error message
UPLOAD
FILE_UPLOAD
"File Uploaded"
Created when a file upload via POST /api/v1/eas/put completes successfully. User-logged.
info:
file— the complete file object (ID, filename, filesize, hash, MIME type, uploading user, storage location, …)
FILE_UPLOAD_REMOTE
"File Uploaded (rput)"
Created when a remote file is registered via POST /api/v1/eas/rput — whether the file is fetched or left on the remote server. User-logged.
info:
file— the file object, including the remote URL and whether the file stays on the remote server
FILE_UPLOAD_ERROR
"File Upload Error"
Created when a file upload fails (size limit, interrupted transfer, storage error, missing rights). User-logged.
info:
error— the error messagefile— the (possibly partial) file object
DOWNLOAD
FILE_DOWNLOAD
"File Downloaded"
Created when a file is delivered as a download (download disposition, as opposed to inline display, e.g. for previews) via /api/v1/eas/download. User-logged.
info:
file— the complete file objectbytes_count— bytes deliveredstatuscode— HTTP status of the deliveryurl— the request URL (access tokens removed)produce_params— the conversion parameters, if a custom version was produced on the flyany keys the caller passes in the
event.infoquery parameter of the download URL are merged into the event infofor downloads that run through a download/export definition additionally:
export_type,export_id,export_path,export_user_id, andcustom_version(the requested custom rendition options)
FILE_DOWNLOAD_ERROR
"File Download Failed"
Created when a file download fails or is aborted (file missing, connection lost, …). User-logged.
info: same as FILE_DOWNLOAD, plus:
error— the error message
OBJECT_DOWNLOAD
"Record downloaded (as XML, CSV or JSON)"
Created once per record whenever records are delivered through the export machinery — e.g. exports to JSON/XML/CSV/XLSX/HTML and OAI-PMH harvesting. The record references are set on each event. User-logged.
info (for exports):
export_type— the export formatexport_id— the export, if it was savedexport_user_id— who started the exportexport_producer,export_has_schedules— export detailsurl— the request URL
info (for OAI-PMH): url, oai_pmh (the harvesting request) and any keys the harvester passed in the event.info query parameter.
EXPORT_DOWNLOAD
"Export downloaded"
Created when an export result is downloaded — a single file or the whole export packed as ZIP or tar.gz. User-logged.
info:
state— the export statusurl— the request pathbytes_count— bytes deliveredexport—name,is_archive,format(file,ziportar_gz)files— the contained files (path, and for assets_idandbytes)
EXPORT_DOWNLOAD_ERROR
Created when an export download fails before or during delivery. User-logged.
info: same as EXPORT_DOWNLOAD, plus:
error— the error message
LOGIN_LOGOUT
LDAP_DEBUG / SAML_DEBUG
Created after a successful LDAP or SAML login when debug logging is enabled in the login method's configuration. User-logged.
info:
log— the full log of the login: connection, user lookup, attribute mapping, group assignment, user synchronization
LDAP_ERROR / SAML_ERROR
Created when an LDAP or SAML login fails at any stage (connection, bind, user search, group lookup, user synchronization). User-logged.
info:
log— the log of the login up to and including the error
USER_LOGIN
"User Logged In"
Created after every successful login, with any method (password, email, LDAP, SAML, anonymous/guest, collection link, action code, "keep me logged in", plugin user). With two-factor authentication enabled, the event is created only after the second factor was completed. The acting user is always stored.
info:
method— the authentication methodclient— the OAuth2 client usedgroups— the user's groupstwo_factor— the second factor used (email,totp,passkey), or<none>if 2FA was active but not required for this login; omitted when 2FA is disabledlogin/email— the login name or email address used (depending on the method)loginused— for root-on-behalf logins (root/passwordform): the root login usedidp— the identity provider URL (SAML logins)plugin_user,plugin_user_id— for plugin-provided users (e.g. the anonymous user of a shared collection link): the plugin user reference and ID
USER_LOGIN_FAILED
Created when a login fails because of wrong credentials, or when an account is temporarily locked after too many failed attempts. Other failure reasons (unknown user, disabled account, license problems) do not create this event. The acting user is always stored (when known).
info:
method— the authentication method attemptederror— why the login failedattempt— the failed-attempt count within the current blocking window (when the user is known)groups— the user's groups (empty if the user is unknown)
USER_LOGOUT
"User Logged Out"
Created when a user is logged out: by revoking their access token (/api/oauth2/revoke or /logout), by SAML single-logout, or when an administrator or the inactivity janitor archives, deletes or disables the user — or sets a login validity window that now excludes them. The acting user is always stored.
The keys in info depend on how the logout happened. A real-time logout broadcast — used by the frontend to drop the affected sessions to the login page, sent on a browser/user logout, a SAML single-logout, or a forced lock-out — carries:
scope— which sessions ended:browser(this browser and all its tabs) oruser(every session of the user, on all devices)user_id— the affected user's id (also placed ininfobecause the broadcast event stream omits the top-level user id)bound_browser— the browser id whose session ended (browser-scoped logout only)reason— why a forced lock-out logged the user out:archived,deleted,login_disabled,login_valid_from, orlogin_valid_to; absent for a user-initiated logout
A plain revocation of a token that is not tied to a browser session (e.g. an API or password-grant token) records instead:
client— the OAuth2 client of the revoked tokenmethod— the original authentication method, if knowngroups— the user's groupserror— only present if the revocation itself reported an error
PLUGIN
Plugins can declare their own event types in their manifest (custom_events). These types are registered when the plugin is loaded and behave like frontend events: they are posted through POST /api/v1/event, and their info is entirely defined by the plugin.
Last updated