Kelvin Resource Name Registry¶
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.
Definitions¶
- Asset Custom Action (
aca) - Action (
action) - Asset Data Stream (
ad) - Asset Parameter (
ap) - App (
app) - App Parameter (
app-parameter) - App Version (
appversion) - Asset (
asset) - Asset Type (
asset-type) - Control Change (
control-change) - Data Stream(
datastream) - Data Quality - Asset Data Stream (
dqad) - Data Quality - Asset (
dqasset) - Job (
job) - Recommendation (
recommendation) - Schedule (
schedule) - Service Account (
srv-acc) - System (
system) - User (
user) - Workload (
wl) - Workload App Version(
wlappv)
Asset Custom Action¶
Examples
Action¶
Examples
Asset Data Stream¶
SDK Example
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¶
SDK Example
Examples
App¶
SDK Example
Examples
App Parameter¶
Examples
App Version¶
SDK Example
Examples
Asset¶
SDK Example
Examples
Asset Type¶
Examples
Control Change¶
Examples
Data Stream¶
SDK Example
Examples
Data Quality - Asset Data Stream¶
dqad-krn = "krn" ":" "dqad" ":" data-quality ":" asset "/" datastream
asset = NAME
datastream = NAME
data-quality = NAME
SDK Example
Examples
krn:dqad:kelvin_timestamp_anomaly:pcp_01/gas_flow
krn:dqad:kelvin_out_of_range_detection:pcp_01/gas_flow
Data Quality - Asset¶
SDK Example
Examples
Job¶
job-krn = "krn" ":" "job" ":" job "/" job-run-id
job = NAME
job-run-id = 1*(DIGIT / ALPHA / "_" / "-")
Examples
SDK Example
Recommendation¶
SDK Example
Examples
Schedule¶
SDK Example
Examples
Service Account¶
SDK Example
Examples
System¶
Examples
User¶
SDK Example
Examples
Workload¶
SDK Example
Examples
Workload App Version¶
SDK Example
Examples
Common Components¶
See Kelvin Platform Regex for the complete and authoritative document.
| Component | Regex |
|---|---|
| DNS-SAFE-NAME | ^[a-z]([-a-z0-9]*[a-z0-9])?$ |
| NAME | ^[a-z0-9]([-_.a-z0-9]*[a-z0-9])?$ |
| NAME-V2 | ^[a-zA-Z0-9]([-_ .a-zA-Z0-9]*[a-zA-Z0-9])?$ |
| SEMVER | See Semantic Versioning |
| USERNAME | Probably limited by the URN spec, so ([-a-zA-Z0-9()+,.:=@;$_!*'&~\/]|%[0-9a-f]{2})+ |
| UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ |