> For the complete documentation index, see [llms.txt](https://docs.inverter.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inverter.network/concepts/protocol-concepts/workflow-model/authorizer.md).

# Authorizer

### Importance of the Authorizer Module

The Authorizer module type is integral to managing permissions and authorizations within the Inverter Protocol workflows. It ensures that interactions adhere to predefined authorization policies, protecting the system from unauthorized access and enhancing security.

### Implementation Interface

The Authorizer module implements the `IAuthorizer` interface, which primarily includes the function `hasRole(role, address)`. This function checks if a specific address holds a designated role, thereby authorizing it to perform certain actions within the system.

For examples of the Authorizer Module implementations, please refer to the [Modules Library Page](/concepts/protocol-concepts/module-library.md).

### General Authorizer Features and Functionalities

* **Role-Based Access Control (RBAC)**: Implements a dual-tiered system where global roles affect the entire system and module-specific roles are confined to particular functionalities.
* **Dynamic Permission Management**: Allows for the dynamic updating and management of roles to adapt to evolving system needs and governance changes.
* **Custom Role Support**: Supports the creation of custom roles to cater to specific operational requirements, facilitating unique governance structures.
