# flags

Feature registry and overrides: responsibilities, supported exports and extension points.

## Purpose [#purpose]

The registry defines keys, descriptions and defaults. The server repository combines defaults with persisted overrides. Schemas and the registry are the safe contract; the repository can reach Postgres.

## Public exports [#public-exports]

| Subpath | Target |
| --- | --- |
| `.` | `./src/index.ts` |
| `./registry` | `./src/registry.ts` |
| `./evaluate` | `./src/evaluate.ts` |
| `./parse` | `./src/parse.ts` |
| `./repo` | `./src/repo.ts` |

These paths come from `packages/flags/package.json`. A `.` entry is the package root. Conditional targets distinguish platform or type resolution; consumers should import the subpath, not its source file.

## How to extend [#how-to-extend]

Define a key and default centrally, expose it through the existing evaluation route and add a UI gate. A visibility flag does not replace authorization or required provider configuration.

Read the [feature registry and overrides guide](/docs/features/feature-flags) for the full flow.

## Key files [#key-files]

- [`packages/flags/package.json`](https://github.com/CarlosZiegler/doro/blob/main/packages/flags/package.json)

