# uip maestro bpmn refresh

> Syntax and options for `uip maestro bpmn refresh`, which regenerates a Maestro project's package metadata files to match its .bpmn file.

`uip maestro bpmn refresh` updates a project's package metadata files (`entry-points.json`, `bindings_v2.json`, `operate.json`, `package-descriptor.json`) so they match the current state of the project's `.bpmn` file. This is the current, non-deprecated replacement for [`update-metadata`](./uip-maestro-bpmn-update-metadata.md). It's registered under the `bpmn` branch.

## Synopsis

```
uip maestro bpmn refresh <project-path>
```

Honors [global options](./global-options.md). Exit codes follow the [standard contract](./exit-codes.md).

## Arguments

- `<project-path>` *(required)* — path to the Maestro Process Orchestration project directory (not a single `.bpmn` file).

## Examples

```bash
uip maestro bpmn refresh ./invoice-orchestration
```

## Data shape (--output json)

```json
{
  "Code": "BpmnRefresh",
  "Data": {
    "Status": "Updated BPMN package files",
    "ProjectPath": "/workspace/invoice-orchestration",
    "BpmnFile": "invoice-orchestration.bpmn",
    "WrittenFiles": ["entry-points.json", "bindings_v2.json", "operate.json", "package-descriptor.json"],
    "UnchangedFiles": []
  }
}
```

`WrittenFiles` lists only the metadata files that actually changed; files already matching the `.bpmn` file's current state are listed in `UnchangedFiles` instead.

On failure, the response uses `Code: "BpmnRefreshFailed"` with `Message`/`Instructions`.

## See also

- [`uip maestro bpmn update-metadata`](./uip-maestro-bpmn-update-metadata.md) — deprecated predecessor of this command
- [`uip maestro bpmn validate`](./uip-maestro-bpmn-validate.md) — structurally validate the `.bpmn` file first
- [`uip maestro bpmn pack`](./uip-maestro-bpmn-pack.md) — pack the project once metadata is current
- [Maestro overview](./uip-maestro-bpmn.md)
