Ir para o conteúdo

SDK OpenBao

netbox_sdk.openbao é o contrato mantido do SDK para netbox-openbao. Ele contém um inventário fixo das dez coleções REST do plugin e de todas as ações personalizadas expostas pela API canônica. A descoberta dinâmica continua disponível para plugins desconhecidos, mas não é a autoridade para esta superfície sensível à segurança.

from netbox_sdk.openbao import OpenBaoClient

openbao = OpenBaoClient(client)
await openbao.request_resource("credentials", "create", payload={
    "name": "router-admin",
    "policy": 4,
    "credential_type": "ssh-key",
    "generate_ssh_key": True,
    "ssh_key_type": "ed25519",
})

A geração de chave SSH no servidor faz parte da criação padrão de credenciais. A chave privada continua sendo somente de escrita e não é representada por uma ação separada. A rota credential.quick-add-ssh coordena a operação atômica.

Todas as requisições ignoram o cache. Respostas com material secreto devem ser consumidas uma única vez e não podem ser registradas, persistidas ou incluídas em mensagens de exceção. O SDK não repete essas operações automaticamente; após uma falha de transporte, verifique o estado do servidor antes de repetir uma mutação.

Snapshots Raft usam download_snapshot() e upload_snapshot(), com limites explícitos de bytes e transporte application/octet-stream. O upload exige reason, a confirmation exata, openbao_cluster_id e configuration_index, que formam os quatro cabeçalhos obrigatórios da restauração. Rotas aninhadas usam parâmetros nomeados restritos a um único segmento seguro. Permissões, digests, confirmações, justificativas e validações do servidor continuam sendo a autoridade final.