feat(agenda): novo contexto Agenda (agenda:1.0) + bff:1.33 + frontend-spa:1.56

- servico-agenda: agendamento de compromissos (consulta/avaliacao/retorno/treino/reuniao)
  CRUD + transicoes confirmar/realizar/cancelar/falta; schema agenda; /api/agenda
- ingress /api/agenda + ATM_AGENDA_URL no bff nos 3 tenants
This commit is contained in:
ATM Platform
2026-06-22 20:57:54 +00:00
parent fef5a04341
commit ed9c0e9bda
12 changed files with 174 additions and 6 deletions
+1
View File
@@ -66,6 +66,7 @@ spec:
- { path: /api/assistencia-social, pathType: Prefix, backend: { service: { name: servico-assistencia-social, port: { number: 80 } } } }
- { path: /api/pedagogico, pathType: Prefix, backend: { service: { name: servico-pedagogico, port: { number: 80 } } } }
- { path: /api/nutricao, pathType: Prefix, backend: { service: { name: servico-nutricao, port: { number: 80 } } } }
- { path: /api/agenda, pathType: Prefix, backend: { service: { name: servico-agenda, port: { number: 80 } } } }
- { path: /api, pathType: Prefix, backend: { service: { name: backend, port: { number: 80 } } } }
- { path: /, pathType: Prefix, backend: { service: { name: frontend-spa, port: { number: 80 } } } }
- host: auth-acme.athleticmap.influxdigital.com.br
+54
View File
@@ -0,0 +1,54 @@
# Bounded context "agenda" (agendamento de compromissos: consulta/avaliacao/retorno/treino/reuniao, ADR-0002).
# Schema proprio "agenda"; roteado em /api/agenda no ingress.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-agenda
namespace: acme-prod
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
replicas: 1
selector: { matchLabels: { app: servico-agenda } }
template:
metadata:
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
containers:
- name: servico-agenda
image: docker.io/library/servico-agenda:1.0
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
- { name: SPRING_DATASOURCE_URL, value: "jdbc:postgresql://postgres:5432/athleticmap" }
- { name: SPRING_DATASOURCE_USERNAME, value: "atm" }
- { name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE, value: "5" }
- name: SPRING_DATASOURCE_PASSWORD
valueFrom:
secretKeyRef: { name: db-credentials, key: password }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-acme.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "acme" }
resources:
requests: { cpu: 100m, memory: 300Mi }
limits: { cpu: "1", memory: 640Mi }
readinessProbe:
httpGet: { path: /api/agenda/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-agenda
namespace: acme-prod
labels: { app: servico-agenda }
spec:
selector: { app: servico-agenda }
ports: [{ name: http, port: 80, targetPort: 8083 }]
+2 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: servico-bff
image: docker.io/library/servico-bff:1.32
image: docker.io/library/servico-bff:1.33
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
@@ -36,6 +36,7 @@ spec:
- { name: ATM_ASSISTENCIA_SOCIAL_URL, value: "http://servico-assistencia-social" }
- { name: ATM_PEDAGOGICO_URL, value: "http://servico-pedagogico" }
- { name: ATM_NUTRICAO_URL, value: "http://servico-nutricao" }
- { name: ATM_AGENDA_URL, value: "http://servico-agenda" }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-acme.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "acme" }
+1 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: frontend-spa
image: docker.io/library/frontend-spa:1.55
image: docker.io/library/frontend-spa:1.56
imagePullPolicy: Never
ports: [{ containerPort: 80 }]
env:
+1
View File
@@ -66,6 +66,7 @@ spec:
- { path: /api/assistencia-social, pathType: Prefix, backend: { service: { name: servico-assistencia-social, port: { number: 80 } } } }
- { path: /api/pedagogico, pathType: Prefix, backend: { service: { name: servico-pedagogico, port: { number: 80 } } } }
- { path: /api/nutricao, pathType: Prefix, backend: { service: { name: servico-nutricao, port: { number: 80 } } } }
- { path: /api/agenda, pathType: Prefix, backend: { service: { name: servico-agenda, port: { number: 80 } } } }
- { path: /api, pathType: Prefix, backend: { service: { name: backend, port: { number: 80 } } } }
- { path: /, pathType: Prefix, backend: { service: { name: frontend-spa, port: { number: 80 } } } }
- host: auth-demo.athleticmap.influxdigital.com.br
+54
View File
@@ -0,0 +1,54 @@
# Bounded context "agenda" (agendamento de compromissos: consulta/avaliacao/retorno/treino/reuniao, ADR-0002).
# Schema proprio "agenda"; roteado em /api/agenda no ingress.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-agenda
namespace: demo-prod
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
replicas: 1
selector: { matchLabels: { app: servico-agenda } }
template:
metadata:
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
containers:
- name: servico-agenda
image: docker.io/library/servico-agenda:1.0
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
- { name: SPRING_DATASOURCE_URL, value: "jdbc:postgresql://postgres:5432/athleticmap" }
- { name: SPRING_DATASOURCE_USERNAME, value: "atm" }
- { name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE, value: "5" }
- name: SPRING_DATASOURCE_PASSWORD
valueFrom:
secretKeyRef: { name: db-credentials, key: password }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-demo.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "demo" }
resources:
requests: { cpu: 100m, memory: 300Mi }
limits: { cpu: "1", memory: 640Mi }
readinessProbe:
httpGet: { path: /api/agenda/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-agenda
namespace: demo-prod
labels: { app: servico-agenda }
spec:
selector: { app: servico-agenda }
ports: [{ name: http, port: 80, targetPort: 8083 }]
+2 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: servico-bff
image: docker.io/library/servico-bff:1.32
image: docker.io/library/servico-bff:1.33
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
@@ -36,6 +36,7 @@ spec:
- { name: ATM_ASSISTENCIA_SOCIAL_URL, value: "http://servico-assistencia-social" }
- { name: ATM_PEDAGOGICO_URL, value: "http://servico-pedagogico" }
- { name: ATM_NUTRICAO_URL, value: "http://servico-nutricao" }
- { name: ATM_AGENDA_URL, value: "http://servico-agenda" }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-demo.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "demo" }
+1 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: frontend-spa
image: docker.io/library/frontend-spa:1.55
image: docker.io/library/frontend-spa:1.56
imagePullPolicy: Never
ports: [{ containerPort: 80 }]
env:
+1
View File
@@ -66,6 +66,7 @@ spec:
- { path: /api/assistencia-social, pathType: Prefix, backend: { service: { name: servico-assistencia-social, port: { number: 80 } } } }
- { path: /api/pedagogico, pathType: Prefix, backend: { service: { name: servico-pedagogico, port: { number: 80 } } } }
- { path: /api/nutricao, pathType: Prefix, backend: { service: { name: servico-nutricao, port: { number: 80 } } } }
- { path: /api/agenda, pathType: Prefix, backend: { service: { name: servico-agenda, port: { number: 80 } } } }
- { path: /api, pathType: Prefix, backend: { service: { name: backend, port: { number: 80 } } } }
- { path: /, pathType: Prefix, backend: { service: { name: frontend-spa, port: { number: 80 } } } }
- host: auth-piloto.athleticmap.influxdigital.com.br
+54
View File
@@ -0,0 +1,54 @@
# Bounded context "agenda" (agendamento de compromissos: consulta/avaliacao/retorno/treino/reuniao, ADR-0002).
# Schema proprio "agenda"; roteado em /api/agenda no ingress.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-agenda
namespace: piloto-prod
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
replicas: 1
selector: { matchLabels: { app: servico-agenda } }
template:
metadata:
labels: { app: servico-agenda, athleticmap.io/contexto: agenda }
spec:
containers:
- name: servico-agenda
image: docker.io/library/servico-agenda:1.0
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
- { name: SPRING_DATASOURCE_URL, value: "jdbc:postgresql://postgres:5432/athleticmap" }
- { name: SPRING_DATASOURCE_USERNAME, value: "atm" }
- { name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE, value: "5" }
- name: SPRING_DATASOURCE_PASSWORD
valueFrom:
secretKeyRef: { name: db-credentials, key: password }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-piloto.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "piloto" }
resources:
requests: { cpu: 100m, memory: 300Mi }
limits: { cpu: "1", memory: 640Mi }
readinessProbe:
httpGet: { path: /api/agenda/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-agenda
namespace: piloto-prod
labels: { app: servico-agenda }
spec:
selector: { app: servico-agenda }
ports: [{ name: http, port: 80, targetPort: 8083 }]
+2 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: servico-bff
image: docker.io/library/servico-bff:1.32
image: docker.io/library/servico-bff:1.33
imagePullPolicy: Never
ports: [{ containerPort: 8083 }]
env:
@@ -36,6 +36,7 @@ spec:
- { name: ATM_ASSISTENCIA_SOCIAL_URL, value: "http://servico-assistencia-social" }
- { name: ATM_PEDAGOGICO_URL, value: "http://servico-pedagogico" }
- { name: ATM_NUTRICAO_URL, value: "http://servico-nutricao" }
- { name: ATM_AGENDA_URL, value: "http://servico-agenda" }
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-piloto.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { name: ATM_TENANT, value: "piloto" }
+1 -1
View File
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: frontend-spa
image: docker.io/library/frontend-spa:1.55
image: docker.io/library/frontend-spa:1.56
imagePullPolicy: Never
ports: [{ containerPort: 80 }]
env: