Skip to content

rkbalgi/isosim

Repository files navigation

Go Report Card codecov GoDev build GitHub release (latest by date including pre-releases) Docker Pulls

ISO WebSim

A very short screencast - https://youtu.be/vSRZ_nzU-Jg

Pulling a docker image would be the quickest way to run without any hassles of building/configuring etc!

Iso Websim is a ISO8583 simulator built using Go, React, Material-UI and other amazing open source libraries.

Features -

  • A mechanism to define ISO specifications
    • ASCII, EBCDIC, BCD and BINARY encoding for fields
    • Fixed, Variable, Bitmapped fields
    • Embedded/Nested fields
    • Supported MLI's - 2I, 2E, 4I, 4E
  • Define and run servers based on specs
    • Run servers from the UI or in standalone mode
    • Rules to respond to messages based on fields (rules based on amount, currency etc)
  • A UI to build and send transactions to servers (as a client)
    • Ability to edit fields on UI
    • UI hints to render special fields
    • Client-side validation of fields for content, length
    • PIN and MAC generation
    • Padding support
    • Save messages that be can be replayed later
    • Build Test Cases that can be saved and re-run for regression testing etc
    • Log of past messages
  • TLS, Docker

Checkout the wiki for more details!

The specifications themselves are defined in yaml file (Check out an example - iso_specs.yaml)

The frontend is bundled with the application and can be accessed at http://localhost:8080/

Please note that this application has been tested only on the chrome browser.

Usage:

C:>go run isosim.go -help
  -data-dir string
        Directory to store messages (data sets). This is a required field.
  -html-dir string
        Directory that contains any HTML's and js/css files etc.
  -http-port int
        HTTP/s port to listen on. (default 8080)
  -log-level string
        Log level - [trace|debug|warn|info|error]. (default "debug")
  -specs-dir string
        The directory containing the ISO spec definition files.

Running Iso WebSim

$> git checkout https://github.com/rkbalgi/isosim.git
$> cd isosim\cmd\isosim
$> go run isosim.go -http-port 8080 -specs-dir ..\..\test\testdata\specs -html-dir ..\..\web -data-dir ..\..\test\testdata\appdata

Open chrome and hit this URL http://localhost:8080/