How ceoalmaloco/ms-barriodigital-mq-admin works
mq-admin is a Spring service for administering RabbitMQ queues, exchanges, and bindings through an HTTP API called by the BFF. Requests pass through internal-token and Admin-role protection, then resource controllers and orchestration services validate existence/protection, mutate RabbitMQ over AMQP, and return views. Successful mutations enqueue audit events for Kafka. The excerpts show the resource orchestration and audit publisher; other route and filter details rely on README documentation and the source tree.
Main entry points: QueueHttpService.java Queue operations · ExchangeHttpService.java Exchange operations · BindingHttpService.java Binding operations · AdminGateFilter.java Admin role gate
Components 22
HTTP API
- Queue API
src/main/java/cl/duoc/barriodigital/mqadmin/web/QueueController.java - Exchange API
src/main/java/cl/duoc/barriodigital/mqadmin/web/ExchangeController.java - Binding API
src/main/java/cl/duoc/barriodigital/mqadmin/web/BindingController.java - API errors
src/main/java/cl/duoc/barriodigital/mqadmin/web/MqExceptionHandler.java - Resource views
src/main/java/cl/duoc/barriodigital/mqadmin/web
RabbitMQ Administration
- Queue operations
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - AMQP admin
src/main/java/cl/duoc/barriodigital/mqadmin/service/RabbitAdminService.java - Management API client
src/main/java/cl/duoc/barriodigital/mqadmin/service/RabbitManagementClient.java - Resource declarations
src/main/java/cl/duoc/barriodigital/mqadmin/domain
Audit Events
- Audit event factory
src/main/java/cl/duoc/barriodigital/mqadmin/messaging/AuditEventFactory.java - Audit publisher
src/main/java/cl/duoc/barriodigital/mqadmin/messaging/AuditPublisher.java - Kafka sender
src/main/java/cl/duoc/barriodigital/mqadmin/messaging/DefaultAuditKafkaSender.java
Request Protection
- Protected names
src/main/java/cl/duoc/barriodigital/mqadmin/config/MqProtectionProperties.java - Internal token filter
src/main/java/cl/duoc/barriodigital/mqadmin/web/InternalTokenFilter.java - Admin role gate
src/main/java/cl/duoc/barriodigital/mqadmin/web/AdminGateFilter.java - Actor context filter
src/main/java/cl/duoc/barriodigital/mqadmin/web/ActorContextFilter.java
Other components
- BFF caller
- RabbitMQ broker
- RabbitMQ Management
- Kafka audit.timeline
Connections 38
- BFF caller → Queue API: calls
README.md - BFF caller → Exchange API: calls
README.md - BFF caller → Binding API: calls
README.md - Queue API → Queue operations: delegates to
src/main/java/cl/duoc/barriodigital/mqadmin/web/QueueController.java - Exchange API → Exchange operations: delegates to
src/main/java/cl/duoc/barriodigital/mqadmin/web/ExchangeController.java - Binding API → Binding operations: delegates to
src/main/java/cl/duoc/barriodigital/mqadmin/web/BindingController.java - Queue operations → AMQP admin: mutates via
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → AMQP admin: mutates via
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → AMQP admin: mutates via
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Queue operations → Management API client: queries
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → Management API client: queries
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → Management API client: checks endpoints
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - AMQP admin → RabbitMQ broker: declares and deletes
src/main/java/cl/duoc/barriodigital/mqadmin/service/RabbitAdminService.java - Management API client → RabbitMQ Management: reads HTTP API
src/main/java/cl/duoc/barriodigital/mqadmin/service/RabbitManagementClient.java - Queue operations → Protected names: checks names
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → Protected names: checks names
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → Protected names: checks names
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Queue operations → Resource declarations: uses declarations
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → Resource declarations: uses declarations
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → Resource declarations: uses declarations
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Queue operations → Resource views: builds views
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → Resource views: builds views
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → Resource views: builds views
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Queue operations → Audit event factory: creates events
README.md - Exchange operations → Audit event factory: creates events
README.md - Binding operations → Audit event factory: creates events
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Audit event factory → Actor context filter: reads actor context
- Queue operations → Audit publisher: publishes events
src/main/java/cl/duoc/barriodigital/mqadmin/service/QueueHttpService.java - Exchange operations → Audit publisher: publishes events
src/main/java/cl/duoc/barriodigital/mqadmin/service/ExchangeHttpService.java - Binding operations → Audit publisher: publishes events
src/main/java/cl/duoc/barriodigital/mqadmin/service/BindingHttpService.java - Audit publisher → Kafka sender: sends confirmed
src/main/java/cl/duoc/barriodigital/mqadmin/messaging/AuditPublisher.java - Kafka sender → Kafka audit.timeline: publishes to
README.md - BFF caller → Internal token filter: supplies token
README.md - Internal token filter → Admin role gate: precedes role check
README.md - Admin role gate → Queue API: guards
- Admin role gate → Exchange API: guards
- Admin role gate → Binding API: guards
- API errors → Queue API: maps exceptions