Finalização da configuração

Finalizar a configuração é a última etapa do assistente, ela vem logo depois de connection configuration. Esta etapa permite que o usuário forneça qualquer configuração personalizada que não foi incluída nas etapas anteriores da configuração. Além disso, ele pode ser usado para fazer alguns retoques finais na configuração, como criar o banco de dados do coletor, iniciar o reator de tarefas etc. O ponto de entrada para esta fase é um procedimento chamado PUBLIC.FINALIZE_CONNECTOR_CONFIGURATION(CUSTOM_CONFIGURATION VARIANT). Ele pode ser personalizado substituindo-o em SQL ou usando FinalizeConnectorHandlerBuilder. Por padrão, o custom_configuration fornecido NOT persistiu no banco de dados, então se for exigido pelo design, a configuração deve ser salva em um dos métodos de extensão (provavelmente no FINALIZE_CONNECTOR_CONFIGURATION_INTERNAL).

Chamar este procedimento requer que o usuário tenha a função do aplicativo ADMIN atribuída.

A etapa de finalização da configuração consiste internamente em várias fases. Alguns deles são totalmente personalizáveis e, por padrão, não fazem nada. As fases são as seguintes:

  1. Validação de status

  2. Validação de entrada

  3. Validação da fonte

  4. Retorno de chamada interno

  5. Atualização de status

Requisitos

A configuração final requer que pelo menos os seguintes arquivos sql sejam executados durante a instalação do aplicativo nativo:

  • core.sql

  • configuration/finalize_configuration.sql

  • Recomendado: configuration/app_config.sql

Validação de status

Para executar a finalização do conector, o status interno do conector precisa ser CONFIGURING, com status de configuração CONNECTED.

Esta validação não pode ser substituída usando FinalizeConnectorHandlerBuilder nem sobrescrevendo procedimentos armazenados. No entanto, é possível implementar um manipulador personalizado, que não terá esse tipo de validação.

Validação de entrada

A entrada precisa ser uma Variant válida. Além disso, há validações personalizadas que precisam ser satisfeitas. Um procedimento armazenado, PUBLIC.FINALIZE_CONNECTOR_CONFIGURATION_VALIDATE(CUSTOM_CONFIGURATION VARIANT) armazenado pode ser personalizado pelo usuário. Por padrão, este procedimento apenas retorna 'response_code': 'OK'. Personalize-o substituindo o SQL ou usando FinalizeConnectorHandlerBuilder e forneça uma implementação personalizada da interface FinalizeConnectorValidator.

Validação da fonte

Uma vez passadas as validações, o procedimento PUBLIC.VALIDATE_SOURCE(CUSTOM_CONFIGURATION VARIANT) conecta-se a uma fonte externa. Em alguns casos, este procedimento pode ser o mesmo que o procedimento TEST_CONNECTION que foi executado durante a configuração da conexão. No entanto, TEST_CONNECTION foi projetado apenas para verificar alguma conectividade básica, enquanto VALIDATE_SOURCE é um procedimento que pode exigir alguma configuração adicional. Por exemplo, verificar permissões para um recurso específico no sistema de origem. A implementação padrão de VALIDATE_SOURCE retorna 'response_code': 'OK'. Esta implementação padrão pode ser substituída por SQL ou implementando a interface SourceValidator usando FinalizeConnectorHandlerBuilder.

Retorno de chamada interno

O retorno de chamada interno é uma etapa personalizável que invoca PUBLIC.FINALIZE_CONNECTOR_CONFIGURATION_INTERNAL(CUSTOM_CONFIGURATION VARIANT), que retorna 'response_code': 'OK' por padrão. Este procedimento permite que o usuário execute quaisquer configurações adicionais necessárias para o conector. Por exemplo, salvar o custom_configuration fornecido na tabela STATE.CONNECTOR_CONFIGURATION. Pode ser sobrescrito através do script SQL ou usando um FinalizeConnectorHandlerBuilder para fornecer implementação personalizada da interface FinalizeConnectorCallback.

Atualização de status

Quando todas as fases acima forem concluídas com sucesso, o status interno do conector será atualizado para:

{
    "status": "STARTED",
    "configurationStatus": "FINALIZED"
}
Copy

Para o diagrama completo de transições de estado, veja Fluxo do conector.

Resposta

Resposta bem-sucedida

Se o procedimento for concluído com sucesso, ele retornará uma resposta do procedimento FINALIZE_CONNECTOR_CONFIGURATION_INTERNAL. Recomendamos usar o seguinte formato:

{
  "response_code": "OK"
}
Copy

Resposta de erro

Em caso de erro, a resposta seguirá o formato abaixo:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

Possíveis códigos de erro:

  • INVALID_CONNECTOR_STATUS - O procedimento foi chamado no conector já configurado

  • INVALID_CONNECTOR_CONFIGURATION_STATUS - O procedimento foi chamado quando o CONFIGURATION_STATUS era diferente de CONNECTED

  • CONNECTOR_STATUS_NOT_FOUND - O registro de status do conector não existe no banco de dados (independente da entrada do usuário neste estágio - um erro interno)

  • INTERNAL_ERROR - Algo deu errado internamente, a mensagem deve ser descritiva