System V1 Rest API

📘

This API can also be accessed via the RequestHandler with app-id: SYS-V1.

The SystemService APIs return properties that are divided into 3 categories:

Identities with rest.system permissions can access these APIs.

Framework properties

Property nameType
biosVersionString
cpuVersionString
deviceNameString
modelIdString
modelNameString
partNumberString
platformString
numberOfProcessorsInteger
totalMemoryInteger
freeMemoryInteger
serialNumberString
javaHomeString
javaVendorString
javaVersionString
javaVmInfoString
javaVmNameString
javaVmVersionString
javaVmVendorString
jdkVendorVersionString
osArchString
osDistroString
osDistroVersionString
osNameString
osVersionString
isLegacyBluetoothBeaconScanBoolean
isLegacyPPPLoggingEnabledBoolean
primaryMacAddressString
primaryNetworkInterfaceNameString
fileSeparatorString
firmwareVersionString
kuraDataDirectoryString
kuraFrameworkConfigDirectoryString
kuraHomeDirectoryString
kuraMarketplaceCompatibilityVersionString
kuraSnapshotsCountInteger
kuraSnapshotsDirectoryString
kuraStyleDirectoryString
kuraTemporaryConfigDirectoryString
kuraUserConfigDirectoryString
kuraVersionString
kuraHaveWebInterfaceBoolean
kuraHaveNetAdminBoolean
kuraWifiTopChannelInteger
kuraDefaultNetVirtualDevicesConfigString
osgiFirmwareNameString
osgiFirmwareVersionString
commandUserString
commandZipMaxUploadNumberInteger
commandZipMaxUploadSizeInteger

Kura properties

Property nameType
kura.platformString
org.osgi.framework.versionString
kura.user.configString
java.vm.vendorString
kura.nameString
file.command.zip.max.numberString
kura.legacy.ppp.logging.enabledString
kura.tmpString
kura.packagesString
build.versionString
kura.log.download.journal.fieldsString
kura.dataString
os.nameString
dpa.read.timeoutString
file.upload.size.maxString
console.device.management.service.ignoreString
kura.command.userString
kura.device.nameString
kura.partNumberString
kura.projectString
kura.companyString
java.homeString
versionString
kura.style.dirString
kura.model.idString
file.separatorString
jdk.vendor.versionString
kura.model.nameString
kura.serialNumber.providerString
kura.have.web.interString
kura.legacy.bluetooth.beacon.scanString
java.runtime.versionString
kura.bios.versionString
kura.marketplace.compatibility.versionString
kura.framework.configString
kura.firmware.versionString
kura.pluginsString
os.versionString
kura.versionString
org.osgi.framework.vendorString
java.runtime.nameString
kura.log.download.sourcesString
os.distributionString
java.vm.nameString
kura.primary.network.interfaceString
kura.homeString
file.command.zip.max.sizeString
os.archString
os.distribution.versionString
file.upload.in.memory.size.thresholdString
kura.net.virtual.devices.configString
kura.snapshotsString
kura.have.net.adminString
java.vm.infoString
java.vm.versionString
dpa.connection.timeoutString
build.numberString
ccs.status.notification.urlString

🚧

Some of the listed properties, depending on the device, might not be available.

GET methods

Get framework properties

  • Method: GET
  • API PATH: /services/system/v1/properties/framework
Responses
  • 200 OK status
{
    "biosVersion": "86.19 , 06/19/2018",
    "cpuVersion": "CPU-163-15",
    "deviceName": "BoltGATE-20-25",
    "modelId": "BTGATE-20-25-M5",
    "modelName": "BoltGATE-20-25",
    "partNumber": "BoltGATE-20-25",
    "platform": "BoltGATE-20-25",
    "numberOfProcessors": 4,
    "totalMemory": 1013760,
    "freeMemory": 744796,
    "serialNumber": "A119D920020",
    "javaHome": "/usr/lib/jvm/zulu8.70.0.24-sa-jre8.0.372-linux_x64",
    "javaVendor": "OpenJDK Runtime Environment",
    "javaVersion": "1.8.0_372-b07",
    "javaVmInfo": "mixed mode",
    "javaVmName": "OpenJDK 64-Bit Server VM",
    "javaVmVersion": "25.372-b07",
    "javaVmVendor": "Azul Systems, Inc.",
    "jdkVendorVersion": "Zulu 8.70.0.24-SA-linux64",
    "osArch": "amd64",
    "osDistro": "Linux",
    "osDistroVersion": "N/A",
    "osName": "Linux",
    "osVersion": "5.4.209-intel-pk-standard #1 SMP PREEMPT Fri Jun 9 06:00:00 UTC 2023",
    "isLegacyBluetoothBeaconScan": false,
    "isLegacyPPPLoggingEnabled": false,
    "primaryMacAddress": "00:E0:C7:0A:1F:47",
    "primaryNetworkInterfaceName": "enp3s0",
    "fileSeparator": "/",
    "firmwareVersion": "30.1.0",
    "kuraDataDirectory": "/opt/eurotech/esf/data",
    "kuraFrameworkConfigDirectory": "/opt/eurotech/esf/framework",
    "kuraHomeDirectory": "/opt/eurotech/esf",
    "kuraMarketplaceCompatibilityVersion": "5.4.0.SNAPSHOT",
    "kuraSnapshotsCount": 10,
    "kuraSnapshotsDirectory": "/opt/eurotech/esf/user/snapshots",
    "kuraStyleDirectory": "/opt/eurotech/esf/console/skin",
    "kuraTemporaryConfigDirectory": "/tmp/.kura",
    "kuraUserConfigDirectory": "/opt/eurotech/esf/user",
    "kuraVersion": "ESF_7.4.0-SNAPSHOT",
    "kuraHaveWebInterface": true,
    "kuraHaveNetAdmin": true,
    "kuraWifiTopChannel": 2147483647,
    "kuraDefaultNetVirtualDevicesConfig": "netIPv4StatusUnmanaged",
    "osgiFirmwareName": "Eclipse",
    "osgiFirmwareVersion": "1.10.0",
    "commandUser": "esf",
    "commandZipMaxUploadNumber": 1024,
    "commandZipMaxUploadSize": 100
}
  • 500 Internal Server Error

Get extended properties

  • Method: GET
  • API PATH: /services/system/v1/properties/extended
Responses
  • 200 OK status
{
    "version": "1.0",
    "extendedProperties": {
        "Device Info 1": {
            "exampleKey1": "value1",
            "exampleKey2": "value2"
        },
        "Device Info 2": {
            "key1": "val1",
            "key2": "val2"
        }
    }
}
  • 500 Internal Server Error

Get Kura properties

  • Method: GET
  • API PATH: /services/system/v1/properties/kura
Responses
  • 200 OK status
{
    "kuraProperties": {
        "kura.platform": "BoltGATE-20-25",
        "kura.model.id.provider": "eth_order_code",
        "org.osgi.framework.version": "1.10.0",
        "cpu.version.provider": "eth_vers_cpu",
        "kura.user.config": "/opt/eurotech/esf/user",
        "java.vm.vendor": "Azul Systems, Inc.",
        "kura.name": "Everyware Software Framework",
        "file.command.zip.max.number": "1024",
        "kura.legacy.ppp.logging.enabled": "false",
        "kura.tmp": "/tmp/.kura",
        "kura.packages": "/opt/eurotech/esf/packages",
        "build.version": "buildNumber",
        "kura.log.download.journal.fields": "SYSLOG_IDENTIFIER,PRIORITY,ESF_LOGGER,MESSAGE,STACKTRACE",
        "kura.data": "/opt/eurotech/esf/data",
        "kura.scm.url": "https://github.com/eurotech/kura_eth",
        "os.name": "Linux",
        "dpa.read.timeout": "60000",
        "file.upload.size.max": "-1",
        "console.device.management.service.ignore": "org.eclipse.kura.net.admin.NetworkConfigurationService,org.eclipse.kura.net.admin.FirewallConfigurationService",
        "kura.command.user": "esf",
        "kura.device.name": "BoltGATE-20-25",
        "platform.description.path": "/opt/eurotech-linux-map/platform.json",
        "kura.partNumber": "BoltGATE-20-25",
        "kura.project": "BoltGATE-20-25-yocto_3.1.17",
        "kura.company": "EUROTECH",
        "java.home": "/usr/lib/jvm/zulu8.70.0.24-sa-jre8.0.372-linux_x64",
        "version": "5.4.0-SNAPSHOT",
        "kura.style.dir": "/opt/eurotech/esf/console/skin",
        "file.separator": "/",
        "jdk.vendor.version": "Zulu 8.70.0.24-SA-linux64",
        "kura.serialNumber.provider": "eth_serial_number",
        "kura.ci.job.name": "${env.JOB_NAME}",
        "kura.have.web.inter": "true",
        "kura.legacy.vpn.logging.enabled": "false",
        "kura.scm.branch": "${env.GIT_BRANCH}",
        "kura.legacy.bluetooth.beacon.scan": "false",
        "kura.ci.url": "${env.JENKINS_URL}",
        "kura.firmware.version.provider": "eth_vers_bsp",
        "java.runtime.version": "1.8.0_372-b07",
        "kura.marketplace.compatibility.version": "KURA_5.4.0-SNAPSHOT",
        "kura.framework.config": "/opt/eurotech/esf/framework",
        "kura.plugins": "/opt/eurotech/esf/plugins",
        "os.version": "5.4.209-intel-pk-standard #1 SMP PREEMPT Fri Jun 9 06:00:00 UTC 2023",
        "kura.version": "ESF_7.4.0-SNAPSHOT",
        "org.osgi.framework.vendor": "Eclipse",
        "java.runtime.name": "OpenJDK Runtime Environment",
        "kura.log.download.sources": "/var/log,/var/old_logs",
        "kura.ci.build.tag": "${env.BUILD_TAG}",
        "os.distribution": "Linux",
        "kura.scm.commit": "${env.GIT_COMMIT}",
        "java.vm.name": "OpenJDK 64-Bit Server VM",
        "kura.primary.network.interface": "enp3s0",
        "esf.security.info.boot.state": "Normal",
        "kura.home": "/opt/eurotech/esf",
        "file.command.zip.max.size": "100",
        "kura.ci.build.number": "${env.BUILD_NUMBER}",
        "os.arch": "amd64",
        "os.distribution.version": "N/A",
        "kura.bios.version.provider": "eth_vers_fw1",
        "file.upload.in.memory.size.threshold": "10240",
        "kura.net.virtual.devices.config": "unmanaged",
        "kura.snapshots": "/opt/eurotech/esf/user/snapshots",
        "kura.have.net.admin": "true",
        "java.vm.info": "mixed mode",
        "java.vm.version": "25.372-b07",
        "dpa.connection.timeout": "60000",
        "kura.model.name.provider": "eth_model",
        "build.number": "boltgate-20-25-el30-buildNumber",
        "ccs.status.notification.url": "ccs:linux_led:/sys/class/leds/led1-green"
    }
}
  • 500 Internal Server Error

POST methods

Filter framework properties

This method allows to retrieve framework-related properties by their name. Available properties are in table Framework properties.

  • Method: POST
  • API PATH: /services/system/v1/properties/framework/filter
Request Body
{
    "names": ["deviceName", "numberOfProcessors", "kuraHaveNetAdmin"]
}
Responses
  • 200 OK status
{
    "deviceName": "RASBPERRY PI 4",
    "numberOfProcessors": 4,
    "kuraHaveNetAdmin": true
}
  • 500 Internal Server Error

Filter extended properties

This method allows to retrieve the extended properties and to filter them by group name.

  • Method: POST
  • API PATH: /services/system/v1/properties/extended/filter
Request Body
{
    "groupNames": ["Device Info 1"]
}
Responses
  • 200 OK status
{
    "extendedProperties": {
        "Device Info 1": {
            "exampleKey1": "value1",
            "exampleKey2": "value2"
        }
    }
}
  • 500 Internal Server Error

Filter kura properties

This method allows to retrieve Kura-related properties (derived from the kura.properties file) and filter by their name. Available properties are listed in the table Kura properties.

  • Method: POST
  • API PATH: /services/system/v1/properties/kura/filter
Request Body
{
    "names": ["kura.platform", "file.upload.size.max", "kura.have.net.admin"]
}
Responses
  • 200 OK status
{
    "kuraProperties": {
        "kura.platform": "aarch64",
        "kura.have.net.admin": "true",
        "file.upload.size.max": "-1"
    }
}
  • 500 Internal Server Error