# Actor Registration and Roles

The DOVU OS Workflow Engine relies on actors to execute, manage, and interact with workflows. These actors are users who are assigned roles such as project owners, verifiers, or registries. The **Actor Registration and Roles** module provides tools to onboard and manage these users, ensuring that workflows operate smoothly and securely.

**Key Features**

1. **Actor Registration**: Create a new actor by registering them with a unique email, name, and role. This step is essential for adding users who will interact with the workflow engine.
2. **Authentication**: Authenticate actors via the login endpoint, enabling secure access to the system and generating authorization tokens for API requests.
3. **Role Assignment**: Assign specific roles to actors, determining their permissions and responsibilities within workflows.
4. **Linking to Workflow Instances**: Attach users to specific workflow instances, granting them access to manage or interact with specific tasks.

**How It Works**

* Actors are registered with a predefined role, such as **supplier**, **verifier**, or **registry**.
* Authentication tokens are used to ensure secure access to the system.
* Each actor can be linked to one or more workflow instances, defining their specific responsibilities.

**Use Cases**

* **Onboarding New Users**: Register project developers or verifiers to manage and approve workflow stages.
* **Assigning Workflow Roles**: Ensure that only authorized actors can access or modify workflows.
* **Securing Access**: Use authentication tokens to safeguard interactions with the API.

With these endpoints, enterprises can easily manage user access, assign roles, and integrate actors into the workflow lifecycle.

{% hint style="info" %}
This currently is a longer running query when workflows are connected to a guardian instance, this is a piece that we will be working on to optimise the developer experience.
{% endhint %}

***

{% openapi src="<https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi(1).yaml?alt=media&token=2b22f069-e425-4f40-8e6d-176ba0f1db49>" path="/api/v1/register" method="post" %}
[DOVU OS.openapi(1).yaml](https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi\(1\).yaml?alt=media\&token=2b22f069-e425-4f40-8e6d-176ba0f1db49)
{% endopenapi %}

{% openapi src="<https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi(1).yaml?alt=media&token=2b22f069-e425-4f40-8e6d-176ba0f1db49>" path="/api/v1/login" method="post" %}
[DOVU OS.openapi(1).yaml](https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi\(1\).yaml?alt=media\&token=2b22f069-e425-4f40-8e6d-176ba0f1db49)
{% endopenapi %}

{% openapi src="<https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi(1).yaml?alt=media&token=2b22f069-e425-4f40-8e6d-176ba0f1db49>" path="/api/v1/user-workflow-instances" method="post" %}
[DOVU OS.openapi(1).yaml](https://116257023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMgfYR4iNMhdWqFrJ1ibn%2Fuploads%2Fp3lUNEaW0nFPV2ZCMt2b%2FDOVU%20OS.openapi\(1\).yaml?alt=media\&token=2b22f069-e425-4f40-8e6d-176ba0f1db49)
{% endopenapi %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dovu.earth/workflow-engine/editor/actor-registration-and-roles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
