diff --git a/README.md b/README.md index f143f8684be9b510b5f5b9028f052754e3bb2d8a..614be9eb1ee99b11d258445b57f39bf29a966c6c 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,10 @@ S3 storage for the enrollment and session data. The system architecture is composed of 3 tiers: 1. The **front-end** that provides a log-in Web GUI (languages: HTML5, JS) and sends incoming authentication requests to the back-end. - 2. The **back-end** (languages: Python, Flask/Gunicorn/???) that receives - and handle authentication requests from the front-end. All the session + 2. The **back-end** (languages: Python/Flask) that receives + and handles authentication requests from the front-end. All the session logic is implemented here in a CRUD-like fashion: session objects are - stored in a S3-compatible storage. + stored in an S3-compatible storage. 3. The **storage** tier is a standard S3-like object storage which can be accessed only by the back-end. @@ -59,7 +59,7 @@ Buttons: 4, named as the routes above. ### Storage -:construction: S3-like object storage composed of 2 buckets: one for +:construction: S3-like object storage composed of 1 buckets with two directories: one for *enrollment* data, one for *session* data. @@ -119,9 +119,9 @@ An enrolled user authenticates to the system with the `login` function: - IF user does not exists THEN returns 'KO:NO_SUCH_USER' - ELSE verifies sessions: 1. IF an active session exists THEN returns 'OK' - 2. ELSE returns 'NEED_*PASSWORD*'. + 2. ELSE returns 'NEED_PASSWORD'. 4. **Front-end** receives first response from the back-end: - - IF response == 'NEED_*PASSWORD*' THEN + - IF response == 'NEED_PASSWORD' THEN 1. Prompts the user for their *password*. 2. **User** provides *password*. 3. **Front-end** sends *e-mail* and *password* to the back-end. @@ -157,17 +157,16 @@ The infrastructure is entirely hosted by SwitchEngines (OpenStack cloud) and is composed of * A single VM featuring: - * A Debian 12 Bookworm OS image - * 2 vCPUs, 4GB RAM, 40GB root disk - * :question: No extra volume? + * Source image: A Debian 12 Bookworm + * Flavor: 2 vCPUs, 4GB RAM, 40GB root disk -- no extra volume needed * A KinD installation - * Two S3 buckets. + * One S3 bucket. The infrastructure (computing instance + S3 storage) shall be provisioned via **Terraform**. :bulb: References: - * S3: https://github.com/yomovh/tf-at-ovhcloud + * Terraform: https://registry.terraform.io/providers/hashicorp/aws/latest/docs * :question: what else? @@ -194,7 +193,7 @@ You shall: **(TO-DO: We should provide instructions. Build on the student's workstation?)**. 3. Complete the `Terraform/main.tf` recipe to handle the provisioning of the S3 storage - buckets. + bucket. 4. Complete the `Ansible/deploy.yml` playbook to handle: - exposure of the application portal IP (e.g., load-balancer IP) to the Internet via `socat` or other mechanism of your choice;