...
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 IFIX client requests pushed to IFIX
Auth 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 IFIX is recoded recorded in table with http status
status series 200 series considered success
status 400 are marked client error and reported back to client
status 500 resubmitted by scheduler
...
Deploy the latest version of ifix-reference-adapter
Environment Variables | Description |
| Topic in which client requests are put . From this further listen and posting happens |
| Host name of the key cloak authentication token provider |
| key cloak authentication token url |
| userid of for authentication token |
| password for authentication token |
| host name of IFIX server |
| IFIX post URL |
| Host name of the redis server |
| top level tenant id of the client |
| url for COA search in IFIX |
| Url for the project code search in IFIX |
| dialect for JPA. you can change this to oracle or my sql etc |
| will generate the required tables in the respective database . This feature is used instead of flyway to get database in-dependency |
Configuration Details
Update Key cloak credentials in dev.yaml,qa.yaml,prod.yaml according to environment update the keycloak credentials “client-id” and “secrets” in environment file https://github.com/egovernments/iFix-DevOps/blob/27c67ad236f06ad2e6a139c4d59111db184f8705/deploy-as-code/helm/environments/mgramseva-qa.yaml#L224 ,https://github.com/egovernments/iFix-DevOps/blob/27c67ad236f06ad2e6a139c4d59111db184f8705/deploy-as-code/helm/environments/mgramseva-qa-secrets.yaml#L65 The credentials are “
keycloak.credentials.clientid
and “keycloak.credentials.clientsecret
” Example is given in here and hereMap clientcode, ifixcoacode, ifixid in ifix_adapter_coa_map table
clientcode is the taxhead like “WATER_CHARGES” or ‘10011’ used in client like mgramseva
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
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 .
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');
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
Integration
Integration Scope
...
for mapping
example is INSERT INTO public.ifix_adapter_project_map(
id, clientprojectcode, ifixprojectid, tenantid)
VALUES (1, '7374', 'e42db9bb-8427-40a6-9939-4f2189d032bf','pb');
state.goverment.code
set this value to the clients top level tenantid
Interaction Diagram
...
Reference Docs
Doc Links
API List
Title | Link |
Api Swagger document | https://github.com/egovernments/iFix-Dev/blob/adaptor-dev/reference-adapter/iFix-adapter-v1.0.yaml |
/events/v1/_pushPostman |
API List
API | Description |
---|---|
events/v1/_push | Api for receiving data from client (mgram). This is the only api present in adapter |