Summary
- We’re introducing editor and viewer access levels for portfolios in the Asana web app and API.
- Previously, all portfolio members had admin-level access, and access levels couldn’t be modified via the API.
- Now, you’ll be able to set a default access level for public portfolios and manage user access levels via the API.
- These additional access levels provide more granular control over what an individual can do within a portfolio.
Behavior changes
- All public portfolios will have their default access level change to Editor with this rollout. Private portfolios do not have default access levels.
- If you manage a public portfolio but aren’t a member, add yourself before this rollout to retain your current access (e.g., renaming the portfolio, deleting a portfolio, and modifying privacy settings).
- After the rollout, you can also reset a portfolio’s
default_access_leveltoadminvia the API.
- Newly created portfolios will also have a
default_access_levelofeditorif adefault_access_levelis not explicitly set. - If you have Editor access to a portfolio, you will only be able to add another member with Editor access or below.
- This will also apply to the existing
POST /portfolios/{portfolio_gid}/addMembers
- This will also apply to the existing
Usage
/portfolios
When creating (POST) or updating (PUT), you may now specify default_access_level which can be one of:
admineditorviewer
Example:
POST /portfolios
{
"data": {
"name": "My portfolio",
"color": "dark-green",
"default_access_level": "editor",
"public": true,
"workspace": "167589"
}
}
/memberships
When creating a new portfolio membership (POST) or updating an existing one (PUT), you will be able to use the /memberships endpoint (in place of the existing and now deprecated /portfolio_memberships) and specify an access_level which can be one of:
admineditorviewer
Example:
POST /memberships
{
"data": {
"access_level": "editor",
"member": "12345",
"parent": "987654"
}
}
Migration
These API endpoints will continue to work but consider these updates to get the full benefits of new portfolio access levels.
POST /portfolios
- Consider: Explicitly set
default_access_leveltoadminto maintain current behavior. If this field is not set, the default will change toeditor.
POST /portfolios/{portfolio_gid}/addMembers
- Consider: Migrate to the new
POST /membershipsendpoint where you can explicitly set anaccess_level.
GET /portfolio_memberships
GET /portfolio_memberships/{portfolio_membership_id}
- Consider: Migrate to
GET /membershipsendpoints where you can fetch more detailed information about a user’s access level.
Timeline
We expect to begin a limited early access period in September and a broader gradual rollout during the month of October. We will update here with more information once we have it (including any major timeline shifts).
Thanks for taking the time to review this information! Please let us know if you have questions or concerns, and we’ll do our best to address them.
John
