Páginas filhas
  • TOTVS Discovery

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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
Âncora
info

...

info

...

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.

...

AtributoTipoDescriçãoObrigatório?Valores
codeStringCódigo/Chave do item avaliado.Sim
titleStringTítulo do item avaliado.Sim
detailStringDetalhe do item avaliado.Não
valueStringValor do item avaliado.Sim
healthArrayLista com a estrutura com as informações de saúde do nó descoberto.Não

Health

Estrutura com informações de saúde
Âncora
health

...

health

...

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:

AtributoTipoDescriçãoObrigatório?Valores
type**StringTipo 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
messageStringBreve mensagem sobre a situação encontrada.Sim
detailStringDetalhes sobre a situação encontrada.Não
helpUrlStringPá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:

AtributoTipoDescriçãoObrigatório?Valores
usernameStringCódigo do usuário.Sim


emailStringE-mail do usuário.Não
fullNameStringNome completo do usuário.Sim
dialectStringCódigo de dialeto do usuário para tradução.Nãopt-BR
avatarStringURL ou Base64 com a imagem de avatar do usuário.Não
tokenStringToken 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
languagejs
{
	"username": "john",
	"email": "[email protected]",
	"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:

AtributoTipoDescriçãoObrigatório?Valores
TOTVSIDStringId Totvs de Instalação do LicenseSim
nameStringNome de Instalação do LicenseNão
aliasStringAlias de instalação do LicenseNão
receiveStringUso de controle internoNão

Exemplo JSON de retorno

Bloco de código
languagejs
{
	"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/{host}/{port}/{name}/{category}?category=[category]

...

idTOTVS}

Retorna os ambientes disponíveis.


No JSON de retorno, no atributo items, deve constar as seguintes informações:

AtributoTipoDescriçãoObrigatório?Valores
nameStringNome do ambiente.Sim

Exemplo JSON de retorno

Bloco de código
languagejs
{
	"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:

AtributoTipoDescriçãoObrigatório?Valores
nameStringNome do ambiente.Sim
hostStringIP ou domínio do nó descobertorecurso.Sim
portNumericNumberPorta do nó descobertorecurso.SimnameStringNome do nó descobertoNão
categoryStringCategoria 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)
dateStringData de descoberta do recurso (no formato yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm).Sim
statusStringIndicador de saúde do recurso.NãoHealth:status
descriptionStringDescrição do hostNão
infoArrayLista com a estrutura com as informações dos itens avaliados.NãoInfo

Exemplo JSON de retorno

Bloco de código
languagejs
{
	"total": 2,
	"hasNext": false,
	"items": [{
		"name": "PRODUCAO",
		"host": "10.1.1.1",
		"port": 1234,
		"namedescription": "PROTHEUS_V12_PRODSlave 001",
		"category": "server|machine|database|lsv|gateway",
		"date": "yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm",
		"status": "success|warning|error|danger",
		"info": [{
			"code": "cpu",
			"title": "CPU",
			"detail": "Central Processing Unit",
			"value": "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:

AtributoTipoDescriçãoObrigatório?Valores
monitorActiveBooleanIndicador se o serviço de monitoramento está ou não ativo.Não
historyDaysNumberQuantidade de dias para manter o histórico das informações de monitoramento.NãoPadrão 30 dias
monitorIntervalNumberIntervalo em minutos do ciclo de monitoramento.NãoPadrão 15 minutos
sendDataTOTVS

Boolean

Indica se os dados monitorados serão enviados a TOTVSNão

Exemplo JSON de retorno e atualização

Bloco de código
languagejs
{
	"monitorActive": true|false,
	"historyDay": 30,
	"monitorInterval": 15,
	"sendDataTOTVS": true|false
}