P4/help_principals.md
epoch 1
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.