# Folder

It is used to group other nodes and can be a child of [Project](https://docs.testmace.com/master/node-types/project) and **Folder** nodes. This is how it looks like in the project tree:

![A Folder node in the project tree](https://1914040845-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYfhIaTTw23Sf3L5jfe%2F-LgWwgka3rZBZgHDvNjd%2F-LgWyItsMGOzq1NvoQl7%2F1.png?alt=media\&token=c7712323-de2a-4872-b743-811ee97d469b)

Here are the actions available for this node type in the project tree:

![A Folder node context menu](https://1914040845-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYfhIaTTw23Sf3L5jfe%2F-LgWwgka3rZBZgHDvNjd%2F-LgWyvYOvLbHw3fujBhs%2F2.png?alt=media\&token=eeae0e6b-a4fc-4a11-a47b-330c92754426)

* **Add node.** Ckick on it to add a child node. You can choose a node type in the submenu.
* **Rename.** Change the node name.
* **Duplicate.** Make a copy of the node.  The new node will be named **NodeName \[Copy \[number]]**.
* **Remove node.** Use it to delete the node.
* **Run.** Run the node.
* [**Share**](https://docs.testmace.com/master/other-features/import/shared)**.** Share the node. Note that the link with information about the node will be created in the clipboard.
* **Show in explorer.** Open the folder with the node in the file manager.

You can open the node with a double-click on it in the project tree. A **Folder** node tab looks like this:

![A Folder node tab](https://1914040845-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYfhIaTTw23Sf3L5jfe%2F-LhpB3Wy9BwwfjEcUimT%2F-LhpB8XEmTJvBFFyGPNx%2F8.png?alt=media\&token=9a2b5343-a1d1-4f37-9738-87d51a2d7f00)

In the screenshot you can see the following parts of the tab:

1. The **Run** button to run the nodes under the Folder node.
2. The control panel
3. The **Headers** button to specify inheritable HTTP headers.
4. The button to open the [**variables dialog**](https://docs.testmace.com/master/variables/user-variables)**.**
5. **Child nodes** area
6. Checks if the node has a valid SSL certificate.  It is used as an inherited parameter in [RequestStep](https://docs.testmace.com/master/node-types/request-step) nodes.
7. **Authorization**.

Let's describe these parts in detail.

### Control Panel

The **Run** button function is described above. It's worth mentioning that when running a node the button looks different:

![The Run button after running a node](https://1914040845-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYfhIaTTw23Sf3L5jfe%2F-LgXGmrChTZiPq8y7nxp%2F-LgXJs1-z6f1cboc500J%2F4.png?alt=media\&token=f5679900-3e5e-4317-9f48-e6315c4f4dea)

You can stop the node by clicking **Abort**.

The **Headers** button allows to specify [inheritable HTTP headers](https://docs.testmace.com/master/other-features/default-http-headers).

Variables editing is shown in the [Custom variables](https://docs.testmace.com/master/variables/user-variables) section.

### File Representation

A **Folder** node is a folder with the node name, containing the index.yml file with the following format:

```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#"
}
```
