index.ts 1.54 KB
import { EnrichmentCategoryComponentEnum } from '../../../enum/category';
import { useCreateNodeKey } from '../../../hook/useCreateNodeKey';
import type { NodeItemConfigType } from '../../../types/node';
import { RuleNodeTypeEnum } from '../../index.type';

const keys = useCreateNodeKey(EnrichmentCategoryComponentEnum.TENANT_ATTRIBUTES);

export interface TenantAttributesDataType {
  someConfiguration?: Recordable;
}

export const TenantAttributesConfig: NodeItemConfigType = {
  ...keys,
  clazz: 'org.thingsboard.rule.engine.metadata.TbGetTenantAttributeNode',
  categoryType: RuleNodeTypeEnum.ENRICHMENT,
  name: 'tenant attributes',
  configurationDescriptor: {
    nodeDefinition: {
      details:
        'If Attributes enrichment configured, server scope attributes are added into Message metadata. If Latest Telemetry enrichment configured, latest telemetry added into metadata. To access those attributes in other nodes this template can be used <code>metadata.temperature</code>.',
      description: 'Add Originators Tenant Attributes or Latest Telemetry into Message Metadata',
      inEnabled: true,
      outEnabled: true,
      relationTypes: ['Success', 'Failure'],
      customRelations: false,
      ruleChainNode: false,
      defaultConfiguration: {
        attrMapping: {
          temperature: 'tempo',
        },
        telemetry: false,
      },
      uiResources: ['static/rulenode/rulenode-core-config.js'],
      configDirective: 'tbEnrichmentNodeTenantAttributesConfig',
      icon: '',
      iconUrl: '',
      docUrl: '',
    },
  },
};