{
  "factory": {
    "id": "abstract-real-jaas-login-module-with-backend",
    "type": "entaxy.security.jaas.loginmodule",
    "description": "",
    "isAbstract": true,
    "parent": "abstract-real-jaas-login-module",
    "label": "",
    "category": ""
  },
  "entaxy.security.jaas.loginmodule": {
    "backendFactoryClassName": "to.be.Replaced"
  },
  "fields": {
    "backendEnabled": {
      "type": "boolean",
      "displayName": "Enable User Management",
      "description": "A flag that determines whether user management functionalities are activated within the application. When checked it enables a user management panel in the UI, allowing for the creation, modification, and deletion of user accounts, as well as managing roles and permissions.",
      "required": true,
      "defaultValue": false
    },
    "backendFactoryClassName": {
      "type": "String",
      "required": true,
      "isHidden": true,
      "defaultValue": {
        "@CALCULATED": {
          "lazy": false,
          "expression": "${#FACTORY#.#TYPEINFO#.backendFactoryClassName}"
        }
      }
    },
    "__backendFactory": {
      "type": "entaxy.security.jaas.loginmodule",
      "__isRef": true,
      "required": true,
      "isHidden": true,
      "__isRefByValueOnly": true,
      "@NO_LOOKUP": true,
      "@INTERNAL": true,
      "defaultValue": {
        "type": "entaxy.security.jaas.loginmodule",
        "factoryId": "#OWNER#",
        "outputType": "backendFactory",
        "scope": "private",
        "properties": {
          "backendEnabled": {
            "@CALCULATED": {
              "expression": "${#OWNER#.properties.backendEnabled}",
              "lazy": false,
              "resultType": "boolean",
              "allowObjects": false
            }
          },
          "backendFactoryClassName": {
            "@CALCULATED": {
              "expression": "${#OWNER#.properties.backendFactoryClassName}",
              "lazy": false,
              "allowObjects": false
            }
          }
        }
      }
    },
    "##publish": {
      "defaultValue": {
        "backendEnabled": {
          "@CALCULATED": {
            "lazy": false,
            "expression": "${properties.backendEnabled}"
          }
        }
      }
    }
  },
  "outputs": {
    "init": {
      "fields": {
        "backendEnabled": {},
        "backendFactoryClassName": {},
        "__backendFactory": {}
      },
      "config": {
        "@_SKIP_PROVIDE": false,
        "configurable": false
      }
    },
    "backendFactory": {
      "fields": {
        "backendEnabled": {},
        "backendFactoryClassName": {}
      },
      "config": {
        "@SKIP_PUBLISH": true,
        "configurable": false
      },
      "scopes": [
        "private"
      ]
    }
  }
}
