Files
espocrm/schema/metadata/recordDefs.json
Yuri Kuznetsov 107571a544 fix schema
2025-09-29 10:51:14 +03:00

291 lines
12 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://www.espocrm.com/schema/metadata/recordDefs.json",
"title": "recordDefs",
"description": "Record framework definitions for a scope.",
"type": "object",
"properties": {
"duplicateWhereBuilderClassName": {
"description": "A class for building a where clause for duplicate checking. Should implement Espo\\Core\\Duplicate\\WhereBuilder interface.",
"type": "string"
},
"defaultsPopulatorClassName": {
"description": "Populates default values when creating a record. Should implement Espo\\Core\\Record\\Defaults\\Populator. As of v8.2.",
"type": "string"
},
"readLoaderClassNameList": {
"description": "Classes to load additional fields for an entity. Should implement Espo\\Core\\FieldProcessing\\Loader interface.",
"type": "array",
"items": {
"type": "string"
}
},
"listLoaderClassNameList": {
"description": "Classes to load additional fields for an entity for the list view. Should implement Espo\\Core\\FieldProcessing\\Loader interface.",
"type": "array",
"items": {
"type": "string"
}
},
"saverClassNameList": {
"description": "Classes to save additional fields. Should implement Espo\\Core\\FieldProcessing\\Saver interface.",
"type": "array",
"items": {
"type": "string"
}
},
"selectApplierClassNameList": {
"description": "Classes for additional handling of a select query. Use for joining additional fields. Do not use for access control logic. Should implement Espo\\Core\\Select\\Applier\\AdditionalApplier interface.",
"type": "array",
"items": {
"type": "string"
}
},
"actions": {
"description": "Actions. E.g. merge, convertCurrency.",
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"disabled": {
"description": "Disables the action.",
"type": "boolean"
},
"allowed": {
"description": "Allows the action for non-object scopes.",
"type": "boolean"
},
"implementationClassName": {
"description": "A class name, should implement Espo\\Core\\Action\\Action interface.",
"type": "string"
}
}
}
},
"massActions": {
"description": "Mass actions. E.g. update, delete, convertCurrency, follow, unfollow, recalculateFormula.",
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"disabled": {
"description": "Disables the action.",
"type": "boolean"
},
"allowed": {
"description": "Allows the action for non-object scopes.",
"type": "boolean"
},
"implementationClassName": {
"description": "A class name, should implement Espo\\Core\\MassAction\\MassAction interface.",
"type": "string"
}
}
}
},
"actionsDisabled": {
"description": "Disable actions in the back-end.",
"type": "boolean"
},
"massActionsDisabled": {
"description": "Disable mass actions in the back-end.",
"type": "boolean"
},
"exportDisabled": {
"description": "Disable export regardless ACL.",
"type": "boolean"
},
"actionHistoryDisabled": {
"description": "Disable Action History processing. As of v8.2.",
"type": "boolean"
},
"updateDuplicateCheck": {
"description": "If true, then duplicate checking will be processed while updating a record.",
"type": "boolean"
},
"forceSelectAllAttributes": {
"type": "boolean",
"description": "Always select all attributes when calling find. As of v8.2."
},
"mandatoryAttributeList": {
"description": "Mandatory attributes to be selected when calling find. As of v8.2.",
"type": "array",
"items": {"type": "string"}
},
"duplicateLinkList": {
"description": "Links to be copied when duplicating a record. As of v8.2.",
"type": "array",
"items": {"type": "string"}
},
"relationships": {
"description": "Relationship parameters. Key-object pairs, where keys are link names.",
"type": "object",
"additionalProperties": {
"type": "object",
"description": "A link.",
"properties": {
"countDisabled": {
"type": "boolean",
"description": "Disable total count. As of v8.2."
},
"selectAccessControlDisabled": {
"description": "Disable access control when listing related records; only access to a parent record will be checked.",
"type": "boolean"
},
"linkRequiredAccess": {
"description": "Access to a current record that is needed to be able to link and unlink records.",
"type": "string",
"enum": ["create", "read", "edit", "delete", "stream"]
},
"linkRequiredForeignAccess": {
"description": "Access to a foreign record that is needed to be able to link and unlink.",
"type": "string",
"enum": ["create", "read", "edit", "delete", "stream"]
},
"linkForeignAccessCheckDisabled": {
"description": "Disable foreign record access check when linking.",
"type": "boolean"
},
"linkCheckDisabled": {
"description": "Disable a link-check functionality when linking through link or link-multiple field.",
"type": "boolean"
},
"mandatoryAttributeList": {
"description": "Mandatory attributes to be selected when find related. As of v8.2.",
"type": "array",
"items": {"type": "string"}
},
"massLink": {
"type": "boolean",
"description": "Allow mass link. As of v8.2."
},
"linkOnlyNotLinked": {
"type": "boolean",
"description": "Allow linking only if a record is not linked with any. As of v8.3."
}
}
}
},
"loadAdditionalFieldsAfterUpdate": {
"type": "boolean",
"description": "Load additional fields after update. Needed for cases when additional fields need to be re-loaded since they are not actual after update."
},
"createInputFilterClassNameList": {
"description": "Create input filters. Should implement Espo\\Core\\Record\\Input\\Filter. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"updateInputFilterClassNameList": {
"description": "Update input filters. Should implement Espo\\Core\\Record\\Input\\Filter. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"outputFilterClassNameList": {
"description": "Output filters. Should implement Espo\\Core\\Record\\Output\\Filter. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeReadHookClassNameList": {
"description": "Before-read hooks. Should implement the Espo\\Core\\Record\\Hook\\ReadHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"earlyBeforeCreateHookClassNameList": {
"description": "Early-before-create hooks. Run before validation. Should implement the Espo\\Core\\Record\\Hook\\CreateHook or Espo\\Core\\Record\\Hook\\SaveHook interface. As of v9.0.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeCreateHookClassNameList": {
"description": "Before-create hooks. Should implement the Espo\\Core\\Record\\Hook\\CreateHook or Espo\\Core\\Record\\Hook\\SaveHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"afterCreateHookClassNameList": {
"description": "After-create hooks. Should implement the Espo\\Core\\Record\\Hook\\CreateHook or Espo\\Core\\Record\\Hook\\SaveHook interface. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"earlyBeforeUpdateHookClassNameList": {
"description": "Early-before-update hooks. Run before validation. Should implement the Espo\\Core\\Record\\Hook\\UpdateHook or Espo\\Core\\Record\\Hook\\SaveHook interface. As of v9.0.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeUpdateHookClassNameList": {
"description": "Before-update hooks. Should implement the Espo\\Core\\Record\\Hook\\UpdateHook or Espo\\Core\\Record\\Hook\\SaveHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"afterUpdateHookClassNameList": {
"description": "Before-update hooks. Should implement the Espo\\Core\\Record\\Hook\\UpdateHook or Espo\\Core\\Record\\Hook\\SaveHook interface. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeDeleteHookClassNameList": {
"description": "Before-delete hooks. Should implement the Espo\\Core\\Record\\Hook\\DeleteHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"afterDeleteHookClassNameList": {
"description": "Before-delete hooks. Should implement the Espo\\Core\\Record\\Hook\\DeleteHook interface. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeLinkHookClassNameList": {
"description": "Before-link hooks. Should implement the Espo\\Core\\Record\\Hook\\LinkHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"beforeUnlinkHookClassNameList": {
"description": "Before-unlink hooks. Should implement the Espo\\Core\\Record\\Hook\\UnlinkHook interface.",
"type": "array",
"items": {
"type": "string"
}
},
"afterLinkHookClassNameList": {
"description": "After-link hooks. Should implement the Espo\\Core\\Record\\Hook\\LinkHook interface. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"afterUnlinkHookClassNameList": {
"description": "After-unlink hooks. Should implement the Espo\\Core\\Record\\Hook\\UnlinkHook interface. As of v8.2.",
"type": "array",
"items": {
"type": "string"
}
},
"deletedRestorerClassName": {
"type": "string",
"description": "A deleted record restorer. Should implement `Espo\\Core\\Record\\Deleted\\Restorer`. As of v9.2."
}
}
}