Introdução

Nesta seção faremos uso conceitos abordados na documentação de arquitetura do projeto de Workers.

Configurando Workers

Para que as operações consigam se comunicar com a BaaS API, é preciso garantir que os workers utilizados no processo estão em execução. Para isso, é preciso publicarmos em um servidor web os pacotes de cada um, recomendamos instalá-los como serviços do windows.

Após a publicação dos pacotes no servidor que hospedará os serviços, podemos configurar o "appsettings" do projeto. Vale ressaltar que existem dois arquivos, “appsettings.Development.json” e “appsettings.json”. Ambos estão localizados na raíz do seu respectivo projeto starter de cada worker. O primeiro arquivo é utilizado quando a API é executada localmente, já o segundo quando publicado. Veja o exemplo a seguir.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "Settings": {
    "ConnectionStrings": {
      "core": "Server=your-postgres-server; Port=your-postgres-port; User Id=your-postgres-user; Password=your-postgres-password; Database=your-postgres-database;"
    },
    "AesKey": "your-aes-key",
    "AesIV": "your-aes-IV",
    "Attempts": 10,
    "Timer": 10000,
    "SuccessEmailNotification": true,
    "SuccessSmsNotification": true,
    "SuccessPushNotification": true,
    "FailureEmailNotification": true,
    "FailureSmsNotification": true,
    "FailurePushNotification": true,
    "AttemptEmailLimitNotification": true,
    "AttemptSmsLimitNotification": true,
    "AttemptPushLimitNotification": true
  }
}

Confira uma breve descrição das chaves contidas no arquivo de configuração.

ChaveDescriçãoTipo
ConnectionStrings/coreString de conexão com o banco de dadosString
AesKeyChave de criptografia de variáveis de uso internoString (16 caracteres)
AesIVInicializador de criptografia de variáveis de uso internoString (32 caracteres)
AttemptsTentativas de chamadas da BaaS APIInt
TimerTemporizador de timeout das requisiçõesInt
SuccessEmailNotificationDisparo de notificações de sucesso via e-mailBool
SuccessSmsNotificationDisparo de notificações de sucesso via SMSBool
SuccessPushNotificationDisparo de notificações de sucesso via push notificationBool
FailureEmailNotificationDisparo de notificações de sucesso via e-mailBool
FailureSmsNotificationDisparo de notificações de sucesso via SMSBool
FailurePushNotificationDisparo de notificações de falha via push notificationBool
AttemptEmailLimitNotificationDisparo de notificações de sucesso via e-mailBool
AttemptSmsLimitNotificationDisparo de notificações de sucesso via SMSBool
AttemptPushLimitNotificationDisparo de notificações de tentativas via push notificationBool