Reproducible query — Product (shared drive)
HELP PRINCIPALS
Anyone opening this link re-runs the same query against epoch 1, so it returns the same answer — that is what makes a number in a report checkable later.
PRINCIPALS
What this covers: querying the PRINCIPALS entity (7 rows; label field ID).
Why you need it: list, fetch, count, and aggregate principals; answer "which/how many/how much" questions.
Syntax:
LIST PRINCIPALS [WHERE ...] [ORDER BY <FIELD> [DESC]] [LIMIT n] [OFFSET n]GET PRINCIPALS "<id>"COUNT PRINCIPALS [BY <FIELD>] [WHERE ...]RESOLVE PRINCIPALS "<name>"- Operators: IS, IS_NOT, CONTAINS, GT, GTE, LT, LTE; combine with AND / OR.
Returns: JSON rows plus _meta (provenance, epoch, related follow-up queries, hints).
Workflows:
1. COUNT PRINCIPALS - size the data before listing.
2. COUNT PRINCIPALS BY DOMAIN then LIST PRINCIPALS WHERE DOMAIN IS "*" LIMIT 10 - segment, then drill in.
3. RESOLVE PRINCIPALS "<fuzzy name>" then GET PRINCIPALS "<canonical>" - resolve before fetching when a name lookup misses.
Constraints:
- Filter only on fields listed in HELP SCHEMA; unknown fields are hard errors.
- Enum values are exact strings (e.g. DOMAIN: *, acme.com, vendor.io).
- Default LIMIT is 100;
countin a LIST response is not the true total.
epoch 1source generated-context
Raw envelope — what an app or agent receives
{
"ok": true,
"query": "HELP PRINCIPALS",
"verb": "HELP",
"subject": "PRINCIPALS",
"data": {
"topic": "PRINCIPALS",
"content": "# PRINCIPALS\n\nWhat this covers: querying the PRINCIPALS entity (7 rows; label field `ID`).\n\nWhy you need it: list, fetch, count, and aggregate principals; answer \"which/how many/how much\" questions.\n\nSyntax:\n- `LIST PRINCIPALS [WHERE ...] [ORDER BY <FIELD> [DESC]] [LIMIT n] [OFFSET n]`\n- `GET PRINCIPALS \"<id>\"`\n- `COUNT PRINCIPALS [BY <FIELD>] [WHERE ...]`\n- `RESOLVE PRINCIPALS \"<name>\"`\n- Operators: IS, IS_NOT, CONTAINS, GT, GTE, LT, LTE; combine with AND / OR.\n\nReturns: JSON rows plus `_meta` (provenance, epoch, related follow-up queries, hints).\n\nWorkflows:\n1. `COUNT PRINCIPALS` - size the data before listing.\n2. `COUNT PRINCIPALS BY DOMAIN` then `LIST PRINCIPALS WHERE DOMAIN IS \"*\" LIMIT 10` - segment, then drill in.\n3. `RESOLVE PRINCIPALS \"<fuzzy name>\"` then `GET PRINCIPALS \"<canonical>\"` - resolve before fetching when a name lookup misses.\n\nConstraints:\n- Filter only on fields listed in HELP SCHEMA; unknown fields are hard errors.\n- Enum values are exact strings (e.g. DOMAIN: *, acme.com, vendor.io).\n- Default LIMIT is 100; `count` in a LIST response is not the true total.\n"
},
"_meta": {
"epoch": 1,
"provenance": {
"source": "generated-context",
"stage": "P4"
}
}
}