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