Human, Application, and Agent identities, including the system-managed OleanderSystem principal.
A principal is an identity that can receive roles and own API keys. Manage principals in Settings → Access → Users, under the Human, Application, and Agent tabs.
Invite to the organization; remove their membership when access is no longer needed.
Application
Services, integrations, and automated workloads.
Create an identity in the organization; delete it when no longer needed.
Agent
AI agents that need their own access.
Create an identity in the organization; delete it when no longer needed.
Removing a Human removes membership in the current organization, not the person’s account. Deleting an Application or Agent deletes that organization-owned identity. Organization owners and system-managed principals are protected from these removal operations.New custom Application and Agent principals receive a default API key, but no roles automatically. Assign the roles they need before using IAM-managed resources. Human invitations can include roles; inviting requires Invite for All human principals and Manage grants on each selected role.
Open a principal’s actions menu and choose Manage to assign or unassign its roles. Each change requires Manage grants on both the principal and the role.
An API key acts as its owner. A scheduled job uses its configured execution principal, whose current organization membership and compute access are checked when it runs. A schedule can run only as the person creating it or as an Application principal; other Humans and Agents cannot be selected, and choosing an Application requires Describe and Manage grants on it.An MCP OAuth connection can act as the signed-in user or a selected, non-system-managed Agent principal. Selecting another execution principal requires Describe and Manage grants on that principal. MCP delegation is checked again when the connection refreshes its credentials.The selected principal’s permissions govern the work. The person configuring the connection or schedule does not transfer their own permissions to it.
Oleander provisions an Application principal named OleanderSystem for each organization. It starts with the JobOperator role and a default API key. Internal workflows use this key for operations including OpenLineage reporting.JobOperator grants Execute and Abort across all compute engines; it does not grant warehouse data access. Being system-managed does not bypass IAM checks.OleanderSystem cannot be deleted. Its role assignments remain subject to the ordinary assignment rules, so authorized administrators can change them.
Revoking OleanderSystem’s default API key can interrupt workflows that depend on it. Retrying organization provisioning preserves the existing key and its revocation state; it does not reactivate a revoked key.
See Resources and actions for the actions available at each principal scope, including currently unimplemented lifecycle actions.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"oleander","colors":{"primary":"#ec4899","light":"#f472b6","dark":"#db2777"},"logo":{"light":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/light.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=310e150e92ecf20e459e0231d14e554b","dark":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/dark.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=a92922eda9e5b45cf4ec06ae1af0cd61"},"favicon":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/favicon.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=20b6f00aa8532b600cb78044894e7dda","background":{"color":{"dark":"#020817"}},"navbar":{"links":[{"href":"mailto:willy@oleander.dev","label":"Support"}],"primary":{"type":"button","label":"oleander.dev","href":"https://oleander.dev/account"}},"footer":{"socials":{"x":"https://x.com/OleanderHQ","github":"https://github.com/OleanderHQ","linkedin":"https://www.linkedin.com/company/oleander-dev"}},"seo":{"metatags":{"title":"oleander","description":"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.","og:site_name":"oleander","og:description":"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.","twitter:image":"https://oleander.dev/opengraph-image","og:image":"https://oleander.dev/opengraph-image"},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Slack","icon":"slack","href":"https://join.slack.com/t/oleander-hq/shared_invite/zt-2wzl5ncjb-c~ZubVAHVzBP7OZM~Hwuyw"},{"anchor":"Blog","icon":"newspaper","href":"https://oleander.dev/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"oleander","hasAudioNarration":false,"actualSubdomain":"oleander","customDomains":["docs.oleander.dev"],"gitSource":{"type":"github","owner":"oleanderhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeccce50229ed55d56c000a","collectionId":"1777c509-a1c0-4a6c-ae54-36ca88699899","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeccce50229ed55d56c000a"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6aee07ac1700a18ffd1d250d","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Documentation","count":55},{"language":"default","tag":"Platform","count":19},{"language":"default","tag":"SDKs","count":14},{"language":"default","tag":"API Reference","count":7},{"language":"default","tag":"Python","count":7},{"language":"default","tag":"TypeScript","count":7},{"language":"default","tag":"CLI","count":6},{"language":"default","tag":"IAM","count":6},{"language":"default","tag":"Integrations","count":6},{"language":"default","tag":"Coding with agents","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"iam/principals","slug":"/iam/principals","pageMetadata":{"title":"Principals","description":"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.","href":"/iam/principals"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A principal is an identity that can receive `,_jsx(_components.a,{href:`/iam/roles`,children:`roles`}),` and own `,_jsx(_components.a,{href:`/platform/settings/api-keys`,children:`API keys`}),`. Manage principals in `,_jsx(_components.a,{href:`https://oleander.dev/app/settings/members`,children:`Settings → Access → Users`}),`, under the `,_jsx(_components.strong,{children:`Human`}),`, `,_jsx(_components.strong,{children:`Application`}),`, and `,_jsx(_components.strong,{children:`Agent`}),` tabs.`]}),`\n`,_jsx(Heading,{level:`2`,id:`principal-types`,children:`Principal types`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Used for`}),_jsx(_components.th,{children:`Lifecycle`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Human`}),_jsx(_components.td,{children:`People who sign in to oleander.`}),_jsx(_components.td,{children:`Invite to the organization; remove their membership when access is no longer needed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Application`}),_jsx(_components.td,{children:`Services, integrations, and automated workloads.`}),_jsx(_components.td,{children:`Create an identity in the organization; delete it when no longer needed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Agent`}),_jsx(_components.td,{children:`AI agents that need their own access.`}),_jsx(_components.td,{children:`Create an identity in the organization; delete it when no longer needed.`})]})]})]}),`\n`,_jsx(_components.p,{children:`Removing a Human removes membership in the current organization, not the person’s account. Deleting an Application or Agent deletes that organization-owned identity. Organization owners and system-managed principals are protected from these removal operations.`}),`\n`,_jsxs(_components.p,{children:[`New custom Application and Agent principals receive a default API key, but no roles automatically. Assign the roles they need before using IAM-managed resources. Human invitations can include roles; inviting requires `,_jsx(_components.strong,{children:`Invite`}),` for `,_jsx(_components.strong,{children:`All human principals`}),` and `,_jsx(_components.strong,{children:`Manage grants`}),` on each selected role.`]}),`\n`,_jsx(Heading,{level:`2`,id:`managing-a-principal’s-roles`,children:`Managing a principal’s roles`}),`\n`,_jsxs(_components.p,{children:[`Open a principal’s actions menu and choose `,_jsx(_components.strong,{children:`Manage`}),` to assign or unassign its roles. Each change requires `,_jsx(_components.strong,{children:`Manage grants`}),` on both the principal and the role.`]}),`\n`,_jsx(Heading,{level:`2`,id:`acting-as-a-principal`,children:`Acting as a principal`}),`\n`,_jsxs(_components.p,{children:[`An API key acts as its owner. A scheduled job uses its configured execution principal, whose current organization membership and compute access are checked when it runs. A schedule can run only as the person creating it or as an Application principal; other Humans and Agents cannot be selected, and choosing an Application requires `,_jsx(_components.strong,{children:`Describe`}),` and `,_jsx(_components.strong,{children:`Manage grants`}),` on it.`]}),`\n`,_jsxs(_components.p,{children:[`An MCP OAuth connection can act as the signed-in user or a selected, non-system-managed Agent principal. Selecting another execution principal requires `,_jsx(_components.strong,{children:`Describe`}),` and `,_jsx(_components.strong,{children:`Manage grants`}),` on that principal. MCP delegation is checked again when the connection refreshes its credentials.`]}),`\n`,_jsx(_components.p,{children:`The selected principal’s permissions govern the work. The person configuring the connection or schedule does not transfer their own permissions to it.`}),`\n`,_jsx(Heading,{level:`2`,id:`oleandersystem`,children:`OleanderSystem`}),`\n`,_jsxs(_components.p,{children:[`Oleander provisions an Application principal named `,_jsx(_components.strong,{children:`OleanderSystem`}),` for each organization. It starts with the `,_jsx(_components.strong,{children:`JobOperator`}),` role and a default API key. Internal workflows use this key for operations including OpenLineage reporting.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`JobOperator`}),` grants `,_jsx(_components.strong,{children:`Execute`}),` and `,_jsx(_components.strong,{children:`Abort`}),` across all compute engines; it does not grant warehouse data access. Being system-managed does not bypass IAM checks.`]}),`\n`,_jsxs(_components.p,{children:[`OleanderSystem cannot be deleted. Its role assignments remain subject to the ordinary `,_jsx(_components.a,{href:`/iam/permissions#delegating-access`,children:`assignment rules`}),`, so authorized administrators can change them.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Revoking OleanderSystem’s default API key can interrupt workflows that depend on it. Retrying organization provisioning preserves the existing key and its revocation state; it does not reactivate a revoked key.`})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/iam/resources-and-actions#principals`,children:`Resources and actions`}),` for the actions available at each principal scope, including currently unimplemented lifecycle actions.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Principals","description":"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.","href":"/iam/principals"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Principal types","slug":"principal-types","depth":2,"children":[]},{"title":"Managing a principal’s roles","slug":"managing-a-principal’s-roles","depth":2,"children":[]},{"title":"Acting as a principal","slug":"acting-as-a-principal","depth":2,"children":[]},{"title":"OleanderSystem","slug":"oleandersystem","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"oleander","siteName":"oleander","title":"Principals - oleander","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T18:37:38.302Z","originalFileLocation":"iam/principals.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.\">\u003cmeta data-mint-head name=\"application-name\" content=\"oleander\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Principals - oleander\">\u003cmeta data-mint-head property=\"og:description\" content=\"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"oleander\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.oleander.dev/iam/principals\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://oleander.dev/opengraph-image\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Principals - oleander\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://oleander.dev/opengraph-image\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"oleander\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ec4899\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.oleander.dev/iam/principals\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/iam/principals.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.oleander.dev/#organization\",\"name\":\"oleander\",\"url\":\"https://docs.oleander.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/light.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=310e150e92ecf20e459e0231d14e554b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.oleander.dev#website\",\"name\":\"oleander\",\"url\":\"https://docs.oleander.dev\",\"publisher\":{\"@id\":\"https://docs.oleander.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.oleander.dev/iam/principals#webpage\",\"url\":\"https://docs.oleander.dev/iam/principals\",\"name\":\"Principals\",\"description\":\"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.\",\"dateModified\":\"2026-11-05T18:37:38.302Z\",\"isPartOf\":{\"@id\":\"https://docs.oleander.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.oleander.dev/iam/principals#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.oleander.dev/iam/principals#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"IAM\",\"item\":\"https://docs.oleander.dev/iam/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Principals\",\"item\":\"https://docs.oleander.dev/iam/principals\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.oleander.dev/iam/principals#article\",\"headline\":\"Principals\",\"name\":\"Principals\",\"description\":\"Human, Application, and Agent identities, including the system-managed OleanderSystem principal.\",\"url\":\"https://docs.oleander.dev/iam/principals\",\"mainEntityOfPage\":{\"@id\":\"https://docs.oleander.dev/iam/principals#webpage\"},\"image\":\"https://oleander.dev/opengraph-image\",\"dateModified\":\"2026-11-05T18:37:38.302Z\",\"publisher\":{\"@id\":\"https://docs.oleander.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.oleander.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"oleander\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"oleander","nav":{"global":{"anchors":[{"anchor":"Slack","icon":"slack","href":"https://join.slack.com/t/oleander-hq/shared_invite/zt-2wzl5ncjb-c~ZubVAHVzBP7OZM~Hwuyw"},{"anchor":"Blog","icon":"newspaper","href":"https://oleander.dev/blog"}]},"tabs":[{"tab":"Documentation","icon":"book-open","groups":[{"group":"Getting Started","pages":[{"title":"Quickstart","href":"/quickstart"},{"title":"Introduction","sidebarTitle":"About","href":"/introduction"},{"title":"Architecture","href":"/architecture"}]},{"group":"Platform","pages":[{"group":"Compute","pages":[{"group":"Bloom","root":{"title":"Bloom","sidebarTitle":"Bloom","href":"/platform/compute/bloom"},"expanded":true,"pages":[{"group":"Functions","pages":[{"title":"Jev functions","sidebarTitle":"Jev","tag":"BETA","href":"/platform/compute/bloom/functions/jev"}]}]},{"title":"DuckDB","sidebarTitle":"DuckDB","href":"/platform/compute/duckdb"},{"title":"Polars","sidebarTitle":"Polars","href":"/platform/compute/polars"},{"title":"Jobs","sidebarTitle":"Spark","href":"/platform/compute/spark"},{"title":"Notebooks","sidebarTitle":"Notebooks","tag":"ALPHA","href":"/platform/compute/notebooks"}]},{"group":"Storage","pages":[{"group":"Catalogs","root":{"title":"Catalogs","href":"/platform/storage/catalogs"},"expanded":true,"pages":[{"title":"Amazon S3 Tables","href":"/platform/storage/catalogs/s3-tables"},{"title":"Snowflake Horizon","href":"/platform/storage/catalogs/snowflake-horizon"},{"title":"Confluent Tableflow","tag":"ALPHA","href":"/platform/storage/catalogs/confluent-tableflow"}]},{"title":"Tables","href":"/platform/storage/tables"}]},{"group":"Observability","pages":[{"title":"Observability","sidebarTitle":"Overview","href":"/platform/observability/overview"},{"title":"Lineage","sidebarTitle":"Lineage","href":"/platform/observability/lineage/overview"},{"title":"Alerts","href":"/platform/observability/alerts"},{"title":"Chat","sidebarTitle":"Chat","href":"/platform/observability/chat"}]},{"group":"Query routing","root":{"title":"Query routing","sidebarTitle":"Overview","href":"/platform/query-routing/overview"},"expanded":true,"pages":[{"title":"Transpilation","sidebarTitle":"Transpilation","href":"/platform/query-routing/transpilation"},{"title":"Ask AI","sidebarTitle":"Ask AI","href":"/platform/query-routing/ask-ai"}]},{"group":"Settings","pages":[{"title":"Integrations","href":"/platform/settings/integrations"},{"title":"Environment","href":"/platform/settings/environment"},{"title":"Webhooks","href":"/platform/settings/webhooks"},{"title":"Audit logs","href":"/platform/settings/audit-logs"}]}]},{"group":"IAM","pages":[{"title":"Overview","description":"Control who can use compute, access data, and administer your organization.","href":"/iam/overview"},{"title":"Principals","href":"/iam/principals"},{"title":"Roles","description":"Group permissions into custom roles or use oleander’s system-managed roles.","href":"/iam/roles"},{"title":"Permissions","href":"/iam/permissions"},{"title":"API keys","href":"/platform/settings/api-keys"},{"title":"Resources and actions","href":"/iam/resources-and-actions"}]},{"group":"Connections","pages":[{"title":"Postgres","href":"/connections/postgres"},{"title":"MySQL","href":"/connections/mysql"},{"title":"MongoDB","href":"/connections/mongodb"},{"title":"BigQuery","href":"/connections/bigquery"},{"title":"Snowflake","href":"/connections/snowflake"}]},{"group":"Integrations","pages":[{"title":"Artie","href":"/integrations/artie"},{"title":"ClickHouse","href":"/integrations/clickhouse"},{"title":"eve","sidebarTitle":"eve by Vercel","href":"/integrations/eve"},{"title":"Redpanda","href":"/integrations/redpanda"},{"title":"Streamkap","href":"/integrations/streamkap"},{"title":"Vercel","href":"/integrations/vercel"}]},{"group":"Coding with agents","pages":[{"title":"Coding with agents","sidebarTitle":"Overview","href":"/mcp/introduction"},{"group":"Setup","pages":[{"title":"Claude","sidebarTitle":"Claude","href":"/mcp/claude"},{"title":"OpenAI Codex","sidebarTitle":"Codex","href":"/mcp/codex"},{"title":"Cursor","sidebarTitle":"Cursor","href":"/mcp/cursor"},{"title":"OpenCode","sidebarTitle":"OpenCode","href":"/mcp/opencode"},{"title":"MCP Tools Reference","sidebarTitle":"MCP Reference","href":"/mcp/protocol"}]}]},{"group":"CLI","pages":[{"title":"Intro","href":"/cli/introduction"},{"title":"Spark","href":"/cli/spark"},{"title":"Lake","href":"/cli/lake"},{"title":"Polars","href":"/cli/polars"},{"title":"Env","href":"/cli/env"},{"title":"Queries","href":"/cli/queries"}]},{"group":"External Compute","pages":[{"title":"Spark","href":"/integrations/spark"},{"title":"Airflow","href":"/integrations/airflow"},{"title":"dbt","href":"/integrations/dbt"},{"title":"OpenLineage producers","sidebarTitle":"OpenLineage","href":"/build-deploy"}]}]},{"tab":"API Reference","icon":"terminal","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/sdk/typescript/introduction"}]}]},"basePath":"","title":"Principals - oleander","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}