Logging BLAST server access and genomic data download
Sometimes its helpful to check who has been doing what and when.
At the simplest level, a SequenceServer Cloud history page shows all BLAST searches performed.
Audit trails and access logging
But sometimes more logging is needed. For example:
- Security audits in many companies aim to ensure that no users are doing anything fishy (e.g., trying to download too much data).
- You’re teaching a class of undergraduates and want to monitor their engagement with their assignments.
- Your department has multiple administrators, and you want to know who uploaded which database, and when.
For those use cases, SequenceServer Cloud can provide an audit trail log that records every action performed by every user. This includes:
- User login and logout
- Page access
- User creation and removal
- Database creation, removal, and renaming
- BLAST searches
- Downloading of BLAST results
- Downloading of FASTA and alignment data from BLAST results
Additionally, audit logging can track errors. This allows you to easily spot and resolve issues that arise.
Currently, it’s in JSON format as this is easy to parse and query with other tools. See below for some examples.
Access logging
{"app":"Edit","datetime":"2023-09-19T11:17:27Z","user":"admin_user@mycompany.com","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36","origin_ip":"192.168.65.1","method":"GET","path":"/edit/","params":{}}
Administrator logging: Renaming database
{"app":"Edit","datetime":"2023-09-19T11:17:20Z","user":"admin_user@mycompany.com","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36","origin_ip":"192.168.65.1","method":"POST","path":"/edit/databases","params":{"action":"rename_database","id":"1ad08df692d62f41ee5a41dfdbda9c0b2f14a9171b0b8c831a1675e9a3391d6d","file_name":"Hereis_assembly_one.2022-04.fa","new_display_name":"2022-04 assembly"}}
Administrator logging: Removing a user
{"app":"Edit","datetime":"2023-09-19T11:17:47Z","user":"admin_user@mycompany.com","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36","origin_ip":"192.168.65.1","method":"POST","path":"/edit/users","params":{"action":"remove_user","email":"y.wurm@qmul.ac.uk"}}
User logging: Submitting BLAST job
{"app":"SequenceServer","datetime":"2023-09-19T11:20:51Z","user":"admin_user@mycompany.com","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36","origin_ip":"192.168.65.1","method":"POST","path":"/","params":{"sequence":"> ACGTACGTACGTACGTACGTACGTACGTACGTACGT","databases":["0ab76d606d74fac1ec4e755f6b1597d6","c354ca942b1fac4d8a989525d667747c","5fe2f24ba7dfbdf23b0bfc1e8a2e3a22"],"advanced":"-evalue 1e-5","method":"tblastn"}}
User logging: Downloading hits from BLAST results page
{"app":"SequenceServer","datetime":"2023-09-19T11:23:05Z","user":"admin_user@mycompany.com","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36","origin_ip":"192.168.65.1","method":"POST","path":"/get_sequence","params":{"sequence_ids":"SI2.2.0_05000","database_ids":"5b0ce9b3131bacf6fa1855d1b0f5b584"}}