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

Define interface between source and journalist applications #2890

Open
redshiftzero opened this issue Jan 18, 2018 · 1 comment
Open

Define interface between source and journalist applications #2890

redshiftzero opened this issue Jan 18, 2018 · 1 comment
Labels
app journalist interface (JI) needs/discussion queued up for discussion at future team meeting. Use judiciously. Python security source interface (SI)

Comments

@redshiftzero
Copy link
Contributor

Description

The source interface is open to any anonymous user and is a natural first point of attack. Access to the journalist interface is quite restricted: only to journalist users that possess the correct ATHS token and valid account credentials. Currently both access a shared database and are both running on the same physical machine:

screen shot 2018-01-17 at 9 36 39 pm

The number of things we need the source interface to do involving the database is very limited:

  • Log in
  • Submit document/message
  • Fetch replies
  • Delete replies

We could define a simple interface (i.e. an API that talks to the journalist application when needed) that enables the source interface to do just these things and restructure the source interface to use this API instead of the database directly via the ORM:

screen shot 2018-01-17 at 9 36 54 pm

This would make the source interface much simpler and would enable a more gradual path to (eventually) migrating away from Python (e.g. via rewriting just the source interface in Golang or Rust), as well as enable greater isolation by running each application inside separate containers in production (see all other issues with the containerize server label), meaning that eventually the architecture would look something like this:

screen shot 2018-01-17 at 10 04 21 pm

@usmanmuhd
Copy link
Contributor

usmanmuhd commented Mar 3, 2018

I was interested to work on this particular issue.
I had a few questions:

  1. When connecting with the api from the source interface, are we not giving away access to the journalist interface website?
  2. Why can we not just run a temporary Database where the data is stored as soon as it is uploaded from the source and the contents are copied to an isolated database and deleted from the temporary database, thereby leaving no sensitive content on the temporary database except the login details?

@eloquence eloquence added security needs/discussion queued up for discussion at future team meeting. Use judiciously. and removed goals: containerize server labels Sep 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app journalist interface (JI) needs/discussion queued up for discussion at future team meeting. Use judiciously. Python security source interface (SI)
Projects
None yet
Development

No branches or pull requests

3 participants