Como Rodar Localmente - ecosif-masterdata
Este guia explica como configurar e executar o ecosif-masterdata em seu ambiente local de desenvolvimento.
Pré-requisitos
Softwares Necessários
Verificação
# Verificar Java
java -version
# Deve mostrar versão 17 ou superior
# Verificar Maven
mvn -version
# Deve mostrar versão 3.6 ou superior
# Verificar PostgreSQL
psql --version
# Deve mostrar versão 13 ou superior
Passo 1: Clone do Repositório
git clone <url-do-repositorio>
cd ecosif-masterdata
Passo 2: Configuração do Banco de Dados
Criar Banco de Dados
# Conectar ao PostgreSQL
psql -U postgres
# Criar banco de dados
CREATE DATABASE ecosif;
# Criar usuário (opcional)
CREATE USER ecosif_user WITH PASSWORD 'sua_senha';
GRANT ALL PRIVILEGES ON DATABASE ecosif TO ecosif_user;
# Sair
\q
Variáveis de Ambiente do Banco
Configure as seguintes variáveis de ambiente:
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_DB=ecosif
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=sua_senha
Ou crie um arquivo .env na raiz do projeto.
Passo 3: Configuração da Aplicação
Variáveis de Ambiente Necessárias
Crie um arquivo .env ou configure as variáveis:
# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ecosif
POSTGRES_USER=postgres
POSTGRES_PASSWORD=sua_senha
# Server
ECOSIF_MASTERDATA_PORT=8081
# JWT (DEVE ser a mesma do ecosif-auth)
AUTH_TOKEN_SECRET=sua_chave_secreta_muito_longa_e_segura_minimo_64_caracteres
TOKEN_EXPIRATION=1800000 # 30 minutos em milissegundos
# OAuth2 (Opcional - deixe vazio para desabilitar)
AUTH2_CLIENT_ID=
AUTH2_SECRET=
# CORS
ECOSIF_CORS=http://localhost:4200
# Flyway (desabilitado por padrão)
ECOSIF_FLYWAY_ENABLED=false
# Hibernate
HIBERNATE_DDL_AUTO=none
# Logging
LOG_FORMAT=default
ECOSIF_LOGSHOW=false
ECOSIF_LOGMODE_ROOT=INFO
ECOSIF_LOGMODE_SPRING=INFO
ECOSIF_LOGMODE_HIBERNATE_SQL=INFO
# AWS S3 (Opcional)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_S3_BUCKET=
Gerar Chave Secreta JWT
Para gerar uma chave secreta segura:
# Opção 1: Usando openssl
openssl rand -base64 64
# Opção 2: Usando Python
python3 -c "import secrets; print(secrets.token_urlsafe(64))"
Importante: A mesma chave secreta deve ser usada em todos os serviços ecosif que validam tokens JWT.
Passo 4: Instalar Dependência Local (ecosif-database)
O projeto depende da biblioteca ecosif-database. Se necessário:
# Instalar JAR local
mvn install:install-file \
-Dfile=libs/ecosif-database-0.7.01.202511270.jar \
-DgroupId=io.ecosif.database \
-DartifactId=ecosif-database \
-Dversion=0.7.01.202511270 \
-Dpackaging=jar
Passo 5: Executar a Aplicação
Opção 1: Maven
mvn spring-boot:run
Opção 2: Build e Executar JAR
# Build
mvn clean package -DskipTests
# Executar
java -jar target/ecosif-masterdata.jar
Opção 3: IDE (IntelliJ IDEA / Eclipse)
- Importe o projeto como projeto Maven
- Configure as variáveis de ambiente no Run Configuration
- Execute a classe
Application.java
Passo 6: Verificar se Está Funcionando
Health Check
curl http://localhost:8081/actuator/health
Resposta esperada:
{
"status": "UP"
}
Swagger UI
Acesse no navegador:
http://localhost:8081/swagger-ui.html
Testar Autenticação
Nota: Você precisa fazer login primeiro no ecosif-auth (porta 8080) para obter um token JWT.
# 1. Fazer login no ecosif-auth
TOKEN=$(curl -X POST http://localhost:8080/api/auth/signin \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"senha","azure":false}' \
| jq -r '.accessToken')
# 2. Testar endpoint protegido
curl -X GET http://localhost:8081/companies \
-H "Authorization: Bearer $TOKEN"
Troubleshooting
Erro: "Cannot connect to database"
- Verifique se PostgreSQL está rodando
- Verifique se as credenciais estão corretas
- Verifique se o banco de dados foi criado
Erro: "Port 8081 already in use"
- Altere a porta em
ECOSIF_MASTERDATA_PORTou emapplication.yml - Ou encerre o processo que está usando a porta
Erro: "AUTH_TOKEN_SECRET not set"
- Certifique-se de definir a variável
AUTH_TOKEN_SECRET - Use uma chave longa e segura (mínimo 64 caracteres)
Erro: "ecosif-database not found"
- Instale a dependência local conforme Passo 4
- Verifique se o JAR está no diretório
libs/
Logs não aparecem
- Verifique o nível de log em
ECOSIF_LOGMODE_ROOT - Habilite logs SQL se necessário:
ECOSIF_LOGSHOW=true
Desenvolvimento
Hot Reload
Com Spring Boot DevTools instalado, a aplicação recarrega automaticamente quando você faz alterações no código.
Debug
Para executar em modo debug:
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
Depois, conecte seu IDE na porta 5005.
Executar Testes
# Todos os testes
mvn test
# Teste específico
mvn test -Dtest=CompanyControllerTest
# Com cobertura
mvn test jacoco:report
Próximos Passos
Suporte
Se encontrar problemas:
1. Verifique os logs da aplicação
2. Consulte a documentação em /docs
3. Abra uma issue no repositório