<div dir="ltr">Hey folks --<div><br></div><div>We haven't yet really been using the arvados-dev list, so I thought I might as well kick it off.</div><div><br></div><div>For recording user logins, I came up with this:</div>
<div><br></div><div>1. Arvados login credentials (ARVADOS_API_TOKEN, ARVADOS_API_HOST, etc) should go in a $HOME/.arvados file instead of .bashrc.</div><div><br></div><div>2. A script in /etc/profile.d/arvados.sh checks whether this file exists; if so, it sources it and issues an `arv log create' command to add a log table entry of type LOGIN.</div>
<div><br></div><div>3. User login history for a given user uuid can be retrieved with:</div><div>    arv log list --where '{"event_type":"LOGIN", "owner_uuid":"qr1hi-owner-uuid"}'<br>
</div><div><br></div><div>Some of the pros of this scheme:</div><div>* Doesn't require changes or extensions to the models</div><div>* Sets the groundwork for having a uniform way for clients to find Arvados auth credentials</div>
<div><br></div><div>Cons:</div><div>* Logins are arguably more like system-level events and should be logged by the system user</div><div>* Opens potential confusion if the user generates LOGIN events of their own</div><div>
* User can delete their own login records</div><div>* If user changes their shell to csh or zsh, they will no longer run /etc/profile.d scripts</div><div><br></div><div>Our immediate goal is to have a way to tell quickly whether a user has executed any interactive logins at all, so I think this is sufficient on that front. Going forward, we should discuss how important it is to have privilege separation for these events and the best way to go about doing that.</div>
<div><br></div><div>--t.</div><div><br></div></div>