Правик
This commit is contained in:
parent
488b574366
commit
2d31aa1f66
@ -27,6 +27,14 @@ app/
|
|||||||
- `OPENBAO__SETTINGS__LOCATION=local` -> локальный mock вход через форму.
|
- `OPENBAO__SETTINGS__LOCATION=local` -> локальный mock вход через форму.
|
||||||
- `OPENBAO__SETTINGS__LOCATION=prod` (или пусто) -> вход через `raisa_streamlit_oauth`.
|
- `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
|
```bash
|
||||||
|
|||||||
@ -3,6 +3,21 @@ from __future__ import annotations
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
SETTINGS_PREFIX = "OPENBAO__SETTINGS__"
|
SETTINGS_PREFIX = "OPENBAO__SETTINGS__"
|
||||||
|
RAISA_ENV_KEYS = (
|
||||||
|
"AUTHORIZE_URL",
|
||||||
|
"TOKEN_URL",
|
||||||
|
"REFRESH_TOKEN_URL",
|
||||||
|
"LOGOUT_URL",
|
||||||
|
"JWKS_URL",
|
||||||
|
"CLIENT_ID",
|
||||||
|
"CLIENT_SECRET",
|
||||||
|
"REDIRECT_URI",
|
||||||
|
"SCOPE",
|
||||||
|
"APP_ID",
|
||||||
|
"APP_NAMESPACE",
|
||||||
|
"APP_NAME",
|
||||||
|
"LOCATION",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_setting(name: str) -> str:
|
def get_setting(name: str) -> str:
|
||||||
@ -15,3 +30,14 @@ def get_setting(name: str) -> str:
|
|||||||
def get_location() -> str:
|
def get_location() -> str:
|
||||||
return get_setting("LOCATION").lower() or "prod"
|
return get_setting("LOCATION").lower() or "prod"
|
||||||
|
|
||||||
|
|
||||||
|
def apply_raisa_env_aliases() -> None:
|
||||||
|
"""
|
||||||
|
Заполняет обычные имена переменных из OPENBAO__SETTINGS__,
|
||||||
|
чтобы raisa_streamlit_oauth работал одинаково в локальном и raisa runtime.
|
||||||
|
"""
|
||||||
|
for key in RAISA_ENV_KEYS:
|
||||||
|
prefixed = os.getenv(f"{SETTINGS_PREFIX}{key}", "").strip()
|
||||||
|
if prefixed and not os.getenv(key):
|
||||||
|
os.environ[key] = prefixed
|
||||||
|
|
||||||
|
|||||||
5
main.py
5
main.py
@ -1,10 +1,15 @@
|
|||||||
import streamlit as st
|
import streamlit as st
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
from app.auth.service import AuthService, clear_session
|
from app.auth.service import AuthService, clear_session
|
||||||
|
from app.config import apply_raisa_env_aliases
|
||||||
from app.ui import render_env_check, render_profile
|
from app.ui import render_env_check, render_profile
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
|
load_dotenv()
|
||||||
|
apply_raisa_env_aliases()
|
||||||
|
|
||||||
st.set_page_config(page_title="SFM Streamlit", page_icon=":lock:", layout="wide")
|
st.set_page_config(page_title="SFM Streamlit", page_icon=":lock:", layout="wide")
|
||||||
st.title("SFM Streamlit: Keycloak-only auth")
|
st.title("SFM Streamlit: Keycloak-only auth")
|
||||||
render_env_check()
|
render_env_check()
|
||||||
|
|||||||
@ -1,2 +1,4 @@
|
|||||||
streamlit==1.46.1
|
streamlit==1.46.1
|
||||||
|
raisa-streamlit-oauth==1.0.3
|
||||||
|
python-dotenv==1.0.1
|
||||||
ruff==0.5.2
|
ruff==0.5.2
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user