Objetivo e Contexto
Permitir que desenvolvedores trabalhem no core do Conn2Flow (conn2flow/gestor/) e sincronizem suas modificações (arquivos, atualizações de banco de dados) diretamente para o ambiente de testes (Docker) do projeto específico cadastrado no environment.json (como o projeto [REDACTED]-local em dev-environment/data/sites/localhost/[REDACTED]/).
Isso une no mesmo diretório de testes do Docker:
-
Os arquivos base do motor/core do Conn2Flow (sincronizados da pasta
conn2flow/gestor/). -
Os arquivos específicos do projeto (sincronizados da pasta do repositório do projeto, ex:
[REDACTED]/gestor/, através do deploy do projeto).
Desta forma, os repositórios permanecem limpos e isolados no disco local do desenvolvedor, mas se integram no runtime do Docker para os testes locais.
Requisitos de Implementação
1. Novo Script: Sincronização do Core para a pasta de Teste do Projeto
-
Caminho: sync-core-to-project.sh
-
Comportamento:
-
Aceitar parâmetro
--project <PROJECT_ID>(ou-p). -
Ler
devProjects.<PROJECT_ID>.targetnoenvironment.json(com fallback paradevProjects.<PROJECT_ID>.path_testssetargetnão estiver definido). -
Validar a existência do diretório de testes do projeto.
-
Sincronizar o conteúdo de
./gestor/(core da sessão de desenvolvimento ativa) para o caminho de testes do projeto usandorsyncde forma incremental. -
Exclusões obrigatórias:
.git/,logs/,temp/,resources.map.php. -
Inclusão obrigatória:
db/data/deve seguir no sync do core, porque os JSONs compilados do gestor fazem parte do pipeline de atualização do ambiente de testes do projeto.
-
2. Sincronização de Arquivos do Projeto para Área de Testes (Fallback path_tests)
-
Caminho: synchronize-project.sh
-
Modificação:
-
Ajustar o parser do JSON do projeto em
devProjects.<PROJECT_ID>. -
Se a chave
targetnão estiver definida no JSON, usar a chavepath_testscomo fallback automático para determinar a pasta de destino dos testes locais no Docker (onde tanto o core quanto o projeto serão executados). -
Se ambas estiverem vazias ou ausentes, lançar erro de configuração amigável.
-
3. Atualização de Banco de Dados de Projetos
-
Caminho: updates-manager-database.sh
-
Modificação:
-
Adicionar suporte ao parâmetro
--project <PROJECT_ID>(ou-p). -
Se o projeto for especificado, ler a chave
devProjects.<PROJECT_ID>.dockerPathnoenvironment.json. -
Fallback de dockerPath: Se
dockerPathnão estiver explícito no bloco do projeto, derivar o caminho dentro do Docker a partir da pasta de testes local (path_testsoutarget) do projeto: Substituir a raiz local de sites<raiz_do_repositorio>/dev-environment/data/sites/por[REDACTED]. -
Executar a migração de banco de dados (
atualizacoes-banco-de-dados.php) usando a variávelPATH_DOCKERresultante dentro do Docker Container[REDACTED].
-
4. Configuração das Tasks no VS Code
-
Caminho: tasks.json
-
Novas Tasks:
-
?️ Projects - Resources Core -> ID: Executa a compilação de recursos locais no repositório core (atualizacao-dados-recursos.php). -
?️ Projects - Sync Core -> ID: Executasync-core-to-project.sh --project ${input:projectID}. -
?️ Projects - Synchronize => Resources -> ID: Executaupdate-resource-data.sh --project ${input:projectID}. -
?️ Projects - Synchronize => Database -> ID: Executaupdates-manager-database.sh --project ${input:projectID}. -
?️ Projects - Update => All - Core & Project: Composta. Sincroniza e atualiza tanto o core Conn2Flow quanto o projeto. Agrupa sequencialmente emdependsOn(ordem de execução emsequence):-
?️ Projects - Resources Core -> ID -
?️ Projects - Sync Core -> ID -
?️ Projects - Synchronize => Database -> ID -
?️ Projects - Synchronize => Resources -> ID -
?️ Projects - Synchronize => Files -> ID -
?️ Projects - Synchronize => Database -> ID
-
-
?️ Projects - Update => Project: Composta. Sincroniza e atualiza apenas os arquivos e recursos do projeto (caso o core não tenha mudado). Agrupa sequencialmente:-
?️ Projects - Synchronize => Resources -> ID -
?️ Projects - Synchronize => Files -> ID -
?️ Projects - Synchronize => Database -> ID
-
-
?️ Projects - Update => Core: Composta. Sincroniza e atualiza apenas as mudanças do core Conn2Flow na pasta do projeto. Agrupa sequencialmente:-
?️ Projects - Resources Core -> ID -
?️ Projects - Sync Core -> ID -
?️ Projects - Synchronize => Database -> ID
-
-
Critérios de Aceitação e Validação
Definidos em VALIDATION-CHECKLIST.md sob o lote BATCH-001.