LogoLogo
  • Home
  • Protocol Overview
    • Introduction
    • Architecture
  • Protocol Guide
    • Get Started
      • Components
      • Definition of Terms
    • Build a dApp
      • Network Configuration
      • TuumIO Data Node
      • TuumIO Ledgers
      • Roles and Journeys
      • Card Definitions
        • Tiles
        • Functions
      • Events and Event Handlers
      • Node Event Handlers
      • Python Event Handlers
      • Transactional Data
    • Test and Publish
      • Publishing the protocol
      • Testing the app using BrowserStack
  • TuumIO Wallet User Manual
    • About TuumIO Wallet
    • User Access
    • SOLVE Tokens
    • Caira - AI Assistant
    • User Profile
    • Care.Trials
      • Overview
      • Participant
      • Site Admin
      • Trial Admin
      • Physician
      • Nurse
  • Tutorials
    • Create an Event Booker
    • Create a Library Explorer
  • Support
Powered by GitBook
LogoLogo

© Solve.Care. All rights reserved.

On this page
  • Fetch MainNet authorization token
  • Fetch network authorization token
  • Get sponsor address
  • Upload the protocol package
  • Publish the protocol package
  • Get publishing state
  • Update TDN
  • Uploading data definition file (DDF)
  • Searching data
  • Deleting existing data from TDN
  • Checking the count

Was this helpful?

Edit on GitHub
Export as PDF
  1. Protocol Guide
  2. Test and Publish

Publishing the protocol

PreviousTest and PublishNextTesting the app using BrowserStack

Last updated 8 months ago

Was this helpful?

Use Postman to perform the steps for publishing. To get the authorization and environment details, contact .

Fetch MainNet authorization token

Initiate a request with the appropriate details for your environment.

POST

https://{{abc-care-env}}/core-registry-service/oauth/token?grant_type=password&username=%2B{{networkAuthorPhone}}&password={{networkAuthorPassword}}&blockchainAddress={{networkAuthorWalletId}}

Pre-request script:

Example:
pm.globals.set("abc-care-env", "dev.env.abc.net");
pm.globals.set("xxx-env", "site000.abc.net/sample-net");


pm.globals.set("networkAuthorPhone", "91888888888");
pm.globals.set("networkAuthorWalletId", "0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pm.globals.set("networkAuthorPassword", "999999");
pm.globals.set("networkId", "dev-network-xxx");

Fetch network authorization token

POST

https://{{eks-env}}/nom/oauth/token?grant_type=exchange_token&exchange_token={{networkAuthorMainNetToken}}

Get sponsor address

GET

https://{{eks-env}}/nom/v2/holders/me

Post-request script:

Example:
const jsonData = pm.response.json().nodes;
const networkId = pm.globals.get("networkId");
const node = jsonData.filter(r => r.networkId === networkId && r.roleId === 'NETWORK_SPONSOR')[0];
pm.globals.set("sponsorWalletAddress", node.scAddress);

Upload the protocol package

POST

https://{{eks-env}}/generic-protocol-service/v2/packaging/{{networkId}}/restore/zip

Publish the protocol package

POST

https://{{eks-env}}/generic-protocol-service/v2/packaging/{{networkId}}/publish
Example:
curl --location --globoff 'https://{{eks-env}}/generic-protocol-service/v2/packaging/{{networkId}}/publish' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{networkAuthorCANToken}}' \
--data '{
    "certificates":"CERT-12345-2022",
    "effectiveDate": "20-05-2022",
    "sponsorWalletAddress": "{{sponsorWalletAddress}}"
    
    

}'

Get publishing state

GET

https://{{eks-env}}/generic-protocol-service/v2/packaging/{{networkId}}/{{networkVersion}}
Example:
curl --location --globoff 'https://{{eks-env}}/generic-protocol-service/v2/packaging/{{networkId}}/{{networkVersion}}' \
--header 'Authorization: Bearer {{networkAuthorCANToken}}'

Update TDN

Upload the CSV file with the same attributes as the uploaded DDF in the input folder of the Amazon S3 bucket. If necessary, delete existing data.

Uploading data definition file (DDF)

The data definition file contains the model and structure for organizing data in TDN.

POST

https://{{eks-env}}/{{network-id}}/data-node/v1/ddf
Example:
curl --location 'https://data-node/v1/ddf?status=ACTIVE' \
--header 'Authorization: Basic Y2FyZS1iYWNrZW5kOnNlY3JldA==' \
--header 'Content-Type: application/json' \
--data '{
    "ddf_type": "us-doctors-sample",
    "meta_data": {
        "description": "Sample"
    },
    "messages": [
        {
            "message_category": "CSV",
            "message_type": "Doctors",
            "meta_data": {
                "description": "Sample",
                "indices": "us-doctors-sample"
            },
            "events": [
                {
                    "to_role": "rl-patient",
                    "event": "ev-cdn-broadcast"
                }
            ],
            "attributes": [
                {
                    "name": "Provider",
                    "description": "Provider",
                    "required": false,
                    "index_field": true,
                    "type": "integer",
                    "data_location": "Provider"
                },
                {
                    "name": "License",
                    "description": "License",
                    "required": false,
                    "index_field": true,
                    "type": "string",
                    "data_location": "License"
                },
                {
                    "name": "Specialization",
                    "description": "Specialization",
                    "required": false,
                    "index_field": true,
                    "type": "string",
                    "data_location": "Specialization"
                },
                {
                    "name": "Address",
                    "description": "Address",
                    "required": false,
                    "index_field": true,
                    "type": "string",
                    "data_location": "Address"
                }
            ]
        }
    ]
}'

Searching data

POST

https://{{eks-env}}/{{network-id}}/elasticsearch/us-doctors-sample/_search
Example:
curl --location 'https://elasticsearch/us-doctors-sample/_search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic ZWxhc3RpYzpweFkwMXNQTXMyZTRTdFp3M2U1MjU5N3U=' \
--data '{

"query": {

"match_all": {}

}

}'

Deleting existing data from TDN

POST

https://{{eks-env}}/{{network-id}}/elasticsearch/us-doctors-sample/_delete_by_query
Example:
curl --location 'https://{{eks-env}}/{{network-id}}/elasticsearch/us-doctors-sample/_delete_by_query' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic ZWxhc3RpYzpweFkwMXNQTXMyZTRTdFp3M2U1MjU5N3U=' \
--data '{

"query": {

"match_all": {}

}

}'

Checking the count

POST

https://{{eks-env}}/{{network-id}}/elasticsearch/us-doctors-sample/_count
Example:
curl --location --globoff 'https://{{eks-env}}/{{network-id}}/elasticsearch/us-doctors-sample/_count' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic ZWxhc3RpYzo5UlBJMTMzNFNydHBOMzI1NFNRcjd4clI=' \
--data '{

"query": {

"match_all": {}

}

}'

tuumio.support@solve.care