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:
- Rodar para o bot fazer deploy da branch;
- Apagar o banco de dados mysql e drop database itflex;
- 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