Skip to content

samuelsonmesquita/jussub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jussub — Documentação

Microsserviço responsável pelo gerenciamento de assinaturas da Jusfy.


Índice


Stack e Versões

Tecnologia Versão
Java 21
Spring Boot 3.4.13
Spring Cloud 2024.0.0
Spring Cloud OpenFeign 2024.0.0
AWS Spring Cloud SQS 3.3.0
AWS SDK v2 (SNS/STS) 2.30.38
PostgreSQL
Flyway (via Boot BOM)
Lombok (via Boot BOM)
Gson 2.13.2
Caffeine (Cache) (via Boot BOM)
JaCoCo 0.8.12
TestContainers 1.20.6

Configuração do Projeto

Pré-requisitos

  • Java 21
  • Maven 3.9+
  • Docker (para banco e localstack)

Variáveis de Ambiente

Em produção, todas as variáveis são injetadas via AWS Secrets Manager → ECS Task Definition.

Variável Descrição
DB_HOST Host do PostgreSQL
DB_NAME Nome do banco
DB_USERNAME Usuário do banco
DB_PASSWORD Senha do banco
JUSSUB_SLACK_URL Webhook do Slack para notificações
JUSSUB_AUTHENTICATOR_URL URL do serviço de autenticação
JUSSUB_JUSPAY_URL URL do serviço JusPay
AWS_REGION Região AWS
AWS_ENDPOINT Endpoint AWS (usado em local/dev)

Configuração Local (application-local.properties)

spring.datasource.url=jdbc:postgresql://localhost:5432/jussub
spring.datasource.username=postgres
spring.datasource.password=postgres

spring.cloud.aws.region.static=us-east-2
spring.cloud.aws.credentials.access-key=local
spring.cloud.aws.credentials.secret-key=local
spring.cloud.aws.sqs.endpoint=http://localhost:4566

sqs.subscription.created.event=local-jussub-subscription-created

Rodando Localmente

1. Subir infraestrutura

docker-compose up -d

Isso sobe o PostgreSQL e o LocalStack (SQS/SNS).

2. Rodar a aplicação

./mvnw spring-boot:run -Dspring-boot.run.profiles=local

3. Health check

GET http://localhost:8080/actuator/health

4. Disparar evento SQS manualmente

aws sqs send-message \
  --queue-url https://sqs.us-east-2.amazonaws.com/944279429428/dev-jussub-subscription-created \
  --message-body '{
    "customerId": "550e8400-e29b-41d4-a716-446655440001",
    "status": "ACTIVE",
    "cycleStartDate": "2026-03-16T00:00:00",
    "cycleEndDate": "2026-04-16T00:00:00",
    "cycleNumber": 1
  }' \
  --region us-east-2

Documentação Técnica

Documento Descrição
ARCHITECTURE.md Arquitetura Hexagonal, camadas e regras
NEW_EVENT_GUIDE.md Como criar um novo consumer de evento SQS
NEW_ENDPOINT_GUIDE.md Como criar um novo endpoint REST

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors