[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-explore-omni-omni-admin":3,"mdc-ro883q-key":34,"related-org-explore-omni-omni-admin":4287,"related-repo-explore-omni-omni-admin":4437},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"omni-admin","administer Omni Analytics","Administer an Omni Analytics instance — manage connections, users, groups, user attributes, permissions, schedules, and schema refreshes via the Omni CLI. Use this skill whenever someone wants to manage users or groups, set up permissions on a dashboard or folder, configure user attributes, create or modify schedules, manage database connections, refresh a schema, set up access controls, provision users, or any variant of \"add a user\", \"give access to\", \"set up permissions\", \"who has access\", \"configure connection\", \"refresh the schema\", or \"schedule a delivery\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"explore-omni","Explore Omni","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fexplore-omni.png","exploreomni",[13,17,20],{"name":14,"slug":15,"type":16},"Omni","omni","tag",{"name":18,"slug":19,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"Analytics","analytics",27,"https:\u002F\u002Fgithub.com\u002Fexploreomni\u002Fomni-agent-skills","2026-04-06T18:10:58.235995",null,3,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"A collection of skill for working with Omni. These skills help AI agents understand and execute Omni workflows more effectively.","https:\u002F\u002Fgithub.com\u002Fexploreomni\u002Fomni-agent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fomni-admin","---\nname: omni-admin\ndescription: Administer an Omni Analytics instance — manage connections, users, groups, user attributes, permissions, schedules, and schema refreshes via the Omni CLI. Use this skill whenever someone wants to manage users or groups, set up permissions on a dashboard or folder, configure user attributes, create or modify schedules, manage database connections, refresh a schema, set up access controls, provision users, or any variant of \"add a user\", \"give access to\", \"set up permissions\", \"who has access\", \"configure connection\", \"refresh the schema\", or \"schedule a delivery\".\n---\n\n# Omni Admin\n\nManage your Omni instance — connections, users, groups, user attributes, permissions, schedules, and schema refreshes.\n\n> **Tip**: Most admin endpoints require an **Organization API Key** (not a Personal Access Token).\n\n## Prerequisites\n\n```bash\n# Verify the Omni CLI is installed — if not, ask the user to install it\n# See: https:\u002F\u002Fgithub.com\u002Fexploreomni\u002Fcli#readme\ncommand -v omni >\u002Fdev\u002Fnull || echo \"ERROR: Omni CLI is not installed.\"\n```\n\n```bash\n# Show available profiles and select the appropriate one\nomni config show\n# If multiple profiles exist, ask the user which to use, then switch:\nomni config use \u003Cprofile-name>\n\n# Confirm the active profile is authenticated and inspect your permissions:\nomni whoami whoami\n```\n\n> **Auth**: a profile authenticates with an **API key** or **OAuth**. If `whoami` (or any call) returns **401**, hand off — ask the user to run `! omni config login \u003Cprofile>` (OAuth 2.1 browser flow; it blocks ~2 min on the browser). Don't run `config login` yourself in a headless\u002FCI session (no browser → timeout); on a local interactive machine you *may*. See the **`omni-api-conventions`** rule for profile setup (`omni config init --auth oauth`) and discovering request-body shapes with `--schema`.\n\nIf no CLI profile exists but the environment provides credentials, pass them explicitly:\n\n```bash\nomni \u003Ccommand> --base-url \"$OMNI_BASE_URL\" --token \"$OMNI_API_TOKEN\"\n```\n\n## Discovering Commands\n\n```bash\nomni scim --help             # User and group management\nomni schedules --help        # Schedule operations\nomni connections --help      # Connection management\nomni documents --help        # Document permissions\nomni folders --help          # Folder permissions\nomni scim users-create --schema   # Print any body command's JSON schema + filled example (no token)\n```\n\n> **Tip**: Use `-o json` to force structured output for programmatic parsing, or `-o human` for readable tables. The default is `auto` (human in a TTY, JSON when piped).\n\n## Safe Admin Defaults\n\n- For create operations, first try the requested create. If the API returns a conflict because the resource already exists, look it up and verify it exactly matches the requested state before reporting success.\n- Prefer read-after-write checks that inspect the specific created or changed resource, not just a successful status response.\n- Use the role names returned by Omni permission APIs (`VIEWER`, `EXPLORER`, `EDITOR`, `MANAGER`) when updating content access.\n\n## Connections\n\n```bash\n# List connections\nomni connections list\n\n# Schema refresh schedules\nomni connections schedules-list \u003CconnectionId>\n\n# Connection environments\nomni connections connection-environments-list\n```\n\n## User Management (SCIM 2.0)\n\n> The `--body` blocks below are worked examples. For the authoritative field list (types, required, enums), run the command with `--schema` — e.g. `omni scim users-create --schema` — rather than relying on these shapes to be exhaustive.\n\n```bash\n# List users\nomni scim users-list\n\n# Find by email\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n\n# Create user\nomni scim users-create --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"userName\": \"newuser@company.com\",\n  \"displayName\": \"New User\",\n  \"active\": true,\n  \"emails\": [{ \"primary\": true, \"value\": \"newuser@company.com\" }]\n}'\n\n# Deactivate user\nomni scim users-update \u003CuserId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"Operations\": [{ \"op\": \"replace\", \"path\": \"active\", \"value\": false }]\n}'\n\n# Delete user\nomni scim users-delete \u003CuserId>\n```\n\n## Group Management (SCIM 2.0)\n\n```bash\n# List groups\nomni scim groups-list\n\n# Create group\nomni scim groups-create --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n  \"displayName\": \"Analytics Team\",\n  \"members\": [{ \"value\": \"user-uuid-1\" }]\n}'\n\n# Add members\nomni scim groups-update \u003CgroupId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n  \"Operations\": [{ \"op\": \"add\", \"path\": \"members\", \"value\": [{ \"value\": \"new-user-uuid\" }] }]\n}'\n```\n\n## User Attributes\n\n```bash\n# List attributes\nomni user-attributes list\n\n# Find the user by email before setting an attribute\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n\n# Set attribute on user (via SCIM)\nomni scim users-update \u003CuserId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"Operations\": [{\n    \"op\": \"replace\",\n    \"path\": \"urn:omni:params:1.0:UserAttribute:region\",\n    \"value\": \"West Coast\"\n  }]\n}'\n```\n\nUser attributes work with `access_filters` in topics for row-level security.\nSCIM can set values only for attribute definitions that already exist. Use\n`omni user-attributes list` to confirm the requested attribute definition exists\nbefore setting a value, but do not use it as proof that a specific user's value\nchanged. If the definition is missing, report that it must be created in\nAdmin -> User Attributes before values can be assigned; do not keep retrying\nSCIM paths or claim the value was set from an empty `User attributes set: {}`\nresponse.\n\nWhen the user explicitly asks to set or update a user attribute, converge the\nuser record with a SCIM update even if the initial user lookup already shows the\nrequested value. This keeps the operation idempotent while still honoring the\nrequested admin action. After the update, read back the same user and verify the\nvalue under `urn:omni:params:1.0:UserAttribute`.\n\n## Model Roles\n\n```bash\n# Get\u002Fset model roles for a user\nomni users get-model-roles \u003CuserId>\n\nomni users assign-model-role \u003CuserId> --body '{ \"modelId\": \"{modelId}\", \"role\": \"VIEWER\" }'\n\n# Get\u002Fset model roles for a group\nomni users user-groups-get-model-roles \u003CgroupId>\n\nomni users user-groups-assign-model-role \u003CgroupId> --body '{ \"modelId\": \"{modelId}\", \"role\": \"VIEWER\" }'\n```\n\n## Document Permissions\n\n```bash\n# Check effective permissions for a user (userId required)\nomni documents get-permissions \u003CdocumentId> --userid \u003CuserId>\n\n# List document access principals\nomni documents access-list \u003CdocumentId>\n\n# Add direct access for a group\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userGroupIds\": [\"group-uuid\"],\n  \"role\": \"VIEWER\"\n}'\n\n# Add direct access for a user\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userIds\": [\"user-uuid\"],\n  \"role\": \"EDITOR\"\n}'\n```\n\n`role` is one of `NO_ACCESS`, `VIEWER`, `EDITOR`, `MANAGER`.\n\n### Access Boost\n\n**Access Boost** lets Viewer \u002F Restricted Querier roles view a dashboard built on **non-topic content** — a raw-SQL (`userEditedSQL`) tile or a bare base-view query — which those roles otherwise can't see. (Model **access grants** still apply unless the grant sets `access_boostable: true`.)\n\n**Dashboard-only:** Access Boost lifts the restriction on the **dashboard** view of those tiles. It does **not** extend to the underlying **workbook** — a restricted role still can't open the workbook's non-topic or SQL tabs (or see the query behind the tile) regardless of Access Boost.\n\n**⚠️ Confirm before boosting — it loosens access controls.** Access Boost deliberately exposes content that restricted roles can't otherwise see, and non-topic \u002F raw-SQL tiles bypass topic-scoped governance (access filters, `always_where`) — so boosting can surface data those controls would normally withhold. **Do not apply Access Boost autonomously or as a reflexive fix for \"they can't see it.\"** First:\n1. **Understand what the document exposes** — what data the boosted tiles show, at what grain, and whether any of it is sensitive.\n2. **Confirm intent with the requester** — that they really mean to grant *these specific* Viewer \u002F Restricted Querier users or groups visibility into that content. State the implication back to them and get an explicit go-ahead before running the command.\n3. **Prefer the narrowest scope** — boost specific users\u002Fgroups (`add-permits`) over the org-wide `organizationAccessBoost`; reach for org-wide only when that's explicitly what's wanted.\n4. **Note the governance interaction** — model access grants still apply unless a grant sets `access_boostable: true`; don't treat that as a safety net, confirm intent regardless.\n\n**Prerequisite (org capability, not in the CLI):** the org must have `allowsDocumentAccessBoost` enabled (and `allowsMemberToProvisionAccessBoost` for non-admins to grant it). This is an instance\u002Fadmin setting — if it's off, the document-level flags below are silently cleared. It's a gate; it does **not** itself turn Access Boost on anywhere.\n\nOnce you've confirmed intent, there are two activation levers, both **scoped to a single document**:\n\n```bash\n# Boost specific users\u002Fgroups on this document (add-permits \u002F update-permits)\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userGroupIds\": [\"group-uuid\"],\n  \"role\": \"VIEWER\",\n  \"accessBoost\": true\n}'\n\n# Boost the \"everyone in the org\" principal on this document\nomni documents update-permission-settings \u003CdocumentId> --body '{\n  \"organizationAccessBoost\": true,\n  \"organizationRole\": \"VIEWER\"\n}'\n```\n\n`update-permission-settings` (PUT) also carries the document's other toggles — `canDownload`, `canDrill`, `canSchedule`, `canUpload`, `canUseDashboardAi`, `canUseTimezoneOverride`, `canViewWorkbook`, `requirePullRequestToPublish`. Note `organizationAccessBoost` boosts the org-default principal on **this** document only — it is not an org-wide switch.\n\n## Folder Permissions\n\n```bash\n# Get\nomni folders get-permissions \u003CfolderId>\n\n# Set\nomni folders add-permissions \u003CfolderId> --body '{\n  \"permissions\": [{ \"type\": \"group\", \"id\": \"group-uuid\", \"access\": \"view\" }]\n}'\n```\n\n## Schedules\n\n```bash\n# List schedules\nomni schedules list\n\n# Create schedule\nomni schedules create --body '{\n  \"identifier\": \"dashboard-identifier\",\n  \"name\": \"Weekly Dashboard - Monday 9am PT\",\n  \"schedule\": \"0 9 ? * MON *\",\n  \"timezone\": \"America\u002FLos_Angeles\",\n  \"destinationType\": \"email\",\n  \"content\": \"dashboard\",\n  \"format\": \"pdf\",\n  \"subject\": \"Weekly dashboard\",\n  \"recipients\": [\"team@company.com\"]\n}'\n\n# Manage recipients for an existing schedule\nomni schedules recipients-get \u003CscheduleId>\n\nomni schedules add-recipients \u003CscheduleId> --body '{ \"recipients\": [\"team@company.com\"] }'\n```\n\n## Verification After Changes\n\nAdmin operations can silently fail or partially apply. Always read back the state after any write to confirm the change took effect.\n\n### After User Operations\n\n```bash\n# After creating or updating a user, verify they exist with correct state\nomni scim users-list --filter 'userName eq \"newuser@company.com\"'\n```\n\nCheck that: `active` matches what you set, `displayName` is correct, and the user ID was returned (not an error).\n\n### After Group Operations\n\n```bash\n# After creating a group or modifying members, verify membership\nomni scim groups-list\n```\n\nCheck that: the group exists with the expected `displayName`, and `members` array contains the expected user UUIDs.\n\n### After Permission Changes\n\n```bash\n# After setting document permissions, verify the principal and role\nomni documents access-list \u003CdocumentId>\n\n# For a specific user, also check effective permissions\nomni documents get-permissions \u003CdocumentId> --userid \u003CuserId>\n\n# After setting folder permissions, verify\nomni folders get-permissions \u003CfolderId>\n```\n\nCheck that: the principal is listed and the `role` matches what you set (`VIEWER`, `EDITOR`, etc.).\n\n### After User Attribute Changes\n\n```bash\n# Verify the user's assigned attribute value was set\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n```\n\nCheck that: the response contains the target user, the user's\n`urn:omni:params:1.0:UserAttribute` object includes the requested attribute name,\nand the value exactly matches what you set. `omni user-attributes list` only\nverifies that the attribute definition exists.\n\nIf the attribute is used for row-level security (`access_filters`), test it by running a query as the target user:\n\n```bash\nomni query run --body '{ \"query\": { ... }, \"userId\": \"\u003Ctarget-user-uuid>\" }'\n```\n\nVerify the results are correctly filtered — the user should only see rows matching their attribute value.\n\n### After Schedule Operations\n\n```bash\n# Verify schedule was created with correct settings\nomni schedules list -o json\n\n# Verify recipients were added\nomni schedules recipients-get \u003CscheduleId>\n```\n\nCheck that: the created schedule id appears in the list and the returned fields match the requested `schedule` cron, `timezone`, `destinationType`, `content`, `format`, and dashboard `identifier`. If the list\u002Fget response shape is not parseable, report that schedule setting verification was inconclusive instead of silently treating an empty parser result as success. Always verify recipients with `recipients-get`.\n\n### Verification Checklist\n\n| Operation | Verify With | What to Check |\n|-----------|-------------|---------------|\n| Create\u002Fupdate user | `omni scim users-list --filter ...` | User exists, `active` status correct |\n| Create\u002Fupdate group | `omni scim groups-list` | Group exists, members list correct |\n| Set document permissions | `omni documents get-permissions` | Access level and target correct |\n| Set folder permissions | `omni folders get-permissions` | Access level and target correct |\n| Set user attribute | `omni scim users-list --filter ...` | User attribute extension contains requested value |\n| User attribute + access filter | `omni query run` with `userId` | Row-level filtering works |\n| Create schedule | `omni schedules list` | Schedule settings correct |\n| Add recipients | `omni schedules recipients-get` | All recipients listed |\n\n## Cache and Validation\n\n```bash\n# Reset cache policy\nomni models cache-reset \u003CmodelId> \u003CpolicyName> --body '{ \"resetAt\": \"2025-01-30T22:30:52.872Z\" }'\n\n# Content validator (find broken field references across all dashboards and tiles)\n# Useful for blast-radius analysis: remove a field on a branch, then run the\n# validator against that branch to see what content would break.\n# See the Field Impact Analysis section in omni-model-explorer for the full workflow.\nomni models content-validator-get \u003CmodelId>\n\n# Run against a specific branch (e.g., after removing a field)\nomni models content-validator-get \u003CmodelId> --branch-id \u003CbranchId>\n\n# Git configuration\nomni models git-get \u003CmodelId>\n```\n\n## Docs Reference\n\n- [Connections](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fconnections.md) · [Users (SCIM)](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fusers.md) · [Groups (SCIM)](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fuser-groups.md) · [User Attributes](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fuser-attributes.md) · [Document Permissions](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fdocument-permissions.md) · [Folder Permissions](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Ffolder-permissions.md) · [Schedules](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fschedules.md) · [Schedule Recipients](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fschedule-recipients.md) · [Content Validator](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fcontent-validator.md) · [API Authentication](https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fauthentication.md)\n\n## Related Skills\n\n- **omni-model-builder** — edit the model that access controls apply to\n- **omni-content-explorer** — find documents before setting permissions\n- **omni-content-builder** — create dashboards before scheduling delivery\n- **omni-embed** — manage embed users and user attributes for embedded dashboards\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,53,75,82,171,287,380,385,455,461,600,636,642,692,698,809,815,846,1172,1178,1373,1379,1572,1601,1613,1619,1825,1831,2118,2154,2161,2200,2231,2256,2330,2362,2374,2552,2634,2640,2765,2771,3031,3037,3042,3048,3095,3116,3122,3152,3172,3178,3336,3361,3367,3413,3432,3444,3485,3490,3496,3583,3640,3646,3868,3874,4143,4149,4232,4238,4281],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Omni Admin",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"Manage your Omni instance — connections, users, groups, user attributes, permissions, schedules, and schema refreshes.",{"type":40,"tag":54,"props":55,"children":56},"blockquote",{},[57],{"type":40,"tag":48,"props":58,"children":59},{},[60,66,68,73],{"type":40,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":45,"value":65},"Tip",{"type":45,"value":67},": Most admin endpoints require an ",{"type":40,"tag":61,"props":69,"children":70},{},[71],{"type":45,"value":72},"Organization API Key",{"type":45,"value":74}," (not a Personal Access Token).",{"type":40,"tag":76,"props":77,"children":79},"h2",{"id":78},"prerequisites",[80],{"type":45,"value":81},"Prerequisites",{"type":40,"tag":83,"props":84,"children":89},"pre",{"className":85,"code":86,"language":87,"meta":88,"style":88},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Verify the Omni CLI is installed — if not, ask the user to install it\n# See: https:\u002F\u002Fgithub.com\u002Fexploreomni\u002Fcli#readme\ncommand -v omni >\u002Fdev\u002Fnull || echo \"ERROR: Omni CLI is not installed.\"\n","bash","",[90],{"type":40,"tag":91,"props":92,"children":93},"code",{"__ignoreMap":88},[94,106,115],{"type":40,"tag":95,"props":96,"children":99},"span",{"class":97,"line":98},"line",1,[100],{"type":40,"tag":95,"props":101,"children":103},{"style":102},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[104],{"type":45,"value":105},"# Verify the Omni CLI is installed — if not, ask the user to install it\n",{"type":40,"tag":95,"props":107,"children":109},{"class":97,"line":108},2,[110],{"type":40,"tag":95,"props":111,"children":112},{"style":102},[113],{"type":45,"value":114},"# See: https:\u002F\u002Fgithub.com\u002Fexploreomni\u002Fcli#readme\n",{"type":40,"tag":95,"props":116,"children":117},{"class":97,"line":27},[118,124,130,135,141,146,151,156,161,166],{"type":40,"tag":95,"props":119,"children":121},{"style":120},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[122],{"type":45,"value":123},"command",{"type":40,"tag":95,"props":125,"children":127},{"style":126},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[128],{"type":45,"value":129}," -v",{"type":40,"tag":95,"props":131,"children":132},{"style":126},[133],{"type":45,"value":134}," omni",{"type":40,"tag":95,"props":136,"children":138},{"style":137},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[139],{"type":45,"value":140}," >",{"type":40,"tag":95,"props":142,"children":143},{"style":126},[144],{"type":45,"value":145},"\u002Fdev\u002Fnull",{"type":40,"tag":95,"props":147,"children":148},{"style":137},[149],{"type":45,"value":150}," ||",{"type":40,"tag":95,"props":152,"children":153},{"style":120},[154],{"type":45,"value":155}," echo",{"type":40,"tag":95,"props":157,"children":158},{"style":137},[159],{"type":45,"value":160}," \"",{"type":40,"tag":95,"props":162,"children":163},{"style":126},[164],{"type":45,"value":165},"ERROR: Omni CLI is not installed.",{"type":40,"tag":95,"props":167,"children":168},{"style":137},[169],{"type":45,"value":170},"\"\n",{"type":40,"tag":83,"props":172,"children":174},{"className":85,"code":173,"language":87,"meta":88,"style":88},"# Show available profiles and select the appropriate one\nomni config show\n# If multiple profiles exist, ask the user which to use, then switch:\nomni config use \u003Cprofile-name>\n\n# Confirm the active profile is authenticated and inspect your permissions:\nomni whoami whoami\n",[175],{"type":40,"tag":91,"props":176,"children":177},{"__ignoreMap":88},[178,186,204,212,250,260,269],{"type":40,"tag":95,"props":179,"children":180},{"class":97,"line":98},[181],{"type":40,"tag":95,"props":182,"children":183},{"style":102},[184],{"type":45,"value":185},"# Show available profiles and select the appropriate one\n",{"type":40,"tag":95,"props":187,"children":188},{"class":97,"line":108},[189,194,199],{"type":40,"tag":95,"props":190,"children":192},{"style":191},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[193],{"type":45,"value":15},{"type":40,"tag":95,"props":195,"children":196},{"style":126},[197],{"type":45,"value":198}," config",{"type":40,"tag":95,"props":200,"children":201},{"style":126},[202],{"type":45,"value":203}," show\n",{"type":40,"tag":95,"props":205,"children":206},{"class":97,"line":27},[207],{"type":40,"tag":95,"props":208,"children":209},{"style":102},[210],{"type":45,"value":211},"# If multiple profiles exist, ask the user which to use, then switch:\n",{"type":40,"tag":95,"props":213,"children":215},{"class":97,"line":214},4,[216,220,224,229,234,239,245],{"type":40,"tag":95,"props":217,"children":218},{"style":191},[219],{"type":45,"value":15},{"type":40,"tag":95,"props":221,"children":222},{"style":126},[223],{"type":45,"value":198},{"type":40,"tag":95,"props":225,"children":226},{"style":126},[227],{"type":45,"value":228}," use",{"type":40,"tag":95,"props":230,"children":231},{"style":137},[232],{"type":45,"value":233}," \u003C",{"type":40,"tag":95,"props":235,"children":236},{"style":126},[237],{"type":45,"value":238},"profile-nam",{"type":40,"tag":95,"props":240,"children":242},{"style":241},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[243],{"type":45,"value":244},"e",{"type":40,"tag":95,"props":246,"children":247},{"style":137},[248],{"type":45,"value":249},">\n",{"type":40,"tag":95,"props":251,"children":253},{"class":97,"line":252},5,[254],{"type":40,"tag":95,"props":255,"children":257},{"emptyLinePlaceholder":256},true,[258],{"type":45,"value":259},"\n",{"type":40,"tag":95,"props":261,"children":263},{"class":97,"line":262},6,[264],{"type":40,"tag":95,"props":265,"children":266},{"style":102},[267],{"type":45,"value":268},"# Confirm the active profile is authenticated and inspect your permissions:\n",{"type":40,"tag":95,"props":270,"children":272},{"class":97,"line":271},7,[273,277,282],{"type":40,"tag":95,"props":274,"children":275},{"style":191},[276],{"type":45,"value":15},{"type":40,"tag":95,"props":278,"children":279},{"style":126},[280],{"type":45,"value":281}," whoami",{"type":40,"tag":95,"props":283,"children":284},{"style":126},[285],{"type":45,"value":286}," whoami\n",{"type":40,"tag":54,"props":288,"children":289},{},[290],{"type":40,"tag":48,"props":291,"children":292},{},[293,298,300,305,307,312,314,320,322,327,329,335,337,343,345,351,353,362,364,370,372,378],{"type":40,"tag":61,"props":294,"children":295},{},[296],{"type":45,"value":297},"Auth",{"type":45,"value":299},": a profile authenticates with an ",{"type":40,"tag":61,"props":301,"children":302},{},[303],{"type":45,"value":304},"API key",{"type":45,"value":306}," or ",{"type":40,"tag":61,"props":308,"children":309},{},[310],{"type":45,"value":311},"OAuth",{"type":45,"value":313},". If ",{"type":40,"tag":91,"props":315,"children":317},{"className":316},[],[318],{"type":45,"value":319},"whoami",{"type":45,"value":321}," (or any call) returns ",{"type":40,"tag":61,"props":323,"children":324},{},[325],{"type":45,"value":326},"401",{"type":45,"value":328},", hand off — ask the user to run ",{"type":40,"tag":91,"props":330,"children":332},{"className":331},[],[333],{"type":45,"value":334},"! omni config login \u003Cprofile>",{"type":45,"value":336}," (OAuth 2.1 browser flow; it blocks ~2 min on the browser). Don't run ",{"type":40,"tag":91,"props":338,"children":340},{"className":339},[],[341],{"type":45,"value":342},"config login",{"type":45,"value":344}," yourself in a headless\u002FCI session (no browser → timeout); on a local interactive machine you ",{"type":40,"tag":346,"props":347,"children":348},"em",{},[349],{"type":45,"value":350},"may",{"type":45,"value":352},". See the ",{"type":40,"tag":61,"props":354,"children":355},{},[356],{"type":40,"tag":91,"props":357,"children":359},{"className":358},[],[360],{"type":45,"value":361},"omni-api-conventions",{"type":45,"value":363}," rule for profile setup (",{"type":40,"tag":91,"props":365,"children":367},{"className":366},[],[368],{"type":45,"value":369},"omni config init --auth oauth",{"type":45,"value":371},") and discovering request-body shapes with ",{"type":40,"tag":91,"props":373,"children":375},{"className":374},[],[376],{"type":45,"value":377},"--schema",{"type":45,"value":379},".",{"type":40,"tag":48,"props":381,"children":382},{},[383],{"type":45,"value":384},"If no CLI profile exists but the environment provides credentials, pass them explicitly:",{"type":40,"tag":83,"props":386,"children":388},{"className":85,"code":387,"language":87,"meta":88,"style":88},"omni \u003Ccommand> --base-url \"$OMNI_BASE_URL\" --token \"$OMNI_API_TOKEN\"\n",[389],{"type":40,"tag":91,"props":390,"children":391},{"__ignoreMap":88},[392],{"type":40,"tag":95,"props":393,"children":394},{"class":97,"line":98},[395,399,403,408,413,418,423,427,432,437,442,446,451],{"type":40,"tag":95,"props":396,"children":397},{"style":191},[398],{"type":45,"value":15},{"type":40,"tag":95,"props":400,"children":401},{"style":137},[402],{"type":45,"value":233},{"type":40,"tag":95,"props":404,"children":405},{"style":126},[406],{"type":45,"value":407},"comman",{"type":40,"tag":95,"props":409,"children":410},{"style":241},[411],{"type":45,"value":412},"d",{"type":40,"tag":95,"props":414,"children":415},{"style":137},[416],{"type":45,"value":417},">",{"type":40,"tag":95,"props":419,"children":420},{"style":126},[421],{"type":45,"value":422}," --base-url",{"type":40,"tag":95,"props":424,"children":425},{"style":137},[426],{"type":45,"value":160},{"type":40,"tag":95,"props":428,"children":429},{"style":241},[430],{"type":45,"value":431},"$OMNI_BASE_URL",{"type":40,"tag":95,"props":433,"children":434},{"style":137},[435],{"type":45,"value":436},"\"",{"type":40,"tag":95,"props":438,"children":439},{"style":126},[440],{"type":45,"value":441}," --token",{"type":40,"tag":95,"props":443,"children":444},{"style":137},[445],{"type":45,"value":160},{"type":40,"tag":95,"props":447,"children":448},{"style":241},[449],{"type":45,"value":450},"$OMNI_API_TOKEN",{"type":40,"tag":95,"props":452,"children":453},{"style":137},[454],{"type":45,"value":170},{"type":40,"tag":76,"props":456,"children":458},{"id":457},"discovering-commands",[459],{"type":45,"value":460},"Discovering Commands",{"type":40,"tag":83,"props":462,"children":464},{"className":85,"code":463,"language":87,"meta":88,"style":88},"omni scim --help             # User and group management\nomni schedules --help        # Schedule operations\nomni connections --help      # Connection management\nomni documents --help        # Document permissions\nomni folders --help          # Folder permissions\nomni scim users-create --schema   # Print any body command's JSON schema + filled example (no token)\n",[465],{"type":40,"tag":91,"props":466,"children":467},{"__ignoreMap":88},[468,490,511,532,553,574],{"type":40,"tag":95,"props":469,"children":470},{"class":97,"line":98},[471,475,480,485],{"type":40,"tag":95,"props":472,"children":473},{"style":191},[474],{"type":45,"value":15},{"type":40,"tag":95,"props":476,"children":477},{"style":126},[478],{"type":45,"value":479}," scim",{"type":40,"tag":95,"props":481,"children":482},{"style":126},[483],{"type":45,"value":484}," --help",{"type":40,"tag":95,"props":486,"children":487},{"style":102},[488],{"type":45,"value":489},"             # User and group management\n",{"type":40,"tag":95,"props":491,"children":492},{"class":97,"line":108},[493,497,502,506],{"type":40,"tag":95,"props":494,"children":495},{"style":191},[496],{"type":45,"value":15},{"type":40,"tag":95,"props":498,"children":499},{"style":126},[500],{"type":45,"value":501}," schedules",{"type":40,"tag":95,"props":503,"children":504},{"style":126},[505],{"type":45,"value":484},{"type":40,"tag":95,"props":507,"children":508},{"style":102},[509],{"type":45,"value":510},"        # Schedule operations\n",{"type":40,"tag":95,"props":512,"children":513},{"class":97,"line":27},[514,518,523,527],{"type":40,"tag":95,"props":515,"children":516},{"style":191},[517],{"type":45,"value":15},{"type":40,"tag":95,"props":519,"children":520},{"style":126},[521],{"type":45,"value":522}," connections",{"type":40,"tag":95,"props":524,"children":525},{"style":126},[526],{"type":45,"value":484},{"type":40,"tag":95,"props":528,"children":529},{"style":102},[530],{"type":45,"value":531},"      # Connection management\n",{"type":40,"tag":95,"props":533,"children":534},{"class":97,"line":214},[535,539,544,548],{"type":40,"tag":95,"props":536,"children":537},{"style":191},[538],{"type":45,"value":15},{"type":40,"tag":95,"props":540,"children":541},{"style":126},[542],{"type":45,"value":543}," documents",{"type":40,"tag":95,"props":545,"children":546},{"style":126},[547],{"type":45,"value":484},{"type":40,"tag":95,"props":549,"children":550},{"style":102},[551],{"type":45,"value":552},"        # Document permissions\n",{"type":40,"tag":95,"props":554,"children":555},{"class":97,"line":252},[556,560,565,569],{"type":40,"tag":95,"props":557,"children":558},{"style":191},[559],{"type":45,"value":15},{"type":40,"tag":95,"props":561,"children":562},{"style":126},[563],{"type":45,"value":564}," folders",{"type":40,"tag":95,"props":566,"children":567},{"style":126},[568],{"type":45,"value":484},{"type":40,"tag":95,"props":570,"children":571},{"style":102},[572],{"type":45,"value":573},"          # Folder permissions\n",{"type":40,"tag":95,"props":575,"children":576},{"class":97,"line":262},[577,581,585,590,595],{"type":40,"tag":95,"props":578,"children":579},{"style":191},[580],{"type":45,"value":15},{"type":40,"tag":95,"props":582,"children":583},{"style":126},[584],{"type":45,"value":479},{"type":40,"tag":95,"props":586,"children":587},{"style":126},[588],{"type":45,"value":589}," users-create",{"type":40,"tag":95,"props":591,"children":592},{"style":126},[593],{"type":45,"value":594}," --schema",{"type":40,"tag":95,"props":596,"children":597},{"style":102},[598],{"type":45,"value":599},"   # Print any body command's JSON schema + filled example (no token)\n",{"type":40,"tag":54,"props":601,"children":602},{},[603],{"type":40,"tag":48,"props":604,"children":605},{},[606,610,612,618,620,626,628,634],{"type":40,"tag":61,"props":607,"children":608},{},[609],{"type":45,"value":65},{"type":45,"value":611},": Use ",{"type":40,"tag":91,"props":613,"children":615},{"className":614},[],[616],{"type":45,"value":617},"-o json",{"type":45,"value":619}," to force structured output for programmatic parsing, or ",{"type":40,"tag":91,"props":621,"children":623},{"className":622},[],[624],{"type":45,"value":625},"-o human",{"type":45,"value":627}," for readable tables. The default is ",{"type":40,"tag":91,"props":629,"children":631},{"className":630},[],[632],{"type":45,"value":633},"auto",{"type":45,"value":635}," (human in a TTY, JSON when piped).",{"type":40,"tag":76,"props":637,"children":639},{"id":638},"safe-admin-defaults",[640],{"type":45,"value":641},"Safe Admin Defaults",{"type":40,"tag":643,"props":644,"children":645},"ul",{},[646,652,657],{"type":40,"tag":647,"props":648,"children":649},"li",{},[650],{"type":45,"value":651},"For create operations, first try the requested create. If the API returns a conflict because the resource already exists, look it up and verify it exactly matches the requested state before reporting success.",{"type":40,"tag":647,"props":653,"children":654},{},[655],{"type":45,"value":656},"Prefer read-after-write checks that inspect the specific created or changed resource, not just a successful status response.",{"type":40,"tag":647,"props":658,"children":659},{},[660,662,668,670,676,677,683,684,690],{"type":45,"value":661},"Use the role names returned by Omni permission APIs (",{"type":40,"tag":91,"props":663,"children":665},{"className":664},[],[666],{"type":45,"value":667},"VIEWER",{"type":45,"value":669},", ",{"type":40,"tag":91,"props":671,"children":673},{"className":672},[],[674],{"type":45,"value":675},"EXPLORER",{"type":45,"value":669},{"type":40,"tag":91,"props":678,"children":680},{"className":679},[],[681],{"type":45,"value":682},"EDITOR",{"type":45,"value":669},{"type":40,"tag":91,"props":685,"children":687},{"className":686},[],[688],{"type":45,"value":689},"MANAGER",{"type":45,"value":691},") when updating content access.",{"type":40,"tag":76,"props":693,"children":695},{"id":694},"connections",[696],{"type":45,"value":697},"Connections",{"type":40,"tag":83,"props":699,"children":701},{"className":85,"code":700,"language":87,"meta":88,"style":88},"# List connections\nomni connections list\n\n# Schema refresh schedules\nomni connections schedules-list \u003CconnectionId>\n\n# Connection environments\nomni connections connection-environments-list\n",[702],{"type":40,"tag":91,"props":703,"children":704},{"__ignoreMap":88},[705,713,729,736,744,777,784,792],{"type":40,"tag":95,"props":706,"children":707},{"class":97,"line":98},[708],{"type":40,"tag":95,"props":709,"children":710},{"style":102},[711],{"type":45,"value":712},"# List connections\n",{"type":40,"tag":95,"props":714,"children":715},{"class":97,"line":108},[716,720,724],{"type":40,"tag":95,"props":717,"children":718},{"style":191},[719],{"type":45,"value":15},{"type":40,"tag":95,"props":721,"children":722},{"style":126},[723],{"type":45,"value":522},{"type":40,"tag":95,"props":725,"children":726},{"style":126},[727],{"type":45,"value":728}," list\n",{"type":40,"tag":95,"props":730,"children":731},{"class":97,"line":27},[732],{"type":40,"tag":95,"props":733,"children":734},{"emptyLinePlaceholder":256},[735],{"type":45,"value":259},{"type":40,"tag":95,"props":737,"children":738},{"class":97,"line":214},[739],{"type":40,"tag":95,"props":740,"children":741},{"style":102},[742],{"type":45,"value":743},"# Schema refresh schedules\n",{"type":40,"tag":95,"props":745,"children":746},{"class":97,"line":252},[747,751,755,760,764,769,773],{"type":40,"tag":95,"props":748,"children":749},{"style":191},[750],{"type":45,"value":15},{"type":40,"tag":95,"props":752,"children":753},{"style":126},[754],{"type":45,"value":522},{"type":40,"tag":95,"props":756,"children":757},{"style":126},[758],{"type":45,"value":759}," schedules-list",{"type":40,"tag":95,"props":761,"children":762},{"style":137},[763],{"type":45,"value":233},{"type":40,"tag":95,"props":765,"children":766},{"style":126},[767],{"type":45,"value":768},"connectionI",{"type":40,"tag":95,"props":770,"children":771},{"style":241},[772],{"type":45,"value":412},{"type":40,"tag":95,"props":774,"children":775},{"style":137},[776],{"type":45,"value":249},{"type":40,"tag":95,"props":778,"children":779},{"class":97,"line":262},[780],{"type":40,"tag":95,"props":781,"children":782},{"emptyLinePlaceholder":256},[783],{"type":45,"value":259},{"type":40,"tag":95,"props":785,"children":786},{"class":97,"line":271},[787],{"type":40,"tag":95,"props":788,"children":789},{"style":102},[790],{"type":45,"value":791},"# Connection environments\n",{"type":40,"tag":95,"props":793,"children":795},{"class":97,"line":794},8,[796,800,804],{"type":40,"tag":95,"props":797,"children":798},{"style":191},[799],{"type":45,"value":15},{"type":40,"tag":95,"props":801,"children":802},{"style":126},[803],{"type":45,"value":522},{"type":40,"tag":95,"props":805,"children":806},{"style":126},[807],{"type":45,"value":808}," connection-environments-list\n",{"type":40,"tag":76,"props":810,"children":812},{"id":811},"user-management-scim-20",[813],{"type":45,"value":814},"User Management (SCIM 2.0)",{"type":40,"tag":54,"props":816,"children":817},{},[818],{"type":40,"tag":48,"props":819,"children":820},{},[821,823,829,831,836,838,844],{"type":45,"value":822},"The ",{"type":40,"tag":91,"props":824,"children":826},{"className":825},[],[827],{"type":45,"value":828},"--body",{"type":45,"value":830}," blocks below are worked examples. For the authoritative field list (types, required, enums), run the command with ",{"type":40,"tag":91,"props":832,"children":834},{"className":833},[],[835],{"type":45,"value":377},{"type":45,"value":837}," — e.g. ",{"type":40,"tag":91,"props":839,"children":841},{"className":840},[],[842],{"type":45,"value":843},"omni scim users-create --schema",{"type":45,"value":845}," — rather than relying on these shapes to be exhaustive.",{"type":40,"tag":83,"props":847,"children":849},{"className":85,"code":848,"language":87,"meta":88,"style":88},"# List users\nomni scim users-list\n\n# Find by email\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n\n# Create user\nomni scim users-create --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"userName\": \"newuser@company.com\",\n  \"displayName\": \"New User\",\n  \"active\": true,\n  \"emails\": [{ \"primary\": true, \"value\": \"newuser@company.com\" }]\n}'\n\n# Deactivate user\nomni scim users-update \u003CuserId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"Operations\": [{ \"op\": \"replace\", \"path\": \"active\", \"value\": false }]\n}'\n\n# Delete user\nomni scim users-delete \u003CuserId>\n",[850],{"type":40,"tag":91,"props":851,"children":852},{"__ignoreMap":88},[853,861,877,884,892,928,935,943,972,981,990,999,1008,1017,1030,1038,1047,1093,1101,1110,1122,1130,1139],{"type":40,"tag":95,"props":854,"children":855},{"class":97,"line":98},[856],{"type":40,"tag":95,"props":857,"children":858},{"style":102},[859],{"type":45,"value":860},"# List users\n",{"type":40,"tag":95,"props":862,"children":863},{"class":97,"line":108},[864,868,872],{"type":40,"tag":95,"props":865,"children":866},{"style":191},[867],{"type":45,"value":15},{"type":40,"tag":95,"props":869,"children":870},{"style":126},[871],{"type":45,"value":479},{"type":40,"tag":95,"props":873,"children":874},{"style":126},[875],{"type":45,"value":876}," users-list\n",{"type":40,"tag":95,"props":878,"children":879},{"class":97,"line":27},[880],{"type":40,"tag":95,"props":881,"children":882},{"emptyLinePlaceholder":256},[883],{"type":45,"value":259},{"type":40,"tag":95,"props":885,"children":886},{"class":97,"line":214},[887],{"type":40,"tag":95,"props":888,"children":889},{"style":102},[890],{"type":45,"value":891},"# Find by email\n",{"type":40,"tag":95,"props":893,"children":894},{"class":97,"line":252},[895,899,903,908,913,918,923],{"type":40,"tag":95,"props":896,"children":897},{"style":191},[898],{"type":45,"value":15},{"type":40,"tag":95,"props":900,"children":901},{"style":126},[902],{"type":45,"value":479},{"type":40,"tag":95,"props":904,"children":905},{"style":126},[906],{"type":45,"value":907}," users-list",{"type":40,"tag":95,"props":909,"children":910},{"style":126},[911],{"type":45,"value":912}," --filter",{"type":40,"tag":95,"props":914,"children":915},{"style":137},[916],{"type":45,"value":917}," '",{"type":40,"tag":95,"props":919,"children":920},{"style":126},[921],{"type":45,"value":922},"userName eq \"user@company.com\"",{"type":40,"tag":95,"props":924,"children":925},{"style":137},[926],{"type":45,"value":927},"'\n",{"type":40,"tag":95,"props":929,"children":930},{"class":97,"line":262},[931],{"type":40,"tag":95,"props":932,"children":933},{"emptyLinePlaceholder":256},[934],{"type":45,"value":259},{"type":40,"tag":95,"props":936,"children":937},{"class":97,"line":271},[938],{"type":40,"tag":95,"props":939,"children":940},{"style":102},[941],{"type":45,"value":942},"# Create user\n",{"type":40,"tag":95,"props":944,"children":945},{"class":97,"line":794},[946,950,954,958,963,967],{"type":40,"tag":95,"props":947,"children":948},{"style":191},[949],{"type":45,"value":15},{"type":40,"tag":95,"props":951,"children":952},{"style":126},[953],{"type":45,"value":479},{"type":40,"tag":95,"props":955,"children":956},{"style":126},[957],{"type":45,"value":589},{"type":40,"tag":95,"props":959,"children":960},{"style":126},[961],{"type":45,"value":962}," --body",{"type":40,"tag":95,"props":964,"children":965},{"style":137},[966],{"type":45,"value":917},{"type":40,"tag":95,"props":968,"children":969},{"style":126},[970],{"type":45,"value":971},"{\n",{"type":40,"tag":95,"props":973,"children":975},{"class":97,"line":974},9,[976],{"type":40,"tag":95,"props":977,"children":978},{"style":126},[979],{"type":45,"value":980},"  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n",{"type":40,"tag":95,"props":982,"children":984},{"class":97,"line":983},10,[985],{"type":40,"tag":95,"props":986,"children":987},{"style":126},[988],{"type":45,"value":989},"  \"userName\": \"newuser@company.com\",\n",{"type":40,"tag":95,"props":991,"children":993},{"class":97,"line":992},11,[994],{"type":40,"tag":95,"props":995,"children":996},{"style":126},[997],{"type":45,"value":998},"  \"displayName\": \"New User\",\n",{"type":40,"tag":95,"props":1000,"children":1002},{"class":97,"line":1001},12,[1003],{"type":40,"tag":95,"props":1004,"children":1005},{"style":126},[1006],{"type":45,"value":1007},"  \"active\": true,\n",{"type":40,"tag":95,"props":1009,"children":1011},{"class":97,"line":1010},13,[1012],{"type":40,"tag":95,"props":1013,"children":1014},{"style":126},[1015],{"type":45,"value":1016},"  \"emails\": [{ \"primary\": true, \"value\": \"newuser@company.com\" }]\n",{"type":40,"tag":95,"props":1018,"children":1020},{"class":97,"line":1019},14,[1021,1026],{"type":40,"tag":95,"props":1022,"children":1023},{"style":126},[1024],{"type":45,"value":1025},"}",{"type":40,"tag":95,"props":1027,"children":1028},{"style":137},[1029],{"type":45,"value":927},{"type":40,"tag":95,"props":1031,"children":1033},{"class":97,"line":1032},15,[1034],{"type":40,"tag":95,"props":1035,"children":1036},{"emptyLinePlaceholder":256},[1037],{"type":45,"value":259},{"type":40,"tag":95,"props":1039,"children":1041},{"class":97,"line":1040},16,[1042],{"type":40,"tag":95,"props":1043,"children":1044},{"style":102},[1045],{"type":45,"value":1046},"# Deactivate user\n",{"type":40,"tag":95,"props":1048,"children":1050},{"class":97,"line":1049},17,[1051,1055,1059,1064,1068,1073,1077,1081,1085,1089],{"type":40,"tag":95,"props":1052,"children":1053},{"style":191},[1054],{"type":45,"value":15},{"type":40,"tag":95,"props":1056,"children":1057},{"style":126},[1058],{"type":45,"value":479},{"type":40,"tag":95,"props":1060,"children":1061},{"style":126},[1062],{"type":45,"value":1063}," users-update",{"type":40,"tag":95,"props":1065,"children":1066},{"style":137},[1067],{"type":45,"value":233},{"type":40,"tag":95,"props":1069,"children":1070},{"style":126},[1071],{"type":45,"value":1072},"userI",{"type":40,"tag":95,"props":1074,"children":1075},{"style":241},[1076],{"type":45,"value":412},{"type":40,"tag":95,"props":1078,"children":1079},{"style":137},[1080],{"type":45,"value":417},{"type":40,"tag":95,"props":1082,"children":1083},{"style":126},[1084],{"type":45,"value":962},{"type":40,"tag":95,"props":1086,"children":1087},{"style":137},[1088],{"type":45,"value":917},{"type":40,"tag":95,"props":1090,"children":1091},{"style":126},[1092],{"type":45,"value":971},{"type":40,"tag":95,"props":1094,"children":1096},{"class":97,"line":1095},18,[1097],{"type":40,"tag":95,"props":1098,"children":1099},{"style":126},[1100],{"type":45,"value":980},{"type":40,"tag":95,"props":1102,"children":1104},{"class":97,"line":1103},19,[1105],{"type":40,"tag":95,"props":1106,"children":1107},{"style":126},[1108],{"type":45,"value":1109},"  \"Operations\": [{ \"op\": \"replace\", \"path\": \"active\", \"value\": false }]\n",{"type":40,"tag":95,"props":1111,"children":1113},{"class":97,"line":1112},20,[1114,1118],{"type":40,"tag":95,"props":1115,"children":1116},{"style":126},[1117],{"type":45,"value":1025},{"type":40,"tag":95,"props":1119,"children":1120},{"style":137},[1121],{"type":45,"value":927},{"type":40,"tag":95,"props":1123,"children":1125},{"class":97,"line":1124},21,[1126],{"type":40,"tag":95,"props":1127,"children":1128},{"emptyLinePlaceholder":256},[1129],{"type":45,"value":259},{"type":40,"tag":95,"props":1131,"children":1133},{"class":97,"line":1132},22,[1134],{"type":40,"tag":95,"props":1135,"children":1136},{"style":102},[1137],{"type":45,"value":1138},"# Delete user\n",{"type":40,"tag":95,"props":1140,"children":1142},{"class":97,"line":1141},23,[1143,1147,1151,1156,1160,1164,1168],{"type":40,"tag":95,"props":1144,"children":1145},{"style":191},[1146],{"type":45,"value":15},{"type":40,"tag":95,"props":1148,"children":1149},{"style":126},[1150],{"type":45,"value":479},{"type":40,"tag":95,"props":1152,"children":1153},{"style":126},[1154],{"type":45,"value":1155}," users-delete",{"type":40,"tag":95,"props":1157,"children":1158},{"style":137},[1159],{"type":45,"value":233},{"type":40,"tag":95,"props":1161,"children":1162},{"style":126},[1163],{"type":45,"value":1072},{"type":40,"tag":95,"props":1165,"children":1166},{"style":241},[1167],{"type":45,"value":412},{"type":40,"tag":95,"props":1169,"children":1170},{"style":137},[1171],{"type":45,"value":249},{"type":40,"tag":76,"props":1173,"children":1175},{"id":1174},"group-management-scim-20",[1176],{"type":45,"value":1177},"Group Management (SCIM 2.0)",{"type":40,"tag":83,"props":1179,"children":1181},{"className":85,"code":1180,"language":87,"meta":88,"style":88},"# List groups\nomni scim groups-list\n\n# Create group\nomni scim groups-create --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n  \"displayName\": \"Analytics Team\",\n  \"members\": [{ \"value\": \"user-uuid-1\" }]\n}'\n\n# Add members\nomni scim groups-update \u003CgroupId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n  \"Operations\": [{ \"op\": \"add\", \"path\": \"members\", \"value\": [{ \"value\": \"new-user-uuid\" }] }]\n}'\n",[1182],{"type":40,"tag":91,"props":1183,"children":1184},{"__ignoreMap":88},[1185,1193,1209,1216,1224,1252,1260,1268,1276,1287,1294,1302,1347,1354,1362],{"type":40,"tag":95,"props":1186,"children":1187},{"class":97,"line":98},[1188],{"type":40,"tag":95,"props":1189,"children":1190},{"style":102},[1191],{"type":45,"value":1192},"# List groups\n",{"type":40,"tag":95,"props":1194,"children":1195},{"class":97,"line":108},[1196,1200,1204],{"type":40,"tag":95,"props":1197,"children":1198},{"style":191},[1199],{"type":45,"value":15},{"type":40,"tag":95,"props":1201,"children":1202},{"style":126},[1203],{"type":45,"value":479},{"type":40,"tag":95,"props":1205,"children":1206},{"style":126},[1207],{"type":45,"value":1208}," groups-list\n",{"type":40,"tag":95,"props":1210,"children":1211},{"class":97,"line":27},[1212],{"type":40,"tag":95,"props":1213,"children":1214},{"emptyLinePlaceholder":256},[1215],{"type":45,"value":259},{"type":40,"tag":95,"props":1217,"children":1218},{"class":97,"line":214},[1219],{"type":40,"tag":95,"props":1220,"children":1221},{"style":102},[1222],{"type":45,"value":1223},"# Create group\n",{"type":40,"tag":95,"props":1225,"children":1226},{"class":97,"line":252},[1227,1231,1235,1240,1244,1248],{"type":40,"tag":95,"props":1228,"children":1229},{"style":191},[1230],{"type":45,"value":15},{"type":40,"tag":95,"props":1232,"children":1233},{"style":126},[1234],{"type":45,"value":479},{"type":40,"tag":95,"props":1236,"children":1237},{"style":126},[1238],{"type":45,"value":1239}," groups-create",{"type":40,"tag":95,"props":1241,"children":1242},{"style":126},[1243],{"type":45,"value":962},{"type":40,"tag":95,"props":1245,"children":1246},{"style":137},[1247],{"type":45,"value":917},{"type":40,"tag":95,"props":1249,"children":1250},{"style":126},[1251],{"type":45,"value":971},{"type":40,"tag":95,"props":1253,"children":1254},{"class":97,"line":262},[1255],{"type":40,"tag":95,"props":1256,"children":1257},{"style":126},[1258],{"type":45,"value":1259},"  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n",{"type":40,"tag":95,"props":1261,"children":1262},{"class":97,"line":271},[1263],{"type":40,"tag":95,"props":1264,"children":1265},{"style":126},[1266],{"type":45,"value":1267},"  \"displayName\": \"Analytics Team\",\n",{"type":40,"tag":95,"props":1269,"children":1270},{"class":97,"line":794},[1271],{"type":40,"tag":95,"props":1272,"children":1273},{"style":126},[1274],{"type":45,"value":1275},"  \"members\": [{ \"value\": \"user-uuid-1\" }]\n",{"type":40,"tag":95,"props":1277,"children":1278},{"class":97,"line":974},[1279,1283],{"type":40,"tag":95,"props":1280,"children":1281},{"style":126},[1282],{"type":45,"value":1025},{"type":40,"tag":95,"props":1284,"children":1285},{"style":137},[1286],{"type":45,"value":927},{"type":40,"tag":95,"props":1288,"children":1289},{"class":97,"line":983},[1290],{"type":40,"tag":95,"props":1291,"children":1292},{"emptyLinePlaceholder":256},[1293],{"type":45,"value":259},{"type":40,"tag":95,"props":1295,"children":1296},{"class":97,"line":992},[1297],{"type":40,"tag":95,"props":1298,"children":1299},{"style":102},[1300],{"type":45,"value":1301},"# Add members\n",{"type":40,"tag":95,"props":1303,"children":1304},{"class":97,"line":1001},[1305,1309,1313,1318,1322,1327,1331,1335,1339,1343],{"type":40,"tag":95,"props":1306,"children":1307},{"style":191},[1308],{"type":45,"value":15},{"type":40,"tag":95,"props":1310,"children":1311},{"style":126},[1312],{"type":45,"value":479},{"type":40,"tag":95,"props":1314,"children":1315},{"style":126},[1316],{"type":45,"value":1317}," groups-update",{"type":40,"tag":95,"props":1319,"children":1320},{"style":137},[1321],{"type":45,"value":233},{"type":40,"tag":95,"props":1323,"children":1324},{"style":126},[1325],{"type":45,"value":1326},"groupI",{"type":40,"tag":95,"props":1328,"children":1329},{"style":241},[1330],{"type":45,"value":412},{"type":40,"tag":95,"props":1332,"children":1333},{"style":137},[1334],{"type":45,"value":417},{"type":40,"tag":95,"props":1336,"children":1337},{"style":126},[1338],{"type":45,"value":962},{"type":40,"tag":95,"props":1340,"children":1341},{"style":137},[1342],{"type":45,"value":917},{"type":40,"tag":95,"props":1344,"children":1345},{"style":126},[1346],{"type":45,"value":971},{"type":40,"tag":95,"props":1348,"children":1349},{"class":97,"line":1010},[1350],{"type":40,"tag":95,"props":1351,"children":1352},{"style":126},[1353],{"type":45,"value":1259},{"type":40,"tag":95,"props":1355,"children":1356},{"class":97,"line":1019},[1357],{"type":40,"tag":95,"props":1358,"children":1359},{"style":126},[1360],{"type":45,"value":1361},"  \"Operations\": [{ \"op\": \"add\", \"path\": \"members\", \"value\": [{ \"value\": \"new-user-uuid\" }] }]\n",{"type":40,"tag":95,"props":1363,"children":1364},{"class":97,"line":1032},[1365,1369],{"type":40,"tag":95,"props":1366,"children":1367},{"style":126},[1368],{"type":45,"value":1025},{"type":40,"tag":95,"props":1370,"children":1371},{"style":137},[1372],{"type":45,"value":927},{"type":40,"tag":76,"props":1374,"children":1376},{"id":1375},"user-attributes",[1377],{"type":45,"value":1378},"User Attributes",{"type":40,"tag":83,"props":1380,"children":1382},{"className":85,"code":1381,"language":87,"meta":88,"style":88},"# List attributes\nomni user-attributes list\n\n# Find the user by email before setting an attribute\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n\n# Set attribute on user (via SCIM)\nomni scim users-update \u003CuserId> --body '{\n  \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n  \"Operations\": [{\n    \"op\": \"replace\",\n    \"path\": \"urn:omni:params:1.0:UserAttribute:region\",\n    \"value\": \"West Coast\"\n  }]\n}'\n",[1383],{"type":40,"tag":91,"props":1384,"children":1385},{"__ignoreMap":88},[1386,1394,1410,1417,1425,1456,1463,1471,1514,1521,1529,1537,1545,1553,1561],{"type":40,"tag":95,"props":1387,"children":1388},{"class":97,"line":98},[1389],{"type":40,"tag":95,"props":1390,"children":1391},{"style":102},[1392],{"type":45,"value":1393},"# List attributes\n",{"type":40,"tag":95,"props":1395,"children":1396},{"class":97,"line":108},[1397,1401,1406],{"type":40,"tag":95,"props":1398,"children":1399},{"style":191},[1400],{"type":45,"value":15},{"type":40,"tag":95,"props":1402,"children":1403},{"style":126},[1404],{"type":45,"value":1405}," user-attributes",{"type":40,"tag":95,"props":1407,"children":1408},{"style":126},[1409],{"type":45,"value":728},{"type":40,"tag":95,"props":1411,"children":1412},{"class":97,"line":27},[1413],{"type":40,"tag":95,"props":1414,"children":1415},{"emptyLinePlaceholder":256},[1416],{"type":45,"value":259},{"type":40,"tag":95,"props":1418,"children":1419},{"class":97,"line":214},[1420],{"type":40,"tag":95,"props":1421,"children":1422},{"style":102},[1423],{"type":45,"value":1424},"# Find the user by email before setting an attribute\n",{"type":40,"tag":95,"props":1426,"children":1427},{"class":97,"line":252},[1428,1432,1436,1440,1444,1448,1452],{"type":40,"tag":95,"props":1429,"children":1430},{"style":191},[1431],{"type":45,"value":15},{"type":40,"tag":95,"props":1433,"children":1434},{"style":126},[1435],{"type":45,"value":479},{"type":40,"tag":95,"props":1437,"children":1438},{"style":126},[1439],{"type":45,"value":907},{"type":40,"tag":95,"props":1441,"children":1442},{"style":126},[1443],{"type":45,"value":912},{"type":40,"tag":95,"props":1445,"children":1446},{"style":137},[1447],{"type":45,"value":917},{"type":40,"tag":95,"props":1449,"children":1450},{"style":126},[1451],{"type":45,"value":922},{"type":40,"tag":95,"props":1453,"children":1454},{"style":137},[1455],{"type":45,"value":927},{"type":40,"tag":95,"props":1457,"children":1458},{"class":97,"line":262},[1459],{"type":40,"tag":95,"props":1460,"children":1461},{"emptyLinePlaceholder":256},[1462],{"type":45,"value":259},{"type":40,"tag":95,"props":1464,"children":1465},{"class":97,"line":271},[1466],{"type":40,"tag":95,"props":1467,"children":1468},{"style":102},[1469],{"type":45,"value":1470},"# Set attribute on user (via SCIM)\n",{"type":40,"tag":95,"props":1472,"children":1473},{"class":97,"line":794},[1474,1478,1482,1486,1490,1494,1498,1502,1506,1510],{"type":40,"tag":95,"props":1475,"children":1476},{"style":191},[1477],{"type":45,"value":15},{"type":40,"tag":95,"props":1479,"children":1480},{"style":126},[1481],{"type":45,"value":479},{"type":40,"tag":95,"props":1483,"children":1484},{"style":126},[1485],{"type":45,"value":1063},{"type":40,"tag":95,"props":1487,"children":1488},{"style":137},[1489],{"type":45,"value":233},{"type":40,"tag":95,"props":1491,"children":1492},{"style":126},[1493],{"type":45,"value":1072},{"type":40,"tag":95,"props":1495,"children":1496},{"style":241},[1497],{"type":45,"value":412},{"type":40,"tag":95,"props":1499,"children":1500},{"style":137},[1501],{"type":45,"value":417},{"type":40,"tag":95,"props":1503,"children":1504},{"style":126},[1505],{"type":45,"value":962},{"type":40,"tag":95,"props":1507,"children":1508},{"style":137},[1509],{"type":45,"value":917},{"type":40,"tag":95,"props":1511,"children":1512},{"style":126},[1513],{"type":45,"value":971},{"type":40,"tag":95,"props":1515,"children":1516},{"class":97,"line":974},[1517],{"type":40,"tag":95,"props":1518,"children":1519},{"style":126},[1520],{"type":45,"value":980},{"type":40,"tag":95,"props":1522,"children":1523},{"class":97,"line":983},[1524],{"type":40,"tag":95,"props":1525,"children":1526},{"style":126},[1527],{"type":45,"value":1528},"  \"Operations\": [{\n",{"type":40,"tag":95,"props":1530,"children":1531},{"class":97,"line":992},[1532],{"type":40,"tag":95,"props":1533,"children":1534},{"style":126},[1535],{"type":45,"value":1536},"    \"op\": \"replace\",\n",{"type":40,"tag":95,"props":1538,"children":1539},{"class":97,"line":1001},[1540],{"type":40,"tag":95,"props":1541,"children":1542},{"style":126},[1543],{"type":45,"value":1544},"    \"path\": \"urn:omni:params:1.0:UserAttribute:region\",\n",{"type":40,"tag":95,"props":1546,"children":1547},{"class":97,"line":1010},[1548],{"type":40,"tag":95,"props":1549,"children":1550},{"style":126},[1551],{"type":45,"value":1552},"    \"value\": \"West Coast\"\n",{"type":40,"tag":95,"props":1554,"children":1555},{"class":97,"line":1019},[1556],{"type":40,"tag":95,"props":1557,"children":1558},{"style":126},[1559],{"type":45,"value":1560},"  }]\n",{"type":40,"tag":95,"props":1562,"children":1563},{"class":97,"line":1032},[1564,1568],{"type":40,"tag":95,"props":1565,"children":1566},{"style":126},[1567],{"type":45,"value":1025},{"type":40,"tag":95,"props":1569,"children":1570},{"style":137},[1571],{"type":45,"value":927},{"type":40,"tag":48,"props":1573,"children":1574},{},[1575,1577,1583,1585,1591,1593,1599],{"type":45,"value":1576},"User attributes work with ",{"type":40,"tag":91,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":45,"value":1582},"access_filters",{"type":45,"value":1584}," in topics for row-level security.\nSCIM can set values only for attribute definitions that already exist. Use\n",{"type":40,"tag":91,"props":1586,"children":1588},{"className":1587},[],[1589],{"type":45,"value":1590},"omni user-attributes list",{"type":45,"value":1592}," to confirm the requested attribute definition exists\nbefore setting a value, but do not use it as proof that a specific user's value\nchanged. If the definition is missing, report that it must be created in\nAdmin -> User Attributes before values can be assigned; do not keep retrying\nSCIM paths or claim the value was set from an empty ",{"type":40,"tag":91,"props":1594,"children":1596},{"className":1595},[],[1597],{"type":45,"value":1598},"User attributes set: {}",{"type":45,"value":1600},"\nresponse.",{"type":40,"tag":48,"props":1602,"children":1603},{},[1604,1606,1612],{"type":45,"value":1605},"When the user explicitly asks to set or update a user attribute, converge the\nuser record with a SCIM update even if the initial user lookup already shows the\nrequested value. This keeps the operation idempotent while still honoring the\nrequested admin action. After the update, read back the same user and verify the\nvalue under ",{"type":40,"tag":91,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":45,"value":1611},"urn:omni:params:1.0:UserAttribute",{"type":45,"value":379},{"type":40,"tag":76,"props":1614,"children":1616},{"id":1615},"model-roles",[1617],{"type":45,"value":1618},"Model Roles",{"type":40,"tag":83,"props":1620,"children":1622},{"className":85,"code":1621,"language":87,"meta":88,"style":88},"# Get\u002Fset model roles for a user\nomni users get-model-roles \u003CuserId>\n\nomni users assign-model-role \u003CuserId> --body '{ \"modelId\": \"{modelId}\", \"role\": \"VIEWER\" }'\n\n# Get\u002Fset model roles for a group\nomni users user-groups-get-model-roles \u003CgroupId>\n\nomni users user-groups-assign-model-role \u003CgroupId> --body '{ \"modelId\": \"{modelId}\", \"role\": \"VIEWER\" }'\n",[1623],{"type":40,"tag":91,"props":1624,"children":1625},{"__ignoreMap":88},[1626,1634,1667,1674,1723,1730,1738,1770,1777],{"type":40,"tag":95,"props":1627,"children":1628},{"class":97,"line":98},[1629],{"type":40,"tag":95,"props":1630,"children":1631},{"style":102},[1632],{"type":45,"value":1633},"# Get\u002Fset model roles for a user\n",{"type":40,"tag":95,"props":1635,"children":1636},{"class":97,"line":108},[1637,1641,1646,1651,1655,1659,1663],{"type":40,"tag":95,"props":1638,"children":1639},{"style":191},[1640],{"type":45,"value":15},{"type":40,"tag":95,"props":1642,"children":1643},{"style":126},[1644],{"type":45,"value":1645}," users",{"type":40,"tag":95,"props":1647,"children":1648},{"style":126},[1649],{"type":45,"value":1650}," get-model-roles",{"type":40,"tag":95,"props":1652,"children":1653},{"style":137},[1654],{"type":45,"value":233},{"type":40,"tag":95,"props":1656,"children":1657},{"style":126},[1658],{"type":45,"value":1072},{"type":40,"tag":95,"props":1660,"children":1661},{"style":241},[1662],{"type":45,"value":412},{"type":40,"tag":95,"props":1664,"children":1665},{"style":137},[1666],{"type":45,"value":249},{"type":40,"tag":95,"props":1668,"children":1669},{"class":97,"line":27},[1670],{"type":40,"tag":95,"props":1671,"children":1672},{"emptyLinePlaceholder":256},[1673],{"type":45,"value":259},{"type":40,"tag":95,"props":1675,"children":1676},{"class":97,"line":214},[1677,1681,1685,1690,1694,1698,1702,1706,1710,1714,1719],{"type":40,"tag":95,"props":1678,"children":1679},{"style":191},[1680],{"type":45,"value":15},{"type":40,"tag":95,"props":1682,"children":1683},{"style":126},[1684],{"type":45,"value":1645},{"type":40,"tag":95,"props":1686,"children":1687},{"style":126},[1688],{"type":45,"value":1689}," assign-model-role",{"type":40,"tag":95,"props":1691,"children":1692},{"style":137},[1693],{"type":45,"value":233},{"type":40,"tag":95,"props":1695,"children":1696},{"style":126},[1697],{"type":45,"value":1072},{"type":40,"tag":95,"props":1699,"children":1700},{"style":241},[1701],{"type":45,"value":412},{"type":40,"tag":95,"props":1703,"children":1704},{"style":137},[1705],{"type":45,"value":417},{"type":40,"tag":95,"props":1707,"children":1708},{"style":126},[1709],{"type":45,"value":962},{"type":40,"tag":95,"props":1711,"children":1712},{"style":137},[1713],{"type":45,"value":917},{"type":40,"tag":95,"props":1715,"children":1716},{"style":126},[1717],{"type":45,"value":1718},"{ \"modelId\": \"{modelId}\", \"role\": \"VIEWER\" }",{"type":40,"tag":95,"props":1720,"children":1721},{"style":137},[1722],{"type":45,"value":927},{"type":40,"tag":95,"props":1724,"children":1725},{"class":97,"line":252},[1726],{"type":40,"tag":95,"props":1727,"children":1728},{"emptyLinePlaceholder":256},[1729],{"type":45,"value":259},{"type":40,"tag":95,"props":1731,"children":1732},{"class":97,"line":262},[1733],{"type":40,"tag":95,"props":1734,"children":1735},{"style":102},[1736],{"type":45,"value":1737},"# Get\u002Fset model roles for a group\n",{"type":40,"tag":95,"props":1739,"children":1740},{"class":97,"line":271},[1741,1745,1749,1754,1758,1762,1766],{"type":40,"tag":95,"props":1742,"children":1743},{"style":191},[1744],{"type":45,"value":15},{"type":40,"tag":95,"props":1746,"children":1747},{"style":126},[1748],{"type":45,"value":1645},{"type":40,"tag":95,"props":1750,"children":1751},{"style":126},[1752],{"type":45,"value":1753}," user-groups-get-model-roles",{"type":40,"tag":95,"props":1755,"children":1756},{"style":137},[1757],{"type":45,"value":233},{"type":40,"tag":95,"props":1759,"children":1760},{"style":126},[1761],{"type":45,"value":1326},{"type":40,"tag":95,"props":1763,"children":1764},{"style":241},[1765],{"type":45,"value":412},{"type":40,"tag":95,"props":1767,"children":1768},{"style":137},[1769],{"type":45,"value":249},{"type":40,"tag":95,"props":1771,"children":1772},{"class":97,"line":794},[1773],{"type":40,"tag":95,"props":1774,"children":1775},{"emptyLinePlaceholder":256},[1776],{"type":45,"value":259},{"type":40,"tag":95,"props":1778,"children":1779},{"class":97,"line":974},[1780,1784,1788,1793,1797,1801,1805,1809,1813,1817,1821],{"type":40,"tag":95,"props":1781,"children":1782},{"style":191},[1783],{"type":45,"value":15},{"type":40,"tag":95,"props":1785,"children":1786},{"style":126},[1787],{"type":45,"value":1645},{"type":40,"tag":95,"props":1789,"children":1790},{"style":126},[1791],{"type":45,"value":1792}," user-groups-assign-model-role",{"type":40,"tag":95,"props":1794,"children":1795},{"style":137},[1796],{"type":45,"value":233},{"type":40,"tag":95,"props":1798,"children":1799},{"style":126},[1800],{"type":45,"value":1326},{"type":40,"tag":95,"props":1802,"children":1803},{"style":241},[1804],{"type":45,"value":412},{"type":40,"tag":95,"props":1806,"children":1807},{"style":137},[1808],{"type":45,"value":417},{"type":40,"tag":95,"props":1810,"children":1811},{"style":126},[1812],{"type":45,"value":962},{"type":40,"tag":95,"props":1814,"children":1815},{"style":137},[1816],{"type":45,"value":917},{"type":40,"tag":95,"props":1818,"children":1819},{"style":126},[1820],{"type":45,"value":1718},{"type":40,"tag":95,"props":1822,"children":1823},{"style":137},[1824],{"type":45,"value":927},{"type":40,"tag":76,"props":1826,"children":1828},{"id":1827},"document-permissions",[1829],{"type":45,"value":1830},"Document Permissions",{"type":40,"tag":83,"props":1832,"children":1834},{"className":85,"code":1833,"language":87,"meta":88,"style":88},"# Check effective permissions for a user (userId required)\nomni documents get-permissions \u003CdocumentId> --userid \u003CuserId>\n\n# List document access principals\nomni documents access-list \u003CdocumentId>\n\n# Add direct access for a group\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userGroupIds\": [\"group-uuid\"],\n  \"role\": \"VIEWER\"\n}'\n\n# Add direct access for a user\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userIds\": [\"user-uuid\"],\n  \"role\": \"EDITOR\"\n}'\n",[1835],{"type":40,"tag":91,"props":1836,"children":1837},{"__ignoreMap":88},[1838,1846,1900,1907,1915,1947,1954,1962,2006,2014,2022,2033,2040,2048,2091,2099,2107],{"type":40,"tag":95,"props":1839,"children":1840},{"class":97,"line":98},[1841],{"type":40,"tag":95,"props":1842,"children":1843},{"style":102},[1844],{"type":45,"value":1845},"# Check effective permissions for a user (userId required)\n",{"type":40,"tag":95,"props":1847,"children":1848},{"class":97,"line":108},[1849,1853,1857,1862,1866,1871,1875,1879,1884,1888,1892,1896],{"type":40,"tag":95,"props":1850,"children":1851},{"style":191},[1852],{"type":45,"value":15},{"type":40,"tag":95,"props":1854,"children":1855},{"style":126},[1856],{"type":45,"value":543},{"type":40,"tag":95,"props":1858,"children":1859},{"style":126},[1860],{"type":45,"value":1861}," get-permissions",{"type":40,"tag":95,"props":1863,"children":1864},{"style":137},[1865],{"type":45,"value":233},{"type":40,"tag":95,"props":1867,"children":1868},{"style":126},[1869],{"type":45,"value":1870},"documentI",{"type":40,"tag":95,"props":1872,"children":1873},{"style":241},[1874],{"type":45,"value":412},{"type":40,"tag":95,"props":1876,"children":1877},{"style":137},[1878],{"type":45,"value":417},{"type":40,"tag":95,"props":1880,"children":1881},{"style":126},[1882],{"type":45,"value":1883}," --userid",{"type":40,"tag":95,"props":1885,"children":1886},{"style":137},[1887],{"type":45,"value":233},{"type":40,"tag":95,"props":1889,"children":1890},{"style":126},[1891],{"type":45,"value":1072},{"type":40,"tag":95,"props":1893,"children":1894},{"style":241},[1895],{"type":45,"value":412},{"type":40,"tag":95,"props":1897,"children":1898},{"style":137},[1899],{"type":45,"value":249},{"type":40,"tag":95,"props":1901,"children":1902},{"class":97,"line":27},[1903],{"type":40,"tag":95,"props":1904,"children":1905},{"emptyLinePlaceholder":256},[1906],{"type":45,"value":259},{"type":40,"tag":95,"props":1908,"children":1909},{"class":97,"line":214},[1910],{"type":40,"tag":95,"props":1911,"children":1912},{"style":102},[1913],{"type":45,"value":1914},"# List document access principals\n",{"type":40,"tag":95,"props":1916,"children":1917},{"class":97,"line":252},[1918,1922,1926,1931,1935,1939,1943],{"type":40,"tag":95,"props":1919,"children":1920},{"style":191},[1921],{"type":45,"value":15},{"type":40,"tag":95,"props":1923,"children":1924},{"style":126},[1925],{"type":45,"value":543},{"type":40,"tag":95,"props":1927,"children":1928},{"style":126},[1929],{"type":45,"value":1930}," access-list",{"type":40,"tag":95,"props":1932,"children":1933},{"style":137},[1934],{"type":45,"value":233},{"type":40,"tag":95,"props":1936,"children":1937},{"style":126},[1938],{"type":45,"value":1870},{"type":40,"tag":95,"props":1940,"children":1941},{"style":241},[1942],{"type":45,"value":412},{"type":40,"tag":95,"props":1944,"children":1945},{"style":137},[1946],{"type":45,"value":249},{"type":40,"tag":95,"props":1948,"children":1949},{"class":97,"line":262},[1950],{"type":40,"tag":95,"props":1951,"children":1952},{"emptyLinePlaceholder":256},[1953],{"type":45,"value":259},{"type":40,"tag":95,"props":1955,"children":1956},{"class":97,"line":271},[1957],{"type":40,"tag":95,"props":1958,"children":1959},{"style":102},[1960],{"type":45,"value":1961},"# Add direct access for a group\n",{"type":40,"tag":95,"props":1963,"children":1964},{"class":97,"line":794},[1965,1969,1973,1978,1982,1986,1990,1994,1998,2002],{"type":40,"tag":95,"props":1966,"children":1967},{"style":191},[1968],{"type":45,"value":15},{"type":40,"tag":95,"props":1970,"children":1971},{"style":126},[1972],{"type":45,"value":543},{"type":40,"tag":95,"props":1974,"children":1975},{"style":126},[1976],{"type":45,"value":1977}," add-permits",{"type":40,"tag":95,"props":1979,"children":1980},{"style":137},[1981],{"type":45,"value":233},{"type":40,"tag":95,"props":1983,"children":1984},{"style":126},[1985],{"type":45,"value":1870},{"type":40,"tag":95,"props":1987,"children":1988},{"style":241},[1989],{"type":45,"value":412},{"type":40,"tag":95,"props":1991,"children":1992},{"style":137},[1993],{"type":45,"value":417},{"type":40,"tag":95,"props":1995,"children":1996},{"style":126},[1997],{"type":45,"value":962},{"type":40,"tag":95,"props":1999,"children":2000},{"style":137},[2001],{"type":45,"value":917},{"type":40,"tag":95,"props":2003,"children":2004},{"style":126},[2005],{"type":45,"value":971},{"type":40,"tag":95,"props":2007,"children":2008},{"class":97,"line":974},[2009],{"type":40,"tag":95,"props":2010,"children":2011},{"style":126},[2012],{"type":45,"value":2013},"  \"userGroupIds\": [\"group-uuid\"],\n",{"type":40,"tag":95,"props":2015,"children":2016},{"class":97,"line":983},[2017],{"type":40,"tag":95,"props":2018,"children":2019},{"style":126},[2020],{"type":45,"value":2021},"  \"role\": \"VIEWER\"\n",{"type":40,"tag":95,"props":2023,"children":2024},{"class":97,"line":992},[2025,2029],{"type":40,"tag":95,"props":2026,"children":2027},{"style":126},[2028],{"type":45,"value":1025},{"type":40,"tag":95,"props":2030,"children":2031},{"style":137},[2032],{"type":45,"value":927},{"type":40,"tag":95,"props":2034,"children":2035},{"class":97,"line":1001},[2036],{"type":40,"tag":95,"props":2037,"children":2038},{"emptyLinePlaceholder":256},[2039],{"type":45,"value":259},{"type":40,"tag":95,"props":2041,"children":2042},{"class":97,"line":1010},[2043],{"type":40,"tag":95,"props":2044,"children":2045},{"style":102},[2046],{"type":45,"value":2047},"# Add direct access for a user\n",{"type":40,"tag":95,"props":2049,"children":2050},{"class":97,"line":1019},[2051,2055,2059,2063,2067,2071,2075,2079,2083,2087],{"type":40,"tag":95,"props":2052,"children":2053},{"style":191},[2054],{"type":45,"value":15},{"type":40,"tag":95,"props":2056,"children":2057},{"style":126},[2058],{"type":45,"value":543},{"type":40,"tag":95,"props":2060,"children":2061},{"style":126},[2062],{"type":45,"value":1977},{"type":40,"tag":95,"props":2064,"children":2065},{"style":137},[2066],{"type":45,"value":233},{"type":40,"tag":95,"props":2068,"children":2069},{"style":126},[2070],{"type":45,"value":1870},{"type":40,"tag":95,"props":2072,"children":2073},{"style":241},[2074],{"type":45,"value":412},{"type":40,"tag":95,"props":2076,"children":2077},{"style":137},[2078],{"type":45,"value":417},{"type":40,"tag":95,"props":2080,"children":2081},{"style":126},[2082],{"type":45,"value":962},{"type":40,"tag":95,"props":2084,"children":2085},{"style":137},[2086],{"type":45,"value":917},{"type":40,"tag":95,"props":2088,"children":2089},{"style":126},[2090],{"type":45,"value":971},{"type":40,"tag":95,"props":2092,"children":2093},{"class":97,"line":1032},[2094],{"type":40,"tag":95,"props":2095,"children":2096},{"style":126},[2097],{"type":45,"value":2098},"  \"userIds\": [\"user-uuid\"],\n",{"type":40,"tag":95,"props":2100,"children":2101},{"class":97,"line":1040},[2102],{"type":40,"tag":95,"props":2103,"children":2104},{"style":126},[2105],{"type":45,"value":2106},"  \"role\": \"EDITOR\"\n",{"type":40,"tag":95,"props":2108,"children":2109},{"class":97,"line":1049},[2110,2114],{"type":40,"tag":95,"props":2111,"children":2112},{"style":126},[2113],{"type":45,"value":1025},{"type":40,"tag":95,"props":2115,"children":2116},{"style":137},[2117],{"type":45,"value":927},{"type":40,"tag":48,"props":2119,"children":2120},{},[2121,2127,2129,2135,2136,2141,2142,2147,2148,2153],{"type":40,"tag":91,"props":2122,"children":2124},{"className":2123},[],[2125],{"type":45,"value":2126},"role",{"type":45,"value":2128}," is one of ",{"type":40,"tag":91,"props":2130,"children":2132},{"className":2131},[],[2133],{"type":45,"value":2134},"NO_ACCESS",{"type":45,"value":669},{"type":40,"tag":91,"props":2137,"children":2139},{"className":2138},[],[2140],{"type":45,"value":667},{"type":45,"value":669},{"type":40,"tag":91,"props":2143,"children":2145},{"className":2144},[],[2146],{"type":45,"value":682},{"type":45,"value":669},{"type":40,"tag":91,"props":2149,"children":2151},{"className":2150},[],[2152],{"type":45,"value":689},{"type":45,"value":379},{"type":40,"tag":2155,"props":2156,"children":2158},"h3",{"id":2157},"access-boost",[2159],{"type":45,"value":2160},"Access Boost",{"type":40,"tag":48,"props":2162,"children":2163},{},[2164,2168,2170,2175,2177,2183,2185,2190,2192,2198],{"type":40,"tag":61,"props":2165,"children":2166},{},[2167],{"type":45,"value":2160},{"type":45,"value":2169}," lets Viewer \u002F Restricted Querier roles view a dashboard built on ",{"type":40,"tag":61,"props":2171,"children":2172},{},[2173],{"type":45,"value":2174},"non-topic content",{"type":45,"value":2176}," — a raw-SQL (",{"type":40,"tag":91,"props":2178,"children":2180},{"className":2179},[],[2181],{"type":45,"value":2182},"userEditedSQL",{"type":45,"value":2184},") tile or a bare base-view query — which those roles otherwise can't see. (Model ",{"type":40,"tag":61,"props":2186,"children":2187},{},[2188],{"type":45,"value":2189},"access grants",{"type":45,"value":2191}," still apply unless the grant sets ",{"type":40,"tag":91,"props":2193,"children":2195},{"className":2194},[],[2196],{"type":45,"value":2197},"access_boostable: true",{"type":45,"value":2199},".)",{"type":40,"tag":48,"props":2201,"children":2202},{},[2203,2208,2210,2215,2217,2222,2224,2229],{"type":40,"tag":61,"props":2204,"children":2205},{},[2206],{"type":45,"value":2207},"Dashboard-only:",{"type":45,"value":2209}," Access Boost lifts the restriction on the ",{"type":40,"tag":61,"props":2211,"children":2212},{},[2213],{"type":45,"value":2214},"dashboard",{"type":45,"value":2216}," view of those tiles. It does ",{"type":40,"tag":61,"props":2218,"children":2219},{},[2220],{"type":45,"value":2221},"not",{"type":45,"value":2223}," extend to the underlying ",{"type":40,"tag":61,"props":2225,"children":2226},{},[2227],{"type":45,"value":2228},"workbook",{"type":45,"value":2230}," — a restricted role still can't open the workbook's non-topic or SQL tabs (or see the query behind the tile) regardless of Access Boost.",{"type":40,"tag":48,"props":2232,"children":2233},{},[2234,2239,2241,2247,2249,2254],{"type":40,"tag":61,"props":2235,"children":2236},{},[2237],{"type":45,"value":2238},"⚠️ Confirm before boosting — it loosens access controls.",{"type":45,"value":2240}," Access Boost deliberately exposes content that restricted roles can't otherwise see, and non-topic \u002F raw-SQL tiles bypass topic-scoped governance (access filters, ",{"type":40,"tag":91,"props":2242,"children":2244},{"className":2243},[],[2245],{"type":45,"value":2246},"always_where",{"type":45,"value":2248},") — so boosting can surface data those controls would normally withhold. ",{"type":40,"tag":61,"props":2250,"children":2251},{},[2252],{"type":45,"value":2253},"Do not apply Access Boost autonomously or as a reflexive fix for \"they can't see it.\"",{"type":45,"value":2255}," First:",{"type":40,"tag":2257,"props":2258,"children":2259},"ol",{},[2260,2270,2287,2313],{"type":40,"tag":647,"props":2261,"children":2262},{},[2263,2268],{"type":40,"tag":61,"props":2264,"children":2265},{},[2266],{"type":45,"value":2267},"Understand what the document exposes",{"type":45,"value":2269}," — what data the boosted tiles show, at what grain, and whether any of it is sensitive.",{"type":40,"tag":647,"props":2271,"children":2272},{},[2273,2278,2280,2285],{"type":40,"tag":61,"props":2274,"children":2275},{},[2276],{"type":45,"value":2277},"Confirm intent with the requester",{"type":45,"value":2279}," — that they really mean to grant ",{"type":40,"tag":346,"props":2281,"children":2282},{},[2283],{"type":45,"value":2284},"these specific",{"type":45,"value":2286}," Viewer \u002F Restricted Querier users or groups visibility into that content. State the implication back to them and get an explicit go-ahead before running the command.",{"type":40,"tag":647,"props":2288,"children":2289},{},[2290,2295,2297,2303,2305,2311],{"type":40,"tag":61,"props":2291,"children":2292},{},[2293],{"type":45,"value":2294},"Prefer the narrowest scope",{"type":45,"value":2296}," — boost specific users\u002Fgroups (",{"type":40,"tag":91,"props":2298,"children":2300},{"className":2299},[],[2301],{"type":45,"value":2302},"add-permits",{"type":45,"value":2304},") over the org-wide ",{"type":40,"tag":91,"props":2306,"children":2308},{"className":2307},[],[2309],{"type":45,"value":2310},"organizationAccessBoost",{"type":45,"value":2312},"; reach for org-wide only when that's explicitly what's wanted.",{"type":40,"tag":647,"props":2314,"children":2315},{},[2316,2321,2323,2328],{"type":40,"tag":61,"props":2317,"children":2318},{},[2319],{"type":45,"value":2320},"Note the governance interaction",{"type":45,"value":2322}," — model access grants still apply unless a grant sets ",{"type":40,"tag":91,"props":2324,"children":2326},{"className":2325},[],[2327],{"type":45,"value":2197},{"type":45,"value":2329},"; don't treat that as a safety net, confirm intent regardless.",{"type":40,"tag":48,"props":2331,"children":2332},{},[2333,2338,2340,2346,2348,2354,2356,2360],{"type":40,"tag":61,"props":2334,"children":2335},{},[2336],{"type":45,"value":2337},"Prerequisite (org capability, not in the CLI):",{"type":45,"value":2339}," the org must have ",{"type":40,"tag":91,"props":2341,"children":2343},{"className":2342},[],[2344],{"type":45,"value":2345},"allowsDocumentAccessBoost",{"type":45,"value":2347}," enabled (and ",{"type":40,"tag":91,"props":2349,"children":2351},{"className":2350},[],[2352],{"type":45,"value":2353},"allowsMemberToProvisionAccessBoost",{"type":45,"value":2355}," for non-admins to grant it). This is an instance\u002Fadmin setting — if it's off, the document-level flags below are silently cleared. It's a gate; it does ",{"type":40,"tag":61,"props":2357,"children":2358},{},[2359],{"type":45,"value":2221},{"type":45,"value":2361}," itself turn Access Boost on anywhere.",{"type":40,"tag":48,"props":2363,"children":2364},{},[2365,2367,2372],{"type":45,"value":2366},"Once you've confirmed intent, there are two activation levers, both ",{"type":40,"tag":61,"props":2368,"children":2369},{},[2370],{"type":45,"value":2371},"scoped to a single document",{"type":45,"value":2373},":",{"type":40,"tag":83,"props":2375,"children":2377},{"className":85,"code":2376,"language":87,"meta":88,"style":88},"# Boost specific users\u002Fgroups on this document (add-permits \u002F update-permits)\nomni documents add-permits \u003CdocumentId> --body '{\n  \"userGroupIds\": [\"group-uuid\"],\n  \"role\": \"VIEWER\",\n  \"accessBoost\": true\n}'\n\n# Boost the \"everyone in the org\" principal on this document\nomni documents update-permission-settings \u003CdocumentId> --body '{\n  \"organizationAccessBoost\": true,\n  \"organizationRole\": \"VIEWER\"\n}'\n",[2378],{"type":40,"tag":91,"props":2379,"children":2380},{"__ignoreMap":88},[2381,2389,2432,2439,2447,2455,2466,2473,2481,2525,2533,2541],{"type":40,"tag":95,"props":2382,"children":2383},{"class":97,"line":98},[2384],{"type":40,"tag":95,"props":2385,"children":2386},{"style":102},[2387],{"type":45,"value":2388},"# Boost specific users\u002Fgroups on this document (add-permits \u002F update-permits)\n",{"type":40,"tag":95,"props":2390,"children":2391},{"class":97,"line":108},[2392,2396,2400,2404,2408,2412,2416,2420,2424,2428],{"type":40,"tag":95,"props":2393,"children":2394},{"style":191},[2395],{"type":45,"value":15},{"type":40,"tag":95,"props":2397,"children":2398},{"style":126},[2399],{"type":45,"value":543},{"type":40,"tag":95,"props":2401,"children":2402},{"style":126},[2403],{"type":45,"value":1977},{"type":40,"tag":95,"props":2405,"children":2406},{"style":137},[2407],{"type":45,"value":233},{"type":40,"tag":95,"props":2409,"children":2410},{"style":126},[2411],{"type":45,"value":1870},{"type":40,"tag":95,"props":2413,"children":2414},{"style":241},[2415],{"type":45,"value":412},{"type":40,"tag":95,"props":2417,"children":2418},{"style":137},[2419],{"type":45,"value":417},{"type":40,"tag":95,"props":2421,"children":2422},{"style":126},[2423],{"type":45,"value":962},{"type":40,"tag":95,"props":2425,"children":2426},{"style":137},[2427],{"type":45,"value":917},{"type":40,"tag":95,"props":2429,"children":2430},{"style":126},[2431],{"type":45,"value":971},{"type":40,"tag":95,"props":2433,"children":2434},{"class":97,"line":27},[2435],{"type":40,"tag":95,"props":2436,"children":2437},{"style":126},[2438],{"type":45,"value":2013},{"type":40,"tag":95,"props":2440,"children":2441},{"class":97,"line":214},[2442],{"type":40,"tag":95,"props":2443,"children":2444},{"style":126},[2445],{"type":45,"value":2446},"  \"role\": \"VIEWER\",\n",{"type":40,"tag":95,"props":2448,"children":2449},{"class":97,"line":252},[2450],{"type":40,"tag":95,"props":2451,"children":2452},{"style":126},[2453],{"type":45,"value":2454},"  \"accessBoost\": true\n",{"type":40,"tag":95,"props":2456,"children":2457},{"class":97,"line":262},[2458,2462],{"type":40,"tag":95,"props":2459,"children":2460},{"style":126},[2461],{"type":45,"value":1025},{"type":40,"tag":95,"props":2463,"children":2464},{"style":137},[2465],{"type":45,"value":927},{"type":40,"tag":95,"props":2467,"children":2468},{"class":97,"line":271},[2469],{"type":40,"tag":95,"props":2470,"children":2471},{"emptyLinePlaceholder":256},[2472],{"type":45,"value":259},{"type":40,"tag":95,"props":2474,"children":2475},{"class":97,"line":794},[2476],{"type":40,"tag":95,"props":2477,"children":2478},{"style":102},[2479],{"type":45,"value":2480},"# Boost the \"everyone in the org\" principal on this document\n",{"type":40,"tag":95,"props":2482,"children":2483},{"class":97,"line":974},[2484,2488,2492,2497,2501,2505,2509,2513,2517,2521],{"type":40,"tag":95,"props":2485,"children":2486},{"style":191},[2487],{"type":45,"value":15},{"type":40,"tag":95,"props":2489,"children":2490},{"style":126},[2491],{"type":45,"value":543},{"type":40,"tag":95,"props":2493,"children":2494},{"style":126},[2495],{"type":45,"value":2496}," update-permission-settings",{"type":40,"tag":95,"props":2498,"children":2499},{"style":137},[2500],{"type":45,"value":233},{"type":40,"tag":95,"props":2502,"children":2503},{"style":126},[2504],{"type":45,"value":1870},{"type":40,"tag":95,"props":2506,"children":2507},{"style":241},[2508],{"type":45,"value":412},{"type":40,"tag":95,"props":2510,"children":2511},{"style":137},[2512],{"type":45,"value":417},{"type":40,"tag":95,"props":2514,"children":2515},{"style":126},[2516],{"type":45,"value":962},{"type":40,"tag":95,"props":2518,"children":2519},{"style":137},[2520],{"type":45,"value":917},{"type":40,"tag":95,"props":2522,"children":2523},{"style":126},[2524],{"type":45,"value":971},{"type":40,"tag":95,"props":2526,"children":2527},{"class":97,"line":983},[2528],{"type":40,"tag":95,"props":2529,"children":2530},{"style":126},[2531],{"type":45,"value":2532},"  \"organizationAccessBoost\": true,\n",{"type":40,"tag":95,"props":2534,"children":2535},{"class":97,"line":992},[2536],{"type":40,"tag":95,"props":2537,"children":2538},{"style":126},[2539],{"type":45,"value":2540},"  \"organizationRole\": \"VIEWER\"\n",{"type":40,"tag":95,"props":2542,"children":2543},{"class":97,"line":1001},[2544,2548],{"type":40,"tag":95,"props":2545,"children":2546},{"style":126},[2547],{"type":45,"value":1025},{"type":40,"tag":95,"props":2549,"children":2550},{"style":137},[2551],{"type":45,"value":927},{"type":40,"tag":48,"props":2553,"children":2554},{},[2555,2561,2563,2569,2570,2576,2577,2583,2584,2590,2591,2597,2598,2604,2605,2611,2612,2618,2620,2625,2627,2632],{"type":40,"tag":91,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":45,"value":2560},"update-permission-settings",{"type":45,"value":2562}," (PUT) also carries the document's other toggles — ",{"type":40,"tag":91,"props":2564,"children":2566},{"className":2565},[],[2567],{"type":45,"value":2568},"canDownload",{"type":45,"value":669},{"type":40,"tag":91,"props":2571,"children":2573},{"className":2572},[],[2574],{"type":45,"value":2575},"canDrill",{"type":45,"value":669},{"type":40,"tag":91,"props":2578,"children":2580},{"className":2579},[],[2581],{"type":45,"value":2582},"canSchedule",{"type":45,"value":669},{"type":40,"tag":91,"props":2585,"children":2587},{"className":2586},[],[2588],{"type":45,"value":2589},"canUpload",{"type":45,"value":669},{"type":40,"tag":91,"props":2592,"children":2594},{"className":2593},[],[2595],{"type":45,"value":2596},"canUseDashboardAi",{"type":45,"value":669},{"type":40,"tag":91,"props":2599,"children":2601},{"className":2600},[],[2602],{"type":45,"value":2603},"canUseTimezoneOverride",{"type":45,"value":669},{"type":40,"tag":91,"props":2606,"children":2608},{"className":2607},[],[2609],{"type":45,"value":2610},"canViewWorkbook",{"type":45,"value":669},{"type":40,"tag":91,"props":2613,"children":2615},{"className":2614},[],[2616],{"type":45,"value":2617},"requirePullRequestToPublish",{"type":45,"value":2619},". Note ",{"type":40,"tag":91,"props":2621,"children":2623},{"className":2622},[],[2624],{"type":45,"value":2310},{"type":45,"value":2626}," boosts the org-default principal on ",{"type":40,"tag":61,"props":2628,"children":2629},{},[2630],{"type":45,"value":2631},"this",{"type":45,"value":2633}," document only — it is not an org-wide switch.",{"type":40,"tag":76,"props":2635,"children":2637},{"id":2636},"folder-permissions",[2638],{"type":45,"value":2639},"Folder Permissions",{"type":40,"tag":83,"props":2641,"children":2643},{"className":85,"code":2642,"language":87,"meta":88,"style":88},"# Get\nomni folders get-permissions \u003CfolderId>\n\n# Set\nomni folders add-permissions \u003CfolderId> --body '{\n  \"permissions\": [{ \"type\": \"group\", \"id\": \"group-uuid\", \"access\": \"view\" }]\n}'\n",[2644],{"type":40,"tag":91,"props":2645,"children":2646},{"__ignoreMap":88},[2647,2655,2687,2694,2702,2746,2754],{"type":40,"tag":95,"props":2648,"children":2649},{"class":97,"line":98},[2650],{"type":40,"tag":95,"props":2651,"children":2652},{"style":102},[2653],{"type":45,"value":2654},"# Get\n",{"type":40,"tag":95,"props":2656,"children":2657},{"class":97,"line":108},[2658,2662,2666,2670,2674,2679,2683],{"type":40,"tag":95,"props":2659,"children":2660},{"style":191},[2661],{"type":45,"value":15},{"type":40,"tag":95,"props":2663,"children":2664},{"style":126},[2665],{"type":45,"value":564},{"type":40,"tag":95,"props":2667,"children":2668},{"style":126},[2669],{"type":45,"value":1861},{"type":40,"tag":95,"props":2671,"children":2672},{"style":137},[2673],{"type":45,"value":233},{"type":40,"tag":95,"props":2675,"children":2676},{"style":126},[2677],{"type":45,"value":2678},"folderI",{"type":40,"tag":95,"props":2680,"children":2681},{"style":241},[2682],{"type":45,"value":412},{"type":40,"tag":95,"props":2684,"children":2685},{"style":137},[2686],{"type":45,"value":249},{"type":40,"tag":95,"props":2688,"children":2689},{"class":97,"line":27},[2690],{"type":40,"tag":95,"props":2691,"children":2692},{"emptyLinePlaceholder":256},[2693],{"type":45,"value":259},{"type":40,"tag":95,"props":2695,"children":2696},{"class":97,"line":214},[2697],{"type":40,"tag":95,"props":2698,"children":2699},{"style":102},[2700],{"type":45,"value":2701},"# Set\n",{"type":40,"tag":95,"props":2703,"children":2704},{"class":97,"line":252},[2705,2709,2713,2718,2722,2726,2730,2734,2738,2742],{"type":40,"tag":95,"props":2706,"children":2707},{"style":191},[2708],{"type":45,"value":15},{"type":40,"tag":95,"props":2710,"children":2711},{"style":126},[2712],{"type":45,"value":564},{"type":40,"tag":95,"props":2714,"children":2715},{"style":126},[2716],{"type":45,"value":2717}," add-permissions",{"type":40,"tag":95,"props":2719,"children":2720},{"style":137},[2721],{"type":45,"value":233},{"type":40,"tag":95,"props":2723,"children":2724},{"style":126},[2725],{"type":45,"value":2678},{"type":40,"tag":95,"props":2727,"children":2728},{"style":241},[2729],{"type":45,"value":412},{"type":40,"tag":95,"props":2731,"children":2732},{"style":137},[2733],{"type":45,"value":417},{"type":40,"tag":95,"props":2735,"children":2736},{"style":126},[2737],{"type":45,"value":962},{"type":40,"tag":95,"props":2739,"children":2740},{"style":137},[2741],{"type":45,"value":917},{"type":40,"tag":95,"props":2743,"children":2744},{"style":126},[2745],{"type":45,"value":971},{"type":40,"tag":95,"props":2747,"children":2748},{"class":97,"line":262},[2749],{"type":40,"tag":95,"props":2750,"children":2751},{"style":126},[2752],{"type":45,"value":2753},"  \"permissions\": [{ \"type\": \"group\", \"id\": \"group-uuid\", \"access\": \"view\" }]\n",{"type":40,"tag":95,"props":2755,"children":2756},{"class":97,"line":271},[2757,2761],{"type":40,"tag":95,"props":2758,"children":2759},{"style":126},[2760],{"type":45,"value":1025},{"type":40,"tag":95,"props":2762,"children":2763},{"style":137},[2764],{"type":45,"value":927},{"type":40,"tag":76,"props":2766,"children":2768},{"id":2767},"schedules",[2769],{"type":45,"value":2770},"Schedules",{"type":40,"tag":83,"props":2772,"children":2774},{"className":85,"code":2773,"language":87,"meta":88,"style":88},"# List schedules\nomni schedules list\n\n# Create schedule\nomni schedules create --body '{\n  \"identifier\": \"dashboard-identifier\",\n  \"name\": \"Weekly Dashboard - Monday 9am PT\",\n  \"schedule\": \"0 9 ? * MON *\",\n  \"timezone\": \"America\u002FLos_Angeles\",\n  \"destinationType\": \"email\",\n  \"content\": \"dashboard\",\n  \"format\": \"pdf\",\n  \"subject\": \"Weekly dashboard\",\n  \"recipients\": [\"team@company.com\"]\n}'\n\n# Manage recipients for an existing schedule\nomni schedules recipients-get \u003CscheduleId>\n\nomni schedules add-recipients \u003CscheduleId> --body '{ \"recipients\": [\"team@company.com\"] }'\n",[2775],{"type":40,"tag":91,"props":2776,"children":2777},{"__ignoreMap":88},[2778,2786,2801,2808,2816,2844,2852,2860,2868,2876,2884,2892,2900,2908,2916,2927,2934,2942,2975,2982],{"type":40,"tag":95,"props":2779,"children":2780},{"class":97,"line":98},[2781],{"type":40,"tag":95,"props":2782,"children":2783},{"style":102},[2784],{"type":45,"value":2785},"# List schedules\n",{"type":40,"tag":95,"props":2787,"children":2788},{"class":97,"line":108},[2789,2793,2797],{"type":40,"tag":95,"props":2790,"children":2791},{"style":191},[2792],{"type":45,"value":15},{"type":40,"tag":95,"props":2794,"children":2795},{"style":126},[2796],{"type":45,"value":501},{"type":40,"tag":95,"props":2798,"children":2799},{"style":126},[2800],{"type":45,"value":728},{"type":40,"tag":95,"props":2802,"children":2803},{"class":97,"line":27},[2804],{"type":40,"tag":95,"props":2805,"children":2806},{"emptyLinePlaceholder":256},[2807],{"type":45,"value":259},{"type":40,"tag":95,"props":2809,"children":2810},{"class":97,"line":214},[2811],{"type":40,"tag":95,"props":2812,"children":2813},{"style":102},[2814],{"type":45,"value":2815},"# Create schedule\n",{"type":40,"tag":95,"props":2817,"children":2818},{"class":97,"line":252},[2819,2823,2827,2832,2836,2840],{"type":40,"tag":95,"props":2820,"children":2821},{"style":191},[2822],{"type":45,"value":15},{"type":40,"tag":95,"props":2824,"children":2825},{"style":126},[2826],{"type":45,"value":501},{"type":40,"tag":95,"props":2828,"children":2829},{"style":126},[2830],{"type":45,"value":2831}," create",{"type":40,"tag":95,"props":2833,"children":2834},{"style":126},[2835],{"type":45,"value":962},{"type":40,"tag":95,"props":2837,"children":2838},{"style":137},[2839],{"type":45,"value":917},{"type":40,"tag":95,"props":2841,"children":2842},{"style":126},[2843],{"type":45,"value":971},{"type":40,"tag":95,"props":2845,"children":2846},{"class":97,"line":262},[2847],{"type":40,"tag":95,"props":2848,"children":2849},{"style":126},[2850],{"type":45,"value":2851},"  \"identifier\": \"dashboard-identifier\",\n",{"type":40,"tag":95,"props":2853,"children":2854},{"class":97,"line":271},[2855],{"type":40,"tag":95,"props":2856,"children":2857},{"style":126},[2858],{"type":45,"value":2859},"  \"name\": \"Weekly Dashboard - Monday 9am PT\",\n",{"type":40,"tag":95,"props":2861,"children":2862},{"class":97,"line":794},[2863],{"type":40,"tag":95,"props":2864,"children":2865},{"style":126},[2866],{"type":45,"value":2867},"  \"schedule\": \"0 9 ? * MON *\",\n",{"type":40,"tag":95,"props":2869,"children":2870},{"class":97,"line":974},[2871],{"type":40,"tag":95,"props":2872,"children":2873},{"style":126},[2874],{"type":45,"value":2875},"  \"timezone\": \"America\u002FLos_Angeles\",\n",{"type":40,"tag":95,"props":2877,"children":2878},{"class":97,"line":983},[2879],{"type":40,"tag":95,"props":2880,"children":2881},{"style":126},[2882],{"type":45,"value":2883},"  \"destinationType\": \"email\",\n",{"type":40,"tag":95,"props":2885,"children":2886},{"class":97,"line":992},[2887],{"type":40,"tag":95,"props":2888,"children":2889},{"style":126},[2890],{"type":45,"value":2891},"  \"content\": \"dashboard\",\n",{"type":40,"tag":95,"props":2893,"children":2894},{"class":97,"line":1001},[2895],{"type":40,"tag":95,"props":2896,"children":2897},{"style":126},[2898],{"type":45,"value":2899},"  \"format\": \"pdf\",\n",{"type":40,"tag":95,"props":2901,"children":2902},{"class":97,"line":1010},[2903],{"type":40,"tag":95,"props":2904,"children":2905},{"style":126},[2906],{"type":45,"value":2907},"  \"subject\": \"Weekly dashboard\",\n",{"type":40,"tag":95,"props":2909,"children":2910},{"class":97,"line":1019},[2911],{"type":40,"tag":95,"props":2912,"children":2913},{"style":126},[2914],{"type":45,"value":2915},"  \"recipients\": [\"team@company.com\"]\n",{"type":40,"tag":95,"props":2917,"children":2918},{"class":97,"line":1032},[2919,2923],{"type":40,"tag":95,"props":2920,"children":2921},{"style":126},[2922],{"type":45,"value":1025},{"type":40,"tag":95,"props":2924,"children":2925},{"style":137},[2926],{"type":45,"value":927},{"type":40,"tag":95,"props":2928,"children":2929},{"class":97,"line":1040},[2930],{"type":40,"tag":95,"props":2931,"children":2932},{"emptyLinePlaceholder":256},[2933],{"type":45,"value":259},{"type":40,"tag":95,"props":2935,"children":2936},{"class":97,"line":1049},[2937],{"type":40,"tag":95,"props":2938,"children":2939},{"style":102},[2940],{"type":45,"value":2941},"# Manage recipients for an existing schedule\n",{"type":40,"tag":95,"props":2943,"children":2944},{"class":97,"line":1095},[2945,2949,2953,2958,2962,2967,2971],{"type":40,"tag":95,"props":2946,"children":2947},{"style":191},[2948],{"type":45,"value":15},{"type":40,"tag":95,"props":2950,"children":2951},{"style":126},[2952],{"type":45,"value":501},{"type":40,"tag":95,"props":2954,"children":2955},{"style":126},[2956],{"type":45,"value":2957}," recipients-get",{"type":40,"tag":95,"props":2959,"children":2960},{"style":137},[2961],{"type":45,"value":233},{"type":40,"tag":95,"props":2963,"children":2964},{"style":126},[2965],{"type":45,"value":2966},"scheduleI",{"type":40,"tag":95,"props":2968,"children":2969},{"style":241},[2970],{"type":45,"value":412},{"type":40,"tag":95,"props":2972,"children":2973},{"style":137},[2974],{"type":45,"value":249},{"type":40,"tag":95,"props":2976,"children":2977},{"class":97,"line":1103},[2978],{"type":40,"tag":95,"props":2979,"children":2980},{"emptyLinePlaceholder":256},[2981],{"type":45,"value":259},{"type":40,"tag":95,"props":2983,"children":2984},{"class":97,"line":1112},[2985,2989,2993,2998,3002,3006,3010,3014,3018,3022,3027],{"type":40,"tag":95,"props":2986,"children":2987},{"style":191},[2988],{"type":45,"value":15},{"type":40,"tag":95,"props":2990,"children":2991},{"style":126},[2992],{"type":45,"value":501},{"type":40,"tag":95,"props":2994,"children":2995},{"style":126},[2996],{"type":45,"value":2997}," add-recipients",{"type":40,"tag":95,"props":2999,"children":3000},{"style":137},[3001],{"type":45,"value":233},{"type":40,"tag":95,"props":3003,"children":3004},{"style":126},[3005],{"type":45,"value":2966},{"type":40,"tag":95,"props":3007,"children":3008},{"style":241},[3009],{"type":45,"value":412},{"type":40,"tag":95,"props":3011,"children":3012},{"style":137},[3013],{"type":45,"value":417},{"type":40,"tag":95,"props":3015,"children":3016},{"style":126},[3017],{"type":45,"value":962},{"type":40,"tag":95,"props":3019,"children":3020},{"style":137},[3021],{"type":45,"value":917},{"type":40,"tag":95,"props":3023,"children":3024},{"style":126},[3025],{"type":45,"value":3026},"{ \"recipients\": [\"team@company.com\"] }",{"type":40,"tag":95,"props":3028,"children":3029},{"style":137},[3030],{"type":45,"value":927},{"type":40,"tag":76,"props":3032,"children":3034},{"id":3033},"verification-after-changes",[3035],{"type":45,"value":3036},"Verification After Changes",{"type":40,"tag":48,"props":3038,"children":3039},{},[3040],{"type":45,"value":3041},"Admin operations can silently fail or partially apply. Always read back the state after any write to confirm the change took effect.",{"type":40,"tag":2155,"props":3043,"children":3045},{"id":3044},"after-user-operations",[3046],{"type":45,"value":3047},"After User Operations",{"type":40,"tag":83,"props":3049,"children":3051},{"className":85,"code":3050,"language":87,"meta":88,"style":88},"# After creating or updating a user, verify they exist with correct state\nomni scim users-list --filter 'userName eq \"newuser@company.com\"'\n",[3052],{"type":40,"tag":91,"props":3053,"children":3054},{"__ignoreMap":88},[3055,3063],{"type":40,"tag":95,"props":3056,"children":3057},{"class":97,"line":98},[3058],{"type":40,"tag":95,"props":3059,"children":3060},{"style":102},[3061],{"type":45,"value":3062},"# After creating or updating a user, verify they exist with correct state\n",{"type":40,"tag":95,"props":3064,"children":3065},{"class":97,"line":108},[3066,3070,3074,3078,3082,3086,3091],{"type":40,"tag":95,"props":3067,"children":3068},{"style":191},[3069],{"type":45,"value":15},{"type":40,"tag":95,"props":3071,"children":3072},{"style":126},[3073],{"type":45,"value":479},{"type":40,"tag":95,"props":3075,"children":3076},{"style":126},[3077],{"type":45,"value":907},{"type":40,"tag":95,"props":3079,"children":3080},{"style":126},[3081],{"type":45,"value":912},{"type":40,"tag":95,"props":3083,"children":3084},{"style":137},[3085],{"type":45,"value":917},{"type":40,"tag":95,"props":3087,"children":3088},{"style":126},[3089],{"type":45,"value":3090},"userName eq \"newuser@company.com\"",{"type":40,"tag":95,"props":3092,"children":3093},{"style":137},[3094],{"type":45,"value":927},{"type":40,"tag":48,"props":3096,"children":3097},{},[3098,3100,3106,3108,3114],{"type":45,"value":3099},"Check that: ",{"type":40,"tag":91,"props":3101,"children":3103},{"className":3102},[],[3104],{"type":45,"value":3105},"active",{"type":45,"value":3107}," matches what you set, ",{"type":40,"tag":91,"props":3109,"children":3111},{"className":3110},[],[3112],{"type":45,"value":3113},"displayName",{"type":45,"value":3115}," is correct, and the user ID was returned (not an error).",{"type":40,"tag":2155,"props":3117,"children":3119},{"id":3118},"after-group-operations",[3120],{"type":45,"value":3121},"After Group Operations",{"type":40,"tag":83,"props":3123,"children":3125},{"className":85,"code":3124,"language":87,"meta":88,"style":88},"# After creating a group or modifying members, verify membership\nomni scim groups-list\n",[3126],{"type":40,"tag":91,"props":3127,"children":3128},{"__ignoreMap":88},[3129,3137],{"type":40,"tag":95,"props":3130,"children":3131},{"class":97,"line":98},[3132],{"type":40,"tag":95,"props":3133,"children":3134},{"style":102},[3135],{"type":45,"value":3136},"# After creating a group or modifying members, verify membership\n",{"type":40,"tag":95,"props":3138,"children":3139},{"class":97,"line":108},[3140,3144,3148],{"type":40,"tag":95,"props":3141,"children":3142},{"style":191},[3143],{"type":45,"value":15},{"type":40,"tag":95,"props":3145,"children":3146},{"style":126},[3147],{"type":45,"value":479},{"type":40,"tag":95,"props":3149,"children":3150},{"style":126},[3151],{"type":45,"value":1208},{"type":40,"tag":48,"props":3153,"children":3154},{},[3155,3157,3162,3164,3170],{"type":45,"value":3156},"Check that: the group exists with the expected ",{"type":40,"tag":91,"props":3158,"children":3160},{"className":3159},[],[3161],{"type":45,"value":3113},{"type":45,"value":3163},", and ",{"type":40,"tag":91,"props":3165,"children":3167},{"className":3166},[],[3168],{"type":45,"value":3169},"members",{"type":45,"value":3171}," array contains the expected user UUIDs.",{"type":40,"tag":2155,"props":3173,"children":3175},{"id":3174},"after-permission-changes",[3176],{"type":45,"value":3177},"After Permission Changes",{"type":40,"tag":83,"props":3179,"children":3181},{"className":85,"code":3180,"language":87,"meta":88,"style":88},"# After setting document permissions, verify the principal and role\nomni documents access-list \u003CdocumentId>\n\n# For a specific user, also check effective permissions\nomni documents get-permissions \u003CdocumentId> --userid \u003CuserId>\n\n# After setting folder permissions, verify\nomni folders get-permissions \u003CfolderId>\n",[3182],{"type":40,"tag":91,"props":3183,"children":3184},{"__ignoreMap":88},[3185,3193,3224,3231,3239,3290,3297,3305],{"type":40,"tag":95,"props":3186,"children":3187},{"class":97,"line":98},[3188],{"type":40,"tag":95,"props":3189,"children":3190},{"style":102},[3191],{"type":45,"value":3192},"# After setting document permissions, verify the principal and role\n",{"type":40,"tag":95,"props":3194,"children":3195},{"class":97,"line":108},[3196,3200,3204,3208,3212,3216,3220],{"type":40,"tag":95,"props":3197,"children":3198},{"style":191},[3199],{"type":45,"value":15},{"type":40,"tag":95,"props":3201,"children":3202},{"style":126},[3203],{"type":45,"value":543},{"type":40,"tag":95,"props":3205,"children":3206},{"style":126},[3207],{"type":45,"value":1930},{"type":40,"tag":95,"props":3209,"children":3210},{"style":137},[3211],{"type":45,"value":233},{"type":40,"tag":95,"props":3213,"children":3214},{"style":126},[3215],{"type":45,"value":1870},{"type":40,"tag":95,"props":3217,"children":3218},{"style":241},[3219],{"type":45,"value":412},{"type":40,"tag":95,"props":3221,"children":3222},{"style":137},[3223],{"type":45,"value":249},{"type":40,"tag":95,"props":3225,"children":3226},{"class":97,"line":27},[3227],{"type":40,"tag":95,"props":3228,"children":3229},{"emptyLinePlaceholder":256},[3230],{"type":45,"value":259},{"type":40,"tag":95,"props":3232,"children":3233},{"class":97,"line":214},[3234],{"type":40,"tag":95,"props":3235,"children":3236},{"style":102},[3237],{"type":45,"value":3238},"# For a specific user, also check effective permissions\n",{"type":40,"tag":95,"props":3240,"children":3241},{"class":97,"line":252},[3242,3246,3250,3254,3258,3262,3266,3270,3274,3278,3282,3286],{"type":40,"tag":95,"props":3243,"children":3244},{"style":191},[3245],{"type":45,"value":15},{"type":40,"tag":95,"props":3247,"children":3248},{"style":126},[3249],{"type":45,"value":543},{"type":40,"tag":95,"props":3251,"children":3252},{"style":126},[3253],{"type":45,"value":1861},{"type":40,"tag":95,"props":3255,"children":3256},{"style":137},[3257],{"type":45,"value":233},{"type":40,"tag":95,"props":3259,"children":3260},{"style":126},[3261],{"type":45,"value":1870},{"type":40,"tag":95,"props":3263,"children":3264},{"style":241},[3265],{"type":45,"value":412},{"type":40,"tag":95,"props":3267,"children":3268},{"style":137},[3269],{"type":45,"value":417},{"type":40,"tag":95,"props":3271,"children":3272},{"style":126},[3273],{"type":45,"value":1883},{"type":40,"tag":95,"props":3275,"children":3276},{"style":137},[3277],{"type":45,"value":233},{"type":40,"tag":95,"props":3279,"children":3280},{"style":126},[3281],{"type":45,"value":1072},{"type":40,"tag":95,"props":3283,"children":3284},{"style":241},[3285],{"type":45,"value":412},{"type":40,"tag":95,"props":3287,"children":3288},{"style":137},[3289],{"type":45,"value":249},{"type":40,"tag":95,"props":3291,"children":3292},{"class":97,"line":262},[3293],{"type":40,"tag":95,"props":3294,"children":3295},{"emptyLinePlaceholder":256},[3296],{"type":45,"value":259},{"type":40,"tag":95,"props":3298,"children":3299},{"class":97,"line":271},[3300],{"type":40,"tag":95,"props":3301,"children":3302},{"style":102},[3303],{"type":45,"value":3304},"# After setting folder permissions, verify\n",{"type":40,"tag":95,"props":3306,"children":3307},{"class":97,"line":794},[3308,3312,3316,3320,3324,3328,3332],{"type":40,"tag":95,"props":3309,"children":3310},{"style":191},[3311],{"type":45,"value":15},{"type":40,"tag":95,"props":3313,"children":3314},{"style":126},[3315],{"type":45,"value":564},{"type":40,"tag":95,"props":3317,"children":3318},{"style":126},[3319],{"type":45,"value":1861},{"type":40,"tag":95,"props":3321,"children":3322},{"style":137},[3323],{"type":45,"value":233},{"type":40,"tag":95,"props":3325,"children":3326},{"style":126},[3327],{"type":45,"value":2678},{"type":40,"tag":95,"props":3329,"children":3330},{"style":241},[3331],{"type":45,"value":412},{"type":40,"tag":95,"props":3333,"children":3334},{"style":137},[3335],{"type":45,"value":249},{"type":40,"tag":48,"props":3337,"children":3338},{},[3339,3341,3346,3348,3353,3354,3359],{"type":45,"value":3340},"Check that: the principal is listed and the ",{"type":40,"tag":91,"props":3342,"children":3344},{"className":3343},[],[3345],{"type":45,"value":2126},{"type":45,"value":3347}," matches what you set (",{"type":40,"tag":91,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":45,"value":667},{"type":45,"value":669},{"type":40,"tag":91,"props":3355,"children":3357},{"className":3356},[],[3358],{"type":45,"value":682},{"type":45,"value":3360},", etc.).",{"type":40,"tag":2155,"props":3362,"children":3364},{"id":3363},"after-user-attribute-changes",[3365],{"type":45,"value":3366},"After User Attribute Changes",{"type":40,"tag":83,"props":3368,"children":3370},{"className":85,"code":3369,"language":87,"meta":88,"style":88},"# Verify the user's assigned attribute value was set\nomni scim users-list --filter 'userName eq \"user@company.com\"'\n",[3371],{"type":40,"tag":91,"props":3372,"children":3373},{"__ignoreMap":88},[3374,3382],{"type":40,"tag":95,"props":3375,"children":3376},{"class":97,"line":98},[3377],{"type":40,"tag":95,"props":3378,"children":3379},{"style":102},[3380],{"type":45,"value":3381},"# Verify the user's assigned attribute value was set\n",{"type":40,"tag":95,"props":3383,"children":3384},{"class":97,"line":108},[3385,3389,3393,3397,3401,3405,3409],{"type":40,"tag":95,"props":3386,"children":3387},{"style":191},[3388],{"type":45,"value":15},{"type":40,"tag":95,"props":3390,"children":3391},{"style":126},[3392],{"type":45,"value":479},{"type":40,"tag":95,"props":3394,"children":3395},{"style":126},[3396],{"type":45,"value":907},{"type":40,"tag":95,"props":3398,"children":3399},{"style":126},[3400],{"type":45,"value":912},{"type":40,"tag":95,"props":3402,"children":3403},{"style":137},[3404],{"type":45,"value":917},{"type":40,"tag":95,"props":3406,"children":3407},{"style":126},[3408],{"type":45,"value":922},{"type":40,"tag":95,"props":3410,"children":3411},{"style":137},[3412],{"type":45,"value":927},{"type":40,"tag":48,"props":3414,"children":3415},{},[3416,3418,3423,3425,3430],{"type":45,"value":3417},"Check that: the response contains the target user, the user's\n",{"type":40,"tag":91,"props":3419,"children":3421},{"className":3420},[],[3422],{"type":45,"value":1611},{"type":45,"value":3424}," object includes the requested attribute name,\nand the value exactly matches what you set. ",{"type":40,"tag":91,"props":3426,"children":3428},{"className":3427},[],[3429],{"type":45,"value":1590},{"type":45,"value":3431}," only\nverifies that the attribute definition exists.",{"type":40,"tag":48,"props":3433,"children":3434},{},[3435,3437,3442],{"type":45,"value":3436},"If the attribute is used for row-level security (",{"type":40,"tag":91,"props":3438,"children":3440},{"className":3439},[],[3441],{"type":45,"value":1582},{"type":45,"value":3443},"), test it by running a query as the target user:",{"type":40,"tag":83,"props":3445,"children":3447},{"className":85,"code":3446,"language":87,"meta":88,"style":88},"omni query run --body '{ \"query\": { ... }, \"userId\": \"\u003Ctarget-user-uuid>\" }'\n",[3448],{"type":40,"tag":91,"props":3449,"children":3450},{"__ignoreMap":88},[3451],{"type":40,"tag":95,"props":3452,"children":3453},{"class":97,"line":98},[3454,3458,3463,3468,3472,3476,3481],{"type":40,"tag":95,"props":3455,"children":3456},{"style":191},[3457],{"type":45,"value":15},{"type":40,"tag":95,"props":3459,"children":3460},{"style":126},[3461],{"type":45,"value":3462}," query",{"type":40,"tag":95,"props":3464,"children":3465},{"style":126},[3466],{"type":45,"value":3467}," run",{"type":40,"tag":95,"props":3469,"children":3470},{"style":126},[3471],{"type":45,"value":962},{"type":40,"tag":95,"props":3473,"children":3474},{"style":137},[3475],{"type":45,"value":917},{"type":40,"tag":95,"props":3477,"children":3478},{"style":126},[3479],{"type":45,"value":3480},"{ \"query\": { ... }, \"userId\": \"\u003Ctarget-user-uuid>\" }",{"type":40,"tag":95,"props":3482,"children":3483},{"style":137},[3484],{"type":45,"value":927},{"type":40,"tag":48,"props":3486,"children":3487},{},[3488],{"type":45,"value":3489},"Verify the results are correctly filtered — the user should only see rows matching their attribute value.",{"type":40,"tag":2155,"props":3491,"children":3493},{"id":3492},"after-schedule-operations",[3494],{"type":45,"value":3495},"After Schedule Operations",{"type":40,"tag":83,"props":3497,"children":3499},{"className":85,"code":3498,"language":87,"meta":88,"style":88},"# Verify schedule was created with correct settings\nomni schedules list -o json\n\n# Verify recipients were added\nomni schedules recipients-get \u003CscheduleId>\n",[3500],{"type":40,"tag":91,"props":3501,"children":3502},{"__ignoreMap":88},[3503,3511,3537,3544,3552],{"type":40,"tag":95,"props":3504,"children":3505},{"class":97,"line":98},[3506],{"type":40,"tag":95,"props":3507,"children":3508},{"style":102},[3509],{"type":45,"value":3510},"# Verify schedule was created with correct settings\n",{"type":40,"tag":95,"props":3512,"children":3513},{"class":97,"line":108},[3514,3518,3522,3527,3532],{"type":40,"tag":95,"props":3515,"children":3516},{"style":191},[3517],{"type":45,"value":15},{"type":40,"tag":95,"props":3519,"children":3520},{"style":126},[3521],{"type":45,"value":501},{"type":40,"tag":95,"props":3523,"children":3524},{"style":126},[3525],{"type":45,"value":3526}," list",{"type":40,"tag":95,"props":3528,"children":3529},{"style":126},[3530],{"type":45,"value":3531}," -o",{"type":40,"tag":95,"props":3533,"children":3534},{"style":126},[3535],{"type":45,"value":3536}," json\n",{"type":40,"tag":95,"props":3538,"children":3539},{"class":97,"line":27},[3540],{"type":40,"tag":95,"props":3541,"children":3542},{"emptyLinePlaceholder":256},[3543],{"type":45,"value":259},{"type":40,"tag":95,"props":3545,"children":3546},{"class":97,"line":214},[3547],{"type":40,"tag":95,"props":3548,"children":3549},{"style":102},[3550],{"type":45,"value":3551},"# Verify recipients were added\n",{"type":40,"tag":95,"props":3553,"children":3554},{"class":97,"line":252},[3555,3559,3563,3567,3571,3575,3579],{"type":40,"tag":95,"props":3556,"children":3557},{"style":191},[3558],{"type":45,"value":15},{"type":40,"tag":95,"props":3560,"children":3561},{"style":126},[3562],{"type":45,"value":501},{"type":40,"tag":95,"props":3564,"children":3565},{"style":126},[3566],{"type":45,"value":2957},{"type":40,"tag":95,"props":3568,"children":3569},{"style":137},[3570],{"type":45,"value":233},{"type":40,"tag":95,"props":3572,"children":3573},{"style":126},[3574],{"type":45,"value":2966},{"type":40,"tag":95,"props":3576,"children":3577},{"style":241},[3578],{"type":45,"value":412},{"type":40,"tag":95,"props":3580,"children":3581},{"style":137},[3582],{"type":45,"value":249},{"type":40,"tag":48,"props":3584,"children":3585},{},[3586,3588,3594,3596,3602,3603,3609,3610,3616,3617,3623,3625,3631,3633,3639],{"type":45,"value":3587},"Check that: the created schedule id appears in the list and the returned fields match the requested ",{"type":40,"tag":91,"props":3589,"children":3591},{"className":3590},[],[3592],{"type":45,"value":3593},"schedule",{"type":45,"value":3595}," cron, ",{"type":40,"tag":91,"props":3597,"children":3599},{"className":3598},[],[3600],{"type":45,"value":3601},"timezone",{"type":45,"value":669},{"type":40,"tag":91,"props":3604,"children":3606},{"className":3605},[],[3607],{"type":45,"value":3608},"destinationType",{"type":45,"value":669},{"type":40,"tag":91,"props":3611,"children":3613},{"className":3612},[],[3614],{"type":45,"value":3615},"content",{"type":45,"value":669},{"type":40,"tag":91,"props":3618,"children":3620},{"className":3619},[],[3621],{"type":45,"value":3622},"format",{"type":45,"value":3624},", and dashboard ",{"type":40,"tag":91,"props":3626,"children":3628},{"className":3627},[],[3629],{"type":45,"value":3630},"identifier",{"type":45,"value":3632},". If the list\u002Fget response shape is not parseable, report that schedule setting verification was inconclusive instead of silently treating an empty parser result as success. Always verify recipients with ",{"type":40,"tag":91,"props":3634,"children":3636},{"className":3635},[],[3637],{"type":45,"value":3638},"recipients-get",{"type":45,"value":379},{"type":40,"tag":2155,"props":3641,"children":3643},{"id":3642},"verification-checklist",[3644],{"type":45,"value":3645},"Verification Checklist",{"type":40,"tag":3647,"props":3648,"children":3649},"table",{},[3650,3674],{"type":40,"tag":3651,"props":3652,"children":3653},"thead",{},[3654],{"type":40,"tag":3655,"props":3656,"children":3657},"tr",{},[3658,3664,3669],{"type":40,"tag":3659,"props":3660,"children":3661},"th",{},[3662],{"type":45,"value":3663},"Operation",{"type":40,"tag":3659,"props":3665,"children":3666},{},[3667],{"type":45,"value":3668},"Verify With",{"type":40,"tag":3659,"props":3670,"children":3671},{},[3672],{"type":45,"value":3673},"What to Check",{"type":40,"tag":3675,"props":3676,"children":3677},"tbody",{},[3678,3708,3730,3752,3773,3794,3824,3846],{"type":40,"tag":3655,"props":3679,"children":3680},{},[3681,3687,3696],{"type":40,"tag":3682,"props":3683,"children":3684},"td",{},[3685],{"type":45,"value":3686},"Create\u002Fupdate user",{"type":40,"tag":3682,"props":3688,"children":3689},{},[3690],{"type":40,"tag":91,"props":3691,"children":3693},{"className":3692},[],[3694],{"type":45,"value":3695},"omni scim users-list --filter ...",{"type":40,"tag":3682,"props":3697,"children":3698},{},[3699,3701,3706],{"type":45,"value":3700},"User exists, ",{"type":40,"tag":91,"props":3702,"children":3704},{"className":3703},[],[3705],{"type":45,"value":3105},{"type":45,"value":3707}," status correct",{"type":40,"tag":3655,"props":3709,"children":3710},{},[3711,3716,3725],{"type":40,"tag":3682,"props":3712,"children":3713},{},[3714],{"type":45,"value":3715},"Create\u002Fupdate group",{"type":40,"tag":3682,"props":3717,"children":3718},{},[3719],{"type":40,"tag":91,"props":3720,"children":3722},{"className":3721},[],[3723],{"type":45,"value":3724},"omni scim groups-list",{"type":40,"tag":3682,"props":3726,"children":3727},{},[3728],{"type":45,"value":3729},"Group exists, members list correct",{"type":40,"tag":3655,"props":3731,"children":3732},{},[3733,3738,3747],{"type":40,"tag":3682,"props":3734,"children":3735},{},[3736],{"type":45,"value":3737},"Set document permissions",{"type":40,"tag":3682,"props":3739,"children":3740},{},[3741],{"type":40,"tag":91,"props":3742,"children":3744},{"className":3743},[],[3745],{"type":45,"value":3746},"omni documents get-permissions",{"type":40,"tag":3682,"props":3748,"children":3749},{},[3750],{"type":45,"value":3751},"Access level and target correct",{"type":40,"tag":3655,"props":3753,"children":3754},{},[3755,3760,3769],{"type":40,"tag":3682,"props":3756,"children":3757},{},[3758],{"type":45,"value":3759},"Set folder permissions",{"type":40,"tag":3682,"props":3761,"children":3762},{},[3763],{"type":40,"tag":91,"props":3764,"children":3766},{"className":3765},[],[3767],{"type":45,"value":3768},"omni folders get-permissions",{"type":40,"tag":3682,"props":3770,"children":3771},{},[3772],{"type":45,"value":3751},{"type":40,"tag":3655,"props":3774,"children":3775},{},[3776,3781,3789],{"type":40,"tag":3682,"props":3777,"children":3778},{},[3779],{"type":45,"value":3780},"Set user attribute",{"type":40,"tag":3682,"props":3782,"children":3783},{},[3784],{"type":40,"tag":91,"props":3785,"children":3787},{"className":3786},[],[3788],{"type":45,"value":3695},{"type":40,"tag":3682,"props":3790,"children":3791},{},[3792],{"type":45,"value":3793},"User attribute extension contains requested value",{"type":40,"tag":3655,"props":3795,"children":3796},{},[3797,3802,3819],{"type":40,"tag":3682,"props":3798,"children":3799},{},[3800],{"type":45,"value":3801},"User attribute + access filter",{"type":40,"tag":3682,"props":3803,"children":3804},{},[3805,3811,3813],{"type":40,"tag":91,"props":3806,"children":3808},{"className":3807},[],[3809],{"type":45,"value":3810},"omni query run",{"type":45,"value":3812}," with ",{"type":40,"tag":91,"props":3814,"children":3816},{"className":3815},[],[3817],{"type":45,"value":3818},"userId",{"type":40,"tag":3682,"props":3820,"children":3821},{},[3822],{"type":45,"value":3823},"Row-level filtering works",{"type":40,"tag":3655,"props":3825,"children":3826},{},[3827,3832,3841],{"type":40,"tag":3682,"props":3828,"children":3829},{},[3830],{"type":45,"value":3831},"Create schedule",{"type":40,"tag":3682,"props":3833,"children":3834},{},[3835],{"type":40,"tag":91,"props":3836,"children":3838},{"className":3837},[],[3839],{"type":45,"value":3840},"omni schedules list",{"type":40,"tag":3682,"props":3842,"children":3843},{},[3844],{"type":45,"value":3845},"Schedule settings correct",{"type":40,"tag":3655,"props":3847,"children":3848},{},[3849,3854,3863],{"type":40,"tag":3682,"props":3850,"children":3851},{},[3852],{"type":45,"value":3853},"Add recipients",{"type":40,"tag":3682,"props":3855,"children":3856},{},[3857],{"type":40,"tag":91,"props":3858,"children":3860},{"className":3859},[],[3861],{"type":45,"value":3862},"omni schedules recipients-get",{"type":40,"tag":3682,"props":3864,"children":3865},{},[3866],{"type":45,"value":3867},"All recipients listed",{"type":40,"tag":76,"props":3869,"children":3871},{"id":3870},"cache-and-validation",[3872],{"type":45,"value":3873},"Cache and Validation",{"type":40,"tag":83,"props":3875,"children":3877},{"className":85,"code":3876,"language":87,"meta":88,"style":88},"# Reset cache policy\nomni models cache-reset \u003CmodelId> \u003CpolicyName> --body '{ \"resetAt\": \"2025-01-30T22:30:52.872Z\" }'\n\n# Content validator (find broken field references across all dashboards and tiles)\n# Useful for blast-radius analysis: remove a field on a branch, then run the\n# validator against that branch to see what content would break.\n# See the Field Impact Analysis section in omni-model-explorer for the full workflow.\nomni models content-validator-get \u003CmodelId>\n\n# Run against a specific branch (e.g., after removing a field)\nomni models content-validator-get \u003CmodelId> --branch-id \u003CbranchId>\n\n# Git configuration\nomni models git-get \u003CmodelId>\n",[3878],{"type":40,"tag":91,"props":3879,"children":3880},{"__ignoreMap":88},[3881,3889,3957,3964,3972,3980,3988,3996,4028,4035,4043,4096,4103,4111],{"type":40,"tag":95,"props":3882,"children":3883},{"class":97,"line":98},[3884],{"type":40,"tag":95,"props":3885,"children":3886},{"style":102},[3887],{"type":45,"value":3888},"# Reset cache policy\n",{"type":40,"tag":95,"props":3890,"children":3891},{"class":97,"line":108},[3892,3896,3901,3906,3910,3915,3919,3923,3927,3932,3936,3940,3944,3948,3953],{"type":40,"tag":95,"props":3893,"children":3894},{"style":191},[3895],{"type":45,"value":15},{"type":40,"tag":95,"props":3897,"children":3898},{"style":126},[3899],{"type":45,"value":3900}," models",{"type":40,"tag":95,"props":3902,"children":3903},{"style":126},[3904],{"type":45,"value":3905}," cache-reset",{"type":40,"tag":95,"props":3907,"children":3908},{"style":137},[3909],{"type":45,"value":233},{"type":40,"tag":95,"props":3911,"children":3912},{"style":126},[3913],{"type":45,"value":3914},"modelI",{"type":40,"tag":95,"props":3916,"children":3917},{"style":241},[3918],{"type":45,"value":412},{"type":40,"tag":95,"props":3920,"children":3921},{"style":137},[3922],{"type":45,"value":417},{"type":40,"tag":95,"props":3924,"children":3925},{"style":137},[3926],{"type":45,"value":233},{"type":40,"tag":95,"props":3928,"children":3929},{"style":126},[3930],{"type":45,"value":3931},"policyNam",{"type":40,"tag":95,"props":3933,"children":3934},{"style":241},[3935],{"type":45,"value":244},{"type":40,"tag":95,"props":3937,"children":3938},{"style":137},[3939],{"type":45,"value":417},{"type":40,"tag":95,"props":3941,"children":3942},{"style":126},[3943],{"type":45,"value":962},{"type":40,"tag":95,"props":3945,"children":3946},{"style":137},[3947],{"type":45,"value":917},{"type":40,"tag":95,"props":3949,"children":3950},{"style":126},[3951],{"type":45,"value":3952},"{ \"resetAt\": \"2025-01-30T22:30:52.872Z\" }",{"type":40,"tag":95,"props":3954,"children":3955},{"style":137},[3956],{"type":45,"value":927},{"type":40,"tag":95,"props":3958,"children":3959},{"class":97,"line":27},[3960],{"type":40,"tag":95,"props":3961,"children":3962},{"emptyLinePlaceholder":256},[3963],{"type":45,"value":259},{"type":40,"tag":95,"props":3965,"children":3966},{"class":97,"line":214},[3967],{"type":40,"tag":95,"props":3968,"children":3969},{"style":102},[3970],{"type":45,"value":3971},"# Content validator (find broken field references across all dashboards and tiles)\n",{"type":40,"tag":95,"props":3973,"children":3974},{"class":97,"line":252},[3975],{"type":40,"tag":95,"props":3976,"children":3977},{"style":102},[3978],{"type":45,"value":3979},"# Useful for blast-radius analysis: remove a field on a branch, then run the\n",{"type":40,"tag":95,"props":3981,"children":3982},{"class":97,"line":262},[3983],{"type":40,"tag":95,"props":3984,"children":3985},{"style":102},[3986],{"type":45,"value":3987},"# validator against that branch to see what content would break.\n",{"type":40,"tag":95,"props":3989,"children":3990},{"class":97,"line":271},[3991],{"type":40,"tag":95,"props":3992,"children":3993},{"style":102},[3994],{"type":45,"value":3995},"# See the Field Impact Analysis section in omni-model-explorer for the full workflow.\n",{"type":40,"tag":95,"props":3997,"children":3998},{"class":97,"line":794},[3999,4003,4007,4012,4016,4020,4024],{"type":40,"tag":95,"props":4000,"children":4001},{"style":191},[4002],{"type":45,"value":15},{"type":40,"tag":95,"props":4004,"children":4005},{"style":126},[4006],{"type":45,"value":3900},{"type":40,"tag":95,"props":4008,"children":4009},{"style":126},[4010],{"type":45,"value":4011}," content-validator-get",{"type":40,"tag":95,"props":4013,"children":4014},{"style":137},[4015],{"type":45,"value":233},{"type":40,"tag":95,"props":4017,"children":4018},{"style":126},[4019],{"type":45,"value":3914},{"type":40,"tag":95,"props":4021,"children":4022},{"style":241},[4023],{"type":45,"value":412},{"type":40,"tag":95,"props":4025,"children":4026},{"style":137},[4027],{"type":45,"value":249},{"type":40,"tag":95,"props":4029,"children":4030},{"class":97,"line":974},[4031],{"type":40,"tag":95,"props":4032,"children":4033},{"emptyLinePlaceholder":256},[4034],{"type":45,"value":259},{"type":40,"tag":95,"props":4036,"children":4037},{"class":97,"line":983},[4038],{"type":40,"tag":95,"props":4039,"children":4040},{"style":102},[4041],{"type":45,"value":4042},"# Run against a specific branch (e.g., after removing a field)\n",{"type":40,"tag":95,"props":4044,"children":4045},{"class":97,"line":992},[4046,4050,4054,4058,4062,4066,4070,4074,4079,4083,4088,4092],{"type":40,"tag":95,"props":4047,"children":4048},{"style":191},[4049],{"type":45,"value":15},{"type":40,"tag":95,"props":4051,"children":4052},{"style":126},[4053],{"type":45,"value":3900},{"type":40,"tag":95,"props":4055,"children":4056},{"style":126},[4057],{"type":45,"value":4011},{"type":40,"tag":95,"props":4059,"children":4060},{"style":137},[4061],{"type":45,"value":233},{"type":40,"tag":95,"props":4063,"children":4064},{"style":126},[4065],{"type":45,"value":3914},{"type":40,"tag":95,"props":4067,"children":4068},{"style":241},[4069],{"type":45,"value":412},{"type":40,"tag":95,"props":4071,"children":4072},{"style":137},[4073],{"type":45,"value":417},{"type":40,"tag":95,"props":4075,"children":4076},{"style":126},[4077],{"type":45,"value":4078}," --branch-id",{"type":40,"tag":95,"props":4080,"children":4081},{"style":137},[4082],{"type":45,"value":233},{"type":40,"tag":95,"props":4084,"children":4085},{"style":126},[4086],{"type":45,"value":4087},"branchI",{"type":40,"tag":95,"props":4089,"children":4090},{"style":241},[4091],{"type":45,"value":412},{"type":40,"tag":95,"props":4093,"children":4094},{"style":137},[4095],{"type":45,"value":249},{"type":40,"tag":95,"props":4097,"children":4098},{"class":97,"line":1001},[4099],{"type":40,"tag":95,"props":4100,"children":4101},{"emptyLinePlaceholder":256},[4102],{"type":45,"value":259},{"type":40,"tag":95,"props":4104,"children":4105},{"class":97,"line":1010},[4106],{"type":40,"tag":95,"props":4107,"children":4108},{"style":102},[4109],{"type":45,"value":4110},"# Git configuration\n",{"type":40,"tag":95,"props":4112,"children":4113},{"class":97,"line":1019},[4114,4118,4122,4127,4131,4135,4139],{"type":40,"tag":95,"props":4115,"children":4116},{"style":191},[4117],{"type":45,"value":15},{"type":40,"tag":95,"props":4119,"children":4120},{"style":126},[4121],{"type":45,"value":3900},{"type":40,"tag":95,"props":4123,"children":4124},{"style":126},[4125],{"type":45,"value":4126}," git-get",{"type":40,"tag":95,"props":4128,"children":4129},{"style":137},[4130],{"type":45,"value":233},{"type":40,"tag":95,"props":4132,"children":4133},{"style":126},[4134],{"type":45,"value":3914},{"type":40,"tag":95,"props":4136,"children":4137},{"style":241},[4138],{"type":45,"value":412},{"type":40,"tag":95,"props":4140,"children":4141},{"style":137},[4142],{"type":45,"value":249},{"type":40,"tag":76,"props":4144,"children":4146},{"id":4145},"docs-reference",[4147],{"type":45,"value":4148},"Docs Reference",{"type":40,"tag":643,"props":4150,"children":4151},{},[4152],{"type":40,"tag":647,"props":4153,"children":4154},{},[4155,4163,4165,4172,4173,4180,4181,4187,4188,4194,4195,4201,4202,4208,4209,4216,4217,4224,4225],{"type":40,"tag":4156,"props":4157,"children":4161},"a",{"href":4158,"rel":4159},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fconnections.md",[4160],"nofollow",[4162],{"type":45,"value":697},{"type":45,"value":4164}," · ",{"type":40,"tag":4156,"props":4166,"children":4169},{"href":4167,"rel":4168},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fusers.md",[4160],[4170],{"type":45,"value":4171},"Users (SCIM)",{"type":45,"value":4164},{"type":40,"tag":4156,"props":4174,"children":4177},{"href":4175,"rel":4176},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fuser-groups.md",[4160],[4178],{"type":45,"value":4179},"Groups (SCIM)",{"type":45,"value":4164},{"type":40,"tag":4156,"props":4182,"children":4185},{"href":4183,"rel":4184},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fuser-attributes.md",[4160],[4186],{"type":45,"value":1378},{"type":45,"value":4164},{"type":40,"tag":4156,"props":4189,"children":4192},{"href":4190,"rel":4191},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fdocument-permissions.md",[4160],[4193],{"type":45,"value":1830},{"type":45,"value":4164},{"type":40,"tag":4156,"props":4196,"children":4199},{"href":4197,"rel":4198},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Ffolder-permissions.md",[4160],[4200],{"type":45,"value":2639},{"type":45,"value":4164},{"type":40,"tag":4156,"props":4203,"children":4206},{"href":4204,"rel":4205},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fschedules.md",[4160],[4207],{"type":45,"value":2770},{"type":45,"value":4164},{"type":40,"tag":4156,"props":4210,"children":4213},{"href":4211,"rel":4212},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fschedule-recipients.md",[4160],[4214],{"type":45,"value":4215},"Schedule Recipients",{"type":45,"value":4164},{"type":40,"tag":4156,"props":4218,"children":4221},{"href":4219,"rel":4220},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fcontent-validator.md",[4160],[4222],{"type":45,"value":4223},"Content Validator",{"type":45,"value":4164},{"type":40,"tag":4156,"props":4226,"children":4229},{"href":4227,"rel":4228},"https:\u002F\u002Fdocs.omni.co\u002Fapi\u002Fauthentication.md",[4160],[4230],{"type":45,"value":4231},"API Authentication",{"type":40,"tag":76,"props":4233,"children":4235},{"id":4234},"related-skills",[4236],{"type":45,"value":4237},"Related Skills",{"type":40,"tag":643,"props":4239,"children":4240},{},[4241,4251,4261,4271],{"type":40,"tag":647,"props":4242,"children":4243},{},[4244,4249],{"type":40,"tag":61,"props":4245,"children":4246},{},[4247],{"type":45,"value":4248},"omni-model-builder",{"type":45,"value":4250}," — edit the model that access controls apply to",{"type":40,"tag":647,"props":4252,"children":4253},{},[4254,4259],{"type":40,"tag":61,"props":4255,"children":4256},{},[4257],{"type":45,"value":4258},"omni-content-explorer",{"type":45,"value":4260}," — find documents before setting permissions",{"type":40,"tag":647,"props":4262,"children":4263},{},[4264,4269],{"type":40,"tag":61,"props":4265,"children":4266},{},[4267],{"type":45,"value":4268},"omni-content-builder",{"type":45,"value":4270}," — create dashboards before scheduling delivery",{"type":40,"tag":647,"props":4272,"children":4273},{},[4274,4279],{"type":40,"tag":61,"props":4275,"children":4276},{},[4277],{"type":45,"value":4278},"omni-embed",{"type":45,"value":4280}," — manage embed users and user attributes for embedded dashboards",{"type":40,"tag":4282,"props":4283,"children":4284},"style",{},[4285],{"type":45,"value":4286},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4288,"total":992},[4289,4295,4307,4322,4337,4350,4365,4378,4394,4408,4423],{"slug":4,"name":4,"fn":5,"description":6,"org":4290,"tags":4291,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4292,4293,4294],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":4296,"name":4296,"fn":4297,"description":4298,"org":4299,"tags":4300,"stars":23,"repoUrl":24,"updatedAt":4306},"omni-ai-eval","evaluate Omni AI query accuracy","Evaluate Omni AI accuracy using Omni's built-in eval system — define a prompt set, run a judged eval against a model (or branch), and read the accuracy-judge verdicts. Use this skill whenever someone wants to evaluate Omni AI, benchmark Blobby, run regression tests, compare AI output across branches or model-context changes, measure AI quality, run A\u002FB tests on model changes, assess the impact of an ai_context or modeling change, or any variant of \"run evals\", \"test Blobby\", \"benchmark query generation\", \"compare AI results\", \"regression test\", \"how accurate is the AI\", or \"measure the impact of my changes\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4301,4302,4305],{"name":21,"slug":22,"type":16},{"name":4303,"slug":4304,"type":16},"Evals","evals",{"name":14,"slug":15,"type":16},"2026-04-06T18:10:59.485921",{"slug":4308,"name":4308,"fn":4309,"description":4310,"org":4311,"tags":4312,"stars":23,"repoUrl":24,"updatedAt":4321},"omni-ai-optimizer","optimize Omni models for AI","Optimize your Omni Analytics model for Blobby, the Omni Agent — configure ai_context, ai_fields, synonyms, sample_queries, and AI-specific topic extensions. Use this skill whenever someone wants to improve AI accuracy in Omni, make Blobby smarter, add AI context or example questions, curate which fields the AI sees, personalize AI context by user attribute, scope context to a model tier or agent, diagnose context-window pruning or truncation, control which topics AI can reach, troubleshoot why Blobby gives wrong answers, or any variant of \"make the AI better\", \"Blobby isn't answering correctly\", \"optimize for AI\", or \"teach the AI about our data\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4313,4316,4317,4320],{"name":4314,"slug":4315,"type":16},"AI Context","ai-context",{"name":21,"slug":22,"type":16},{"name":4318,"slug":4319,"type":16},"Data Modeling","data-modeling",{"name":14,"slug":15,"type":16},"2026-07-27T06:09:42.358967",{"slug":4268,"name":4268,"fn":4323,"description":4324,"org":4325,"tags":4326,"stars":23,"repoUrl":24,"updatedAt":4336},"manage Omni Analytics documents and dashboards","Create, update, and manage Omni Analytics documents and dashboards programmatically — document lifecycle, drafts, tiles, visualizations, filters, controls, and layouts — using the Omni CLI. Use this skill whenever someone wants to build a dashboard, create a workbook, add tiles or charts, configure dashboard filters or controls, update an existing dashboard's model, set up a KPI view, create visualizations, lay out a dashboard, arrange tiles or pages, create a document, edit a dashboard as a draft, publish a draft, change dashboard settings, rename a workbook, delete a dashboard, move a document to a folder, duplicate a dashboard, or any variant of \"build a dashboard for\", \"create a report showing\", \"add a chart to\", \"make a dashboard\", \"update the dashboard layout\", \"rename this document\", \"publish this draft\", \"move to folder\", or \"delete this dashboard\". Also use when modifying dashboard-level model customizations like workbook-specific joins or fields.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4327,4328,4329,4332,4335],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4330,"slug":4331,"type":16},"Dashboards","dashboards",{"name":4333,"slug":4334,"type":16},"Data Visualization","data-visualization",{"name":14,"slug":15,"type":16},"2026-04-06T18:11:02.007785",{"slug":4258,"name":4258,"fn":4338,"description":4339,"org":4340,"tags":4341,"stars":23,"repoUrl":24,"updatedAt":4349},"find and organize Omni Analytics content","Find, browse, and organize content in Omni Analytics — dashboards, workbooks, folders, and labels — using the Omni CLI. Use this skill whenever someone wants to find an existing dashboard, search for content, list workbooks, browse folders, see what dashboards exist, find popular reports, download a dashboard as PDF or PNG, favorite content, manage labels on documents, or any variant of \"find the dashboard about\", \"what reports do we have\", \"show me our dashboards\", \"where is the sales report\", or \"download this dashboard\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4342,4343,4344,4345,4346],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4330,"slug":4331,"type":16},{"name":14,"slug":15,"type":16},{"name":4347,"slug":4348,"type":16},"Search","search","2026-04-06T18:11:04.516766",{"slug":4278,"name":4278,"fn":4351,"description":4352,"org":4353,"tags":4354,"stars":23,"repoUrl":24,"updatedAt":4364},"embed Omni Analytics dashboards","Embed Omni Analytics dashboards in external applications — URL signing, custom themes, iframe events, entity workspaces, and permission-aware content — using the @omni-co\u002Fembed SDK and Omni CLI. Use this skill whenever someone wants to embed a dashboard, sign an embed URL, customize the embedded theme, handle embed events, listen for clicks or drills in the iframe, send filters to an embedded dashboard, set up entity workspaces, look up embed users, build a permission-aware content list, white-label an embedded dashboard, or any variant of \"embed this dashboard\", \"customize the iframe theme\", \"handle click events from the embed\", \"filter the embedded dashboard\", \"set up embedding\", or \"what dashboards can this user see\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4355,4356,4357,4360,4361],{"name":21,"slug":22,"type":16},{"name":4330,"slug":4331,"type":16},{"name":4358,"slug":4359,"type":16},"Frontend","frontend",{"name":14,"slug":15,"type":16},{"name":4362,"slug":4363,"type":16},"SDK","sdk","2026-04-06T18:10:55.739544",{"slug":4248,"name":4248,"fn":4366,"description":4367,"org":4368,"tags":4369,"stars":23,"repoUrl":24,"updatedAt":4377},"build Omni Analytics semantic models","Create and edit Omni Analytics semantic model definitions — views, topics, dimensions, measures, relationships, and query views — using YAML through the Omni CLI. Use this skill whenever someone wants to add a field, create a new dimension or measure, define a topic, set up joins between tables, modify the data model, build a new view, add a calculated field, create a relationship, edit YAML, work on a branch, promote model changes, or any variant of \"model this data\", \"add this metric\", \"create a view for\", or \"set up a join between\". Also use for migrating modeling patterns since Omni's YAML is conceptually similar to other semantic layer definitions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4370,4371,4372,4373,4374],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4318,"slug":4319,"type":16},{"name":14,"slug":15,"type":16},{"name":4375,"slug":4376,"type":16},"YAML","yaml","2026-04-06T18:11:05.775943",{"slug":4379,"name":4379,"fn":4380,"description":4381,"org":4382,"tags":4383,"stars":23,"repoUrl":24,"updatedAt":4393},"omni-model-explorer","discover and inspect Omni Analytics models","Discover and inspect Omni Analytics models, topics, views, fields, dimensions, measures, and relationships using the Omni CLI. Use this skill whenever someone wants to understand what data is available in Omni, explore their semantic model, find specific fields or views, check how tables join together, see what topics exist, or asks any variant of \"what can I query\", \"what fields are available\", \"show me the model\", \"what data do we have\", or \"how is this data modeled\". Also use when you need to understand the Omni model structure before building or modifying anything.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4384,4385,4386,4389,4392],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4387,"slug":4388,"type":16},"Data Analysis","data-analysis",{"name":4390,"slug":4391,"type":16},"Knowledge Management","knowledge-management",{"name":14,"slug":15,"type":16},"2026-04-06T18:11:00.739003",{"slug":4395,"name":4395,"fn":4396,"description":4397,"org":4398,"tags":4399,"stars":23,"repoUrl":24,"updatedAt":4407},"omni-query","query Omni Analytics semantic layer","Run queries against Omni Analytics' semantic layer using the Omni CLI, interpret results, and chain queries for multi-step analysis. Use this skill whenever someone wants to query data through Omni, run a report, get metrics, pull numbers, analyze data, ask \"how many\" \u002F \"what's the trend\" \u002F \"show me the data\", retrieve dashboard query results, or extract data from an existing dashboard or workbook. Also use for table calculations and computed columns (running totals, percent-of-total, month-over-month \u002F period-over-period change, moving averages, rankings), open-ended multi-step analysis via agentic AI jobs, and running raw SQL through the semantic layer — even when the user doesn't say \"query\" (e.g. \"add a running total column\", \"what's our MoM growth\", \"analyze revenue trends\"). For building or editing a dashboard or chart use omni-content-builder; for adding a field or measure to the model use omni-model-builder — this skill retrieves and computes over data.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4400,4401,4402,4403,4404],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4387,"slug":4388,"type":16},{"name":14,"slug":15,"type":16},{"name":4405,"slug":4406,"type":16},"SQL","sql","2026-04-06T18:10:56.974412",{"slug":4409,"name":4409,"fn":4410,"description":4411,"org":4412,"tags":4413,"stars":23,"repoUrl":24,"updatedAt":4422},"omni-to-databricks-metric-view","convert Omni topics to Databricks Metric Views","Convert an Omni Analytics topic into a Databricks Metric View definition in Unity Catalog. Use this skill whenever someone wants to export Omni metrics to Databricks, create a Metric View from an Omni topic, harden BI metrics into Unity Catalog, or bridge Omni's semantic layer with Databricks AI\u002FBI dashboards and Genie spaces.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4414,4415,4418,4421],{"name":21,"slug":22,"type":16},{"name":4416,"slug":4417,"type":16},"Data Engineering","data-engineering",{"name":4419,"slug":4420,"type":16},"Databricks","databricks",{"name":14,"slug":15,"type":16},"2026-04-09T04:47:50.695014",{"slug":4424,"name":4424,"fn":4425,"description":4426,"org":4427,"tags":4428,"stars":23,"repoUrl":24,"updatedAt":4436},"omni-to-snowflake-semantic-view","convert Omni topics to Snowflake views","Convert an Omni Analytics topic into a Snowflake Semantic View YAML definition. Use this skill whenever someone wants to export Omni metrics to Snowflake, create a Semantic View from an Omni topic, harden BI metrics into the warehouse, or bridge Omni's semantic layer with Snowflake Cortex Analyst.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4429,4430,4431,4432,4435],{"name":21,"slug":22,"type":16},{"name":4416,"slug":4417,"type":16},{"name":14,"slug":15,"type":16},{"name":4433,"slug":4434,"type":16},"Snowflake","snowflake",{"name":4375,"slug":4376,"type":16},"2026-04-06T18:11:25.009706",{"items":4438,"total":992},[4439,4445,4451,4458,4466,4474,4482],{"slug":4,"name":4,"fn":5,"description":6,"org":4440,"tags":4441,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4442,4443,4444],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":4296,"name":4296,"fn":4297,"description":4298,"org":4446,"tags":4447,"stars":23,"repoUrl":24,"updatedAt":4306},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4448,4449,4450],{"name":21,"slug":22,"type":16},{"name":4303,"slug":4304,"type":16},{"name":14,"slug":15,"type":16},{"slug":4308,"name":4308,"fn":4309,"description":4310,"org":4452,"tags":4453,"stars":23,"repoUrl":24,"updatedAt":4321},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4454,4455,4456,4457],{"name":4314,"slug":4315,"type":16},{"name":21,"slug":22,"type":16},{"name":4318,"slug":4319,"type":16},{"name":14,"slug":15,"type":16},{"slug":4268,"name":4268,"fn":4323,"description":4324,"org":4459,"tags":4460,"stars":23,"repoUrl":24,"updatedAt":4336},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4461,4462,4463,4464,4465],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4330,"slug":4331,"type":16},{"name":4333,"slug":4334,"type":16},{"name":14,"slug":15,"type":16},{"slug":4258,"name":4258,"fn":4338,"description":4339,"org":4467,"tags":4468,"stars":23,"repoUrl":24,"updatedAt":4349},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4469,4470,4471,4472,4473],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4330,"slug":4331,"type":16},{"name":14,"slug":15,"type":16},{"name":4347,"slug":4348,"type":16},{"slug":4278,"name":4278,"fn":4351,"description":4352,"org":4475,"tags":4476,"stars":23,"repoUrl":24,"updatedAt":4364},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4477,4478,4479,4480,4481],{"name":21,"slug":22,"type":16},{"name":4330,"slug":4331,"type":16},{"name":4358,"slug":4359,"type":16},{"name":14,"slug":15,"type":16},{"name":4362,"slug":4363,"type":16},{"slug":4248,"name":4248,"fn":4366,"description":4367,"org":4483,"tags":4484,"stars":23,"repoUrl":24,"updatedAt":4377},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[4485,4486,4487,4488,4489],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":4318,"slug":4319,"type":16},{"name":14,"slug":15,"type":16},{"name":4375,"slug":4376,"type":16}]