Glossary

What Graft's terms mean, in plain language.

Reference4 min read

Look up a term you met in the docs, an error message, or an agent's output. Each entry links to the page that covers it in full.

Content and compiling

Collection. A named group of documents that share fields, such as pages or posts. Declared in graft.config.ts. See Schema.

Slug. A document's name inside its collection. content/pages/about.mdx has the slug about.

Frontmatter. The block between the --- lines at the top of a content file. Its fields must match the collection's schema.

MDX. Markdown that can include components. Graft refuses the parts of MDX that can run code unless you allow them. See MDX safety.

Schema. The description of each collection's fields, written in graft.config.ts with Zod. It checks files, function inputs, and reads. See Schema.

Compile. Running graft compile: Graft checks every content file against the schema and builds the index. See How Graft works.

Index. The searchable copy of your content that your app reads from. It is built by compiling, and it can always be rebuilt from your files.

Derived. Built entirely from something else. The index is derived from your files, so the files are the source of truth.

Project, projection. What a compile does to the index: it makes the index match your files. You will see "project" in error messages such as INDEX_OWNERSHIP.

ChangeSet. The list of documents a compile added, changed, or removed. Framework packages use it to refresh only the cached pages that changed.

content_index. The Postgres table that holds the index on the Postgres engine.

Compilation trail. The record of past compiles, with what each one changed. graft compilations and the list_compilations tool read it.

Storage engines

Storage engine. Where the index lives: a SQLite file (static) or a Postgres database. See Storage engines.

Static engine, static index. The index as a single SQLite file, .graft/index.db. Needs nothing running.

Postgres engine. The index in a Postgres database. Needed for operational data, typed functions, branches, approvals, and Studio.

Artifact. The static index file, .graft/index.db. It is generated, so it stays out of Git.

Runtime data and access

Operational data. Data your users create at runtime, such as form submissions, orders, and comments. Git cannot rebuild it, so it lives in Postgres. See Operational data.

File-authoritative, db-authoritative. Whether a collection's source of truth is files in Git (the default) or rows in Postgres (authority: "db-authoritative").

Typed function. A function you declare in your config that reads or writes operational data, callable at POST /api/fn/<name>. See Functions & access.

Actor. Whoever is making a request: a signed-in user, an agent, or anonymous. Graft works it out from the request's token. FunctionActor in code. See Auth.

Scope. A permission an actor holds, such as submissions:read. Not to be confused with branch scope.

Approval. A human sign-off that a destructive action, such as a delete, must wait for. See Audit & approvals.

Audit log. A table with one row for every function call: who, what, when, and how it ended. See Observability.

Correlation id. An id in the x-graft-correlation-id response header that links a user's report to the audit log row for that request.

Operator, runtime role. The two database logins used after hardening. The operator role stays with you or your CI. The runtime role is what your deployed app uses, and it can never approve its own destructive actions.

Branches and changes

Branch (Graft branch). A separate copy of the index, compiled from the files on a Git branch, used for previews. See Branching & previews.

Overlay. The default way to store a branch: its documents sit in your existing database, labelled with the branch name.

Neon fork. A branch stored as a full copy of the database, made by Neon.

Tombstone. A marker on a branch saying a document is deleted there. The main index is not affected.

Branch scope. The set of documents a read on a branch can see: the branch's own changes plus everything it inherits. Not related to permission scopes.

Migration. A file that updates existing content or data to a new schema shape. See Migrations.

Codemod, backfill. The two kinds of migration. A codemod rewrites content files. A backfill updates operational data rows.

Ledger. The migrations_applied table, which records every migration that has run so none runs twice.

Agents and extending

MCP (Model Context Protocol). The open standard agents use to call tools. Graft serves its operations as MCP tools. See Agents overview.

Tool. One operation an agent can call, such as write_content. See MCP tools.

Resource, prompt. Documents an agent can attach as context, and ready-made workflows a person can pick. See Resources & prompts.

fix. The part of every Graft error that names the next step. Written so an agent can act on it. See the Error reference.

Primitive. A ready-made feature, such as comments, that graft add copies into your project as code you own. See Owned primitives.

Registry. The catalog of primitives that graft add and the list_registry tool read from.

Barrel. graft/index.ts, a file that re-exports everything in graft/, so your config picks up added primitives automatically.

Studio. The optional editing UI, built for people who do not use Git. Run it on your machine with graft studio, or host it for a team with graft serve --studio. Every content change it makes is also available from Git, the CLI or MCP. See Studio.

Draft. Saved changes that are not live yet. In a local Studio they are the edited files. On a server that writes to GitHub, each identity drafts on its own branch, graft-studio/drafts/<identity>: a person signed in to Studio, or the identity an agent's token resolves to. Two connections with the same identity share one draft.

Publish. Making drafts live. In a local Studio it is a commit in your checkout, which you push yourself. On GitHub it is one commit on the production branch, or a pull request when GRAFT_STUDIO_PUBLISH is pull-request or the person or token lacks studio:publish (content:publish for agents). See Host Studio for your team.