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™

Kelvin Resource Name
1
2
3
app-krn = "krn" ":" "app" ":" app

app     = NAME

Examples

Kelvin Resource Name Example
1
2
krn:app:smart-pcp
krn:app:pvc

Kelvin SmartApps™ Version

Kelvin Resource Name
1
2
3
4
appversion-krn = "krn" ":" "appversion" ":" app "/" version

app     = NAME
version = NAME

Examples

Kelvin Resource Name Example
1
2
krn:appversion:smart-pcp/2.0.0
krn:appversion:pvc/3.0.1

Asset

Kelvin Resource Name
1
2
3
asset-krn = "krn" ":" "asset" ":" asset

asset  = NAME

Examples

Kelvin Resource Name Example
1
2
krn:asset:air-conditioner-1
krn:asset:beam-pump

Asset Data Stream

Kelvin Resource Name
1
2
3
4
ad-krn = "krn" ":" "ad" ":" asset "/" datastream

asset       = NAME
datastream = NAME

Examples

Kelvin Resource Name Example
1
2
3
4
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

App Parameter

Kelvin Resource Name
1
2
3
4
ap-krn = "krn" ":" "ap" ":" asset "/" parameter

asset  = NAME
parameter = NAME

Examples

Kelvin Resource Name Example
1
krn:ap:air-conditioner-1/closed_loop

Data Stream

Kelvin Resource Name
1
2
3
datastream-krn = "krn" ":" "datastream" ":" datastream

datastream  = NAME

Examples

Kelvin Resource Name Example
1
2
3
krn:datastream:temp-setpoint
krn:datastream:casing.temperature
krn:datastream:oee

Parameter

Kelvin Resource Name
1
2
3
param-krn = "krn" ":" "param" ":" parameter

parameter = NAME

Examples

Kelvin Resource Name
1
krn:param:configuration.ip

Recommendation

Kelvin Resource Name
1
2
3
recommendation-krn = "krn" ":" "recommendation" ":" recommendation-id

recommendation-id  = UUID

Examples

Kelvin Resource Name Example
1
krn:recommendation:86a425b4-b43f-4989-a38f-b18f6b3d1ec7

Service Account

Kelvin Resource Name
1
2
3
srv-acc-krn = "krn" ":" "srv-acc" ":" account-name

account-name = USERNAME

Examples

Kelvin Resource Name Example
1
krn:srv-acc:node-client-my-edge-cluster

User

Kelvin Resource Name
1
2
3
user-krn = "krn" ":" "user" ":" user

user  = USERNAME

Examples

Kelvin Resource Name Example
1
krn:user:me@example.com

Workload

Kelvin Resource Name
1
2
3
4
wl-krn = "krn" ":" "wl" ":" cluster "/" workload

cluster  = DNS-SAFE
workload = DNS-SAFE

Examples

Kelvin Resource Name Example
1
krn:wl:my-node/temp-adjuster-1

Workload App Version

Kelvin Resource Name
1
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

Kelvin Resource Name
1
2
3
schedule-krn = "krn" ":" "schedule" ":" schedule

schedule = USERNAME

Examples

Kelvin Resource Name Example
1
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

Kelvin Resource Name Example
1
krn:job:parameters-schedule-worker/1257897347822083