# AsanaClientService

### Description

This service manages credentials to Asana, and provides a common API for the processors to work on the user specified workspace (or organization).

### Using a custom Asana instance

If you have an Asana instance running on your custom domain, then you need to specify the API URL of that instance. For example: `https://asana.example.com/api/1.0`

### Authentication

Asana supports a few methods of authenticating with the API. Simple cases are usually handled with a personal access token, while multi-user apps utilize OAuth.
Asana provides three ways to authenticate:

- OAuth
- Personal access token (PAT)
- OpenID Connect

Note: This service currently only supports Personal access tokens as authentication method.
Personal access tokens (PATs) are a useful mechanism for accessing the API in scenarios where OAuth would be considered overkill, such as access from the command line and personal scripts or applications. A user can create many, but not unlimited, personal access tokens. When creating a token, you must give it a description to help you remember what you created the token for.
Remember to keep your tokens secret and treat them just like passwords. Your tokens act on your behalf when interacting with the API.
You can generate a personal access token from the Asana developer console. See the Authentication quick start for detailed instructions on getting started with PATs.

### Workspaces & Organizations

A workspace is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace.
An organization is a special kind of workspace that represents a company. In an organization, you can group your
projects into teams. You can read more about how organizations work on the Asana Guide.
You can read more about how objects are organized in Asana in the developer guide.

### Further reading about Asana

- Asana Academy
- Asana Guide
- Asana Developer Documentation
- Java client library for the Asana API