Skip to content

ServiceRegistry

This Core system provides the data storage functionality for the information related to the currently and actively offered services within the Local Cloud. It also stores information about the systems that offer and/or can use the previously mentioned services, and optionally data about the devices on which those systems are running.

Learn more:
Abstract System Description (SysD)

Services

serviceDiscovery

The purpose of this service is to lookup, register and revoke provided services. The service is offered for both application and Core/Support systems.

Learn more:
Abstract Service Description (SD)
generic_http (IDD) | generic_https (IDD)
generic_mqtt (IDD) | generic_mqtts (IDD)
since: v5.0.0

register

This service operation adds new service instance to the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

revoke

This service operation removes a service instance from the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

lookup

This service operation lists the service instances that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts


systemDiscovery

The purpose of this service is to lookup, register and revoke systems that are part of (or want to be part of) the Local Cloud. The service is offered for both application and Core/Support systems.

Learn more:
Abstract Service Description (SD)
generic_http (IDD) | generic_https (IDD)
generic_mqtt (IDD) | generic_mqtts (IDD)
since: v5.0.0

register

This service operation adds new system to the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

revoke

This service operation removes a system from the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

lookup

This service operation lists the systems that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts


deviceDiscovery

The purpose of this service is to lookup, register and revoke devices on which the Local Cloud’s systems can run. The service is offered for both application and Core/Support systems.

Learn more:
Abstract Service Description (SD)
generic_http (IDD) | generic_https (IDD)
generic_mqtt (IDD) | generic_mqtts (IDD)
since: v5.0.0

register

This service operation adds a new device to the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

revoke

This service operation removes a device from the Local Cloud.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

lookup

This service operation lists the devices that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts


generalManagement

Its purpose is to get some information about the hosting system’s behavior, such as log entries and configuration settings. The service is offered for administrative Support systems.

Learn more:
Abstract Service Description (SD)
generic_http (IDD) | generic_https (IDD)
generic_mqtt (IDD) | generic_mqtts (IDD)
since: v5.0.0

get-log

This service operation lists the log entries of the system that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

get-config

This service operation lists the current values of the specified configuration settings.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts


serviceRegistryManagement

Its purpose is to manage service definitions, service instances, interfaces, systems and devices in bulk. The different operations provide querying, registering, updating and unregistering functionalities. The service is offered for administrative Support systems.

Learn more:
Abstract Service Description (SD)
generic_http (IDD) | generic_https (IDD)
generic_mqtt (IDD) | generic_mqtts (IDD)
since: v5.0.0

device-query

This service operation lists the devices that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

device-create

This service operation registers the specified devices.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

device-update

This service operation updates the specified existing devices.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

device-remove

This service operation revokes the specified devices.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

system-query

This service operation lists the systems that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

system-create

This service operation registers the specified systems.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

system-update

This service operation updates the specified existing systems.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

system-remove

This service operation revokes the specified systems.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-definition-query

This service operation lists the service definitions.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-definition-create

This service operation registers the specified service definitions.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-definition-remove

This service operation revokes the specified service definitions.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-query

This service operation lists the service instances that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-create

This service operation registers the specified service instances.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-update

This service operation updates the specified existing service instances.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

service-remove

This service operation revokes the specified service instances.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

interface-template-query

This service operation lists the interface templates that match the filtering requirements.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

interface-template-create

This service operation registers the specified interface templates.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

interface-template-remove

This service operation revokes the specified interface templates.

Example: generic_http | generic_https
Example: generic_mqtt | generic_mqtts

Configuration

The system configuration properties can be found in the application.properties file located at /src/main/resources folder.

Note: During the build process this file is going to be built into the executable JAR, but also going to be copied next to the JAR file. Any modification in the configuration file located next to the executable JAR file will override the built in configuration property value.

General parameters

See the general configuration properties.

Database parameters

spring.datasource.url

URL to the database.

spring.datasource.username

Username to the database.

spring.datasource.password

Password to the database.

spring.datasource.driver-class-name

The driver provides the connection to the database and implements the protocol for transferring the query and result between client and database.

spring.jpa.show-sql

Set to true in order to log out the SQL queries.

spring.jpa.properties.hibernate.format sql

Set to true to log out SQL queries in pretty format. (Effective only when 'spring.jpa.show-sql' is 'true')

spring.jpa.hibernate.ddl-auto

Auto initialization of database tables. Value must be always 'none'.

Custom parameters

authenticator.credentials

The credentials that this system will use for performing the login operation when the authentication policy is outsourced.

authenticator.credentials={\
    '<credential-name>': '<credential-value>' \
}

authenticator.secret.keys

Secret key for the authenticator servers when authentication policy is outsourced. The authenticator servers are able to register their authentication-related services by providing their system name hashed with the associated secret key.

authenticator.secret.keys={\
    '<system-name>': '<secret-key>' \
}

enable.blacklist.filter

Enable/disable automatic service requester system name verification against to cloud level blacklist. Can be true or false.

force.blacklist.filter

Whether or not the service requests should be refused when the blacklist server is not responding. Can be true or false.

enable.management.filter

Enable or disable authorization for accessing the management services. Can be true of false.

management.policy

Way of authorizing the management service requester systems. Can be:

  • sysop-only, when the authenticated requester system has system-operator role that ensures overall management permission.
  • whitelist, sysop-only and when the authenticated requester system is whitelisted in the management.whitelist configuration property that ensures overall management permission.
  • authorization, sysop-only and whitelist and when the authenticated requester system has appropriate service permission according to the ConsumerAuthorization Core system.

management.whitelist

Name of the systems which can access to management services in case of whitelist policy is effective.

management.whitelist=<system-name-a>,<system-name-b>

service.discovery.policy

Behavior of the service-discovery service. Can be:

  • open, every existing service is directly discoverable.
  • restricted, only the public core services are discoverable directly. The other ones must be orchestrated.

service.discovery.direct.access

Name of systems which always have direct access to the service-discovery service. Only Core or Support systems should be listed here.

service.discovery.direct.access=<system-name-a>,<system-name-b>

discovery.verbose

Whether or not the service-discovery service should provide system and device details as well and the system-discovery service should provide device details as well. Can be true of false.

service.discovery.interface.policy

Way of handling non-existing service interfaces during service registration. Can be:

  • restricted, when only the already existing interface templates can be used.
  • extendable, when new interface template will be created with all the provided properties as mandatory properties.
  • open, when new interface template will be created without any further restrictions.

allow.self.addressing

Whether or not the registration of systems and devices with self-addressing IPv4, IPv6 and hostname addresses are allowed. In case of self-addressing addresses the IP packets cannot be directed from one device to another. Can be true of false.

allow.non.routable.addressing

Whether or not the registration of systems and devices with non-routable IPv4 and IPv6 addresses are allowed. In case of non-routable addresses the IP packets cannot be directed from one network to another. Can be true of false.

service.address.alias

Alias keys under which the service addresses can appear in the interface properties.

service.address.alias=<alias-1>,<alias-2>

max.page.size

Specifies the maximum number of records a page can contain in case of pageable service responses.

Logging configuration

The logging configuration properties can be found in the log4j2.xml file located at src/main/resources folder.

Note: During the build process this file is going to be built into the executable JAR, but it is also possible to override it by an external file. For that use the following command when starting the system:

java -jar arrowhead-serviceregistry-x.x.x.jar
     -Dlog4j.configurationFile=path-to-external-file

JDBC_LEVEL

Set this to change the level of log messages in the database. Levels: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.

CONSOLE FILE LEVEL

Set this to change the level of log messages in consol and the log file. Levels: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.

LOG_DIR

Set this to change the directory of log files.

Changelog

v5.0.0

Related in CL-5.0.0