From 5050d7edd61ea8e29b457fb836ace6592f55fd1c Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Fri, 8 Mar 2024 12:20:18 +0800 Subject: [PATCH] docs: draft user authentication --- DESIGN.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/DESIGN.md b/DESIGN.md index b68b5b2..097b12c 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -21,6 +21,7 @@ The database should have the following tables: 1. pipelines: pipeline is a series of jobs 2. jobs: job is a specific task for worker to do 3. packages: track the status of packages in stable branch +4. users: track github and telegram user association The terms `pipelines` and `jobs` are taken from GitLab CI. @@ -47,4 +48,18 @@ Each job contains the following arguments: Job result: 1. List of successful builds -2. Failed package and link to build log (on buildit.aosc.io) \ No newline at end of file +2. Failed package and link to build log (on buildit.aosc.io) + +## Authentication + +Authentication: + +1. Web: login via GitHub App +2. Telegram: jump to GitHub App and authenticate, associate with Telegram user +3. GitHub: username provided by GitHub + +User roles: + +1. Anonymous: not logged-in +2. Guest: logged-in, but not in AOSC-Dev GitHub organization +3. Developer: loggined and in AOSC-Dev GitHub organization