# Context: docs.datacontroller.io (product documentation)

The user-facing documentation for Data Controller for SAS®, published at [docs.datacontroller.io](https://docs.datacontroller.io) as a **MkDocs** (Material theme) static site.

## What the product is

Data Controller for SAS® is a web application that lets users safely add, modify and delete data in SAS datasets and databases. Every change is **staged** and **approved** before being applied to the **target table**, and the change history is retained. It runs on SAS Viya, SAS 9 EBI and SASjs Server. The product source lives in the sibling `dc` repo (see its `CONTEXT.md` for the full domain glossary); the marketing site is `datacontroller.io`.

## Domain vocabulary (used throughout the docs)

- **Roles**: Viewer, Editor, Approver, Auditor, Administrator.
- **Target table**: the physical SAS/database table a user changes; configured by an admin in `MPE_TABLES`.
- **Submission / staging / approval**: changes are staged and require approval before being applied.
- **Load types** (`MPE_TABLES.LOADTYPE`): `UPDATE`, `REPLACE`, `TXTEMPORAL`, `BITEMPORAL`, `FORMAT_CAT` - determine history behaviour (SCD2 / bitemporal / none).
- **MPE control tables** (`MPE_*`): configuration and state tables, each documented under `docs/tables/mpe_<name>.md`.
- **Validations** (`MPE_VALIDATIONS`): point-of-entry data-quality rules.
- **Row / Column Level Security** (RLS / CLS): server-side access control.

Use these terms consistently; match the casing used in the existing docs.

## Structure

- Pages are Markdown in `docs/`. **A page is not published until it is added to the `nav:` tree in `mkdocs.yml`.**
- `docs/tables/` documents the `MPE_*` control tables (one file per table, following the shared column-list pattern with 🔑 for key columns).
- `mkdocs.yml` defines nav, theme, plugins (search, redirects) and markdown extensions (`admonition`, `pymdownx.superfences`, `codehilite`, `meta`, `toc`).

## Conventions

- Front matter per page: `layout: article`, `title`, `description`, usually `og_image`.
- Use regular dashes, not em-dashes. Do not hard-wrap Markdown.
- Preview with `mkdocs serve`; build with `mkdocs build` (or `./build.sh`) and confirm no warnings.

See `AGENTS.md` for full page/table conventions and build instructions.
