Support multiple authentication profiles in ArcGIS API for Python

Idea created by knoop_umich on Dec 31, 2017
    • rastrauch
    • aheinlei_umich
    • knoop_umich

    In the ArcGIS API for Python, one can store authentication information for a GIS in a file (.arcgisprofile). This profile can be referenced as a handy shortcut in Jupyter Notebooks when creating an instance of GIS, rather than having to enter all the relevant authentication information directly in a notebook (e.g, URL, username, password). Currently, however, .arcgisprofile only supports storing a single profile. Each new profile you store overwrites the previous one. I would like to see support added for saving multiple profiles to .arcgisprofile.


    See storing your credentials locally in the Python API Guide, for examples of the current implementation. Note that the profile name is already included in what is stored in .arcgisprofile. 


    I often find myself wanting to switch back-and-forth between multiple GIS systems when I am using Jupyter Notebooks. Maybe I want to try something against our Development environment first, and then switch to our Production environment. Or, maybe in the same notebook I am working with multiple ArcGIS Online instances to copy information from one to another, or to compare content. Rather than having to update all the authentication information in each Jupyter Notebook each time I want to switch systems, I would like to just change the profile name. Or, if I have to update a URL for username for a system, I would to do that once, in one place, in the profile, rather than having to update it in each separate notebook in which it might occur.


    (Note that I only store the URL and username in the profile. I leave the password to be supplied at run-time, due to the insecure nature of .arcgisprofile.)