Skip to content

Kelvin Resource Name Registry

On this page you will go through understanding the Kelvin Resource Name Registry and the definitions available for use.

Overview

The Kelvin Resource Name (KRN) Registry serves as the centralized system for uniquely identifying various types of resources within the Kelvin platform. It is conceptually similar to Uniform Resource Names (URN) or Amazon Resource Names (ARN), tailored for Kelvin's use.

Specification

A KRN must conform to the following criteria:

  • Format: A KRN should adhere to a specific URN-based format that starts with krn: followed by a Namespace Identifier (NID) and a Namespace-Specific String (NSS), separated by colons.
  • Example for Data Streams: krn:ad:air-conditioner/temperature
  • Example for Workloads: krn:wl:my-node/modbus-bridge-1
  • Validity: It must be a valid URN scheme URI, which means it has to contain at least a NID and an NSS.
  • Syntax: The KRN should follow a subset of the URN's ABNF syntax rules, as outlined below:

    makefileCopy codekrn           = "krn" ":" NID ":" NSS
    NID           = (alphanum) 0*30(ldh) (alphanum)
    NSS           = pchar *(pchar / "/")
    
    * Documentation: All NIDs used in KRN must be documented, along with the NSS specification.

Definitions

Kelvin SmartApps™

app-krn = "krn" ":" "app" ":" app

app     = NAME

Examples

krn:app:smart-pcp
krn:app:pvc

Kelvin SmartApps™ Version

appversion-krn = "krn" ":" "appversion" ":" app "/" version

app     = NAME
version = NAME

Examples

krn:appversion:smart-pcp/2.0.0
krn:appversion:pvc/3.0.1

Asset

asset-krn = "krn" ":" "asset" ":" asset

asset  = NAME

Examples

krn:asset:air-conditioner-1
krn:asset:beam-pump

Asset Data Stream

ad-krn = "krn" ":" "ad" ":" asset "/" datastream

asset       = NAME
datastream = NAME

Examples

krn:ad:air-conditioner-1/temp-setpoint
krn:ad:beam-pump/casing.temperature
krn:ad:centrifugal-pump-02/oee
krn:ad:centrifugal-pump-02/failure_quotient

Asset Parameter

ap-krn = "krn" ":" "ap" ":" asset "/" parameter

asset  = NAME
parameter = NAME

Examples

krn:ap:air-conditioner-1/closed_loop

Data Stream

datastream-krn = "krn" ":" "datastream" ":" datastream

datastream  = NAME

Examples

krn:datastream:temp-setpoint
krn:datastream:casing.temperature
krn:datastream:oee

Parameter

param-krn = "krn" ":" "param" ":" parameter

parameter = NAME

Examples

krn:param:configuration.ip

Recommendation

recommendation-krn = "krn" ":" "recommendation" ":" recommendation-id

recommendation-id  = UUID

Examples

krn:recommendation:86a425b4-b43f-4989-a38f-b18f6b3d1ec7

Service Account

srv-acc-krn = "krn" ":" "srv-acc" ":" account-name

account-name = USERNAME

Examples

krn:srv-acc:node-client-my-edge-cluster

User

user-krn = "krn" ":" "user" ":" user

user  = USERNAME

Examples

krn:user:me@example.com

Workload

wl-krn = "krn" ":" "wl" ":" cluster "/" workload

cluster  = DNS-SAFE
workload = DNS-SAFE

Examples

krn:wl:my-node/temp-adjuster-1

Workload App Version

wlappv-krn = "krn" ":" "wlappv" ":" wl-krn ":" appversion-krn

Examples

krn:wlappv:cluster_name/workload_name:app_name/app_version
krn:wlappv:my-node/pvc-r312:pvc/1.0.0

Schedule

schedule-krn = "krn" ":" "schedule" ":" schedule

schedule = USERNAME

Examples

krn:schedule:6830a7d3-bcf3-4a64-8126-eaaeeca86676

Job

job-krn = "krn" ":" "job" ":" job "/" job-run-id

job = NAME
job-run-id = 1*(DIGIT / ALPHA / "_" / "-")

Examples

krn:job:parameters-schedule-worker/1257897347822083