Deprecation Notice: Change in Dev Mode API Behavior (4.16+)

(Brett Sauve) #1

Looker offers an API that requires credentials associated with a Looker user. As of Looker 4.16, there are changes with how the API interacts with that user’s dev mode.

This new behavior is associated with the User-based dev mode legacy feature (for more details see the Legacy Features docs page). By default, this feature is on, which means that no change in behavior will occur. If you want the new behavior, turn off this legacy feature.

Old Behavior

API requests execute in the same production or development context as the logged-in user. If the user is in dev mode all API requests with that user’s API credentials would execute in dev mode. When the user switched into or out of dev mode, that would immediately impact all processes making API requests with that user’s API credentials.

New Behavior

API requests execute independently of the production or development state of the logged-in user. Also, API requests can execute independently of other API sessions. For example, process 1 using the credentials of a particular user can be running against production, while process 2 using the same user credentials can be running against dev mode.

The new behavior should be better because users will be able to operate as normal developers - moving between dev mode and production as desired - without needing to worry about the impact it could have on API processes.

Legacy Features End-of-life Schedule
Looker 5.4 Release Notes
Looker 5.8 Extended Support Release Notes
(Mark Koch) #2

Now that the environment (prod,dev) context is decoupled from the user, how do you target api calls against a specific environment as described in “New Behavior”?

(Elliot Park) #3

Hey @mkochco,

You can use the update_session endpoint to change the active workspace/environment for a given API session. Link below:

API calls will reflect whatever workspace is being used in the current API session (i.e. if the session is currently in the “production” workspace, then all calls will reflect the API user’s production mode).

Hope that helps!