# FlowDrop Workflow

Provides the workflow configuration entity type for storing and managing workflow definitions.

## API Stability

All PHP classes in this module are `@internal` and not part of the public API. They may change without notice in any release.

The stable public API for building custom node processors is in the root `flowdrop` module. See the [BC Policy](../../docs/reference/api/bc-policy.md) for details.

## REST API

| Method | Path | Description |
|--------|------|-------------|
| GET | `/api/flowdrop/workflows` | List workflows (supports `limit`, `offset`, `search`) |
| POST | `/api/flowdrop/workflows` | Create workflow |
| GET | `/api/flowdrop/workflows/{id}` | Get workflow |
| PUT | `/api/flowdrop/workflows/{id}` | Update workflow |
| DELETE | `/api/flowdrop/workflows/{id}` | Delete workflow |

## Permissions

| Permission | Description |
|------------|-------------|
| `administer flowdrop_workflow` | Full administration access |
| `view flowdrop_workflow` | View workflow list and details |

## Configuration Export Warning

Workflows are stored as Drupal config entities. Running `drush config:export` will export all workflow definitions — including full node and edge data — as YAML files under `config/sync/flowdrop_workflow.flowdrop_workflow.*.yml`.

**Node configurations may contain sensitive data** such as API endpoints, credentials, prompt templates, or internal logic depending on the executor plugins used.

Before committing exported config to version control:

- Review workflow config files for sensitive values.
- Use [Config Split](https://www.drupal.org/project/config_split) to exclude production-specific workflows from VCS if they contain sensitive parameters.
- Add a `.gitignore` pattern (e.g., `config/sync/flowdrop_workflow.flowdrop_workflow.*.yml`) if workflows should never be version-controlled in your project.
