Objetivo
Definições Gerais
Os serviços e padrões descritos abaixo foram definidos conforme o Guia de implementação das APIs TOTVS.
Estrutura com informações dos itens avaliados
Quando necessário, o JSON de retorno dos serviços de descoberta deverão deverá possuir uma lista com a estrutura de informações dos itens que foram avaliados pelo TOTVS Discovery.
...
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
code | String | Código/Chave do item avaliado. | Sim |
|
messagetitle | String | Breve descrição Título do item avaliado. | Sim |
|
detail | String | Detalhes Detalhe do item avaliado. | Não |
|
statusvalue | BooleanString | Situação Valor do item avaliado. | Sim |
|
health | Array | Lista com a estrutura com as informações de saúde do nó descoberto. | Não | Health true: verdadeiro se o item avaliado não apresentou inconformidadesfalse: falso se o item avaliado apresentou inconformidades |
Estrutura com informações de saúde
Quando necessário, o JSON de retorno de qualquer um dos serviços descritos neste documento deverá possuir uma lista com a estrutura de informações de saúde da informação retornada pelo TOTVS Discovery.
Esta estrutura deve seguir conforme descrito abaixo:
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
type** | String | Tipo da informação da situação encontrada. | Sim | - sucess: Sucesso (OK)sucesso
- warning: Alerta/Avisoalerta
- error: Erro | Com contornoerro não fatal
- danger: Erro Fatal/Sem contornoerro fatal
|
message | String | Breve mensagem sobre a situação encontrada. | Sim |
|
detail | String | Detalhes sobre a situação encontrada. | Não |
|
helpUrl | String | Página de ajuda sobre a situação encontrada. | Não |
|
Serviços
Serviço
...
público de autenticação
POST /discovery/v1/authentication
Realiza a autenticação do usuário.
O JSON de autenticação deverá conter o código do usuário e a senha. No atributo da senha deverá ser indicado qual o tipo de criptografia foi utilizado na requisição, conforme o exemplo abaixo:
| Bloco de código |
|---|
{
"username": "admin",
"password": "base64:YWRtaW4="
} |
Obs.: por padrão nesta primeira etada a senha será enviada sempre em Base64 e, portanto será recomendado o uso de HTTPS.
No JSON de retorno deverá ser retornado as informações do usuário autenticado conforme a estrutura abaixo:
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
username | String | Código do usuário. | Sim |
|
email | String | E-mail do usuário. | Não |
|
fullName | String | Nome completo do usuário. | Sim |
|
dialect | String | Código de dialeto do usuário para tradução. | Não | pt-BR |
avatar | String | URL ou Base64 com a imagem de avatar do usuário. | Não |
|
token | String | Token JWT de autenticação que será utilizada nas requisições. | Sim |
|
Obs.: se a autenticação não for bem sucedidade, deverá ser retornado o código de erro HTTP padrão para esta ocasião: 401 Unauthorized (usuário ou senha inválidos) ou 403 Forbidden (usuário sem privilégios para utilizar o sistema).
Exemplo JSON de retorno
| Bloco de código |
|---|
|
{
"username": "john",
"email": "john.doe@totvs.com.br",
"fullName": "John Doe",
"dialect": "en-US",
"avatar": "https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
} |
Serviço restrito de busca dos Ids de instalação do License
GET /discovery/v1/ids/receiver
Retorna os IDs TOTVS de instalação do License.
No JSON de retorno, deve constar as seguintes informações:
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
| TOTVSID | String | Id Totvs de Instalação do License | Sim |
|
| name | String | Nome de Instalação do License | Não |
|
| alias | String | Alias de instalação do License | Não |
|
| receive | String | Uso de controle interno | Não |
|
Exemplo JSON de retorno
| Bloco de código |
|---|
|
{
"total": 1,
"hasNext": false,
"items": [{
"TOTVSID": "g185sdf4b1bd8",
"name":"EMPRESA FULANO",
"alias":"FULANO",
"receive":""
}]
}
|
Serviço restrito de busca dos ambientes disponíveis
GET /discovery/v1/resourcesenvironments/{id}?category=[category]
...
idTOTVS}
Retorna os ambientes disponíveis.
No JSON de retorno, no atributo items, deve constar as seguintes informações:
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
name | String | Nome do ambiente. | Sim |
|
Exemplo JSON de retorno
| Bloco de código |
|---|
|
{
"total": 2,
"hasNext": false,
"items": [{
"name": "PRODUCAO"
},{
"name": "HOMOLOGACAO"
}]
} |
Serviço restrito de busca do recursos de determinado ambiente
GET /discovery/v1/resources
...
/{idTOTVS}/{name}?host=[]&port=[]&category=[]&portGroup=[true/false]
Retorna os recursos dispoíveis de determinado ambiente.
Parâmetros
PATH PARAM {idTOTVS} Id de instalação do License (obrigatório)
PATH PARAM {name} Nome do ambiente do qual deseja-se retornar os recursos disponíveis (obrigatório)
QUERY PARAM [hostip] IP ou domínio do recurso do ambiente selecionado
QUERY PARAM [port] Porto do recurso do ambiente selecionado
QUERY PARAM [category] Categoria do recurso do ambiente selecionado
QUERY PARAM [portGroup] Informa se as informações devem ser agrupados por host, ignorando assim a porta do recurso
...
No JSON de retorno, no atributo items, deve constar as seguintes informações:
idID do nó descobertohostIP ou domínio do nó descobertoport| Atributo | Tipo | Descrição | Obrigatório? | Valores | |
|---|
name | String | Nome do ambiente. | Sim |
|
host | String | IP ou domínio do recurso. | Sim |
|
port | Number | Porta do recurso. | Não |
|
category | String | Categoria do nó descobertorecurso. | Sim | - server: Servidor de Aplicação (ambiente)
- machine: ???Servidor Físico
- database: Banco de Dados
- lsv: Servidor de Licenças
- gateway: ???Outros recursos (DBAccess)
|
date | | String | Data de descoberta do recurso (no formato yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm). | Sim |
|
status | NumericString | Porta do nó descoberto. | Indicador de saúde do recurso. | Não | Health:status |
description | String | Descrição do host | NãoSim |
|
info | Array | Estrutura Lista com a estrutura com as informações dos itens avaliados. | Não | health | Array | Estrutura com as informações de saúde do nó descoberto. | NãoInfo |
Exemplo JSON de retorno
| Bloco de código |
|---|
|
{
"total": 2,
"hasNext": false,
"items": [{
"category"name": "PRODUCAO",
"host": "10.1.1.1",
"port": 1234,
"description": "machineSlave 001",
"idcategory": "81645a9a7b2f469a89331db5a35c22d4server|machine|database|lsv|gateway",
"hostdate": "10.1.1.1yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm",
"portstatus": 1234"success|warning|error|danger",
"info": [{
"code": "cpu",
"title": "CPU",
"detail": "Unidade Central deProcessing ProcessamentoUnit",
"statusvalue": true|false
}],
"90",
"health": [{
"typestatus": "success|warning|error|danger",
"message": "Consumo de CPU em 80%",
"details": "O alto consumo da CPU do servidor prejudica o desempenho do sistema",
"helpUrl": "http://www.tdn.totvs.com.br"
}, {
"typestatus": "success|warning|error|danger",
"message": "Memória disponível no servidor abaixo da recomendada",
"details": "O recomendado para o uso do TOTVS Microsiga Protheus é de no mínimo 8gb de RAM",
"helpUrl": "http://www.tdn.totvs.com.br"
}]
}]
}]
} |
Serviço restrito de busca e atualização de configuração
GET /discovery/v1/config
Retorna as configurações atuais do TOTVS Discovery.
POST /discovery/v1/config
Atualiza as configurações atuais do TOTVS Discovery.
O JSON de retorno da busca e de atualização deverão possuir a mesma estrutura abaixo:
| Atributo | Tipo | Descrição | Obrigatório? | Valores |
|---|
monitorActive | Boolean | Indicador se o serviço de monitoramento está ou não ativo. | Não |
|
historyDays | Number | Quantidade de dias para manter o histórico das informações de monitoramento. | Não | Padrão 30 dias |
monitorInterval | Number | Intervalo em minutos do ciclo de monitoramento. | Não | Padrão 15 minutos |
| sendDataTOTVS | Boolean
| Indica se os dados monitorados serão enviados a TOTVS | Não |
|
Exemplo JSON de retorno e atualização
| Bloco de código |
|---|
|
{
"monitorActive": true|false,
"historyDay": 30,
"monitorInterval": 15,
"sendDataTOTVS": true|false
} |