Skip to main content

Lib for integration with DTA services

Project description

Dta Utils 🧰 🛠️

Agilize a integração entre serviços DTA

O que são Serviços DTA?

Uma coleção de serviços para facilitar e acelerar o desenvolvimento e monitoramento de Aplicações, com foco em aplicativos de IA generativa.

Introdução

Esse pacote possui módulos extras que auxiliam o desenvolvimento de integrações com os serviços do DTA.

Extra "Secrets"

Instalação

Instale o módulo secrets com:

pip install "totvs-dta-utils[secrets]"

Ou utilizando poetry:

poetry add "totvs-dta-utils[secrets]"

Configuração inicial:

Adicione as seguintes variaveis no .env do seu projeto:

DTA_ENVIRONMENT="development"
DTA_INTEGRATION_URL="{DTA_INTEGRATION_URL}"

NOTE: Para ambiente em cloud, onde terá acesso irrestrito aos secrets, o valor do DTA_ENVIRONMENTdeve ser production.

Utilização

from dta_utils_python import DtaSecrets

auth = DTA_JWT  # CLIENT AUTHORIZATION

secrets = DtaSecrets(authorization=auth,
                     project="dta-empodera")

all_secrets = secrets.all()  # Get the latest version of all secrets
my_secret = secrets.get("MY_SECRET")  # Get the latest version of a secret
my_secret_v2 = secrets.get("MY_SECRET", version=2)  # Get a specific version of a secret

Observação: Para ambiente em nuvem na rede DTA, nenhuma autenticação é necessária.

Observação 2: Ainda em ambientes de nuvem, usando Cloud Run, lembrar de habilitar TODAS as chamadas de saída do serviço DEVEM passar pela VPC. Selecione Route all traffic to the VPC na configuração de Rede do serviço Cloud Run

Demais configurações:

DtaSecrets(
    authorization=auth,
    project="dta-empodera",
    raise_exception: bool = True,  # Default "False" - Levanta exceção em caso de erro ao obter a secret
    autoload: bool = False,  # Default "True" - Pré-carrega todas as secrets do projeto na inicialização da classe e as mantém em cache de memória
)

Tipos de retorno:

  • .get("SECRET_2"): Retorna o valor da secret ou None caso a secret não exista.
any: "321654"
  • .all(): Retorna um dicionário (hashmap) contendo a última versão de todas as secrets
dict: {
    "SECRET_1": "123456",
    "SECRET_2": "321654",
    "SECRET_3": "My secret",
}

Extra "Auth" (Identity/JWT)

Desenvolvimento local (Identity)

Para viabilizar autorização via Identity em ambiente local (sem Redis/RAC), configure:

DTA_ENVIRONMENT="development"  # ou "local"
DTA_TENANT_NAME="dta-alisson"
DTA_TOTVS_TENANT_ID="1a2b3c-4d5e6f"
DTA_ROLE_USER="TENANT_ADMIN"
# Opcional: sobrescreve o endpoint JWKS usado para validar o JWT Identity
# DTA_IDENTITY_JWKS_BASE_URL="https://api-fluig.totvs.app/accounts/api/v1/jwks"

Com isso, get_identity_user_from_cache(...) passa a:

  • Validar o JWT Identity via JWKS (RS256)
  • Ignorar Redis (cache) para o token
  • Resolver dta_roles a partir de DTA_*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

totvs_dta_utils-1.4.22.tar.gz (21.8 kB view details)

Uploaded Source

File details

Details for the file totvs_dta_utils-1.4.22.tar.gz.

File metadata

  • Download URL: totvs_dta_utils-1.4.22.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for totvs_dta_utils-1.4.22.tar.gz
Algorithm Hash digest
SHA256 26dcf7232cda08379f32bbe109bd11908f8f07e9e98758a6e5d33a0662996145
MD5 b8cf3a0c0c1425403c48b6c444d96d00
BLAKE2b-256 58891fe69c8c52fb4063724a796ec8e679970ae390d18fec5ac670b0757ad511

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page