Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Overview

Ifix-Adapter is a system which works as mediator between ifix and its clients. This system will receive requests from client system and convert the data in the Ifix required format This document contains the details about how to setup ifix-adapter service and describes the functionalities it provides

Pre-requisites.

Before you proceed with the configuration, make sure the following pre-requisites are met -

  • Java 8

  • Kafka server is up and running

  • PSQL server is running

  • Redis

  • Following services should be up and running:

    • Client Service Like mgramseva-ifix-adapter

    • Target service IFIX- fiscal-event-service

    • Target Service IFIX-keycloak

Key Functionalities

  • IFIX client requests pushed to IFIX

  • Authentication token is fetched from keycloak and cached. Token will be re fetched 5 minutes before expiry

  • project id is fetched from IFIX and cached

  • COA id fetched from IFIX and cache

  • Every push to IFIX is recorded in table with http status

    • status series 200 considered success

    • status 400 are marked client error and reported back to client

    • status 500 resubmitted by scheduler

Deployment Details

  1. Deploy the latest version of ifix-reference-adapter

Environment Variables

Description

kafka.topics.ifix.adaptor.mapper

Topic in which client requests are put . From this further listen and posting happens

keycloak.host

Host name of the key cloak authentication token provider

keycloak.token.url

key cloak authentication token url

keycloak.credentials.clientid

userid of for authentication token

keycloak.credentials.clientsecret

password for authentication token

ifix.host

host name of IFIX server

ifix.event.url

IFIX post URL

spring.redis.host

Host name of the redis server

state.goverment.code

top level tenant id of the client

ifix.coa.search.url

url for COA search in IFIX

ifix.project.search.url

Url for the project code search in IFIX

spring.jpa.properties.hibernate.dialect

dialect for JPA. you can change this to oracle or my sql etc

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation

will generate the required tables in the respective database . This feature is used instead of flyway to get database in-dependency

Configuration Details

  1. Update Key cloak credentials in dev.yaml,qa.yaml,prod.yaml according to environment The credentials are “keycloak.credentials.clientid and “keycloak.credentials.clientsecret” Example is given in here and here

  2. Map clientcode, ifixcoacode, ifixid in ifix_adapter_coa_map table

    1. clientcode is the taxhead like “WATER_CHARGES” or ‘10011’ used in client like mgramseva

    2. ifixcoacode is the 16 digit glcode in IFIX. 16 digit code is mapped then this can be ported to any environment like dev to qa ,or qa to uat or from uat to prod. Prefer mapping ifixcoacode

    3. in other way you can map the IFIX coa id itself. Since these are generated ids you cant port to other environments . You have to id mapping for every environment .

    4. example is INSERT INTO public.ifix_adapter_coa_map(
      id, clientcode, ifixcoacode, ifixid, tenantid)
      VALUES (1,'10101', '0215-01-102-00-00-01', '6cbcb4a1-2431-4f78-89d7-b4f0565aba37', 'pb');

  3. If client “project code” and IFIX project code are different then map clientprojectcode, ifixprojectid in ifix_adapter_project_map table . Ideally you should k eep both codes same for getting meaning ful data in dash board. This you dont have to do any mapping for project code for any environment . But if for any reason you have different project codes or IFIX has multiple projects having same project code then only go for this mapping . Adapter will first check in the IFIX for the supplied “projectCode” by client like mgram . if found it will use it and caches it . If multiple projects or not found it it will look into this table for mapping

    1. example is INSERT INTO public.ifix_adapter_project_map(
      id, clientprojectcode, ifixprojectid, tenantid)
      VALUES (1, '7374', 'e42db9bb-8427-40a6-9939-4f2189d032bf','pb');

  4. state.goverment.code set this value to the clients top level tenantid

Interaction Diagram

Reference Docs

API List

API

Description

events/v1/_push

Api for receiving data from client (mgram). This is the only api present in adapter

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.