On 02/05/2016 06:51 PM, Lucio Correia wrote:
User Activity Log functionality
-------------------------------
Host admin wants to have access to all actions performed by Wok users,
either through API, web user interface, with the option to download
User Acitivity Log in a text file.
REST API
--------
Only one API will be exposed:
- GET /logs - Collection of log entries for all installed plugins.
Examples of filtering:
/logs?plugin=kimchi - All log entries for Kimchi plugin
/logs?user=admin - All log entries from admin user
/logs?request=PUT - All log entries relative to PUT requests
/logs?date=20160110 - All Jan 10th's log entries
Backend design
--------------
- Define activity texts for each currently implemented activity of all
plugins
- Implement method to retrieve the activity texts in Wok and all plugins
- Log events to a JSON file in the host file system. Each user request
received by Wok will generate an entry in the respective log file.
Fields to be saved for each entry: plugin, datetime, user, request
type (PUT, POST, GET, DELETE), activity text (i.e. "create guest
'vm-sample'")
- Implement code for retrieving and filtering log events by the fields
above
Web User interface design
-------------------------
Create a new tab: "User Activity" - available only to Wok admins
I'd suggest to create a tab for Wok and name it as "Wok configuration"
or something like that.
As in future, we have plans to add more features to this tab, such as
user authorization, authentication method, enable/disable plugins, etc.
So, in that case, the 'User log activity" would be one of the sections
in this tab.
We can follow what Ginger does with the expanded/collapsed areas.
- Search fields to filter log events by installed plugin, date, user,
and/or request type
- Show search results in a table containing plugin, datetime, user,
request type, activity text
- User may sort the table by plugin, datetime, user or request type
- Button for downloading current search results as a txt file