Serwis odpowiadający za gromadzenie danych w czasie rzeczywistym i odkładanie ich do zewnętrznych baz.
Możliwe jest połączenie Reporting Service'u zarówno z bazą SQL jak i noSQL. (w zależności od raportu i ustaleń)
Odkładane dane są zbierane przez Reporting Service z eventów gromadzonych na szynie RabbitMQ.
Dedykowane są kolejki, na które podczas normalnych agregacji klientów wpadają eventy, które następnie są procesowane przez serwis.
Te zdarzenia odpowiadają normalnym eventom, które po przeprocesowaniu są odkładane w tabelach biznesowych, z tą różnicą że tworzenie raportów nie obciąża aplikacji.
Zdarzenia która są zaciągane do raportów odpowiadają np:
Tworzenie użytkownika
Kasowanie użytkownika
Utworzenie zgody
Potwierdzenie zgody
Kasowanie zgody
Inwalidacja zgody
Utworzenie sesji
Zmiany statusów sesji
Pobieranie i procesowanie kont
Pobieranie i procesowanie transakcji
Pobieranie i procesowanie szczegółów transakcji
Tworzenie raportów jest niezależne od procesowania danych biznesowych i nie działa wstecz, tj. nie można zrobić raportu z danych historycznych (sprzed wprowadzenia Reporting Service’u).
Raporty odpowiadają danym biznesowym w pozostałych tabelach, nakładają one jednak abstrakcje na dane, dzięki czemu można je w dowolny sposób modyfikować.
Dane bez warstwy abstrakcji odkładane są w bazie z prefixem reporting
Warstwa abstrakcji nałożona jest poprzez widoki na te tabele.
Konfiguracja:
Polega na zaciągnięciu nowych obrazów dla Reporting Service'u, zdefiniowania odpowiednich konfiguracji w docker-compose i .env (dostarczane z paczką) oraz zdefiniowaniu połączenia do bazy:
- ReportingSqlDbConfig__ConnectionString=${REPORTING_SQL_CONNECTION_STRING}
REPORTING_SQL_CONNECTION_STRING= adres SQL
Wywołaniu migracji w kontenerze Reporting Service, który spowoduje utworzenie odpowiednich baz curl -XPOST -H 'Host: localhost' -H 'X-Tenant-Id: placeholder' -H 'Execution-id: placeholder' -H "Content-type: application/json" -d '{}' 'http://localhost/api/database/update'


