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

# Optional features

> Which subsystems need configuration and what HTTP status codes mean when they are off.

Several KiwiFS features are **optional**. Disabled subsystems return a clear HTTP error instead of failing silently.

## Feature matrix

| Feature            | How to enable                    | Error when disabled            |
| ------------------ | -------------------------------- | ------------------------------ |
| Draft spaces       | Git versioning (not `none`)      | `501`                          |
| Claims             | Claim store at bootstrap         | `503`                          |
| Audit log          | `[audit] enabled = true`         | `501`                          |
| Vector search      | `[search.vector] enabled = true` | `503`                          |
| Webhooks           | `[webhooks] enabled = true`      | Empty CRUD                     |
| Schema enforcement | `[schema] enforce = true`        | Writes pass without validation |
| Graph analytics    | Link index available             | `503`                          |
| Import connections | Store init success               | `[]` from list endpoint        |

## Enabling subsystems

<AccordionGroup>
  <Accordion title="Drafts" icon="code-branch">
    Drafts require git-backed branches. Ensure versioning is not `none`:

    ```toml .kiwi/config.toml theme={null}
    [versioning]
    strategy = "git"
    ```

    See [Draft spaces](/concepts/draft-spaces).
  </Accordion>

  <Accordion title="Claims" icon="lock">
    Task claims prevent two agents from editing the same path concurrently. The claim store is wired at bootstrap when the server detects the feature is needed.

    See [Claims](/concepts/claims).
  </Accordion>

  <Accordion title="Audit log" icon="scroll">
    ```toml .kiwi/config.toml theme={null}
    [audit]
    enabled = true
    ```

    ```bash theme={null}
    curl 'http://localhost:3333/api/kiwi/audit?since=2026-05-01T00:00:00Z&limit=100'
    ```

    See [Utilities API](/api/utilities#audit-log).
  </Accordion>

  <Accordion title="Vector search" icon="brain">
    ```toml .kiwi/config.toml theme={null}
    [search.vector]
    enabled = true

    [search.vector.embedder]
    provider = "openai"
    model = "text-embedding-3-small"
    api_key = "${OPENAI_API_KEY}"

    [search.vector.store]
    provider = "sqlite-vec"
    ```

    See [Search](/concepts/search) and [Configuration](/configuration#vector-search).
  </Accordion>

  <Accordion title="Schema enforcement" icon="shield-check">
    ```toml .kiwi/config.toml theme={null}
    [schema]
    enforce = true
    ```

    When enabled, writes with invalid frontmatter are rejected. Define types under `.kiwi/schemas/`.

    See [Schemas](/concepts/schemas).
  </Accordion>
</AccordionGroup>

<Warning>
  If you see `501` or `503` on an endpoint, check the table above. These are not bugs — they mean the subsystem was not configured for this server instance.
</Warning>

## Related documentation

<CardGroup cols={2}>
  <Card title="Configuration" icon="gear" href="/configuration">
    Full config.toml reference.
  </Card>

  <Card title="API overview" icon="terminal" href="/api/overview">
    Auth and error conventions.
  </Card>
</CardGroup>
