Page tree
Skip to end of metadata
Go to start of metadata

Service Catalog is configured using a JSON configuration file, path to which is provided to the SC via -conf flag. By default, the service looks for a configuration file at: conf/service-catalog.json

All configuration fields (except for arrays of objects) can be overridden using environment variables. Below are few examples:

  • STORAGE_TYPE=leveldb
  • MQTT_CLIENT_BROKERURI=tcp://iot.linksmart.eu:1883
  • MQTT_CLIENT_REGTOPICS="a/b,a/c"
  • MQTT_ADDITIONALCLIENTS not possible

Configuration File

A sample configuration file is available at service-catalog.json.

{
  "description": "string",
  "dnssdEnabled": "boolean",
  "storage": {
    "type": "string",
    "dsn": "string"
  },
  "http" : {
    "bindAddr": "string",
    "bindPort": "int"
  },  
  "mqtt":{
    "client": {
        "brokerID": "string",
        "brokerURI":"string",
        "regTopics": ["string"],
        "willTopics": ["string"],
        "qos": "int",
     	"username": "",
      	"password": ""
    }
    "additionalClients": [],
    "commonRegTopics":  ["string"],
    "commonWillTopics": ["string"],
	"topicPrefix": "string"
  },
  "auth": {
        "enabled": "bool",
        "provider": "string",
        "providerURL": "string",
        "serviceID": "string",
        "basicEnabled": "bool",
        "authorization": {}
    }
}


where

  • description is a human-readable description for the SC
  • dnssdEnabled is a flag enabling DNS-SD advertisement of the catalog on the network
  • storage is the configuration of the storage backend
    • type is the type of the backend (supported backends are memory and leveldb)
    • dsn is the Data Source Name for storage backend (ignored for memory, "file:///path/to/ldb" for leveldb)
  • http is the configuration of HTTP API
    • bindAddr is the bind address which the server listens on
    • bindPort is the bind port 
  • mqtt is the configuration of MQTT API
    • client is the configuration for the main MQTT client
      • brokerID is the service ID of the broker (Optional)
      • brokerURI is the URL of the broker
      • regTopics is an array of topic that the client should subscribe to for addition/update of services
      • willTopics is an array of will topic that the client should subscribe to for removal of services (Optional in case TTL is used for registration)
      • qos is the MQTT Quality of Service (QoS) for all reg and will topics
      • username is username for MQTT client
      • password is the password for MQTT client
    • additionalClients is an array of additional brokers objects.
    • commonRegTopics is an array of topics that all clients should subscribe to for addition/update of services (Optional)
    • commonWillTopics is an array of will topic that the client should subscribe to for removal of services (Optional in case commonRegTopics not used or TTL is used for registration)
    • topicPrefix is the string describing the prefix of service announcement topics
  • auth is the Authentication configuration
    • enabled is a boolean flag enabling/disabling the authentication
    • provider is the name of a supported auth provider
    • providerURL is the URL of the auth provider endpoint
    • serviceID is the ID of the service in the authentication provider (used for validating auth tokens provided by the clients)
    • basicEnabled is a boolean flag enabling/disabling the Basic Authentication
    • authorization - optional, see authorization configuation


  • No labels