Skip to content

Instantly share code, notes, and snippets.

@Egnod
Last active January 12, 2020 18:11
Show Gist options
  • Save Egnod/32ea7c202af73b34240676f7fecd550b to your computer and use it in GitHub Desktop.
Save Egnod/32ea7c202af73b34240676f7fecd550b to your computer and use it in GitHub Desktop.
Легковесный сервис идентификации, аутентификации и авторизации "Adonai"
Состав(4/5):
@johnllockk Йа ( Саша) платонический царь-философ - Backend
@marqueewinq Марк - Backend
@savvamirzoyan Савва - Backend
@alex231330 Саша - Backend
Репозиторий: https://github.com/Egnod/adonai
Задачи: https://tree.taiga.io/project/egnod-adonai/
Дискорд: https://discord.gg/mfTxk8
На самом хакатоне хотелось бы разработать MVP + мини интерфейс, шоб было можно по красоте презентовать судьям.
Итак, чаво такое MVP для такого сервиса и из чего мы будем это лепить (спойлер: из того что было):
Суть сервиса, как следует из заголовка, состоит в том, чтобы хранить, проверять и предоставлять инфу о пользователях, в принципе аналогичный сервис - это KeyStone, но помимо всех проблем в реализации, самое главное завязанность на openstack, а его тащить туда, где он ненужен не очень хочется.
Основные задачи Adonai на этапе MVP:
1. Хранить личную инфу о пользователе: логин, хеш пароля, имя и т.д. и т.п.
2. Хранение структурообразующей информации о пользователе, как то: к какому домену, проекту они принадлежат и какие у него там есть права.
3. По поступающим аутентификационным данным понимать, шо за пользователь и если всё валидно, отдавать о нём инфу.
4. Иметь внутренние роли, типа администратора, для манипуляций над пользователями, доменами, проектами и проектными правами.
На чём хотелось бы сделать серверную часть:
1. Python веб-фреймворк: Flask'уля или FastAPI (можно предложить штото ещё)
2. GraphQL API
3. JWT токены
4. На этапе MVP для хранения юзаем PostgreSQL (SQLAlchemy)
По поводу клиента, хотелось бы небольшой веб-клиент, чтобы презентация была красивой, но если ui/ux frontend найден/найдены не будут, то придётся просто запилить CLI.
Всех жду!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment