SDK Python
O SDK oficial do CriptEnv para Python. Compatível com Python 3.8+ e frameworks como Django, Flask e FastAPI. Suporte completo a type hints.
Instalação
pip
pip install criptenvpoetry
poetry add criptenvuv
uv add criptenvInicialização
1
Importe o SDK
Importação
from criptenv import CriptEnv2
Crie uma instância
Inicialização
import os
env = CriptEnv(
token=os.environ["CRIPTENV_TOKEN"],
project_id="seu-project-id",
environment="production", # opcional, padrão: "production"
)3
Descriptografe suas variáveis
Uso básico
# Carrega todas as variáveis
variables = env.load()
print(variables["DATABASE_URL"])
print(variables["API_SECRET"])
# Ou injeta no os.environ
env.load_to_process()Referência da API
Construtor
| Parâmetro | Tipo | Descrição |
|---|---|---|
tokenobrigatório | str | Token de API do CriptEnv. |
project_idobrigatório | str | ID do projeto no CriptEnv. |
environment | str | Ambiente alvo. Padrão: "production". |
cache | bool | Habilitar cache local. Padrão: True. |
cache_ttl | int | Tempo de vida do cache em segundos. Padrão: 300. |
Métodos
env.load()
# Retorna todas as variáveis como dicionário
variables: dict[str, str] = env.load()env.get(key)
# Retorna uma variável específica
db_url: str = env.get("DATABASE_URL")env.load_to_process()
# Injeta todas as variáveis no os.environ
env.load_to_process()
# Agora os.environ["DATABASE_URL"] está disponívelExemplos Práticos
Com FastAPI
main.py
import os
from fastapi import FastAPI
from criptenv import CriptEnv
# Carrega variáveis antes de criar a aplicação
criptenv = CriptEnv(
token=os.environ["CRIPTENV_TOKEN"],
project_id="seu-project-id",
)
criptenv.load_to_process()
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/health")
async def health():
db_url = os.environ.get("DATABASE_URL", "não configurada")
return {"status": "ok", "db": bool(db_url)}Com Django
settings.py
import os
from criptenv import CriptEnv
# Carrega variáveis do CriptEnv
criptenv = CriptEnv(
token=os.environ["CRIPTENV_TOKEN"],
project_id="seu-project-id",
environment=os.environ.get("DJANGO_ENV", "production"),
)
criptenv.load_to_process()
# Agora as variáveis estão disponíveis
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]
DATABASE_URL = os.environ["DATABASE_URL"]
DEBUG = os.environ.get("DEBUG", "false").lower() == "true"Com Flask
app.py
import os
from flask import Flask
from criptenv import CriptEnv
criptenv = CriptEnv(
token=os.environ["CRIPTENV_TOKEN"],
project_id="seu-project-id",
)
criptenv.load_to_process()
app = Flask(__name__)
app.config["SECRET_KEY"] = os.environ["FLASK_SECRET_KEY"]
app.config["DATABASE_URI"] = os.environ["DATABASE_URL"]Usando async/await
async_usage.py
import asyncio
from criptenv import CriptEnv
async def main():
env = CriptEnv(
token="seu-token",
project_id="seu-project-id",
)
# Carrega variáveis de forma assíncrona
variables = await env.load_async()
print(variables)
asyncio.run(main())Info
Recomendamos criar o arquivo
.env.local apenas com oCRIPTENV_TOKEN e deixar todos os outros secrets no CriptEnv. Isso mantém seu repositório seguro.