Reference
Asana
Set up Asana OAuth for project and task management
Overview
Section titled “Overview”Connect your users to Asana for project management, task tracking, and team collaboration.
| Property | Value |
|---|---|
| Provider ID | asana |
| Category | Productivity |
| PKCE | Supported |
| Token refresh | Automatic |
| Redirect URI | Shown in Developer Portal |
Step 1: Create an Asana OAuth App
Section titled “Step 1: Create an Asana OAuth App”Go to the Asana Developer Console
Navigate to app.asana.com/0/my-apps (My apps) and sign in.
Create a new app
Click New app, enter the app name, choose API app as the app type, accept the Asana API Terms, and click Create.
Add the redirect URL
Open the OAuth tab and add the Redirect URI from the Developer Portal under Redirect URLs (Add redirect URL).
Turn on Full permissions
Under Permission scopes, turn on Full permissions. Alter requests Asana’s default scope, which Asana only grants to an app registered for Full permissions.
Get credentials
Copy the Client ID and Client Secret from App credentials on the OAuth tab.
Step 2: Add to Alter Vault
Section titled “Step 2: Add to Alter Vault”Open the Developer Portal
Go to portal.alterauth.com and navigate to the application.
Add Asana provider
Go to OAuth Providers > Add Provider > Asana.
Enter credentials
- Client ID: Paste your Asana Client ID
- Client Secret: Paste your Asana Client Secret
Select scopes
Choose the scopes the application needs.
Save
Click Save. The provider is now active.
Available Scopes
Section titled “Available Scopes”| Scope | Description |
|---|---|
default | Access to all Asana resources the user can access |
- Asana uses a single
defaultscope that grants access to all resources the authenticated user has permissions for. - Asana’s granular scopes (
tasks:read,projects:read, …) are mutually exclusive withdefault(Full permissions): an app that leaves Full permissions off is answered withforbidden_scopesat consent time. Alter requestsdefault, so the toggle must stay on; the granular scope set is not offered. - See the Asana OAuth documentation for more details on authentication and available endpoints.
Policy-cataloged operations
Section titled “Policy-cataloged operations”Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.
| Operation ID | Families | Method | Provider path |
|---|---|---|---|
deleteAttachment | delete | DELETE | /attachments/{attachment_gid} |
deleteCustomField | delete | DELETE | /custom_fields/{custom_field_gid} |
deleteGoal | delete | DELETE | /goals/{goal_gid} |
deletePortfolio | delete | DELETE | /portfolios/{portfolio_gid} |
deleteProject | delete | DELETE | /projects/{project_gid} |
deleteProjectBrief | delete | DELETE | /project_briefs/{project_brief_gid} |
deleteProjectStatus | delete | DELETE | /project_statuses/{project_status_gid} |
deleteSection | delete | DELETE | /sections/{section_gid} |
deleteStatus | delete | DELETE | /status_updates/{status_gid} |
deleteStory | delete | DELETE | /stories/{story_gid} |
deleteTag | delete | DELETE | /tags/{tag_gid} |
deleteTask | delete | DELETE | /tasks/{task_gid} |
deleteWebhook | admin, delete | DELETE | /webhooks/{webhook_gid} |
removeCustomFieldSettingForPortfolio | admin, delete, write | POST | /portfolios/{portfolio_gid}/removeCustomFieldSetting |
removeCustomFieldSettingForProject | admin, delete, write | POST | /projects/{project_gid}/removeCustomFieldSetting |
removeDependenciesForTask | delete, write | POST | /tasks/{task_gid}/removeDependencies |
removeDependentsForTask | delete, write | POST | /tasks/{task_gid}/removeDependents |
removeFollowerForTask | delete, write | POST | /tasks/{task_gid}/removeFollowers |
removeFollowers | delete, write | POST | /goals/{goal_gid}/removeFollowers |
removeProjectForTask | delete, write | POST | /tasks/{task_gid}/removeProject |
removeTagForTask | delete, write | POST | /tasks/{task_gid}/removeTag |
createProjectForTeam | admin, write | POST | /teams/{team_gid}/projects |
createProjectForWorkspace | admin, write | POST | /workspaces/{workspace_gid}/projects |
createTagForWorkspace | admin, write | POST | /workspaces/{workspace_gid}/tags |
createTeam | admin, write | POST | /teams |
createWebhook | admin, write | POST | /webhooks |
addDependenciesForTask | write | POST | /tasks/{task_gid}/addDependencies |
addDependentsForTask | write | POST | /tasks/{task_gid}/addDependents |
addFollowersForTask | write | POST | /tasks/{task_gid}/addFollowers |
addProjectForTask | write | POST | /tasks/{task_gid}/addProject |
addTagForTask | write | POST | /tasks/{task_gid}/addTag |
addTaskForSection | write | POST | /sections/{section_gid}/addTask |
createEnumOptionForCustomField | write | POST | /custom_fields/{custom_field_gid}/enum_options |
createGoalMetric | write | POST | /goals/{goal_gid}/setMetric |
getDependenciesForTask | read | GET | /tasks/{task_gid}/dependencies |
getDependentsForTask | read | GET | /tasks/{task_gid}/dependents |
getProjectsForTask | read | GET | /tasks/{task_gid}/projects |
getStoriesForTask | read | GET | /tasks/{task_gid}/stories |
getSubtasksForTask | read | GET | /tasks/{task_gid}/subtasks |
getTagsForTask | read | GET | /tasks/{task_gid}/tags |