# FlowDrop Node Type

Provides configurable node types for the FlowDrop workflow system, allowing administrators to define and manage different types of nodes that can be used in workflows.

## 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.

## Features

- **Configurable Node Types**: Create and manage node types with custom inputs, outputs, and configuration schemas
- **Category Integration**: Seamless integration with `flowdrop_node_category` module
- **Admin Interface**: Full CRUD operations through Drupal's admin interface
- **JSON Configuration**: Rich JSON-based configuration for inputs, outputs, and schemas
- **Drush Commands**: Command-line tools for managing node types

## Installation

```bash
drush en flowdrop_node_type
```

## Admin Interface

Navigate to **Structure > FlowDrop Node Types** (`/admin/structure/flowdrop-node`) to create and manage node types.

Each node type has:
- **Label**: Human-readable name
- **ID**: Machine-readable identifier
- **Description**: Brief description
- **Category**: From `flowdrop_node_category` (with fallback to hardcoded categories)
- **Icon**: Icon identifier
- **Color**: Hex color code
- **Version**: Semantic version
- **Executor Plugin ID**: ID of the executor plugin
- **Inputs/Outputs JSON**: Port definitions
- **Configuration Schema JSON**: JSON schema for node configuration
- **Tags JSON**: Tags for search and filtering

## Drush Commands

```bash
# List all node types
drush flowdrop:node-type:list

# Search node types by tags
drush flowdrop:node-type:search --tags=input,text

# Import node types from mapping
drush flowdrop:node-type:import

# Get node types by category
drush flowdrop:node-type:list --category=processing
```

## Permissions

- `administer flowdrop_node`: Full administrative access to node types

## Dependencies

- **Optional**: `flowdrop_node_category` (for category integration)
