Wizard

O wizard de instalação inicial do servidor é feito todo através do frontend. Ele é um processo com muitas etapas para a configuração do firewall.

Estados e redirecionamentos do wizard

Os redirecionamentos do wizard são baseados em uma máquina de estado.

O wizard pode estar em:

  • initial: Onde o sistema apenas foi instalado. Deve ir para tela de gerenciamento de modulos do wizard;
  • admin_created: O admin foi criado, não está logado. Deve ir para welcome e requisitar login;
  • in_configuration: O admin está logado,porém as configurações não foram terminadas;
  • restoring_backup: Está sendo feita uma restauração do backup. Tela de restauração;
  • rollbacking: Voltando a restauração que não deu certo;
  • error_restore_backup: Erro ao executar backup. Tela de erro do wizard backup;
  • safe_copy_backup: O sistema está fazendo uma cópia de segurança;
  • waiting_finish_backup: Esperando fazer a associação interfaces;
  • done: Está tudo certo. Redirecionado para Dashboard

Frontend

A verificação se está ou não no wizard é feita com guardas de rotas (middleware).

Dentro das etapas do wizard, alguns casos utiliza-se o store dos próprios módulos do sistema. Em outros casos são utilizados os próprios módulos do sistema, se não for necessário nada muito específico.

Testar o Wizard com o DEMO

Para entrar no wizard utilizando o demo, é necessário alterar o state retornado da API pelo wizard.

Isso é interessante em casos onde seja necessário testar alguma etapa que está sendo adicionada no wizard.

No arquivo demo/controllers/system/wizard forçar o retorno utilizando um estado que deseja. Exemplo:

server.get("/api/system/wizard").intercept(async (req, res) => {
  const isWizard = /^\/wizard/.test(window.location.pathname);

  //if (isWizard) {
  //  localStore.set(WIZARD_KEY, "admin_created");
  //} else if (!localStore.get(WIZARD_KEY)) {
  //  localStore.set(WIZARD_KEY, "done");
  //}

  res.json({ state: "initial" }); // localStore.get(WIZARD_KEY)})
  // OU
  res.json({ state: "done" });
  res.status(200);
});

Ao rodar o demo usando:

yarn serve:demo

A aplicação redirecionará para o início com o wizard.

Testar o Wizard com a aplicação

Quando se quer testar o wizard junto ao backend, é necessário subir uma VM ou um staging e manter o sistema zerado.

Se estiver utilizando algum staging, é possível fazer seguindo os seguintes passos:

  1. Rodar para o bot fazer deploy da branch;
  2. Apagar o banco de dados mysql e drop database itflex;
  3. Rodar a etapa de provisionamento novamente.

Isso criará o staging zerado.

Cuidado ao configurar as interfaces de rede. Se configurar algo errado perderá o acesso a VM.

IPs:

  • server-staging-1: 192.168.47.66
  • server-staging-2: 192.168.47.67
  • server-staging-3: 192.168.47.68
  • server-staging-4: 192.168.47.69
  • server-staging-5: 192.168.47.70