kortique's picture
add locale settings to all pages "advanced development"
e525cad
---
sidebar_position: 3
---
# YAML Tab in Node Settings
The **YAML** tab combines all data from other tabs (Design, Script, Environment, Catalog) into a unified view that defines everything about your node - from technical metadata to its position in the pipeline workspace.
![YAML Tab Interface](../img/node-yaml.png)
## What is the YAML View?
The YAML tab serves as the "source code" of your node. It combines:
- Input and output definitions from the Design tab
- JavaScript code from the Script tab
- Technical metadata from the Catalog tab
- Environment variables from the Environment tab
- Node positioning and connections within the pipeline
This complete representation allows you to precisely duplicate nodes by copying their YAML configuration to other pipelines.
## YAML Structure
The YAML configuration is organized into logical sections:
### Technical Information
```yaml
_id: merge_text_to_json
version: 1
category:
_id: processing
title: en=Processing;ru=Обработка
package: custom
title: en=Merge text to JSON;ru=Объединение текста в JSON
source: node
execution: regular
```
These fields define the node's identifier, version, category classification, and package binding.
### Execution Script
```yaml
script: |-
export async function run({ inputs }) {
const { NextNode } = DEFINITIONS;
const jsonArray = [];
if (inputs.string1) {
jsonArray.push(inputs.string1);
}
if (inputs.string2) {
jsonArray.push(inputs.string2);
}
if (inputs.string3) {
jsonArray.push(inputs.string3);
}
if (inputs.string4) {
jsonArray.push(inputs.string4);
}
return NextNode.from({
outputs: {
json_output: jsonArray
}
});
}
```
Contains the complete custom JavaScript code that we wrote in the Script tab.
### Node Positioning
```yaml
arrange:
x: 170
y: 290
```
Defines the exact position of the node in the pipeline workspace.
### Input/Output Definitions
```yaml
inputs:
string1:
title: en=String 1;ru=Строка 1
type: string
required: false
string2:
title: en=String 2;ru=Строка 2
type: string
required: false
string3:
title: en=String 3;ru=Строка 3
type: string
required: false
string4:
title: en=String 4;ru=Строка 4
type: string
required: false
outputs:
json_output:
title: en=JSON;ru=JSON
type: json
```
Complete specifications for all 4 input parameters and 1 output parameter that we configured in the Design tab.
### Catalog Information (Optional)
```yaml
catalog:
_id: merge_text_to_json
version: 1
category:
_id: service_nodes
title: Service Nodes
package: service_nodes
```
Metadata for publishing and organizing your custom node in the catalog.
### Environment Variables (Optional)
```yaml
environment:
OPEN_PAAS_USER:
title: PaaS user
type: string
scope: global
```
All environment variables and API keys required to connect the node to external providers.
## Copying and Reusing Nodes
The most powerful feature of the YAML tab is the ability to create exact duplicates of nodes:
1. **Copy YAML** - Select all code in the YAML tab and copy it
2. **Create New Node** - Add a new node to any pipeline
3. **Paste Configuration** - Replace the new node's YAML with the copied code
4. **Save Changes** - The node will be recreated with identical functionality
This process preserves all settings, code, and configuration, making it simple to reuse any nodes across different pipelines.
## Read-Only
The YAML tab is primarily intended for viewing and copying. While you can see the complete node configuration here, changes should be made through the appropriate tabs (Script for code changes, Design for input/output modifications, etc.) to ensure proper validation and formatting.