{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://www.espocrm.com/schema/metadata/authenticationMethods.json", "title": "authenticationMethods", "description": "An authentication method.", "type": "object", "properties": { "implementationClassName": { "type": "string", "description": "A login implementation. Should implement `Espo\\Core\\Authentication\\Login`." }, "api": { "type": "boolean", "description": "Defines that the method is to be used for pure API request, not from the front-end." }, "credentialsHeader": { "type": "string", "description": "A header that is supposed to contain credentials. Actual only for API methods.", "examples": [ "Authorization", "X-Api-Key" ] }, "credentialsHeaderScheme": { "type": "string", "description": "An authorization header scheme. The header value should start with the specified value for this method to be used. Of omitted, the header is still checked for match. As of v10.1.", "examples": [ "Bearer" ] }, "login": { "type": "object", "description": "A framework providing the ability to call custom code on Sign-In button click on the login page.", "properties": { "handler": { "type": "string", "description": "A front-end class (should extend the abstract class handlers/login)." }, "fallback": { "type": "boolean", "description": "Defines that a regular username/password login method is also available on the login page." }, "fallbackConfigParam": { "type": "string", "description": "A config parameter name to be used to check whether fallback login is allowed." }, "portal": { "type": "boolean", "description": "Whether the handler will be available for portals, (bool)." }, "portalConfigParam": { "type": "string", "description": "A config parameter name to be used to check whether the handler will be available for portals." }, "data": { "type": "object", "additionalProperties": true, "description": "Arbitrary data to be passed to the handler. Can be actual as application metadata is not yet available on the login page." } } }, "portalDefault": { "type": "boolean", "description": "If true, the method will be applied for portals when the method is selected as the default in the settings and the portal does not have a specific authentication provider." }, "settings": { "type": "object", "description": "Defines config parameters and a form on the admin UI.", "properties": { "isAvailable": { "type": "boolean", "description": "Whether the method is available in the settings." }, "layout": { "description": "A layout.", "$ref": "./../layouts/detail.json#/definitions/panel" }, "fieldList": { "description": "Settings fields.", "type": "array", "items": { "type": "string" } }, "dynamicLogic": { "type": "object", "description": "Dynamic logic.", "properties": { "fields": { "type": "object", "description": "Fields.", "additionalProperties": { "type": "object", "description": "A field.", "properties": { "visible": { "description": "Conditions making the field visible.", "$ref": "./logicDefs.json#/definitions/dynamicLogicVisible" }, "required": { "$ref": "./logicDefs.json#/definitions/dynamicLogicRequired" }, "readOnly": { "$ref": "./logicDefs.json#/definitions/dynamicLogicReadOnly" }, "invalid": { "$ref": "./logicDefs.json#/definitions/dynamicLogicInvalid" } } } } } } } }, "provider": { "type": "object", "properties": { "isAvailable": { "type": "boolean", "description": "Whether is available in the Authentication Provider entity." } } } } }