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:
Validação de status
Validação de entrada
Validação da fonte
Retorno de chamada interno
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"
}
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" }
Resposta de erro¶
Em caso de erro, a resposta seguirá o formato abaixo:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
Possíveis códigos de erro:
INVALID_CONNECTOR_STATUS
- O procedimento foi chamado no conector já configuradoINVALID_CONNECTOR_CONFIGURATION_STATUS
- O procedimento foi chamado quando oCONFIGURATION_STATUS
era diferente deCONNECTED
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