1 | TNA Rest Gateway

Provides a secure access to the Terranoha platform services for any outside service.

4 | TNA Intent Service

Reflects to all incoming verbal requests in order to translate user text into structured intents that can be advanced to digital business requests understandable by most servers.

6 | NLP / NLU

The heart of the natural language kitchen. Translates free text phrases into name/value structures and vice versa.

2 | TNA Bot Service

Aligned with requirements of an external messaging (chat) service in order to run a conversation within in fully automated way.

3 | TNA Smart Access Gateway

Routes a request/response communication traffic in accordance with settled transit rules.

5 | TNA Core Service

Includes all kind of business logic processors that are needed to fulfil incoming requests.

7 | TNA Market Connect Service

Brings an ability to receive and accommodate external data feeds along with the data unification process.

Terranoha Security Workflow

1 | TNA Core Service

Contextual security check based on the security context delivered from Access Security level and based on the access rights table.

The Terranoha platform is built on a subset of microservices. Among them we have:

  • Smart Gateway to authenticate users
  • Bot Service to coordinate the bot workflow
  • Intent Service to clarify user’s intents
  • NLU Service to process natural language

Each received request and performed action is audited and recorded.
We are compliant with WhatsApp, Microsoft Teams, Slack, Telegram, Webex.

Audit report can be downloaded on demand from Emmie (Terranoha bot) or via REST API, according to the user granting permissions.

Here below a few examples of some audit records

User starts a conversation:

{
“ctoken”: “42d30d29-79ce-42b6-aef0-74988a054a7e”,
“channel”: “MSTEAMS”,
“client”: “ACME”
}

In this request, user is identified by the ctoken field, which is the id of the user messaging system account. This ctoken is link to a user account.

User receives a link to securely authenticate:

{
“ctoken”: “42d30d29-79ce-42b6-aef0-74988a054a7e”,
“channel”: “MSTEAMS”,
“client”: “ACME”,
“callback”: “https:\/\/service.terranoha.net\/tna\/service\/auth-status”,
“ttl”: 1621260188716
}

The Stream-id is linked to a time stamp and some other metadata fields. Emmie bot creates the report, joins the dependencies needed to have a full view on the audit trail details and provides a readable format.

User requests a quote to bot-service:

{
“data”: {
“message”: “mkt eurusd 100k”,
“id”: “620633749000”,
“channel”: “MSTEAMS”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”
},
“action”: “message.crack”,
“auth”: {
“channel”: “MSTEAMS”,
“ctoken”: “42d30d29-79ce-42b6-aef0-74988a054a7e”,
“client”: “ACME”
}
}

Message is interpreted by intent-assistant:

{
“data”: {
“context”: {
“ccy1”: “EUR”,
“ccy2”: “USD”,
“qty”: “100000.0”
},
“id”: “620633749000”,
“language”: “en”,
“intermediate”: “false”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”,
“context-type”: “forex”,
“intent”: “request”,
“scope”: “quote”
},
“action”: “message.crack.result”
}

User makes an order request to bot-service:

{
“data”: {
“message”: “buy 1m eurusd 1W 360t”,
“id”: “620633749013”,
“channel”: “MSTEAMS”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”
},
“action”: “message.crack”,
“auth”: {
“channel”: “MSTEAMS”,
“ctoken”: “42d30d29-79ce-42b6-aef0-74988a054a7e”,
“client”: “ACME”
}
}

Message is interpreted by intent-assistant:

{
“data”: {
“context”: {
“side”: “buy”,
“ccy1”: “EUR”,
“ccy2”: “USD”,
“qty”: “1000000.0”,
“counterparty”: “360t”,
“set-type”: “1W”
},
“id”: “620633749013”,
“language”: “en”,
“intermediate”: “false”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”,
“context-type”: “forex”,
“intent”: “request”,
“scope”: “order”
},
“action”: “message.crack.result”
}

User confirms the order request:

{
“data”: {
“message”: “c”,
“id”: “620633749014”,
“channel”: “MSTEAMS”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”
},
“action”: “message.crack”,
“auth”: {
“channel”: “MSTEAMS”,
“ctoken”: “42d30d29-79ce-42b6-aef0-74988a054a7e”,
“client”: “ACME”
}
}

Message is interpreted by intent assistant:

{
“data”: {
“context”: {
“side”: “buy”,
“ccy1”: “EUR”,
“ccy2”: “USD”,
“qty”: “1000000.0”,
“counterparty”: “360t”,
“set-type”: “1W”
},
“id”: “620633749014”,
“language”: “en”,
“intermediate”: “false”,
“stream-id”: “a:1LAcxPeLEaF5yWwQUhM2_T8UMHMqYm-sjOxbg8WMG0AXV3bfgcPlFoej3qC2j0MO6IYC4LdSlDWtG9Yp2qWQ8bFP6t0TJp3DJjn_WcHbQAd0r3MUMU-D94rnhemsA7LLo”,
“context-type”: “forex”,
“intent”: “request.confirm”,
“scope”: “order”
},
“action”: “message.crack.result”
}

360t accepts the order:

{
“data”: {
“symbol”: “EUR/USD”,
“id”: “620633742668”,
“type”: “market”,
“status”: “accept”,
“price-near”: 0.0,
“price-far”: 0.0,
“qty-min”: 0.0,
“qty-near-last”: 0.0,
“qty-far-last”: 0.0,
“qty-near-residual”: 1000000.0,
“qty-far-residual”: 0.0,
“price-spot”: 0.0,
“settl-date-near”: “2021-05-13”,
“fwd-points-near”: 0.0,
“fwd-points-far”: 0.0,
“price-near-last”: 0.0,
“price-far-last”: 0.0,
“price-near-average”: 0.0,
“price-far-average”: 0.0,
“time-in-force”: “ioc”,
“counterparty-order-id”: “308500007”,
“counterparty-exec-id”: “nm6lro”,
“status-last”: “accept”,
“qty-near”: 1000000.0,
“qty-far”: 0.0,
“cause-id”: “620633742668”,
“side”: “buy”,
“counterparty”: “360t”
},
“action”: “order.fx.request.result”
}

Order is filled:

{
“data”: {
“symbol”: “EUR/USD”,
“id”: “620633742668”,
“type”: “market”,
“status”: “fill”,
“price-near”: 0.0,
“price-far”: 0.0,
“qty-min”: 0.0,
“qty-near-last”: 1000000.0,
“qty-far-last”: 0.0,
“qty-near-residual”: 0.0,
“qty-far-residual”: 0.0,
“price-spot”: 0.0,
“settl-date-near”: “2021-05-13”,
“fwd-points-near”: 0.0,
“fwd-points-far”: 0.0,
“price-near-last”: 1.21469,
“price-far-last”: 0.0,
“price-near-average”: 1.21469,
“price-far-average”: 0.0,
“time-in-force”: “ioc”,
“counterparty-order-id”: “308500007”,
“counterparty-exec-id”: “903448414.2”,
“status-last”: “fill”,
“qty-near”: 1000000.0,
“qty-far”: 0.0,
“cause-id”: “620633742668”,
“side”: “buy”,
“counterparty”: “360t”
},
“action”: “order.fx.request.result”
}{
“data”: {
“id”: “620633742668”
},
“action”: “request.completion.ack”
}

Login To Your Account Below

Fill the forms bellow to register

Retrieve your password

Please enter your username or email address to reset your password.