# Action context

> The Cloud Management Platform (CMP) objects an action can reach while it runs

---

Site [llms.txt](/llms.txt)

---

Actions are one of the most powerful ways to extend CMP. Besides the action inputs you define, several CMP objects are available as context to any template-enabled action attribute, such as plugin source, a webhook payload, or an email hook body. To see which attributes can be templated for each type, see [Action types](/docs/cmp/use/orchestration/actions/action-types/).

This context is also available outside actions, when custom YAML files provision Kubernetes objects. See [Container orchestrators](/docs/cmp/configure/infrastructure/container-orchestrators/).

## Built-in context by use case

### Single server action

Run by a user on an existing server.

- `server`: The single Server object, when there is only one.
- For remote script actions, `script_username` and `script_password`: Run the script as this user.

### Batch server action

Run by a user on one or more existing servers.

- Everything provided by a single server action.
- `servers`: An array of Server objects.

### Display condition plugin for a server action

Determines whether the server action is shown.

- `server`: This plugin only ever operates on a single Server object at a time.
- `request`: The current request, which can be used to determine the profile of the user trying to view server actions for the server.

### Resource action

Run on a deployed resource.

- `resource`
- `resource attributes`: A dictionary of key/value pairs, such as `{"azure_website": "http://example.com"}`.
- `servers`
- For a Scale Up resource action, `service_item`: The server tier the user selected.

### Blueprint action

Run during blueprint deployment.

- `resource`, when the blueprint creates one.
- `servers`
- For a load balancer blueprint action, the blueprint action keys plus `source_port` and `destination_port`.

## Built-in context for special cases

For the email hook action type, CMP provides a job object. Use it to include a link to the job detail view in the email body:

```text
View the details of this CloudBolt job: https://CB-SERVER-NAME{{ job.get_absolute_url }}
```

## Description of context keys

| Key | Description |
| --- | --- |
| `blueprint` | The CMP object for the blueprint associated with this action. |
| `environment` | The CMP object for the environment associated with this action. |
| `group` | The CMP object for the group associated with this action. |
| `job` | The CMP object for the job associated with this action. |
| `server` | Points at the single server object that applies for the action. If more than one server is being worked on at the same time, use the `servers` key instead. |
| `servers` | A list of server objects directly related to the action being run. |
| `resource` | Points at the resource object that applies for the action. Supports direct parameter reference, such as {{resource.expiration_date}}. |
| `blueprint_context` | A dictionary of information about the blueprint being deployed. It includes `resource_name` and a key for each build item in the blueprint, named after the slugified build item name. For more information on the context available for each build item, see [Blueprint actions](/docs/cmp/use/blueprints/build/blueprint-actions/). |

## Related

- [Action input parameters](/docs/cmp/use/orchestration/actions/action-input-parameters/)
- [Action types](/docs/cmp/use/orchestration/actions/action-types/)
- [Blueprint actions](/docs/cmp/use/blueprints/build/blueprint-actions/)
