Skip to main content

Zarządzanie mapowaniami danych z ASPSP na słowniki APIHub

Maxime avatar
Written by Maxime
Updated over 4 months ago

W odpowiedzi na proces wdrożeniowy jaki mamy w Banku i potrzebę zwinnego aplikowania zmian w konfiguracji rozwiązania pod konkretne banki proponujemy 2 ścieżki zmian:

  • standardowa ścieżka, zmiany/błędy/braki w mapowaniach wykryte przez Bank lub przez nas są aplikowane do core'owego rozwiązania i trafiają do Banku razem z kolejnym wdrożeniem wersji oprogramowania

  • szybka ścieżka, możliwość dodania nowego mapowania poprzez umieszczenie pliku w odpowiednim miejscu, który nadpisuje mapowanie core'owe do momentu zaaplikowania zmiany do core. Jedyne potrzebne działanie to utworzenie pliku w odpowiednim miejscu oraz restart konkretnych kontenerów.

Poniżej opis zmienionego mechanizmu aplikowania mapowań:
Aktualnie:
Mapowania służące do normalizacji danych bankowych znajdują się w plikach json. Tam znajdują się mapowania stringów i innych typów wartości na nasze słownikowe typy w celu unifikacji danych.

Rozszerzenie:
Dodany zostanie katalog overrides, który zostanie zmapowany na volume, tzn wystawiony poza kontener w celu umożliwienia wprowadzania zmian. Mapowania w katalogu overrides będą miały priorytet nad core'owymi mapowaniami w systemie, dzięki czemu będą mogły, do momentu zaaplikowania zmian w core, nadpisywać oryginalne mapy.
Oczywiście plik po zaczytaniu będzie walidowany i aplikowany będzie jedynie gdy nie pojawi się w nim błąd - wpp będzie w logach informacja, że plik nie jest poprawny i mapowanie nie zostanie zaaplikowane (ale same konektory uruchomią się bez problemu).

Uwaga:
Zakładamy, że zmiany wykonane na plikach przygotowywane są przez zespół banqware, dzięki czemu mamy ich świadomość i możemy je uwzględniać w naszym developmencie oraz konfiguracji, a także aplikować do mapowań core'owych.

Przykład:
Bank ABC, mapowanie typu kont
core

[
{
"source": "Payment card account",
"destination": "CurrentAccount"
},
{
"source": "Current account",
"destination": "CurrentAccount"
},
]

overrides:

[
{
"source": "Payment card account",
"destination": "CreditCard"
},
{
"source": "Some new account",
"destination": "CurrentAccount"
},
]

mapowanie wykorzystywane przez system:

[
{
"source": "Payment card account",
"destination": "CreditCard"
},
{
"source": "Current account",
"destination": "CurrentAccount"
},
{
"source": "Some new account",
"destination": "CurrentAccount"
},
]


Tzn. mapowanie nadpisujące:

  • dodało nowy typ konta "Some new account", który mapuje się na CurrentAccount

  • zmieniło mapowanie "Payment card account" by wskazywało na typ CreditCard


Zakładamy, że to wyczerpie scenariusze, który mogą pojawić się, gdy będziemy chcieli na szybko wprowadzić modyfikację w istniejącym mapowaniu.

Did this answer your question?