# MIGRAÇÃO DOS ARQUIVOS DO RAI PARA O FILEWS
## Segurança
* Neste momento, não será usado o recurso de id temporário do filews. Pode ser feito depois.
* Usar o id temporário requer reratoração profunda de frontend e backend devido à maneira que o rai opera.
* De qualquer forma, a segurança vai melhorar pois o token passará a ser checado, o que não acontece hoje.
## Fase 1 - Alterações no filews
* A infra deve mapear a pasta /home/bu/arquivos/ para ser visível na maquina do filews.
* Criar no filews o endpoint filews.ssp.go.gov.br/proxy para acessar os arquivos estatáticos da /home/bu/arquivos/.
* Apontar o DNS arquivos.ssp.go.gov.br para filews.ssp.go.gov.br/proxy
* O filews.ssp.go.gov.br/proxy também reconhece se o **ID** do arquivo é **rai** OU **filews**.
* Se o ID for rai, continua buscando o arquivo na /home/bu/arquivos/.
* Se o ID for filews, chekar se namespace é "rai" e fazer loadArquivo sem checkar token (emulando como é hoje).
* Criar endpoint /migrarArquivosRAI/{origem}/{tamnhoLote}
* Criar as colunas OLD_FILE_PATH e STATUS_MIGRACAO para cada campo a ser migrado no schema BU. Verificar última sessão *Campos com ID de arquivos no RAI*.
## Fase 2 - Iniciar migração
* Configurar o webjobs para chamar o /migrarArquivosRAI
## Fase 3 - Filews com upload de stream
* Fazer o `/uploadArquivo` suportar stream
## Fase 4 - Grande alteração no atendimentows
* Remover a conversão de webm para mp3 no front e backend.
* Alterar os metodos de upload para para não mais salvar arquivos em /home/bu/arquivos/. Ja inserir o arquivo na tablema com STATUS_MIGRACAO == NAO_NECESSARIO
## Fase 5 - Finalizar migração
* Tratar todos os casos de FALHA
* A migração estará completa se **todas** as linhas tiverem `STATUS_MIGRACAO` igual `MIGRADO` OU `NAO_NECESSARIO`
* Após migração completa, desligar o job no webjobs.
## Fase 6 - Refatoração das views e backends
* Subistituir todas referencias de arquivos.ssp.go.gov.br por filews.ssp.go.gov.br e adicionar o TOKEN do SSO.
* Sistemas FORA do SSO não devem chamar o arquivos.ssp.go.gov.br ou filews.ssp.go.gov.br DIRETAMENTE. Eles devem passar pelos seus respectivos backends onde são adicionados tokens internos após validar regra de exceção. Refatorar se preciso.
## Fase 7 - Limpeza
* Baixar os endpoints /proxy, /migrarArquivosRAI e o DNS arquivos.ssp.go.gov.br.
* Baixar o nginx interno que contém as diretivas try_files
* Apagar a pasta /home/bu/arquivos e seu link NFS.
* Apagar as colunas OLD_FILE_PATH e STATUS_MIGRACAO no atendimentows
# MAIS INFORMAÇÕES
## Frontend que usam o arquivos.ssp.go.gov.br
- atendimentoview
- mportalview
- despachoview
- escalaview
- recomprensaview
- geocontrolview
- raivirtualview
- consultaobjetosview
## Backdend que usam o arquivos.ssp.go.gov.br
- atendimentows
- pdfws
- expressows
- sisvtr
## Campos com ID de arquivos
```
BU.ARQUIVO.NOME
BU.ARQUIVOOBJETO.NOME
BU.ANEXOPROJUDI.NOMEARQUIVOFS
BU.OCORRENCIAPESSOA.ASSINATURAPESSOAPATH
BU.OCORRENCIAOBJETO.ASSINATURARECEBEDORPATH
BU.OCORRENCIARESGATE.ASSINATURAPROFISAUDEPATH
BU.OCORRENCIARESGATE.ASSINATURARECUSATRANSPORTEPATH
RECOMPENSA.ARMA_IMAGENS.IMAGENS
RECOMPENSA.MANDADO_ANEXOS.ANEXOS
```
## Campos adicionados
```
ALTER TABLE BU.ARQUIVO ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.ARQUIVO ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.ARQUIVOOBJETO ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.ARQUIVOOBJETO ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.ANEXOPROJUDI ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.ANEXOPROJUDI ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.OCORRENCIAPESSOA ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.OCORRENCIAPESSOA ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.OCORRENCIAOBJETO ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.OCORRENCIAOBJETO ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.OCORRENCIARESGATE ADD RECUSA_OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.OCORRENCIARESGATE ADD RECUSA_STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE BU.OCORRENCIARESGATE ADD PROFI_OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE BU.OCORRENCIARESGATE ADD PROFI_STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE RECOMPENSA.ARMA_IMAGENS ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE RECOMPENSA.ARMA_IMAGENS ADD STATUS_MIGRACAO VARCHAR2(100);
ALTER TABLE RECOMPENSA.MANDADO_ANEXOS ADD OLD_FILE_PATH VARCHAR2(255);
ALTER TABLE RECOMPENSA.MANDADO_ANEXOS ADD STATUS_MIGRACAO VARCHAR2(100);
```