# 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_.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.