The structure of the database is simple. It's sole purpose is to store logs.
The current Katana structure uses Firestore, a product produced by Firebase. It is a cloud-hosted, NoSQL database that handles datatypes easier than Firebase database.
Katana uses its own Firestore Wrapper to handle sending information to the database. Refer to that if you are currently developing in Katana and would like to learn more about interfacing with Firestore.
Collections in a NoSQL database are similar to tables. They are just a "collection" of "documents." A document is similar to a row in a standard database table. They can also be thought of as a stored JSON object (with a bit more control over datatypes).
The current setup requires three collections:
| Collection Title | Description |
|---|---|
| user_logs | This can store logs for user actions. This can include users logging in and out, changing account information, and similar actions. (BYUI Katana instance currently only stores users logging in and out) |
| server_logs | Actions taken by the server or significant events that should be logged should be logged here. This might include suspicious endpoint activity, or even just any request made to the server. (BYUI Katana instance currently does not store any information in this collection) |
| tool_logs | This should be used to store logs generated by tools being run by users. (BYUI Katana instance currently stores every tool that runs, along with any related IssueItems) |