# FlowDrop Node Category

> Config entity for organizing workflow nodes into categories with custom labels, icons, and colors.

## Overview

The `flowdrop_node_category` module defines a config entity type that lets administrators create and manage categories for organizing node types in the workflow editor. Categories provide visual grouping through icons and color coding, making it easier to find the right node type when building workflows.

The module ships with a set of default categories covering common use cases (Input, Output, Processing, Logic, AI/Model, etc.) and supports creating custom categories without code.

## Dependencies

- [flowdrop](flowdrop.md)

## Configuration

### Admin Pages

| Path | Description |
|------|-------------|
| `/admin/structure/flowdrop-node-category` | List all node categories |
| `/admin/structure/flowdrop-node-category/add` | Create a new category |
| `/admin/structure/flowdrop-node-category/{id}` | Edit a category |
| `/admin/structure/flowdrop-node-category/{id}/delete` | Delete a category |

### Category Properties

Each category has the following configurable fields:

| Property | Description |
|----------|-------------|
| **Label** | Human-readable category name |
| **ID** | Machine name (auto-generated from label) |
| **Description** | Brief description of what the category contains |
| **Icon** | Material Design Icon identifier (e.g., `mdi:cog`, `mdi:robot`) |
| **Color** | Hex color code for visual styling |
| **Enabled** | Whether the category appears in the editor |

### Permissions

| Permission | Description |
|------------|-------------|
| `administer flowdrop_node_category` | Full CRUD access to node categories |

### Default Categories

| ID | Label | Icon | Use Case |
|----|-------|------|----------|
| `input` | Input | `mdi:import` | Nodes that provide input data |
| `output` | Output | `mdi:export` | Nodes that produce output |
| `processing` | Processing | `mdi:cog` | Data processing and transformation |
| `model` | Model | `mdi:robot` | AI and machine learning models |
| `logic` | Logic | `mdi:call-split` | Conditional logic and control flow |
| `prompt` | Prompt | `mdi:text` | Prompt engineering and templates |
| `data` | Data | `mdi:database` | Data storage and manipulation |
| `tool` | Tool | `mdi:tools` | Utility tools and helpers |
| `embedding` | Embedding | `mdi:vector-square` | Text embedding and vector operations |
| `memory` | Memory | `mdi:history` | Conversation memory and context |
| `agent` | Agent | `mdi:head-cog` | AI agents and autonomous systems |
| `vector_store` | Vector Store | `mdi:database-search` | Vector database and similarity search |

## Tips and Tricks

### Integration with Node Types

The [flowdrop_node_type](flowdrop_node_type.md) module automatically loads available categories from this module. If this module is disabled, node types fall back to hardcoded categories — so it's safe to disable temporarily without breaking existing workflows.

### Custom Categories for Contrib Modules

If you're building a contrib module that provides custom node processors, create matching categories via config install files:

```yaml
# config/install/flowdrop_node_category.flowdrop_node_category.my_category.yml
id: my_category
label: 'My Category'
description: 'Custom nodes from my_module'
icon: 'mdi:puzzle'
color: '#8E24AA'
status: true
```

## Developer API

> All PHP classes in this module are `@internal` and not part of the stable public API. They may change without notice in any release. See the [BC Policy](../reference/api/bc-policy.md) for details.

## References

- [flowdrop_node_type](flowdrop_node_type.md) — uses categories for organizing node types
- [Material Design Icons](https://pictogrammers.com/library/mdi/) — icon library used for category icons
