Esta página documenta o Actions SDK v1. Para a versão atual (v2), consulte a documentação do SDK v2.
Code Secrets
Visão Geral
Code Secrets são credenciais e informações sensíveis (tokens, chaves de API, certificados, URLs de ambientes) que ficam armazenadas de forma segura na plataforma Tech4AI e são injetadas automaticamente no contexto de execução das suas Actions.
Com Code Secrets você não precisa embutir valores sensíveis diretamente no código das suas Actions. Basta referenciar o secret pelo nome e a plataforma cuida de injetar o valor correto.
A criação, atualização e remoção de Code Secrets deve ser solicitada ao time da Tech4.ai.
Tipos de Secret
| Tipo | Valor | Uso |
|---|---|---|
| TEXT | Texto simples | Tokens, chaves de API, URLs, senhas |
| CERT | Conteúdo PEM | Certificados cliente para autenticação mTLS |
Acessando Secrets nas Actions
O dicionário secrets é uma variável pré-injetada no escopo de execução de todas as Actions. Não é necessário importar nada.
# Acessar um secret pelo nome exato cadastrado
api_key = secrets["MINHA_API_KEY"]
api_host = secrets["MINHA_API_HOST"]
O nome do secret é definido no cadastro. Use exatamente o mesmo nome (diferencia maiúsculas de minúsculas) ao acessar secrets["NOME_DO_SECRET"].
Exemplos de Uso
Chamada HTTP com chave de API
import requests
def consultar_dados():
headers = {
"Authorization": f"Bearer {secrets['API_TOKEN']}",
"X-API-Key": secrets["API_KEY"],
}
url = f"{secrets['API_HOST']}/v1/dados"
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
return response.json()
Chamada autenticada com certificado (mTLS)
Use o CertificateClient do SDK em conjunto com um secret do tipo CERT:
def consultar_recurso(recurso_id: str):
cert_client = CertificateClient(cert_content=secrets["CERTIFICADO_PEM"])
headers = {
"X-API-Key": secrets["API_KEY"],
"Authorization": f"Bearer {secrets['ACCESS_TOKEN']}",
}
url = f"{secrets['API_HOST']}/v1/recursos/{recurso_id}"
response = cert_client.get(url=url, headers=headers, timeout=30)
return response.json()
Combinando múltiplos secrets
def autenticar_e_buscar():
# Credenciais de autenticação
auth_url = secrets["AUTH_URL"]
client_id = secrets["CLIENT_ID"]
client_secret = secrets["CLIENT_SECRET"]
# Obter token
auth_response = requests.post(auth_url, data={
"grant_type": "client_credentials",
"client_id": client_id,
"client_secret": client_secret,
})
token = auth_response.json()["access_token"]
# Usar token para chamada protegida
api_host = secrets["API_HOST"]
response = requests.get(
f"{api_host}/v1/dados",
headers={"Authorization": f"Bearer {token}"},
timeout=30,
)
return response.json()
Boas Práticas
- Nunca codifique valores sensíveis diretamente no código da Action. Sempre utilize
secrets. - Use nomes descritivos para os secrets (ex.:
SEGURADORA_API_KEY,INTEGRACAO_HOST) e solicite ao time Tech4.ai no momento da criação. - Secrets do tipo CERT devem ser usados exclusivamente com o
CertificateClient— nunca como string em headers. - Não logue o valor dos secrets. Evite
print(secrets["..."])em código de produção.