Deprecating the workspaces field on user objects

Hello again everyone! I unfortunately have to break the streak of good news this week with this update: the Asana API needs to deprecate the workspace field on users.

Why?

Asana has been rearchitecting our systems to better isolate workspaces from each other. This opens the door for a number of infrastructure improvements, such as running a new cluster for our app in Frankfurt and simplifying how we access data(bases) from various systems.

However, this means that once an API request is operating in the context of a particular workspace, it’s prohibited from accessing data in other workspaces. For example, if you’re updating a task in workspace A, as we’re building the API response we are unable to look up and insert information about any other workspaces if you were to use opt_fields=assignee.workspaces.

So how will I get a user’s workspaces?

You will always be able to get a user’s workspaces through GET /users/<user-gid>/workspaces. It’s only the field on user objects that we’re deprecating.

What is the timeline for this deprecation?

Unfortunately, part of this deprecation must happen on an extremely short timeline. This field will be removed from the responses of all PUT and POST requests, as well as all events endpoints in two weeks. Beginning today, you can opt-in to this deprecation with the Asana-Enable: limit_user_workspaces_field header. We will change the default behavior to exclude the workspace field on users for these routes on August 20th, and we will permanently remove them on August 27th. Most apps should be unaffected by this side of the deprecation—our logs indicate that only about 40 apps ask for this field in affected requests, and we have reached out to those app developers directly.

The other half of this deprecation will operate over a longer timeline, because we do not have as strict technical limitations on other routes, and because it affects far more apps. We have not determined a timeline for that yet, but will update this post when we have it finalized.