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

const keys = useCreateNodeKey(ActionCategoryComponentEnum.DELAY_DEPRECATED);

export interface DelayDeprecatedDataType {
  someConfiguration?: Recordable;
}

export const DelayDeprecatedConfig: NodeItemConfigType = {
  ...keys,
  clazz: 'org.thingsboard.rule.engine.delay.TbMsgDelayNode',
  categoryType: RuleNodeTypeEnum.ACTION,
  name: 'delay (deprecated)',
  configurationDescriptor: {
    nodeDefinition: {
      details:
        'Delays messages for a configurable period. Please note, this node acknowledges the message from the current queue (message will be removed from queue). Deprecated because the acknowledged message still stays in memory (to be delayed) and this does not guarantee that message will be processed even if the "retry failures and timeouts" processing strategy will be chosen.',
      description: 'Delays incoming message (deprecated)',
      inEnabled: true,
      outEnabled: true,
      relationTypes: ['Success', 'Failure'],
      customRelations: false,
      ruleChainNode: false,
      defaultConfiguration: {
        periodInSeconds: 60,
        maxPendingMsgs: 1000,
        periodInSecondsPattern: null,
        useMetadataPeriodInSecondsPatterns: false,
      },
      uiResources: ['static/rulenode/rulenode-core-config.js'],
      configDirective: 'tbActionNodeMsgDelayConfig',
      icon: 'material-symbols:pause',
      iconUrl: '',
      docUrl: '',
    },
  },
};