---
title: "Option index as JSON"
manual: "Render guides"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3renderguides:confvalindexjson"
source: "Developer/ConfvalIndex.rst"
rendered: "2026-10-05T15:51:40+00:00"
---

# Option index as JSON {#confvalindexjson}

A manual that documents options with `..  confval::` is rendered with a
`confvals.json` beside its [toc.json](https://docs.typo3.org/permalink/t3renderguides:tableofcontentsjson): every
option, with what the directive says about it, where it stands, and the
first paragraph of its description.

It lets a reader find an option by its name without reading the pages that
document it -- ninety of them for the TCA reference -- and pick the right one
when several share a name. `objects.inv.json` lists the same options,
but by name and address alone: the TCA reference documents
`itemsProcFunc` eight times, once for each field type that has it, and
there all eight are called `itemsProcFunc` and nothing more.

```json
{
  "project": {
    "title": "TCA Reference",
    "version": "main",
    "permalink": "https://docs.typo3.org/permalink/t3tca:{anchor}@main"
  },
  "confvals": {
    "confval-select-checkbox-itemsprocfunc": {
      "name": "itemsProcFunc",
      "searchFacet": "TCA",
      "context": [
        "Field types (config > type)",
        "Select fields",
        "selectCheckBox",
        "Properties of the TCA column type select with renderType selectCheckBox"
      ],
      "type": "string (class->method reference)",
      "fields": {
        "Path": "$GLOBALS['TCA'][$table]['columns'][$field]['config']",
        "Scope": "Display / Proc."
      },
      "summary": "PHP method which is called to fill or manipulate the items array. See itemsProcFunc about details.",
      "path": "ColumnsConfig/Type/Select/CheckBox/Index"
    }
  }
}
```

The project is described the way `toc.json` describes it. Each option
is keyed by its anchor, which the `permalink` there resolves, and says:

-   **name**

    The name of the option, as the directive writes it.

-   **searchFacet**

    What kind of option it is, as the search of docs.typo3.org files it: the
    option's own `:searchFacet:`, or else the manual's
    `confval-default`. The list of facets is the same for every manual,
    such as `TCA`, `TypoScript` or `TYPO3_CONF_VAR`, so
    options of one kind can be found across manuals. Any other value is
    `Option`.

-   **context**

    The titles above the option: the pages above its page in the table of
    contents, the sections of its page, and the options it is nested in. The
    start page is left out, since it is the manual. This is what tells apart
    options of the same name.

-   **parent**

    The key of the option this one is nested in. Left out for an option that
    stands on its own.

-   **type, default, required**

    The directive's own fields, as plain text. Left out where the directive
    does not give them; `required` is only ever `true`.

-   **fields**

    Every other field of the directive, by the name the manual gives it and
    as plain text, except those the search reads and those listed under
    `versions`. The names are the manual's own and differ between
    manuals: the TCA reference writes `Path` and `Scope`.

-   **versions**

    When the option was added, changed, deprecated or removed, as its
    `:added:`, `:changed:`, `:deprecated:` and
    `:removed:` options state it: each with its `kind`, the
    `version`, and the `changelog` entry and its `url`
    where the option names one, such as
    `:removed: 14.0 breaking-106863-1749629371`. Left out for an option
    that states none. A version directive in the description is text and is
    not read.

-   **summary**

    The first paragraph of the option's own description, as plain text.
    Left out for an option that has none, such as one that only holds the
    options nested in it.

-   **path**

    The page that documents the option, relative to this file and without an
    extension, as in `toc.json`.

An option with `:noindex:` is left out, as it is from
`objects.inv.json`. A manual without options writes no
`confvals.json`.

For the TCA reference the file is about 530 KB with 757 options, for the
TypoScript reference about 580 KB with 1107.
