Nodes e AuthNodes
A feature Nodes é responsável por representar e gerenciar a infraestrutura remota utilizada pelo PLDPro, centralizando o cadastro de máquinas/servidores (Nodes) e o gerenciamento de credenciais/usuários remotos (AuthNodes). No SDK, essa funcionalidade é exposta pela classe Nodes.
Além de viabilizar o gerenciamento de nodes — incluindo listagem, criação, atualização e remoção de nodes registrados no sistema — a feature também organiza e controla o acesso remoto através de AuthNodes, garantindo que operações sejam executadas de forma rastreável e com credenciais apropriadas.
Visão geral
Um Node representa uma máquina/servidor cadastrado na aplicação, utilizado como alvo para operações remotas e execução de casos. Já um AuthNode representa a identidade de acesso a esse Node, associando um usuário e seu contexto de trabalho (por exemplo, workdir) e suportando operações de provisionamento/gestão de credenciais.
A feature Nodes é o ponto de integração entre: - Infraestrutura (onde executar) — Nodes - Autenticação e contexto (como acessar) — AuthNodes - Casos associados (o que está vinculado àquele ambiente)
Responsabilidades da classe Nodes
A classe Nodes concentra e padroniza operações relacionadas a Nodes e AuthNodes, tratando conversões de tipos (como str -> UUID), lidando com exceções da API (ApiException) e registrando logs consistentes para facilitar diagnóstico.
Gerenciamento de Nodes
A classe oferece operações para administrar o ciclo de vida de nodes cadastrados no sistema, viabilizando o gerenciamento de nodes — listagem, criação, atualização e remoção — de forma centralizada pela SDK.
Casos associados ao Node
Além de gerenciar o cadastro do node, a classe também permite consultar os casos vinculados a um determinado ambiente, facilitando auditoria e rastreabilidade.
- Listar casos associados a um node:
list_node_casos(node_id)
Gerenciamento de AuthNodes (credenciais por Node)
AuthNodes representam os usuários/credenciais que permitem conexão e operação em um Node específico. A classe fornece métodos para criar, consultar, listar e remover AuthNodes, garantindo que o controle de acesso permaneça centralizado e explícito.
Saúde e conectividade (check remoto)
Para suportar operações seguras, a classe permite verificar se um AuthNode está apto a ser utilizado, validando conectividade e estado do ambiente remoto.
- Testar conectividade/saúde:
test_node_connection(auth_node_id) -> HostCheckResult
Versões disponíveis do PLDPro
A feature também oferece um ponto de consulta para obter as versões de PLDPro disponíveis em determinado contexto remoto (associado ao AuthNode).
- Listar versões disponíveis:
list_versions(auth_node_id) -> List[str]
Credenciais e chaves SSH
Como AuthNodes encapsulam autenticação, a classe fornece suporte para atualização de credenciais e obtenção de chave pública, facilitando provisionamento e rotação de acesso.
- Atualizar credenciais e recriar chaves:
update_auth_node_credentials(auth_node_id, password) -> HostCheckResult - Obter chave pública SSH:
get_auth_node_public_key(auth_node_id) -> str
Papel no fluxo de execução
No fluxo típico do sistema, a feature Nodes atua como a base de infraestrutura para execução e operação remota. Primeiro, um Node é cadastrado e configurado; em seguida, AuthNodes são criados para definir quem acessa e com qual contexto. A partir desse vínculo, os Casos podem ser associados e executados, com validação de conectividade, consulta de versões e gerenciamento de chaves quando necessário.
Em resumo, a classe Nodes fornece uma camada coesa para cadastrar e administrar servidores e controlar o acesso remoto de forma segura, servindo como alicerce para a operação e execução de casos na plataforma PLDPro.