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:
* Documentation: All NIDs used in KRN must be documented, along with the NSS specification.makefileCopy codekrn = "krn" ":" NID ":" NSS NID = (alphanum) 0*30(ldh) (alphanum) NSS = pchar *(pchar / "/")
Definitions
- Kelvin SmartApps™ (
app) - Kelvin SmartApps™ Version (
appversion) - Asset (
asset) - Asset Data Stream (
ad) - Asset Parameter (
ap) - Data Stream(
datastream) - Parameter (
param) - Recommendation (
recommendation) - Service Account (
srv-acc) - User (
user) - Workload (
wl) - Workload App Version(
wlappv) - Schedule (
schedule) - Job (
job)
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