Skip to content

Instantly share code, notes, and snippets.

@pygillier
Created January 25, 2024 21:20
Show Gist options
  • Save pygillier/cde79506a6a598535104044f82c3a8df to your computer and use it in GitHub Desktop.
Save pygillier/cde79506a6a598535104044f82c3a8df to your computer and use it in GitHub Desktop.
Doppler.com extension for flask
"""Doppler extension for flask
This extension will load specified Doppler project and put all variable into app.config.
"""
from dopplersdk import DopplerSDK
from flask import Flask
import os
class DopplerConfig:
def __init__(self, app: Flask) -> None:
self.init_app(app=app)
def init_app(self, app: Flask) -> None:
sdk = DopplerSDK()
sdk.set_access_token(os.getenv("DOPPLER_TOKEN"))
secrets = sdk.secrets.list(
project=os.getenv("DOPPLER_PROJECT"),
config=os.getenv("DOPPLER_CONFIG"),
accepts="application/json",
)
for name, content in secrets.secrets.items():
if not name.startswith("DOPPLER_"): # Exclude doppler internal parameters
app.config[name] = content["computed"]
app.logger.info("Configuration loaded from doppler project")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment