Type object
File match technique.yml technique.ids.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/rudder-techniques/latest.json
Source https://www.schemastore.org/rudder-techniques.json

Validate with Lintel

npx @lintel/lintel check
Type: object

A Rudder technique

Properties

id string required

Mandatory

Technique id, must respect the ^[a-zA-Z0-9_]+$ pattern.

Used implicitly in technique parameters and resource folder variable definitions:

  • ${<technique_id>.<parameter_name>}
  • ${<technique_id>.resources_dir}
Default: "my_technique"
Examples: "my_new_technique"
pattern=^[a-zA-Z0-9_]+$
name string required

Mandatory

Human readable technique name

Default: "My new technique"
Examples: "My new technique"
version string required

Mandatory

Technique version in the 'X.Y' format

Default: "1.0"
Examples: "1.0"
pattern=^[0-9]+\.[0-9]+$
items item[] required

Mandatory

List of block or method calls, can not be empty

minItems=1
format number
description string

Optional

Human readable technique name

documentation string

Optional

Technique documentation in Markdown format

format=markdown
tags object

Optional

List of technique parameters. See the dedicated documentation

category string

Optional

Rudder category to put the technique in.

If empty, default to ncf_techniques, used by default by the technique editor.

Examples: "ncf_techniques", "fileConfiguration", "fileDistribution", "jobScheduling"

Definitions

uuid string
techniqueParameter object
name string required

Optional

Technique parameter name, must match the ^[a-zA-Z0-9_]+$ pattern

pattern=^[a-zA-Z0-9_]+$
id string
format=uuid
description string

Optional

Technique parameter description

documentation string

Optional

Technique parameter documentation, not in markdown format

type string

Optional

Technique parameter type, only 'multiline-string' is currently supported for techniques visible in the technique editor

Values: null "string" "multiline-string" "json" "yaml" "boolean" "mail" "ip" "ipv4" "ipv6" "integer" "size-b" "size-kb" "size-mb" "size-gb" "size-tb" "permissions" "shared-file" "password"
default string | boolean | number

Optional

Default value of the parameter

constraints object

Optional

Additional checks on the parameter value when directives are computed

4 nested properties
allow_empty boolean
password_hashes string[]
regex object
2 nested properties
value string required
format=regex
error_message string
select object[]
tags object
policyMode string
methodReportingMode object
mode enum
Values: "disabled" "enabled"
blockReportingMode object | object
Examples:
  • { "mode": "focus", "id": "\"8f00b173-826e-46a3-9f57-7416de9b1b02\"" }
  • { "mode": "weighted" }
methodCall object
method string required
params object required

See the methods documentation to know which parameters are needed

name string
id string
format=uuid
tags object
policy_mode_override string
Values: "audit" "enforce" "none"
condition string | boolean

Method call optional condition

Examples: "debian|rhel", "SuSE.!sles_10"
reporting object
1 nested properties
mode enum
Values: "disabled" "enabled"
blockCall object
items item[] required
name string

Block call name

Examples: "My block title"
id string
format=uuid
tags object
policy_mode_override string
Values: "audit" "enforce" "none"
condition string | boolean
Examples: "debian|rhel", "SuSE.!sles_10"
reporting object | object
Examples: {"mode":"focus","id":"\"8f00b173-826e-46a3-9f57-7416de9b1b02\""}, {"mode":"weighted"}
item object