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

Jm/context with av and postg rest #1141

Merged
merged 22 commits into from
May 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 61 additions & 0 deletions docs/architecture/diagrams/Application/FAC_Sequence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
FAC System User Interaction view
![FAC.gov User Interaction view]
```plantuml
@startuml User Interaction Diagram
Actor GranteeOrAuditor
Actor Public
Actor AgencyApp
Actor Staff

Participant “FAC.gov” as FAC
Participant “postgREST.FAC.gov” as FacREST
Participant “Login.gov” as LoginGov
Participant “appData.gov” as DataGov

Database “DataStore” as DB
Database "S3" as S3

autonumber
== Submission ==
GranteeOrAuditor -> FAC : Grantee Accesses FAC
FAC -> LoginGov : Redirects for authentication
LoginGov -> FAC : Redirects to FAC
GranteeOrAuditor -> FAC : Fetches Submission
DB -> FAC : Fetches previously saved structured data
S3 -> FAC : Fetches previously saved xlsx docs
FAC -> GranteeOrAuditor : Makes previous submission available for editing
GranteeOrAuditor -> FAC : Makes Submission
FAC -> DB : Persists structured data
FAC -> S3 : Persists xlxs docs


autonumber
== Public Access ==
Public -> FAC : Unauthenticated public searches for audit reports
FAC -> DB : Retrieves searched audits
FAC -> S3 : Retrieves pdfs associated with audits
FAC -> Public : Makes info available for viewing and downloading

autonumber
== Agency Access ==
AgencyApp -> DataGov : Rewquests data via REST from FAC
DataGov -> FACREST : Redirects token-authorized API to FAC
FACREST <-> DB : Retrieves searched audits
FACREST <-> S3 : Retrieves pdfs associated with audits
FACREST -> DataGov : Makes info available
DataGov -> AgencyApp : Returns API results

autonumber
== Staff Access (Future) ==
Staff -> FAC : Grantee Accesses FAC
FAC -> LoginGov : Redirects for authentication
LoginGov -> FAC : Redirects to FAC
Staff -> FAC : Fetches Content or Submissions
DB -> FAC : Provides previously saved structured data
S3 -> FAC : Provides previously saved xlsx docs
FAC -> Staff : Makes previous submission available for viewing
Staff -> FAC : Makes Content changes
FAC -> DB : Persists content data

@enduml
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
FAC System Cloud boundary view
![FAC.gov Cloud ATO boundary view]
```plantuml
@startuml Context Diagram
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml

Person(User, "User", "GranteeOrAuditor")
Person(Public, "User", "Public")
Person(Staff, "User", "FAC Staff")
Person(AgencyApp, "App", "Agency App")

note as EncryptionNote
All connections depicted are encrypted with TLS 1.2 unless otherwise noted.
end note
note as PortsNote
All connextions are on port 443 and use https unles otherwise noted.
end note


Boundary(cloudgov, "Cloud.gov Boundary") {
Boundary(atob, "ATO Boundary") {
Boundary(backend, "FAC application", "egress-controlled-space") {
System(django, "FAC Web App", "port 8080")
Boundary(services, "FAC Services") {
System(api, "REST API", "PostgREST")
System(scan, "Virus Scanner", "ClamAV")
}
}
Boundary(proxy, "Proxy services", "egress-permitted-space"){
System(https_proxy, "web egress proxy", "proxy for HTTP/S connections")
System(mail_proxy, "mail egress proxy", "proxy for SMTPS connections")
}
}
Boundary(cloudgov-services,"Cloud.gov services") {
System(db, "Database", "postgres, port 5432")
System(s3, "PDF/XLS storage", "Brokered S3")
}
}

System(Login, "Login.gov", "ID provider")
System(datagov, "api.data.gov", "Access Provider")
System(samgov, "SAM.gov", "UEI Source")
System(Email, "GSA Email")
System(relic, "New Relic", "Telemetry site")
System(dap, "DAP", "Access abalytics")
System(clamav, "ClamAv Provider", "Vulnerability data provider")


AddRelTag("authenticated", $lineColor="#008787", $textColor="#008787")
Rel(User, django, "Submits/edits audits", $tags="authenticated")
Rel(Public, django, "Searches for/reads information")
Rel(Agency, django, "Searches for/reads non-public information")
Rel(Staff, django, "Manages audits, roles, content", $tags="authenticated")

Rel(User, Login, "Authenticates with")
Rel(Staff, Login, "Authenticates with")
Rel(AgencyApp, datagov, "Routes requests through")



Rel(datagov, api, "Searches, filters, requests audit", "via api.data.gov", $tags="authenticated")
Rel(Login, backend, "Provides identities", "email address")

Rel(api, db, "Fetches (read-only) Audits")
Rel(api, s3, "Fetches (read-only) Audit Attachments")

Rel(django, https_proxy, "Looks up UEI info")
Rel(https_proxy, samgov, "Looks up UEI info")
Rel(django, mail_proxy, "Sends emails using")
Rel(mail_proxy, Email, "Sends emails using")
Rel(django, scan, "Scans attachments")
Rel(django, db, "read/write")
Rel(backend, s3, "Stores single audit packages/Excel files")
Rel(django, relic, "logs telemetry data")
Rel(django, dap, "logs user visits data")
Rel(scan, clamav, "retrievesvulnerability checke")

@enduml
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/architecture/diagrams/FAC_Sequence.png
Binary file not shown.
Binary file not shown.
Binary file removed docs/architecture/diagrams/archive/FAC_System.png
Binary file not shown.
Binary file not shown.
40 changes: 0 additions & 40 deletions docs/architecture/diagrams/archive/fac_system.puml

This file was deleted.

25 changes: 0 additions & 25 deletions docs/architecture/diagrams/archive/fac_system_context.puml

This file was deleted.

61 changes: 0 additions & 61 deletions docs/architecture/diagrams/src/FAC_Sequence.puml

This file was deleted.

50 changes: 0 additions & 50 deletions docs/architecture/diagrams/src/fac_system_context_unified.puml

This file was deleted.