> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spitzli.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Core features

> Control native product admission without changing plugin grants or provider bindings.

The native Core uses `WEBDOCK_FEATURES` to select built-in feature states. This replaces the retired TypeScript `WEBDOCK_MODULES` and worker-domain setup. Runtime plugins have their own installation, grant and capability controls.

## Configure states

Supply a JSON object in Core's private runtime environment:

```json theme={null}
{
  "hosting": "enabled",
  "databases": "enabled",
  "mail": "draining"
}
```

Supported names are `hosting`, `databases`, `mail`, `storage`, `cms` and `observability`. Omitted features are disabled. An empty object selects no built-in products.

| State | Admission |
| - | - |
| `enabled` | Permits supported operations subject to current authorization |
| `draining` | Permits reads and continuation of accepted work; refuses new provisioning |
| `disabled` | Refuses the feature's operations |

Changing configuration does not provision resources, purchase capacity, grant workspace membership or provide credentials. It does not automatically delete existing resources or move them to another provider.

## Drain retained work

Before disabling a feature, roll out draining consistently and inspect its durable operations, leases and retained resources. Keep the required workers and agents available until accepted work is resolved. Review uncertain provider outcomes rather than retrying them as new work.

Suspension retains data. Deletion is a separate explicit operation. Preserve retained storage and identity, encryption and signing material; outgoing-only Mail does not allocate an incoming Stalwart instance.

Use the exact environment and deployment contracts for your source revision. Core configuration is in the native environment example (`crates/control-plane/.env.example`), and feature admission is implemented in `crates/core/src/features.rs`. See [Core distribution](https://docs.spitzli.cloud/developers/core-distribution.md) and [plugin development](https://docs.spitzli.cloud/developers/plugins.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.