Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageactionscript3
titlesoa.json for type=service
{
    "type": "service",
	"subType": "",
    "name": "artifact",
    "group": "Examples",
	"description": "This is the decryption of your service",
	"tags": ["tag1", "tag2"],
	"attributes": {
		"att1": ["att1.1", "att1.2"],
		"att2": ["att2.1", "att2.2"]
	},
	"tab": {
    	"main": "Main _tab",
    	"sub": "Sub _tab"
  	},
	"program":
["soajs"],

	"documentation": {
		"readme": "/doc/markupfile",
		"release": "/doc/markupfile"
	},

	"swaggerFilename": "/doc/swagger.yml",
    "port": 4100,
    "version": "1",

	//Search criteria
	"program": ["soajs"],
	"tags": ["tag1", "tag2"],
	"attributes": {
		"att1": ["att1.1", "att1.2"],
		"att2": ["att2.1", "att2.2"]
	},

	//Configuration
    "extKeyRequired": true,
    "oauth": true,
    "urac": true,
    "urac_Profile": true,
    "urac_ACL": false,
    "tenant_Profile": false,
    "provision_ACL": false,
    "requestTimeout": 30,
    "requestTimeoutRenewal": 5,
	"maintenance": {
        "port": {
            "type": "inherit"
        },
        "readiness": "/heartbeat"
    },
	"interConnect": [
		{"name": "ms", "version": "1"}
	],
    "prerequisites": {
        "cpu": " ",
        "memory": " "
    },

	//Custom profile
	"profile": {
		//free to add whatever you want 
	}
}


...

VariableRequireddescriptionexampleDefault
dssUI meta data
Item and UI metadata
typeYesThe following type are supported: static, service, daemon, multi, custom (anything else)if not set the default type will be custom.custom
subtypeNo

services
tabNo

-
nameYesThe name of the service, has to be unique and not been used by other service at the API catalog.

If the repoName is : xx.pay.merchant-registration 
Then your serviceName should be: "merchant-registration"


groupYesThe group of the service, make sure you set the right group to properly display the service under the right group at the API catalog.

The serviceGroup should reflect the system the service belongs to "Payment"


descriptionNoThe service description to appear in the API catalog UI"This is a string"
""
-
Search
meta data
metadata
tagsNoArray of tags
-
attributesNoObject of attributes
-
programNo
Documentation meta datadocumentationType meta data
Array of programs
-
Documentation metadata by version
documentationNoObject
-
.readmeNoReadme

.releaseNoRelease notes

Configuration metadata 
portYesThe port of the service. make sure it is unique and not being used by any other service at the API catalog. 4100
requestTimeoutNoThe request lifetime
30 
requestTimeoutRenewalNoHow many times to renew the request lifetime
5
prerequisites



Configuration metadata  by version
swaggerFilenameNoThe location of the service swagger file from the repository root. if not set soajs will look for swagger.yml or swagger.json at the root folder."/doc/swagger.yml"swagger.json
portYesThe port of the service. make sure it is unique and not being used by any other service at the API catalog. 
4100
versionYesThe version of the service. make sure it has the following syntax: a string of /[0-9]+(.[0-9]+)?/"1" or "1.1""1"
extKeyRequiredNoTo turn on multi tenancy you need to have extKeyRequired set to true
default value is

true
true
oauthNoTo turn on oauth security for this service. 

default is false

soajs supports 2 types of oAuth

  • oAuth0 aka JWT or webToken
  • oAuth 2.0

soajs empowers you to turn on oAuth at many different levels

  1. At the service level by adding it to soa.json
    Adding it to soa.json means you want oauth to be on for this service by default

  2. At the service > environment level from the console under: develop tab → API catalog → service settings
    Adding it at the service settings gives you the flexibility to turn it on and off per service per environment, 
    Please note that this will overwrite soa.json  

  3. At the tenant level from the console under: manage tab → multi-tenancy
    Adding it at the tenant level gives you the flexibility to turn on or off oauth per tenant.
    Please note that this will overwrite the above 2 points
    Also you can specify the type of oauth you want (oauth0 or oauth2)
false
uracNoTo add to the request header the logged-in user information 

This is

supper

super useful when soajs gateway proxy the request to your service and you need to know who is the logged-in user.

default is


false
false
urac_ProfileNoTo add to the request header the logged-in user profile information 
default is false

false
urac_ACLNoTo add to the request header the logged-in user ACL information 
default is false

false
tenant_profileNo


provision_ACLNoTo add to the request header the tenant ACL information 
default is

false
falserequestTimeoutNoThe request lifetimedefault is 30 30 requestTimeoutRenewal
NoHow many times to renew the request lifetimedefault is 55
maintenanceYes

The heartbeat route to probe the health status of the service.

 

 The type can be ("inherit", "maintenance", "custom")

  • inherit= the same port as the microservice 
  • maintenance= the microservice port + the maintenance increment set at SOAJS Gateway
  • custom= a custom port, you will need to specify a value as follow

    Info

    { "port": { "type": "custom" , "value": 4001}, ...}





Code Block
languageactionscript3
titleexample
{
 "port": {
    "type": "inherit"
 },
 "readiness": "/heartbeat",

 "commands": [
    {
	"label": "reload", 
	"path": "/reload", 
	"icon": "provision"
	}
 ]
}
prerequisites



Profile metadata by version
profilenoFree json object to add custom information.


Maintenance Icon
For maintenance SOAJS is using font awesome, checkout the available icons at https://fontawesome.com/icons?d=gallery 

For example, if you choose the wrench icon as follows :


Code Block
languagejs
titleexample
{
 "port": {
    "type": "inherit"
        },
 "readiness": "/heartbeat",

 "commands": [
    {"label": "My Command", "path": "/mypath", "icon": "fas fa-wrench"}
        ]
}