# checkpoint

The `checkpoint` step.

Saves the page URL, variables and browser state so a parked or resumed job can return here. The string form is the checkpoint's name.

Type: `string or object`

## Keys

| Key | Type | Description |
|---|---|---|
| `checkpoint.name` | `string` | The checkpoint's name, such as `logged_in`. |
| `checkpoint.save_session` | `string` | The name of a session to save the browser's storage state into, which is how a sign-in program creates or refreshes a session. |

Every step also takes the [common step keys](https://docs.kaab.ist/reference/dsl/steps#common-keys): `expect`, `id`, `if`, `name`, `on_error`, `optional`, `retry`, `side_effect`, `timeout_ms`, `x_kaab`.

## Example

```json
{
  "id": "save",
  "checkpoint": {
    "name": "logged_in",
    "save_session": "acme"
  }
}
```

From the contract fixture `login-2fa-checkpoint-report`, a program the test suite validates.
