Versions Compared

Key

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

SOAJS has backward compatibilities, however we advice you to start using the new version. However here is the content of the previous version of soa.json, this file is needed when you activate a repository or when you add a passthrough endpoint from git.

Code Block
languagejson
{
    "serviceName": "artifact",
    "serviceGroup": "Examples",
    "servicePort": 4100,
    "serviceVersion": "1",
    "description": "This is the decryption of your service",
	    "tags": ["tag1", "tag2"],
 	   "attributes": {
		"att1": ["att1.1", "att1.2"],
		"att2": ["att2.1", "att2.2"]
	},
	"program": ["soajs"],
	"swaggerFilename": "/doc/swagger.yml",
    "maintenance": {
        "port": {
            "type": "inherit"
        },
        "readiness": "/heartbeat"
    },
    "type": "service",
    "prerequisites": {
        "cpu": " ",
        "memory": " "
    },
    "requestTimeout": 30,
    "requestTimeoutRenewal": 5,
    "extKeyRequired": true,
    "oauth": true,
    "urac": true,
    "urac_Profile": true,
    "urac_ACL": false,
    "tenant_Profile": false,
    "provision_ACL": false
}


Variable

Required

description

example

serviceName

Yes

The 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 serviName should be: merchant-registration

"merchant-registration"

serviceGroup

Yes

The 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"

servicePort

Yes

The port of the service. make sure it is unique and not being used by any other service at the API catalog. 

4100

serviceVersion

Yes

The version of the service. make sure it has the following syntax: a string of /[0-9]+(.[0-9]+)?/

"1" or "1.1"

description

No

The service description to appear in the API catalog UI

"This is a string"

swaggerFilename

No

The 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"

type

Yes

The following type are supported: static, service, daemon, multi, custom (anything else)

if not set the default type will be custom.

extKeyRequired

No

To turn on multi tenancy you need to have extKeyRequired set to true

default value is true

oauth

No

To 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)

urac

No

To add to the request header the logged in user information 

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

default is false

urac_Profile

No

To add to the request header the logged in user profile information 

default is false

urac_ACL

No

To add to the request header the logged in user ACL information 

default is false

provision_ACL

No

To add to the request header the tenant ACL information 

default is false

requestTimeout

No

The request lifetime

default is 30 

requestTimeoutRenewal

No

How many times to renew the request lifetime

default is 5

maintenance

Yes

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


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

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




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
{
 "port": {
    "type": "inherit"
        },
 "readiness": "/heartbeat",

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