Skip to content
Snippets Groups Projects
Unverified Commit cee2baf4 authored by Marco Emilio "sphakka" Poleggi's avatar Marco Emilio "sphakka" Poleggi
Browse files

README work in progress...

parent 6b223d24
Branches
Tags
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment