From 51c25f20126e3f8ebb13e3b3a89b7261f5caa486 Mon Sep 17 00:00:00 2001 From: Dustin Carlino Date: Wed, 9 Aug 2023 11:58:02 +0100 Subject: [PATCH] Add new architecture diagrams and clarify proposal --- docs/architecture.md | 8 ++--- docs/proposed_architecture.drawio | 56 +++++++++++++++++++++++++++++++ docs/proposed_architecture.svg | 3 ++ 3 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 docs/proposed_architecture.drawio create mode 100644 docs/proposed_architecture.svg diff --git a/docs/architecture.md b/docs/architecture.md index ff8164e28..f7936a265 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -91,10 +91,6 @@ We'll configure [IAP](https://cloud.google.com/iap) to sit in front of the web a Next, we'll [generate fake data](https://github.com/acteng/atip/blob/main/src/random_schemes.ts) for the scheme browser, and host it on GCS. We'll add a feature flag to the Svelte app. For this new GCP deployment, we'll automatically load this fake file representing all submitted scheme data, instead of ask the user to load a file. -### Step 3: add a databse - -We'll provision Postgres through Cloud SQL and begin exploring how to give ATIP a stateful backend, where people using the scheme sketcher can upload a proposal without leaving the app. We'll develop a REST API using Express, Flask, or something else, and adapt the Svelte app to make API calls when the feature flag is enabled. The API and everything else will still be protected by IAP. - -We'll also configure a local developer environment with an empty Postgres DB, to work on the backend locally. +### Diagram -We can also incorporate the ongoing database schema being built and, if useful, integrate read and write operations to it from both the scheme sketcher and browser. (For instance, prefilling a scheme ID list in the sketcher page, or displaying construction status in the browse page.) +![Diagram of proposed architecture](proposed_architecture.svg) diff --git a/docs/proposed_architecture.drawio b/docs/proposed_architecture.drawio new file mode 100644 index 000000000..b07a8a42b --- /dev/null +++ b/docs/proposed_architecture.drawio @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/proposed_architecture.svg b/docs/proposed_architecture.svg new file mode 100644 index 000000000..8e995cd79 --- /dev/null +++ b/docs/proposed_architecture.svg @@ -0,0 +1,3 @@ + + +
atip GH repo (Svelte)
atip GH repo (Svelte)
GH actions
GH actions
User
User
Identity-Aware Proxy
Identity-Aware Proxy
App Engine
App Engine
Private GCP bucket
(Larger layer data files:
.pmtiles, .geojson, etc)
Private GCP bucket...
App Engine deployed service =

Backend: Express or Flask server, serving static files and future REST API calls
Frontend: Compiled Svelte app (HTML, CSS, and JS files)
App Engine deployed service =...
Text is not SVG - cannot display
\ No newline at end of file