Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebuild Titan #800

Open
6 tasks
lowtorola opened this issue May 6, 2024 · 1 comment
Open
6 tasks

Rebuild Titan #800

lowtorola opened this issue May 6, 2024 · 1 comment
Labels
go Pull requests that update Go code module: backend Related to the Siarnaq backend module module: titan Related to the Titan module priority: p3 low type: refactor Codebase refactors or structure changes

Comments

@lowtorola
Copy link
Contributor

lowtorola commented May 6, 2024

Proposed Titan Rebuild:

  • Titan should behave like Saturn, i.e. receive a notice via HTTP or pub sub from siarnaq on ANY file upload that the file object (sent in the request) should be scanned for malware (applies to code submissions and resumes)
  • In the interim, siarnaq should mark the file as unverified
  • Once the file has been verified/believed to be malicious, titan should send an HTTP request back to siarnaq instructing to mark the file as such (doesn't need to send the file back to siarnaq in the request)
    • Currently, Titan itself hits the database. This is a one-off occurence, and creates more to think about that we don't have to
  • Upon receiving the HTTP request, siarnaq should mark the file with the given status
  • Stretch goal, which may or may not be helpful: The download for ClamAV DB should be faster.
    • For example, cache it in a Google Storage bucket
  • Stretch goal, Titan runs locally

Benefits of Proposed Structure:

  • It will be easier to debug and log issues with titan, as previous debugging efforts in Fix Titan #786 were extremely difficult and required manual tweaking of service accounts and event triggers 🚫
  • Mimics design methodology of siarnaq/saturn interaction via HTTP requests and asynchronous message-based status passing
  • We don't really understand ClamAV that well, and this rebuild will effectively section it off into the Titan module where we can better reason about its behavior (and hopefully makes it easier to have ClamAV downloaded).
@lowtorola lowtorola added priority: p1 critical module: backend Related to the Siarnaq backend module module: titan Related to the Titan module type: refactor Codebase refactors or structure changes go Pull requests that update Go code priority: p3 low and removed priority: p1 critical labels May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
go Pull requests that update Go code module: backend Related to the Siarnaq backend module module: titan Related to the Titan module priority: p3 low type: refactor Codebase refactors or structure changes
Projects
None yet
Development

No branches or pull requests

2 participants