Skip to content

Release 3.0.0

Release Date: 02-10-2025

Release Notes


📋 Overview

  • Release v3.0.0 delivers a new Feature for RAIN Card Issuance and Transactions — a new addition to the card management systems.

Summary

Features

RAIN

  • Rain – Development for Card Issuance
  • Rain – Development for Transactions
  • Enhancement in Onboard and Update API (Adding Four Fields)
  • Enhancement in Badge Management for Identification and Information Badges
  • Rain – Manage Debit Card

Other Features/Improvements

  • Enhancement in Badge Update Webhook for Identification, Financial, and Information Badges
  • Enhancement – Uniqueness of Email ID per Customer

Upgrade Notes

The sequence of steps to follow to upgrade are:

  1. Container images and configmaps
  2. DB migrations
  3. Swagger APIs
  4. Post Release Scripts

Container images and configmaps

All provided images, available in the Image List section should be downloaded and built to be LGPL compliant.

All new images tags will be used to update Kubernetes manifests.

Omnumi Frontend microservice

ConfigMap

Add/replace the following values in Omnumi Frontend microservice's ConfigMap:

configmap.yml
FLUTTER_CONFIG_VERSION: '3.0.0'

Client Authorizer microservice

ConfigMap

Add/replace the following values in Client Authorizer microservice's ConfigMap:

configmap.yml
PLATFORM_KEYVAULT_TENANT_ID: ['replace with azure tenant id']
PLATFORM_KEYVAULT_CLIENT_ID: ['replace with azure client id']
PLATFORM_KEYVAULT_CLIENT_SECRET: ['replace with azure client secret']
PLATFORM_KEYVAULT_VAULT_NAME: ['replace with azure keyvault name']
PLATFORM_KEYVAULT_SECRET_NAME: PSQLENCRYPTIONKEY
PLATFORM_RAIN_X_API_KEY_KEY: ['Rain Api key']
PLATFORM_CARD_RESERVATION_SERVICE_URL: [replace with card reservation service URL]
PLATFORM_CARD_SETTLEMENT_SERVICE_URL: [replace with card settelment service URL]
PLATFORM_WEBHOOK_TIMEOUT: '400'

Card Issuer microservice

Render new RAIN_SESSION_SECRET

There's the need to render a 32 chars string to be used as RAIN_SESSION_SECRET.

Execute the following command and take note of the value:

Shell CLI
$ cat /dev/urandom | tr -dc 'A-Z2-7' | head -c 32
ConfigMap

Multiline

RAIN_RSA_PUBLIC_KEY_PEM group keys can be added as YAML multiline using |.

Check the indentation to avoid any errors

Add/replace the following values in Card Issuer microservice's ConfigMap:

configmap.yml
VENDOR_RAIN: 'RAIN'
RAIN_X_API_KEY: '[Rain Api key]'
RAIN_API_BASE_URL: '[Rain Api Base Url]'
RAIN_API_VERSION:  'v1'
RAIN_RSA_PUBLIC_KEY_PEM: '[Replace with Rain Public key]'

RAIN_SESSION_SECRET: '[replace with otp generated secret]'

SANDBOX_RPC_URL: 'RPC URL'
ZERO_ADDRESS_CONTRACT: '0x0000000000000000000000000000000000002070'
CONTRACT_ADDRESS_TOKENRESERVE: 'Token Reserve Smart contract address'
RAIN_CARD_LIMIT: '1000'

Auth microservice

ConfigMap

Create a set of new private and public key per PREAUTH_TOKEN_PRIVATE_KEY and PREAUTH_TOKEN_PUBLIC_KEY group.

Variable Description
PREAUTH_TOKEN_PRIVATE_KEY Private key used for Pre-Auth
PREAUTH_TOKEN_PUBLIC_KEY Public key used for for Pre-Auth.

Execute the following command and take note of the value:

Generate keys
openssl genrsa -traditional | tee >(openssl rsa -pubout)

Private and pub keys

The output will render both private an public to the stdout.

You should select each block and fill in the correct variable with the respective content.

Add/replace the following values in Auth microservice's ConfigMap:

Multiline

PREAUTH_TOKEN_PRIVATE_KEY and PREAUTH_TOKEN_PUBLIC_KEY group keys can be added as YAML multiline using |.

Check the indentation to avoid any errors

configmap.yml
  #PreAuth token
  PREAUTH_TOKEN_PRIVATE_KEY: |
    [replace with key contents]

  PREAUTH_TOKEN_PUBLIC_KEY: |
    [replace with key contents]

DB migrations

Omnumi Core migrations

Download DB migrations ZIP file available in Assets, unpack/unzip it in order to perform remaining instructions.

DB backup

Before proceeding with remaining steps, it's strongly advised to take a database backup before proceeding.

Update credentials

Edit/create a file named development.env inside db-migrations/src/common/envs folder

db-migrations/src/common/envs/development.env
DB_HOST=[replace with db host url]
DB_USER=[replace with db user]
DB_PWD=[replace with db user password]
DB_NAME=[replace with db name]

AZURE_TENANT_ID=[replace with azure tenant id]
AZURE_CLIENT_ID=[replace with azure client id]
AZURE_CLIENT_SECRET=[replace with azure client secret]
AZURE_KEYVAULT_NAME=[replace with azure keyvault name]

DEFAULT_TENANT=[replace with default tenant name]

Execute DB migrations

Execute the remaining commands located inside the extracted content folder (e.g.: db-migrations):

Execute migrations
$ npm install
$ npm run migrate

Client Authorizer Schema

Database variable to change

The belo SQL Command must be execute inside client_authorizer Schema

Execute SQL
ALTER TABLE transactions
    ADD COLUMN merchant_id TEXT,
    ADD COLUMN merchant_city TEXT,
    ADD COLUMN merchant_name TEXT,
    ADD COLUMN user_last_name TEXT,
    ADD COLUMN user_first_name TEXT,
    ADD COLUMN merchant_country TEXT,
    ADD COLUMN authorized_amount FLOAT8,
    ADD COLUMN merchant_category TEXT,
    ADD COLUMN authorization_method TEXT,
    ADD COLUMN merchant_category_code TEXT,
    ADD COLUMN previously_authorized_amount FLOAT8,
    ADD COLUMN user_id TEXT,
    ADD COLUMN user_email TEXT;

ALTER TABLE transactions
    ADD COLUMN dss_vendor_id uuid NULL;

UPDATE transactions t
SET dss_vendor_id = v.dss_vendor_id
FROM public.dss_vendor v
WHERE t.partner = v.name;

ALTER TABLE transactions
    ADD CONSTRAINT fk_transactions_dss_vendor
    FOREIGN KEY (dss_vendor_id) REFERENCES public.dss_vendor(dss_vendor_id);

ALTER TABLE transactions DROP COLUMN partner;

CREATE INDEX IF NOT EXISTS idx_transactions_public_id
    ON transactions (public_id);

CREATE INDEX IF NOT EXISTS idx_transactions_transaction_id
    ON transactions (transaction_id);

ALTER TABLE transactions
    ALTER COLUMN process_code DROP NOT NULL,
    ALTER COLUMN rrn DROP NOT NULL,
    ALTER COLUMN stan DROP NOT NULL,
    ALTER COLUMN terminal_id DROP NOT NULL,
    ALTER COLUMN acquirer_id DROP NOT NULL,
    ADD COLUMN authorize_update_amount FLOAT;

INSERT INTO client_authorizer.goose_db_version (version_id,is_applied,tstamp) VALUES
     (20250909072306,true,'2025-10-02 06:26:19.643882'),
     (20250909072733,true,'2025-10-02 06:26:19.667698'),
     (20250909143436,true,'2025-10-02 06:26:19.750763'),
     (20250911115157,true,'2025-10-02 06:26:19.79371' );

Swagger APIs

Download Swagger APIs tarball file available in Assets, unpack/unzip it in order to perform remaining instructions.

Update API

Public (v2)

Upload file
  1. Navigate to the API Management service service.
  2. Expand APIs left blade menu and select APIs
  3. Select public and expand the API option button (...) to select Import available option
  4. Select OpenAPI tile
    • Import method: Update
    • Select file: Public.openapi-3.0.0.json
Update settings
  1. Select Public API.
  2. Open Settings tab and update:

  3. Web service URL = core microservice URL

  4. Save the changes.

Update methods ChainCore
  1. Open Chain tab and enable Group by tag.
  2. Expand ChainCore and update the Backend – HTTP(s) endpoint with chain-core microservice URL.
  3. Repeat operation for all listed API methods under ChainCore.
Update methods Auth
  1. Open Auth tab and enable Group by tag.
  2. Expand Auth and update the Backend – HTTP(s) endpoint with auth service microservice URL.
  3. Repeat operation for all listed API methods under Auth.
Update methods Card Issuer
  1. Open Card tab and enable Group by tag.
  2. Expand Card and update the Backend – HTTP(s) endpoint with card issuer service microservice URL.
  3. Repeat operation for all listed API methods under Card.

Partner (v2)

Upload file
  1. Navigate to the API Management service service.
  2. Expand APIs left blade menu and select APIs
  3. Select partner and expand the API option button (...) to select Import available option
  4. Select OpenAPI tile
    • Import method: Update
    • Select file: Partner-openapi-300.json
Update settings
  1. Select Partner API.
  2. Open Settings tab and update:

  3. Web service URL = core microservice URL

  4. Save the changes.

Update methods ChainCore
  1. Open Chain tab and enable Group by tag.
  2. Expand ChainCore and update the Backend – HTTP(s) endpoint with chain-core microservice URL.
  3. Repeat operation for all listed API methods under ChainCore.
Update methods Card Issuer
  1. Open Card tab and enable Group by tag.
  2. Expand Card and update the Backend – HTTP(s) endpoint with card issuer service microservice URL.
  3. Repeat operation for all listed API methods under Card.

Private: Omnumi Core

Upload file
  1. Navigate to the API Management service service.
  2. Expand APIs left blade menu and select APIs
  3. Select Private:core and expand the API option button (...) to select Import available option
  4. Select OpenAPI tile
    • Import method: Update
    • Select file: private-core.3.0.0.open-api.json
Update settings
  1. Select Private:core API.
  2. Open Settings tab and update:

  3. Web service URL = core microservice URL

  4. Save the changes.

Private: Card Issuer

Upload file
  1. Navigate to the API Management service service.
  2. Expand APIs left blade menu and select APIs
  3. Select Private:Card Issuer and expand the API option button (...) to select Import available option
  4. Select OpenAPI tile
    • Import method: Update
    • Select file: private-card-issuer.3.0.0.open-api.json
Update settings
  1. Select Private:Card Issuer API.
  2. Open Settings tab and update:

  3. Web service URL = card-issuer microservice URL

  4. Save the changes.

Private: Omnumi Rule Engine

Upload file
  1. Navigate to the API Management service service.
  2. Expand APIs left blade menu and select APIs
  3. Select Private:Rules Engine and expand the API option button (...) to select Import available option
  4. Select OpenAPI tile
    • Import method: Update
    • Select file: Private-rules-engine-3.0.0.open-api.json
Update settings
  1. Select Private:Rules Engine API.
  2. Open Settings tab and update:

  3. Web service URL = rule-engine microservice URL

  4. Save the changes.

Image list

Microservice name Image tag
Omnumi Core Microservice omnumisandbox.azurecr.io/core:3.0.0-deliverable
Omnumi Rule-Engine Microservice omnumisandbox.azurecr.io/rule-engine:3.0.0-deliverable
Omnumi Card Resrvation Microservice omnumisandbox.azurecr.io/omnumi-card-reservation:3.0.0-deliverable
Omnumi Listener Microservice omnumisandbox.azurecr.io/listener:3.0.0-deliverable
Omnumi Card Issuer Microservice omnumisandbox.azurecr.io/omnumi-card-issuer-service:3.0.0-deliverable
Omnumi Client Authorizer Microservice omnumisandbox.azurecr.io/omnumi-client-authorizer:3.0.0
Frontend Microservice omnumisandbox.azurecr.io/frontend:3.0.0

post-release-scripts

Download Post Release Script file available in Assets, with (post-release-scripts-300.docx)

Assets

Login into files portal