[![linting: ruff](https://img.shields.io/badge/linting-ruff-f9c700)](https://github.com/astral-sh/ruff) __________________________________________________________________________________________________________ # sfm, v 0.0.1 __sfm__ | | Исполнитель | Заказчик | |-----------|:----------------------------------------:|:----------------------------------------------:| | Сотрудник | raykov-mse | raykov-mse | | Отдел | aurora | aurora | | Контакты | raykovmse@rshb.ru | raykovmse@rshb.ru | ----- ## Архитектура ```text main.py app/ config.py # переменные окружения с префиксом OPENBAO__SETTINGS__ ui.py # ui-компоненты auth/ service.py # orchestration auth/session providers.py # local/mock и prod/raisa провайдеры mock_provider.py # мок для локального запуска ``` ## Режимы запуска - `OPENBAO__SETTINGS__LOCATION=local` -> локальный mock вход через форму. - `OPENBAO__SETTINGS__LOCATION=prod` (или пусто) -> вход через `raisa_streamlit_oauth`. ## Важно по raisa-streamlit-oauth - Используется версия `raisa-streamlit-oauth==1.0.3`. - До старта приложения выполняется `load_dotenv()`. - Переменные `OPENBAO__SETTINGS__*` автоматически маппятся в обычные (`AUTHORIZE_URL`, `TOKEN_URL`, `APP_NAMESPACE` и т.д.), чтобы библиотека работала по каноничному шаблону из документации. ## Быстрый старт ```bash python -m venv .venv .\.venv\Scripts\activate pip install -r requirements.txt copy .env.example .env streamlit run main.py ``` ## Линт и формат ```bash ruff check . ruff format . ```