Code/config.py

53 lines
1.7 KiB
Python

import os
import streamlit as st
from dotenv import load_dotenv
load_dotenv(".env")
load_dotenv(".env.local", override=True)
# Fonction pour déterminer l'environnement à partir de l'en-tête X-Environment
def determine_environment():
# Valeur par défaut (si aucun en-tête n'est détecté)
environment = "dev"
# Si nous sommes dans une session Streamlit
if hasattr(st, 'context') and hasattr(st.context, 'headers'):
try:
# Lire directement l'en-tête X-Environment défini par Nginx : dev/public
nginx_env = st.context.headers.get("x-environment")
if nginx_env:
environment = nginx_env.lower()
except Exception as e:
st.error(f"Erreur lors de la lecture de l'en-tête X-Environment: {e}\nEnvironnement dev par défaut")
return environment
ENV = determine_environment()
GITEA_URL = os.getenv("GITEA_URL", "https://fabnum-git.peccini.fr/api/v1")
GITEA_TOKEN = os.getenv("GITEA_TOKEN", "")
ORGANISATION = os.getenv("ORGANISATION", "fabnum")
DEPOT_FICHES = os.getenv("DEPOT_FICHES", "fiches")
DEPOT_CODE = os.getenv("DEPOT_CODE", "code")
ENV_CODE = os.getenv("ENV_CODE")
DOT_FILE = os.getenv("DOT_FILE")
INSTRUCTIONS = os.getenv("INSTRUCTIONS", "Instructions.md")
FICHE_IHH = os.getenv("FICHE_IHH")
FICHE_ICS = os.getenv("FICHE_ICS")
FICHE_IVC = os.getenv("FICHE_IVC")
FICHE_ISG = os.getenv("FICHE_ISG")
# Optionnel : vérification + fallback
for key, value in [("FICHE_IHH", FICHE_IHH), ("FICHE_ICS", FICHE_ICS), ("FICHE_IVC", FICHE_IVC), ("FICHE_ISG", FICHE_ISG)]:
if not value:
raise EnvironmentError(f"Variable d'environnement '{key}' non définie.")
FICHES_CRITICITE = {
"IHH": FICHE_IHH,
"IVC": FICHE_IVC,
"ICS": FICHE_ICS,
"ISG": FICHE_ISG
}