# py-scopes/apidemo/config.py from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file='.env', extra='ignore') #, env_prefix='SCOPES_') base_url: str = 'https://test.cy7.eu' log_file: str = 'log/scopes.log' log_level: str = 'INFO' log_format: str = '%(asctime)s %(levelname)s %(name)s %(message)s' log_dateformat: str = '%Y-%m-%dT%H:%M:%S' dbengine: str = 'postgresql+psycopg' dbname: str = 'demo' dbuser: str = 'demo' dbpassword: str = 'secret' dbschema: str = 'demo' settings = Settings() from dotenv import load_dotenv import logging from os import getenv load_dotenv() base_url = settings.base_url logging.basicConfig(filename=settings.log_file, level=settings.log_level, format=settings.log_format, datefmt=settings.log_dateformat) logging.getLogger('uvicorn.error').propagate = True # storage settings from scopes.storage.db.postgres import StorageFactory dbengine = settings.dbengine dbname = settings.dbname dbuser = settings.dbuser dbpassword = settings.dbpassword dbschema = settings.dbschema # authentication settings oidc_provider = getenv('OIDC_PROVIDER', 'https://a1.cy7.de') oidc_client_id = getenv('OIDC_CLIENT_ID', '12345') oidc_params = dict( op_config_url=oidc_provider + '/.well-known/openid-configuration', op_uris=None, op_keys=None, op_project_scope='urn:zitadel:iam:org:project:id:zitadel:aud', callback_url=getenv('OIDC_CALLBACK_URL', base_url + '/auth/callback'), client_id = oidc_client_id, cookie_name=getenv('OIDC_COOKIE_NAME', 'oidc_' + oidc_client_id), cookie_domain=getenv('OIDC_COOKIE_DOMAIN', None), cookie_lifetime=getenv('OIDC_COOKIE_LIFETIME', '86400'), cookie_crypt=getenv('OIDC_COOKIE_CRYPT', None), private_key_file=getenv('OIDC_SERVICE_USER_PRIVATE_KEY_FILE', '.private-key.json'), organization_id=getenv('OIDC_ORGANIZATION_ID', '12346'), project_id=getenv('OIDC_PROJECT_ID', None), )