# Folder

Данный тип узла используется для группировки других узлов. В качестве предков для данного типа узла могут выступать [Project](https://docs-ru.testmace.com/master/node-types/project) и **Folder** узлы. В дереве проекта узел выглядит следующим образом:

![Вид Folder узла в дереве](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMkb3-DX1GM-t41kVp%2F-LiMmTIIcnPTqxcvqNKY%2Ff_1.png?alt=media\&token=be6e7ec3-e670-49f7-bbc5-6e441ec56e9b)

В дереве для данного типа узла доступны следующие пункты меню:

![Контекстное меню для Folder узла](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMkb3-DX1GM-t41kVp%2F-LiMmVgGhUcgkI5BfQ3f%2FF_2.png?alt=media\&token=965e0b09-8ea5-4833-ada7-8a79412da056)

* **Add node.** Добавление узла-потомка. В подменю можно выбрать тип узла.
* **Rename.** Переименовать узел.
* **Duplicate.** Сделать копию узла. Новый узел будет иметь название **NodeName \[Copy \[number]]**.
* **Remove node.** Удалить узел.
* **Run.** Запустить узел.
* [**Share**](https://docs-ru.testmace.com/master/other/import/shared)**.** Поделиться узлом. При это в буфере обмена создается ссылка, которая содержит всю информацию о текущем узле.
* **Show in explorer.** Открыть папку с узлом в файловом менеджере.

Открытие узла открывается двойным кликом по узлу в дереве. Вкладка **Folder** узла выглядит следующим образом:

![Вкладка с открытым Folder узлом](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMkb3-DX1GM-t41kVp%2F-LiMmZZV7lGYhAkNysCD%2Ff_3.png?alt=media\&token=70509ecd-5aa5-4fa9-b719-643315e26a6c)

На скрине отмечены следующие области

1. Кнопка **Run** для запуска узлов внутри Folder узла
2. Панель управления
3. Кнопка **Headers** для задания наследуемых HTTP-заголовков
4. Кнопка **открытия** [**диалога переменных**](https://docs-ru.testmace.com/master/variables/user-variables)
5. Область **дочерних узлов**
6. Проверка на то, что узел имеет валидный SSL сертификат. Используется в качестве наследуемого параметра в [RequestStep](https://docs-ru.testmace.com/master/node-types/requeststep) узле
7. **Авторизация**

Рассмотрим данные области подробнее.

### Панель управления

Назначение кнопки **Run** описано выше. Стоит добавить, что при запуске узла кнопка меняет вид на следующий:

![Вид кнопки Run в процессе запуска узла](https://134106468-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LiMkb3-DX1GM-t41kVp%2F-LiMmaMjx53JO9Hq1Xmv%2Ff_4.png?alt=media\&token=b5028006-c46d-498b-809f-44e69d9dcfe9)

При нажатии на **Abort** можно прервать выполнение узла.

Кнопка **Headers** позволяет задать [наследуемые HTTP-заголовки](https://docs-ru.testmace.com/master/other/default-http-headers).

Редактирование переменных обсуждается в разделе [Пользовательские переменные](https://docs-ru.testmace.com/master/variables/user-variables).

### Файловое представление

**Folder** узел представляет из себя папку с названием узла, внутри которой содержится файл index.yml, имеющий следующий формат.

```javascript
{
  "type": "object",
  "properties": {
    "type": {
      "description": "Type of Folder node",
      "const": "Folder",
      "type": "string"
    },
    "authData": {
      "$ref": "#/definitions/IAuthorizationData",
      "description": "Authorization parameters"
    },
    "requestData": {
      "$ref": "#/definitions/IRequestParametersData",
      "description": "Request parameters"
    },
    "children": {
      "description": "List of children names",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "variables": {
      "$ref": "#/definitions/NodeVariables",
      "description": "Node variables dictionary"
    },
    "name": {
      "description": "Node name",
      "type": "string"
    }
  },
  "required": [
    "authData",
    "children",
    "name",
    "requestData",
    "type",
    "variables"
  ],
  "definitions": {
    "IAuthorizationData": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ]
    },
    "IRequestParametersData": {
      "type": "object",
      "properties": {
        "headers": {
          "description": "Headers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/NameValueParam"
          }
        },
        "disabledInheritedHeaders": {
          "description": "Names of disabled headers",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "strictSSL": {
          "$ref": "#/definitions/StrictSSLOptions",
          "description": "Requires SSL certificates be valid"
        }
      },
      "required": [
        "disabledInheritedHeaders",
        "headers",
        "strictSSL"
      ]
    },
    "NameValueParam": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "isChecked": {
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "value"
      ]
    },
    "StrictSSLOptions": {
      "enum": [
        "Inherit",
        "No",
        "Yes"
      ],
      "type": "string"
    },
    "NodeVariables": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```
