/api/v1/config
Administrators can define base configuration using this API. fylr has a basic set of configuration items which are in the core system, such as the name of the instance, administrator's main address, language definitions and so on.
Frontends are required to implement a generic form editor for base configuration items. The list of items can be retrieved using the config/list API.
This list is not stable and can be changed without API change in any new version of fylr. Plugins can extend the list of configuration items. So, depending on the list of loaded plugins in fylr, the list has a various number of items.
GET /config — Get all base configuration
Any authenticated user may read the config; items the session is not
permitted to read are filtered out of the response rather than causing a
403. The request itself is never rejected for lack of system.config.
Differs from easydb 5: reading the config does not require the
system.config system right (in easydb 5 the GET config call requires
system.config); fylr instead filters out the items the session may not
read.
Access token in the Authorization header:
Authorization: Bearer <token>.
The response contains the base configuration values. Items the session is not permitted to read are omitted.
No authenticated user. The request must carry a valid access token.
{
"plugin": {
"formula-columns": {
"config": {
"api_user": {
"_basetype": "user",
"user": {
"_id": 1
}
}
}
}
},
"system": {
"config": {
"appearance": {
"background_color": "text",
"brand_color": "text",
"favicon": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"login_background": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"logo": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"logo_external_url": {
"de-DE": "text",
"en-US": "text"
},
"tag_colors": [
{
"tag_color": "text"
}
],
"tag_icons": [
{
"fa-icon": "text"
}
],
"welcome_splash": "custom_logo"
},
"colorprofiles": {
"profiles": [
{
"profile": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"profilename": "text"
}
]
},
"custom_data_type_updater": {
"active": true
},
"custom_version_presets": {
"value": {
"presets": [
{
"custom": {
"watermark": false,
"quality": "low",
"format": "keep",
"colorspace": "text",
"colorprofile": "",
"size": "keep",
"custom_size": "dimension_max",
"dpi": 0,
"custom_size_pixel": 0,
"custom_width_pixel": 0,
"custom_height_pixel": 0,
"transform": {
"rotate-x": 0,
"rotate-y": 0,
"rotate-z": 0,
"crop": {
"top": 0,
"left": 0,
"width": 0,
"height": 0
}
}
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"name": "text"
}
]
}
},
"deep_link_access": {
"allow_access_by_column": true,
"allow_access_by_id": true,
"enabled": true,
"iiif_default_links": true,
"iiif_links": [
{
"html_code": "text",
"label": {
"de-DE": "text",
"en-US": "text"
}
}
],
"iiif_required_statement": {
"label": {
"de-DE": "text",
"en-US": "text"
},
"value": {
"de-DE": "text",
"en-US": "text"
}
},
"include_parents": true,
"merge_linked_objects": "all",
"merge_max_depth": 1
},
"detail_deep_link": {
"use_system_object_id": true
},
"email": {
"admin_emails": [
{
"email": "name@gmail.com"
}
],
"from": "name@gmail.com",
"signature": {
"de-DE": "text",
"en-US": "text"
}
},
"email_server": {
"cram_md5_auth": {
"password": "text",
"username": "text"
},
"helo_domain": "text",
"insecure_skip_verify": true,
"login_auth": {
"password": "text",
"username": "text"
},
"plain_auth": {
"identity": "text",
"password": "text",
"username": "text"
},
"server_addr": "text",
"type": "off"
},
"export": {
"xslts": [
{
"content_type": "text",
"description": {
"de-DE": "text",
"en-US": "text"
},
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"namespace": "text",
"oai_pmh_prefix": "text",
"schema": "text",
"use_for_api_objects": true,
"use_for_oai_pmh": true,
"xpath_query": "text",
"xslt": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
}
]
},
"export_scheduler": {
"active": true
},
"file_url_expire": {
"deep_link_days": 1,
"default_days": 1,
"max_days": 1,
"oai_pmh_days": 1
},
"indexer": {
"default_analyzer": {
"icu_folding": true
}
},
"janitor": {
"active": true,
"event_remote_addr_expire_days": 1,
"events": {
"expire_days_ADMIN": 1,
"expire_days_DOWNLOAD": 1,
"expire_days_EXPORT": 1,
"expire_days_FRONTEND": 1,
"expire_days_INDEX": 1,
"expire_days_LOGIN_LOGOUT": 1,
"expire_days_PLUGIN": 1,
"expire_days_SYSTEM": 1,
"expire_days_TASK": 1,
"expire_days_UPLOAD": 1
},
"file_expire_days": 1,
"object_and_file_removal": {
"allow_overwrite": true,
"file_link_delete": {
"keep_count_history_versions": 1,
"keep_days_history_versions": 1
},
"object_purge": {
"min_deleted_days": 1
}
},
"users": {
"archive_nonactive_after_days": 1,
"archive_types": [
"anonymous"
],
"delete_archived_after_days": 1
}
},
"languages": {
"database": [
{
"analyzer": {
"icu_folding": true,
"synonyms": "text",
"synonyms_file": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
},
"date_format": "ca",
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"number_format": "ca",
"time_format": "cldr",
"value": "text"
}
],
"frontend": [
"da-DK"
]
},
"ldap": {
"bindpassword": "text",
"bindusername": "text",
"connections": [
{
"tls_ca_cert": "text",
"tls_insecure": true,
"tls_start": true,
"url": "text"
}
],
"debug": true,
"groupbasedn": "text",
"groupfilter": "text",
"groupmapping": [
{
"group": "text"
}
],
"userbasedn": "text",
"userfilter": "text",
"usermapping": [
{
"key": "address_supplement",
"value": "text"
}
],
"userupdatecolumn": "email"
},
"license": {
"license": {
"createdAt": "2026-01-01T00:00:00.000Z",
"key": "text",
"issuer": "text",
"holder": "text",
"type": "text",
"edition": "text",
"domains": [
"text"
],
"notes": "text",
"valid": {
"from": "2026-01-01T00:00:00.000Z",
"to": "2026-01-01T00:00:00.000Z"
},
"capabilities": {},
"plugins": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
},
"loca": {
"google_csv": [
{
"gid": 1,
"key": "text"
}
],
"google_overload_csv": true
},
"location_defaults": {
"backups": "file",
"originals": "file",
"versions": "file"
},
"logging": {
"level": "",
"timings": true
},
"login": {
"guest": true,
"info": {
"de-DE": "text",
"en-US": "text"
},
"keep_login": "30d",
"label": {
"de-DE": "text",
"en-US": "text"
},
"placeholder": {
"de-DE": "text",
"en-US": "text"
}
},
"name": {
"description": {
"de-DE": "text",
"en-US": "text"
},
"internal_name": "text",
"title": {
"de-DE": "text",
"en-US": "text"
}
},
"notification_scheduler": {
"active": true
},
"oai_pmh": {
"admin_email": [
{
"email": "name@gmail.com"
}
],
"enabled": true,
"include_parents": true,
"merge_linked_objects": "all",
"merge_max_depth": 1,
"namespace_identifier": "text",
"records_limit": 1,
"repository_name": "text",
"tagfilter_deleted": {
"all": [
1
],
"any": [
1
],
"not": [
1
]
},
"tagfilter_sets": [
{
"set_name": "text",
"tagfilter": {
"all": [
1
],
"any": [
1
],
"not": [
1
]
}
}
]
},
"oauth2": {
"clients": [
{
"name": "text",
"redirect_uris": [
{
"url": "text"
}
],
"secret": "text"
}
],
"expirations": {
"access_token": "text",
"refresh_token": "text"
}
},
"objectstore": {
"instance": "text",
"server": "text",
"uid": "text"
},
"openapi_spec_endpoint": {
"active": true
},
"openid": {
"userinfo": [
"address_supplement"
]
},
"password": {
"blockclient": {
"attempts": 1,
"minutes": 1
},
"check": [
{
"regexp": "text"
}
],
"hint": {
"de-DE": "text",
"en-US": "text"
},
"showforgot": true
},
"produce_config": {
"value": {
"classes": {
"audio": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"aac"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"aac"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"aac"
],
"group": "text",
"name": "text",
"params": {
"format": "aac"
},
"recipename": "text"
}
],
"watermark": true
},
"image": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"ai"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"ai"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"ai"
],
"group": "text",
"name": "text",
"params": {
"format": "jpg",
"resize_mode": "",
"size": 1,
"size_minimum": 1
},
"recipename": "text"
}
],
"watermark": true
},
"office": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"csv"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"csv"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"csv"
],
"group": "text",
"name": "text",
"params": {
"format": "jpg",
"resize_mode": "",
"size": 1
},
"recipename": "text"
}
],
"watermark": true
},
"video": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"3gp"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"3gp"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"3gp"
],
"group": "text",
"name": "text",
"params": {
"ffmpeg_params": "text",
"height": 1,
"height_minimum": 1,
"timeout": "text"
},
"recipename": "text"
}
],
"watermark": true
}
},
"custommetadata": {
"extensions": [
"3gp"
],
"includeversions": true,
"recipename": "_metadata:ocr"
},
"uploadallowunknown": true,
"uploadmaxfilesize": "text"
}
},
"publish": {
"collectors": [
{
"display_format": "name",
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"internalname": "text",
"logo": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"prefix": "text",
"type": "text",
"url": "text"
}
]
},
"purge": {
"allow_purge": true,
"purge_storage": true
},
"readonly": {
"enabled": true
},
"register": {
"enable": true,
"form": {
"address": "hide",
"company": "hide",
"department": "hide",
"displayname": "hide",
"first_name": "hide",
"last_name": "hide",
"phone": "hide",
"use_in_user_manager": true
},
"groups": [
{
"group": 1
}
],
"info": {
"de-DE": "text",
"en-US": "text"
}
},
"saml": {
"cert": "text",
"debug": true,
"entry_js": "text",
"groupmapping": [
{
"group": "text"
}
],
"idp_entity_id": "text",
"key": "text",
"ldap": {
"bindpassword": "text",
"bindusername": "text",
"connections": [
{
"tls_ca_cert": "text",
"tls_insecure": true,
"tls_start": true,
"url": "text"
}
],
"groupbasedn": "text",
"groupfilter": "text"
},
"loginlink": {
"de-DE": "text",
"en-US": "text"
},
"loginlink_internal": {
"de-DE": "text",
"en-US": "text"
},
"loginpreferred": true,
"loginredirect": true,
"signrequest": "",
"sp_entity_id": "text",
"url": "text",
"usermapping": [
{
"key": "address_supplement",
"value": "text"
}
],
"userupdatecolumn": "email"
},
"transition_webhook": {
"webhooks": [
{
"include_access_token": true,
"name": "text",
"secret": "text",
"send_authorization_header": true,
"timeout": 1,
"url": "text"
}
]
},
"two_factor": {
"allow_password_grant": true,
"enabled": true,
"methods": [
"email"
]
},
"user": {
"copy_to_event": [
"address_supplement"
],
"default_delete_policy": "archive",
"user_in_event_group": [
"ADMIN"
]
},
"webdav": {
"hotfolder": true,
"hotfolder_wait_sec": 1,
"read_write_access": true
}
}
}
}POST /config — Write all base configuration
Access token in the Authorization header:
Authorization: Bearer <token>.
If set to ignore_errors, the save persists the config despite
recoverable ("savable") errors in the base config, such as an LDAP
connection that fails to dial. A non-savable error still aborts the
save. Implied when confirm=yes.
Set to yes to acknowledge a pending confirmation (HTTP 202) task and
proceed with the save. When confirm=yes, config errors are also
ignored (equivalent to save=ignore_errors).
Answer to the re-index confirmation raised when the frontend or
database languages change (system.languages). skip = no re-index;
reindex = re-index in the background; reindex_block = re-index and
temporarily lock the frontend. Omitted = no re-index requested.
The response contains the base configuration values.
The save needs confirmation before it can complete. Two cases:
(1) the config has errors that are individually savable (for example
an LDAP connection that fails to dial) — resend with
save=ignore_errors (button name=save, value=ignore_errors);
(2) the frontend or database languages changed — resend with
reindex=skip|reindex|reindex_block and confirm=yes.
The config payload could not be processed. A malformed, empty or
(for DELETE) non-empty request body, or a body whose top-level
values are not maps, is rejected as code ServerGeneric. A payload
that parses but fails base-config validation carries a BaseConfig*
code: a parse failure is BaseConfigParse; a value that does not
match the expected type, or a rejection from a base-config consumer
(license, LDAP, mail address, ...), raises its own code
(BaseConfigInvalidLicense, BaseConfigLDAPDial,
BaseConfigInvalidMailAddress, ...). The error field carries the
human-readable message; branch on code.
No authenticated user. The request must carry a valid access token.
The authenticated user lacks the system.config system right required
to write the base configuration (system.root always satisfies it).
code is SystemRightRequired.
{
"plugin": {
"formula-columns": {
"config": {
"api_user": {
"_basetype": "user",
"user": {
"_id": 1
}
}
}
}
},
"system": {
"config": {
"appearance": {
"background_color": "text",
"brand_color": "text",
"favicon": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"login_background": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"logo": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"logo_external_url": {
"de-DE": "text",
"en-US": "text"
},
"tag_colors": [
{
"tag_color": "text"
}
],
"tag_icons": [
{
"fa-icon": "text"
}
],
"welcome_splash": "custom_logo"
},
"colorprofiles": {
"profiles": [
{
"profile": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"profilename": "text"
}
]
},
"custom_data_type_updater": {
"active": true
},
"custom_version_presets": {
"value": {
"presets": [
{
"custom": {
"watermark": false,
"quality": "low",
"format": "keep",
"colorspace": "text",
"colorprofile": "",
"size": "keep",
"custom_size": "dimension_max",
"dpi": 0,
"custom_size_pixel": 0,
"custom_width_pixel": 0,
"custom_height_pixel": 0,
"transform": {
"rotate-x": 0,
"rotate-y": 0,
"rotate-z": 0,
"crop": {
"top": 0,
"left": 0,
"width": 0,
"height": 0
}
}
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"name": "text"
}
]
}
},
"deep_link_access": {
"allow_access_by_column": true,
"allow_access_by_id": true,
"enabled": true,
"iiif_default_links": true,
"iiif_links": [
{
"html_code": "text",
"label": {
"de-DE": "text",
"en-US": "text"
}
}
],
"iiif_required_statement": {
"label": {
"de-DE": "text",
"en-US": "text"
},
"value": {
"de-DE": "text",
"en-US": "text"
}
},
"include_parents": true,
"merge_linked_objects": "all",
"merge_max_depth": 1
},
"detail_deep_link": {
"use_system_object_id": true
},
"email": {
"admin_emails": [
{
"email": "name@gmail.com"
}
],
"from": "name@gmail.com",
"signature": {
"de-DE": "text",
"en-US": "text"
}
},
"email_server": {
"cram_md5_auth": {
"password": "text",
"username": "text"
},
"helo_domain": "text",
"insecure_skip_verify": true,
"login_auth": {
"password": "text",
"username": "text"
},
"plain_auth": {
"identity": "text",
"password": "text",
"username": "text"
},
"server_addr": "text",
"type": "off"
},
"export": {
"xslts": [
{
"content_type": "text",
"description": {
"de-DE": "text",
"en-US": "text"
},
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"namespace": "text",
"oai_pmh_prefix": "text",
"schema": "text",
"use_for_api_objects": true,
"use_for_oai_pmh": true,
"xpath_query": "text",
"xslt": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
}
]
},
"export_scheduler": {
"active": true
},
"file_url_expire": {
"deep_link_days": 1,
"default_days": 1,
"max_days": 1,
"oai_pmh_days": 1
},
"indexer": {
"default_analyzer": {
"icu_folding": true
}
},
"janitor": {
"active": true,
"event_remote_addr_expire_days": 1,
"events": {
"expire_days_ADMIN": 1,
"expire_days_DOWNLOAD": 1,
"expire_days_EXPORT": 1,
"expire_days_FRONTEND": 1,
"expire_days_INDEX": 1,
"expire_days_LOGIN_LOGOUT": 1,
"expire_days_PLUGIN": 1,
"expire_days_SYSTEM": 1,
"expire_days_TASK": 1,
"expire_days_UPLOAD": 1
},
"file_expire_days": 1,
"object_and_file_removal": {
"allow_overwrite": true,
"file_link_delete": {
"keep_count_history_versions": 1,
"keep_days_history_versions": 1
},
"object_purge": {
"min_deleted_days": 1
}
},
"users": {
"archive_nonactive_after_days": 1,
"archive_types": [
"anonymous"
],
"delete_archived_after_days": 1
}
},
"languages": {
"database": [
{
"analyzer": {
"icu_folding": true,
"synonyms": "text",
"synonyms_file": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
},
"date_format": "ca",
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"number_format": "ca",
"time_format": "cldr",
"value": "text"
}
],
"frontend": [
"da-DK"
]
},
"ldap": {
"bindpassword": "text",
"bindusername": "text",
"connections": [
{
"tls_ca_cert": "text",
"tls_insecure": true,
"tls_start": true,
"url": "text"
}
],
"debug": true,
"groupbasedn": "text",
"groupfilter": "text",
"groupmapping": [
{
"group": "text"
}
],
"userbasedn": "text",
"userfilter": "text",
"usermapping": [
{
"key": "address_supplement",
"value": "text"
}
],
"userupdatecolumn": "email"
},
"license": {
"license": {
"createdAt": "2026-01-01T00:00:00.000Z",
"key": "text",
"issuer": "text",
"holder": "text",
"type": "text",
"edition": "text",
"domains": [
"text"
],
"notes": "text",
"valid": {
"from": "2026-01-01T00:00:00.000Z",
"to": "2026-01-01T00:00:00.000Z"
},
"capabilities": {},
"plugins": {
"ANY_ADDITIONAL_PROPERTY": null
}
}
},
"loca": {
"google_csv": [
{
"gid": 1,
"key": "text"
}
],
"google_overload_csv": true
},
"location_defaults": {
"backups": "file",
"originals": "file",
"versions": "file"
},
"logging": {
"level": "",
"timings": true
},
"login": {
"guest": true,
"info": {
"de-DE": "text",
"en-US": "text"
},
"keep_login": "30d",
"label": {
"de-DE": "text",
"en-US": "text"
},
"placeholder": {
"de-DE": "text",
"en-US": "text"
}
},
"name": {
"description": {
"de-DE": "text",
"en-US": "text"
},
"internal_name": "text",
"title": {
"de-DE": "text",
"en-US": "text"
}
},
"notification_scheduler": {
"active": true
},
"oai_pmh": {
"admin_email": [
{
"email": "name@gmail.com"
}
],
"enabled": true,
"include_parents": true,
"merge_linked_objects": "all",
"merge_max_depth": 1,
"namespace_identifier": "text",
"records_limit": 1,
"repository_name": "text",
"tagfilter_deleted": {
"all": [
1
],
"any": [
1
],
"not": [
1
]
},
"tagfilter_sets": [
{
"set_name": "text",
"tagfilter": {
"all": [
1
],
"any": [
1
],
"not": [
1
]
}
}
]
},
"oauth2": {
"clients": [
{
"name": "text",
"redirect_uris": [
{
"url": "text"
}
],
"secret": "text"
}
],
"expirations": {
"access_token": "text",
"refresh_token": "text"
}
},
"objectstore": {
"instance": "text",
"server": "text",
"uid": "text"
},
"openapi_spec_endpoint": {
"active": true
},
"openid": {
"userinfo": [
"address_supplement"
]
},
"password": {
"blockclient": {
"attempts": 1,
"minutes": 1
},
"check": [
{
"regexp": "text"
}
],
"hint": {
"de-DE": "text",
"en-US": "text"
},
"showforgot": true
},
"produce_config": {
"value": {
"classes": {
"audio": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"aac"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"aac"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"aac"
],
"group": "text",
"name": "text",
"params": {
"format": "aac"
},
"recipename": "text"
}
],
"watermark": true
},
"image": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"ai"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"ai"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"ai"
],
"group": "text",
"name": "text",
"params": {
"format": "jpg",
"resize_mode": "",
"size": 1,
"size_minimum": 1
},
"recipename": "text"
}
],
"watermark": true
},
"office": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"csv"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"csv"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"csv"
],
"group": "text",
"name": "text",
"params": {
"min_size": 1
},
"recipename": "text"
}
],
"watermark": true
},
"video": {
"name": "text",
"rightsmanagement": true,
"sourceversion": "text",
"standard": true,
"uploadenabledextensions": [
"3gp"
],
"uploadmaxfilesize": "text",
"versions": [
{
"custommetadata": {
"extensions": [
"3gp"
],
"recipename": "_metadata:ocr"
},
"displayname": {
"de-DE": "Deutscher text",
"en-US": "English text"
},
"extensions": [
"3gp"
],
"group": "text",
"name": "text",
"params": {
"ffmpeg_params": "text",
"height": 1,
"height_minimum": 1,
"timeout": "text"
},
"recipename": "text"
}
],
"watermark": true
}
},
"custommetadata": {
"extensions": [
"3gp"
],
"includeversions": true,
"recipename": "_metadata:ocr"
},
"uploadallowunknown": true,
"uploadmaxfilesize": "text"
}
},
"publish": {
"collectors": [
{
"display_format": "name",
"displayname": {
"de-DE": "text",
"en-US": "text"
},
"internalname": "text",
"logo": {
"_id": 1,
"frontend_prefs": {
"ANY_ADDITIONAL_PROPERTY": null
}
},
"prefix": "text",
"type": "text",
"url": "text"
}
]
},
"purge": {
"allow_purge": true,
"purge_storage": true
},
"readonly": {
"enabled": true
},
"register": {
"enable": true,
"form": {
"address": "hide",
"company": "hide",
"department": "hide",
"displayname": "hide",
"first_name": "hide",
"last_name": "hide",
"phone": "hide",
"use_in_user_manager": true
},
"groups": [
{
"group": 1
}
],
"info": {
"de-DE": "text",
"en-US": "text"
}
},
"saml": {
"cert": "text",
"debug": true,
"entry_js": "text",
"groupmapping": [
{
"group": "text"
}
],
"idp_entity_id": "text",
"key": "text",
"ldap": {
"bindpassword": "text",
"bindusername": "text",
"connections": [
{
"tls_ca_cert": "text",
"tls_insecure": true,
"tls_start": true,
"url": "text"
}
],
"groupbasedn": "text",
"groupfilter": "text"
},
"loginlink": {
"de-DE": "text",
"en-US": "text"
},
"loginlink_internal": {
"de-DE": "text",
"en-US": "text"
},
"loginpreferred": true,
"loginredirect": true,
"signrequest": "",
"sp_entity_id": "text",
"url": "text",
"usermapping": [
{
"key": "address_supplement",
"value": "text"
}
],
"userupdatecolumn": "email"
},
"transition_webhook": {
"webhooks": [
{
"include_access_token": true,
"name": "text",
"secret": "text",
"send_authorization_header": true,
"timeout": 1,
"url": "text"
}
]
},
"two_factor": {
"allow_password_grant": true,
"enabled": true,
"methods": [
"email"
]
},
"user": {
"copy_to_event": [
"address_supplement"
],
"default_delete_policy": "archive",
"user_in_event_group": [
"ADMIN"
]
},
"webdav": {
"hotfolder": true,
"hotfolder_wait_sec": 1,
"read_write_access": true
}
}
}
}GET /config/{path} — Read a single base-config item or nested value
Returns the config sub-tree addressed by the path — a config item object,
or a scalar when the path reaches a leaf value. Like GET /config, any
authenticated user may read; items the session is not permitted to read
are filtered out. The request is never rejected for lack of
system.config.
Differs from easydb 5: reading the config does not require the
system.config system right (in easydb 5 the GET config call requires
system.config).
Access token in the Authorization header:
Authorization: Bearer <token>.
Slash-separated config path, either system/config/<name>/... or
plugin/<plugin>/config/<name>/.... The leading segments select the
config item; any further segments address a nested value inside it. A
segment may itself contain a / encoded as %2F. Examples:
system/config/name, system/config/name/title/de-DE,
plugin/fylr_example/config/custom/data.
The config sub-tree (an object) or the scalar value addressed by the path.
The config item object, or the scalar value at the addressed leaf.
{"title":{"de-DE":"FYLR apitest [DE]","en-US":"FYLR apitest [EN]"}}No authenticated user. The request must carry a valid access token.
The addressed config path is unknown — no such system/plugin config
name, or the path resolves to no value. code is
BaseConfigPathNotFound.
{
"title": {
"de-DE": "FYLR apitest [DE]",
"en-US": "FYLR apitest [EN]"
}
}POST /config/{path} — Set a single base-config item or nested value
Sets the JSON value sent in the body at the addressed path, using an
sjson patch on the current stored value, then re-validates and re-saves
the whole affected config item. Because the whole item is re-saved, this
can raise the same 400 / 202 flows as POST /config. An empty body is
rejected. Requires system.config (system.root always satisfies it).
Access token in the Authorization header:
Authorization: Bearer <token>.
Slash-separated config path, either system/config/<name>/... or
plugin/<plugin>/config/<name>/.... The leading segments select the
config item; any further segments address a nested value inside it. A
segment may itself contain a / encoded as %2F. Examples:
system/config/name, system/config/name/title/de-DE,
plugin/fylr_example/config/custom/data.
The JSON value to set at the path. May be an object, array or scalar. Must not be empty.
{"a":"b"}The patched config sub-tree (the value now stored at the path).
The value stored at the addressed path after the patch.
{"a":"b"}The patch needs confirmation before it can complete — same cases as
POST /config (savable config errors → resend with
save=ignore_errors; language change → resend with
reindex=... and confirm=yes).
The config payload could not be processed. A malformed, empty or
(for DELETE) non-empty request body, or a body whose top-level
values are not maps, is rejected as code ServerGeneric. A payload
that parses but fails base-config validation carries a BaseConfig*
code: a parse failure is BaseConfigParse; a value that does not
match the expected type, or a rejection from a base-config consumer
(license, LDAP, mail address, ...), raises its own code
(BaseConfigInvalidLicense, BaseConfigLDAPDial,
BaseConfigInvalidMailAddress, ...). The error field carries the
human-readable message; branch on code.
No authenticated user. The request must carry a valid access token.
The authenticated user lacks the system.config system right required
to write the base configuration (system.root always satisfies it).
code is SystemRightRequired.
The addressed config path is unknown — no such system/plugin config
name, or the path resolves to no value. code is
BaseConfigPathNotFound.
{
"a": "b"
}DELETE /config/{path} — Remove a single base-config item or nested value
Removes the value at the addressed path (an sjson delete on the current
stored value), then re-saves the affected config item through the same
path as POST /config, so it can raise the same 400 / 202 flows.
Sending a request body is rejected (400, code ServerGeneric). A
DELETE on bare /config (no sub-path) always returns 404. Requires
system.config (system.root always satisfies it).
Access token in the Authorization header:
Authorization: Bearer <token>.
Slash-separated config path, either system/config/<name>/... or
plugin/<plugin>/config/<name>/.... The leading segments select the
config item; any further segments address a nested value inside it. A
segment may itself contain a / encoded as %2F. Examples:
system/config/name, system/config/name/title/de-DE,
plugin/fylr_example/config/custom/data.
The value at the path was removed. The body is the value at the path
after deletion — null for a removed leaf.
The value at the addressed path after deletion.
The re-save after deletion needs confirmation before it can complete
— same cases as POST /config (savable config errors → resend with
save=ignore_errors; language change → resend with reindex=... and
confirm=yes).
The config payload could not be processed. A malformed, empty or
(for DELETE) non-empty request body, or a body whose top-level
values are not maps, is rejected as code ServerGeneric. A payload
that parses but fails base-config validation carries a BaseConfig*
code: a parse failure is BaseConfigParse; a value that does not
match the expected type, or a rejection from a base-config consumer
(license, LDAP, mail address, ...), raises its own code
(BaseConfigInvalidLicense, BaseConfigLDAPDial,
BaseConfigInvalidMailAddress, ...). The error field carries the
human-readable message; branch on code.
No authenticated user. The request must carry a valid access token.
The authenticated user lacks the system.config system right required
to write the base configuration (system.root always satisfies it).
code is SystemRightRequired.
The addressed config path is unknown — no such system/plugin config
name, or the path resolves to no value. code is
BaseConfigPathNotFound.
No content
Last updated