The --api-key option can be used to provide an Openlayer API key
when running Openlayer CLI commands.For example, to push without having to run openlayer login:
The --ca-bundle <path> option trusts extra CA certificates in addition to your system
roots, for deployments behind a private CA. Each <path> may be a PEM file or a directory of
certificates. Repeat the flag to pass several paths. The CLI uses them for sign-in, API
requests, and bundle uploads.--ca-bundle is a global option, so you can use it with any command.A single PEM file can contain multiple certificates concatenated together. For a directory,
the CLI loads every .pem, .crt, and .cer file directly inside it (not recursively). If a
certificate cannot be parsed, the CLI reports which file and which certificate failed rather
than skipping the bad block.OPENLAYER_CA_BUNDLE and the deprecated INTERNAL_CERT_PATH accept the same paths as a list,
separated by : on Unix or ; on Windows.
The CLI also reads configuration from environment variables. They are the simplest way to
configure the CLI in CI/CD and other non-interactive environments, because they replace
openlayer login and
openlayer link entirely:
If your self-hosted Openlayer deployment uses a certificate issued by a private or enterprise
CA, pass --ca-bundle when you sign in. Repeat the flag, point it at a directory, set a
list-separated environment variable, or concatenate the certificates into one PEM file:
# Repeat the flagopenlayer login --ca-bundle corp-root.crt --ca-bundle corp-issuing.crt# Or a directory holding bothopenlayer login --ca-bundle ~/.config/certs/corp/# Or one list-separated environment variable (";" on Windows)export OPENLAYER_CA_BUNDLE="$HOME/corp-root.crt:$HOME/corp-issuing.crt"# Or concatenate them yourselfcat corp-root.crt corp-issuing.crt > corp-ca.pemopenlayer login --ca-bundle corp-ca.pem
On login, the CLI saves the CA bundle path(s) to the active profile as one list-separated
string. Later commands pick it up automatically, so you do not need to pass the flag or
environment variable again.For certificate settings, the CLI uses the command-line flag first, then the environment
variable, then the value saved in the active profile. The first source that is set wins
outright — sources are not merged.What to put in the bundle:
If the server presents the leaf certificate and the intermediates, the root alone is enough.
If the server presents the leaf only, include the intermediates as well.
Including the whole chain is always safe; when in doubt, include it.
On macOS, the CLI can reject a certificate that curl and the Python SDK accept with a message
like:
x509: "*.example.internal" certificate is not standards compliant
Supply --ca-bundle to resolve this. Prefer it over --insecure.
The --output-mode option controls how the CLI formats its output. It accepts terminal
(the default, with colors and interactive progress) or ci (plain output suited for CI logs).
openlayer push --output-mode=ci
ci is also a no-prompt guard: in this mode the CLI never asks for input. A command that
would otherwise prompt fails with an error telling you to pass the value as a flag or
environment variable, rather than hanging on a missing terminal.That makes the commands that used to be terminal-only usable in automation:
openlayer login signs in from
--api-key or OPENLAYER_API_KEY. An explicitly supplied key is enough on its own — you do
not have to pass --output-mode ci for this.
openlayer link links to the
project named by --project. --output-mode ci implies its --yes flag.
The --version option can be used to verify the version of Openlayer CLI being used.
openlayer --version
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Openlayer","colors":{"primary":"#592FEA","light":"#7A58EE","dark":"#7A58EE"},"logo":{"light":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132","dark":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand-dark.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=7b5e924f18a184a4444ec36e2a23b061","href":"https://openlayer.com"},"favicon":"https://mintcdn.com/openlayer-44/kSF2u3BEB6ygCIR0/favicon.svg?fit=max\u0026auto=format\u0026n=kSF2u3BEB6ygCIR0\u0026q=85\u0026s=956d0871161771d155ff4903add290e5","api":{"openapi":["api-reference/openapi.yaml"],"playground":{"display":"none"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.openlayer.com/v1"}},"appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.gg/t6wS2g6MMB","label":"Community"},{"href":"https://app.openlayer.com/?login=true","label":"Log in"}],"primary":{"type":"button","label":"Get started","href":"https://app.openlayer.com/"}},"footer":{"socials":{"discord":"https://discord.gg/t6wS2g6MMB","linkedin":"https://www.linkedin.com/company/openlayerco","twitter":"https://twitter.com/openlayerco"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"mixpanel":{"projectToken":"401ce9e4de4663c33009eb3d140d3945"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openlayer-44","hasAudioNarration":false,"actualSubdomain":"openlayer-44","customDomains":["docs.openlayer.com"],"gitSource":{"type":"github","owner":"openlayer-ai","repo":"openlayer-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec177ab4a9a5921893f321","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Documentation","count":197},{"language":"default","tag":"Tests","count":122},{"language":"default","tag":"Catalog","count":111},{"language":"default","tag":"Reference","count":91},{"language":"default","tag":"REST API","count":64},{"language":"default","tag":"Integrations","count":62},{"language":"default","tag":"Governance","count":35},{"language":"default","tag":"Observability","count":23},{"language":"default","tag":"CLI","count":19},{"language":"default","tag":"No-Code Platforms","count":18}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"editor-metadata","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":"api-reference/cli/global-options","slug":"/api-reference/cli/global-options","pageMetadata":{"title":"CLI global options","description":"Learn about the global options available for the Openlayer CLI","href":"/api-reference/cli/global-options"},"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: \"Learn about the global options available for the Openlayer CLI\"\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`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Global options are commonly available to use with multiple Openlayer CLI commands.`}),`\n`,_jsx(Heading,{level:`2`,id:`api-key`,children:`API key`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--api-key`}),` option can be used to provide an `,_jsx(_components.a,{href:`/workspace-and-projects/find-your-api-key`,children:`Openlayer API key`}),`\nwhen running Openlayer CLI commands.`]}),`\n`,_jsxs(_components.p,{children:[`For example, to push without having to run `,_jsx(_components.a,{href:`/api-reference/cli/commands/login`,children:_jsx(_components.code,{children:`openlayer login`})}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` push`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --api-key=[your api key here]`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`custom-ca-bundle`,children:`Custom CA bundle`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--ca-bundle \u003cpath>`}),` option trusts extra CA certificates in addition to your system\nroots, for deployments behind a private CA. Each `,_jsx(_components.code,{children:`\u003cpath>`}),` may be a PEM file or a directory of\ncertificates. Repeat the flag to pass several paths. The CLI uses them for sign-in, API\nrequests, and bundle uploads.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--ca-bundle`}),` is a global option, so you can use it with any command.`]}),`\n`,_jsxs(_components.p,{children:[`A single PEM file can contain multiple certificates concatenated together. For a directory,\nthe CLI loads every `,_jsx(_components.code,{children:`.pem`}),`, `,_jsx(_components.code,{children:`.crt`}),`, and `,_jsx(_components.code,{children:`.cer`}),` file directly inside it (not recursively). If a\ncertificate cannot be parsed, the CLI reports which file and which certificate failed rather\nthan skipping the bad block.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`OPENLAYER_CA_BUNDLE`}),` and the deprecated `,_jsx(_components.code,{children:`INTERNAL_CERT_PATH`}),` accept the same paths as a list,\nseparated by `,_jsx(_components.code,{children:`:`}),` on Unix or `,_jsx(_components.code,{children:`;`}),` on Windows.`]}),`\n`,_jsx(Heading,{level:`2`,id:`disable-certificate-verification`,children:`Disable certificate verification`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--insecure`}),` option skips certificate verification for all CLI requests. It is a global\noption, so you can use it with any command.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Skipping certificate verification is unsafe. Prefer `,_jsx(_components.code,{children:`--ca-bundle`}),` when your\ndeployment uses a private CA.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`debug`,children:`Debug`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--debug`}),` option can be used to provide a more verbose output when running Openlayer CLI commands.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --debug`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`profile-name`,children:`Profile name`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--profile-name`}),` option can be used to specify the profile name to read from for config (default `,_jsx(_components.code,{children:`\"default\"`}),`).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --profile-name=[profile name]`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variables`,children:`Environment variables`}),`\n`,_jsxs(_components.p,{children:[`The CLI also reads configuration from environment variables. They are the simplest way to\nconfigure the CLI in CI/CD and other non-interactive environments, because they replace\n`,_jsx(_components.a,{href:`/api-reference/cli/commands/login`,children:_jsx(_components.code,{children:`openlayer login`})}),` and\n`,_jsx(_components.a,{href:`/api-reference/cli/commands/link`,children:_jsx(_components.code,{children:`openlayer link`})}),` entirely:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_API_KEY`})}),_jsxs(_components.td,{children:[`Your `,_jsx(_components.a,{href:`/workspace-and-projects/find-your-api-key`,children:`Openlayer API key`}),`. Replaces `,_jsx(_components.code,{children:`openlayer login`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_PROJECT_ID`})}),_jsxs(_components.td,{children:[`The id of the target project. Replaces `,_jsx(_components.code,{children:`openlayer link`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_WORKSPACE_ID`})}),_jsx(_components.td,{children:`The id of the target workspace. Usually not needed — it is derived from the API key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_BASE_URL`})}),_jsx(_components.td,{children:`The API base URL. Only needed for self-hosted or local Openlayer deployments.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_CA_BUNDLE`})}),_jsx(_components.td,{children:`Trusts extra CA certificates at the specified path(s) in addition to the system roots.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`INTERNAL_CERT_PATH`})}),_jsxs(_components.td,{children:[`Deprecated alias for `,_jsx(_components.code,{children:`OPENLAYER_CA_BUNDLE`}),`. Same list-separated paths.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`OPENLAYER_VERIFY_SSL=false`})}),_jsxs(_components.td,{children:[`Skips certificate verification, like `,_jsx(_components.code,{children:`--insecure`}),`. Unsafe; prefer `,_jsx(_components.code,{children:`OPENLAYER_CA_BUNDLE`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`VERIFY_SSL=false`})}),_jsxs(_components.td,{children:[`Deprecated alias for `,_jsx(_components.code,{children:`OPENLAYER_VERIFY_SSL=false`}),`.`]})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` OPENLAYER_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`... `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OPENLAYER_PROJECT_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`...`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` push`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --message`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"CI run\"`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # no login or link needed`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`self-hosted-deployments-behind-a-private-ca`,children:`Self-hosted deployments behind a private CA`}),`\n`,_jsxs(_components.p,{children:[`If your self-hosted Openlayer deployment uses a certificate issued by a private or enterprise\nCA, pass `,_jsx(_components.code,{children:`--ca-bundle`}),` when you sign in. Repeat the flag, point it at a directory, set a\nlist-separated environment variable, or concatenate the certificates into one PEM file:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Repeat the flag`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ca-bundle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-root.crt`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ca-bundle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-issuing.crt`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Or a directory holding both`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ca-bundle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.config/certs/corp/`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Or one list-separated environment variable (\";\" on Windows)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` OPENLAYER_CA_BUNDLE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp-root.crt:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/corp-issuing.crt\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Or concatenate them yourself`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-root.crt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-issuing.crt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-ca.pem`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ca-bundle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` corp-ca.pem`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`On login, the CLI saves the CA bundle path(s) to the active profile as one list-separated\nstring. Later commands pick it up automatically, so you do not need to pass the flag or\nenvironment variable again.`}),`\n`,_jsx(_components.p,{children:`For certificate settings, the CLI uses the command-line flag first, then the environment\nvariable, then the value saved in the active profile. The first source that is set wins\noutright — sources are not merged.`}),`\n`,_jsx(_components.p,{children:`What to put in the bundle:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`If the server presents the leaf certificate and the intermediates, the root alone is enough.`}),`\n`,_jsx(_components.li,{children:`If the server presents the leaf only, include the intermediates as well.`}),`\n`,_jsx(_components.li,{children:`Including the whole chain is always safe; when in doubt, include it.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`On macOS, the CLI can reject a certificate that `,_jsx(_components.code,{children:`curl`}),` and the Python SDK accept with a message\nlike:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`x509: \"*.example.internal\" certificate is not standards compliant`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Supply `,_jsx(_components.code,{children:`--ca-bundle`}),` to resolve this. Prefer it over `,_jsx(_components.code,{children:`--insecure`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`output-mode`,children:`Output mode`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--output-mode`}),` option controls how the CLI formats its output. It accepts `,_jsx(_components.code,{children:`terminal`}),`\n(the default, with colors and interactive progress) or `,_jsx(_components.code,{children:`ci`}),` (plain output suited for CI logs).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` push`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output-mode=ci`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ci`}),` is also a no-prompt guard: in this mode the CLI never asks for input. A command that\nwould otherwise prompt fails with an error telling you to pass the value as a flag or\nenvironment variable, rather than hanging on a missing terminal.`]}),`\n`,_jsx(_components.p,{children:`That makes the commands that used to be terminal-only usable in automation:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/cli/commands/login#non-interactive-sign-in`,children:_jsx(_components.code,{children:`openlayer login`})}),` signs in from\n`,_jsx(_components.code,{children:`--api-key`}),` or `,_jsx(_components.code,{children:`OPENLAYER_API_KEY`}),`. An explicitly supplied key is enough on its own — you do\nnot have to pass `,_jsx(_components.code,{children:`--output-mode ci`}),` for this.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/cli/commands/link#non-interactive-linking`,children:_jsx(_components.code,{children:`openlayer link`})}),` links to the\nproject named by `,_jsx(_components.code,{children:`--project`}),`. `,_jsx(_components.code,{children:`--output-mode ci`}),` implies its `,_jsx(_components.code,{children:`--yes`}),` flag.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/cli/commands/init#non-interactive-use`,children:_jsx(_components.code,{children:`openlayer init`})}),` runs the whole setup\nflow from flags.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`version`,children:`Version`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--version`}),` option can be used to verify the version of Openlayer CLI being used.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`openlayer`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --version`})]}),`\n`]})})})]})}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":"CLI global options","description":"Learn about the global options available for the Openlayer CLI","href":"/api-reference/cli/global-options"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"API key","slug":"api-key","depth":2,"children":[]},{"title":"Custom CA bundle","slug":"custom-ca-bundle","depth":2,"children":[]},{"title":"Disable certificate verification","slug":"disable-certificate-verification","depth":2,"children":[]},{"title":"Debug","slug":"debug","depth":2,"children":[]},{"title":"Profile name","slug":"profile-name","depth":2,"children":[]},{"title":"Environment variables","slug":"environment-variables","depth":2,"children":[]},{"title":"Self-hosted deployments behind a private CA","slug":"self-hosted-deployments-behind-a-private-ca","depth":2,"children":[]},{"title":"Output mode","slug":"output-mode","depth":2,"children":[]},{"title":"Version","slug":"version","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openlayer-44/a85e4a0a43b4a6e9/.eslintrc.js"],"subdomain":"openlayer-44","siteName":"Openlayer","title":"CLI global options - Openlayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-21T13:13:07.531Z","originalFileLocation":"api-reference/cli/global-options.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=\"Learn about the global options available for the Openlayer CLI\">\u003cmeta data-mint-head name=\"application-name\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"CLI global options - Openlayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn about the global options available for the Openlayer CLI\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Openlayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openlayer.com/api-reference/cli/global-options\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=CLI\u0026amp;title=CLI+global+options\u0026amp;description=Learn+about+the+global+options+available+for+the+Openlayer+CLI\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=60ca1efb8ce85db00ac8088a1ae0b39b6efa9dbfc23ff5f4edfd533ce926c858\">\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=\"CLI global options - Openlayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn about the global options available for the Openlayer CLI\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=CLI\u0026amp;title=CLI+global+options\u0026amp;description=Learn+about+the+global+options+available+for+the+Openlayer+CLI\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=60ca1efb8ce85db00ac8088a1ae0b39b6efa9dbfc23ff5f4edfd533ce926c858\">\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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#592FEA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openlayer.com/api-reference/cli/global-options\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/cli/global-options.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openlayer.com/#organization\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openlayer.com#website\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openlayer.com/api-reference/cli/global-options#webpage\",\"url\":\"https://docs.openlayer.com/api-reference/cli/global-options\",\"name\":\"CLI global options\",\"description\":\"Learn about the global options available for the Openlayer CLI\",\"dateModified\":\"2026-09-21T13:13:07.531Z\",\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openlayer.com/api-reference/cli/global-options#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openlayer.com/api-reference/cli/global-options#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"CLI\",\"item\":\"https://docs.openlayer.com/api-reference/cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CLI global options\",\"item\":\"https://docs.openlayer.com/api-reference/cli/global-options\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openlayer.com/api-reference/cli/global-options#article\",\"headline\":\"CLI global options\",\"name\":\"CLI global options\",\"description\":\"Learn about the global options available for the Openlayer CLI\",\"url\":\"https://docs.openlayer.com/api-reference/cli/global-options\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openlayer.com/api-reference/cli/global-options#webpage\"},\"dateModified\":\"2026-09-21T13:13:07.531Z\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Openlayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Openlayer","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Reference","groups":[{"group":"Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"SDKs","pages":[{"title":"Overview","href":"/api-reference/sdk/overview"},{"group":"Openlayer SDKs","pages":[{"title":"Python","href":"/api-reference/sdk/libraries/python"},{"title":"TypeScript","href":"/api-reference/sdk/libraries/typescript"},{"title":"Go","href":"/api-reference/sdk/libraries/go"},{"title":"Ruby","href":"/api-reference/sdk/libraries/ruby"},{"title":"Java","href":"/api-reference/sdk/libraries/java"}]}]},{"group":"CLI","pages":[{"title":"Overview","description":"Use the Openlayer CLI to interact with Openlayer","href":"/api-reference/cli/overview"},{"title":"CLI global options","href":"/api-reference/cli/global-options"},{"group":"Commands","pages":[{"title":"batch","description":"Run your model on all the datasets referenced in the openlayer.json file","href":"/api-reference/cli/commands/batch"},{"title":"data-sources","href":"/api-reference/cli/commands/data-sources"},{"title":"export","href":"/api-reference/cli/commands/export"},{"title":"help","href":"/api-reference/cli/commands/help"},{"title":"init","href":"/api-reference/cli/commands/init"},{"title":"inspect","href":"/api-reference/cli/commands/inspect"},{"title":"install","href":"/api-reference/cli/commands/install"},{"title":"link","href":"/api-reference/cli/commands/link"},{"title":"login","href":"/api-reference/cli/commands/login"},{"title":"metrics","href":"/api-reference/cli/commands/metrics"},{"title":"profile","href":"/api-reference/cli/commands/profile"},{"title":"projects","href":"/api-reference/cli/commands/projects"},{"title":"push","href":"/api-reference/cli/commands/push"},{"title":"tests","href":"/api-reference/cli/commands/tests"},{"title":"update","href":"/api-reference/cli/commands/update"},{"title":"validate","href":"/api-reference/cli/commands/validate"},{"title":"whoami","href":"/api-reference/cli/commands/whoami"}]}]},{"group":"REST API","pages":[{"title":"Overview","href":"/api-reference/rest/overview"},{"group":"Workspaces","pages":[{"title":"Retrieve workspace","openapi":"get /workspaces/{workspaceId}","href":"/api-reference/rest/workspaces/retrieve-workspace"},{"title":"Update workspace","openapi":"put /workspaces/{workspaceId}","href":"/api-reference/rest/workspaces/update-workspace"}]},{"group":"Invites and API keys","pages":[{"title":"List API keys","openapi":"get /workspaces/{workspaceId}/api-keys","href":"/api-reference/rest/api-keys/list-api-keys"},{"title":"Create API key","openapi":"post /workspaces/{workspaceId}/api-keys","href":"/api-reference/rest/api-keys/create-api-key"},{"title":"Retrieve API key","openapi":"get /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/retrieve-api-key"},{"title":"Update API key","openapi":"put /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/update-api-key"},{"title":"Delete API key","openapi":"delete /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/delete-api-key"},{"title":"Rotate API key","openapi":"post /workspaces/{workspaceId}/api-keys/{apiKeyId}/rotate","href":"/api-reference/rest/api-keys/rotate-api-key"},{"title":"Create invite","openapi":"post /workspaces/{workspaceId}/invites","href":"/api-reference/rest/invites/create-invite"},{"title":"List invites","openapi":"get /workspaces/{workspaceId}/invites","href":"/api-reference/rest/invites/list-invites"}]},{"group":"Projects","pages":[{"openapi":"get /projects","title":"List projects","href":"/api-reference/rest/projects/list-projects"},{"openapi":"post /projects","title":"Create project","href":"/api-reference/rest/projects/create-project"},{"openapi":"delete /projects/{projectId}","title":"Delete project","href":"/api-reference/rest/projects/delete-project"}]},{"group":"Tests","pages":[{"title":"Create test","openapi":"post /projects/{projectId}/tests","href":"/api-reference/rest/tests/create-test"},{"title":"List tests","openapi":"get /projects/{projectId}/tests","href":"/api-reference/rest/tests/list-tests"},{"title":"Update tests","openapi":"put /projects/{projectId}/tests","href":"/api-reference/rest/tests/update-tests"},{"title":"Evaluate test","openapi":"post /tests/{testId}/evaluate","href":"/api-reference/rest/tests/evaluate-test"},{"title":"List the test results for a test","openapi":"get /tests/{testId}/results","href":"/api-reference/rest/tests/list-test-results"}]},{"group":"Development","pages":[{"openapi":"post /storage/presigned-url","title":"Create an upload url","href":"/api-reference/rest/development/presigned-url"},{"openapi":"get /storage/presigned-url","title":"Retrieve a download url","href":"/api-reference/rest/development/retrieve-download-url"},{"openapi":"get /projects/{projectId}/versions","title":"List project commits","href":"/api-reference/rest/development/list-project-versions"},{"openapi":"get /versions/{projectVersionId}","title":"Retrieve project commit","href":"/api-reference/rest/development/retrieve-project-version"},{"openapi":"post /projects/{projectId}/versions","title":"Create project commit","href":"/api-reference/rest/development/create-project-version"},{"openapi":"get /versions/{projectVersionId}/results","title":"List commit test results","href":"/api-reference/rest/development/list-test-results"}]},{"group":"Monitoring","pages":[{"title":"Create data source","openapi":"post /projects/{projectId}/inference-pipelines","href":"/api-reference/rest/monitoring/create-inference-pipeline"},{"title":"List data sources","openapi":"get /projects/{projectId}/inference-pipelines","href":"/api-reference/rest/monitoring/list-inference-pipelines"},{"title":"Retrieve data source","openapi":"get /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/retrieve-inference-pipeline"},{"title":"Update data source","openapi":"put /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/update-inference-pipeline"},{"title":"Delete data source","openapi":"delete /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/delete-inference-pipeline"},{"title":"Publish records","openapi":"post /inference-pipelines/{inferencePipelineId}/data-stream","href":"/api-reference/rest/monitoring/stream-data"},{"title":"Retrieve record","openapi":"get /inference-pipelines/{inferencePipelineId}/rows/{inferenceId}","href":"/api-reference/rest/monitoring/retrieve-inference"},{"title":"Update record","openapi":"put /inference-pipelines/{inferencePipelineId}/rows","href":"/api-reference/rest/monitoring/update-inference"},{"title":"Delete record","openapi":"delete /inference-pipelines/{inferencePipelineId}/rows/{inferenceId}","href":"/api-reference/rest/monitoring/delete-inference"},{"title":"Bulk delete records","openapi":"post /inference-pipelines/{inferencePipelineId}/rows/delete","href":"/api-reference/rest/monitoring/bulk-delete-inferences"},{"title":"List data source test results","openapi":"get /inference-pipelines/{inferencePipelineId}/results","href":"/api-reference/rest/monitoring/list-test-results"},{"title":"List data source users","openapi":"post /inference-pipelines/{inferencePipelineId}/users","href":"/api-reference/rest/monitoring/list-inference-pipeline-users"},{"title":"List data source sessions","openapi":"post /inference-pipelines/{inferencePipelineId}/sessions","href":"/api-reference/rest/monitoring/list-inference-pipeline-sessions"},{"title":"List data source rows","openapi":"post /inference-pipelines/{inferencePipelineId}/rows","href":"/api-reference/rest/monitoring/list-inference-pipeline-rows"}]},{"group":"Governance","pages":[{"openapi":"get /workspaces/{workspaceId}/frameworks","title":"List frameworks","href":"/api-reference/rest/governance/list-frameworks"},{"openapi":"post /workspaces/{workspaceId}/frameworks","title":"Create a framework","href":"/api-reference/rest/governance/create-framework"},{"openapi":"get /frameworks/{frameworkId}","title":"Retrieve a framework","href":"/api-reference/rest/governance/retrieve-framework"},{"openapi":"put /frameworks/{frameworkId}","title":"Update a framework","href":"/api-reference/rest/governance/update-framework"},{"openapi":"post /frameworks/{frameworkId}/export","title":"Export a framework","href":"/api-reference/rest/governance/export-framework"},{"openapi":"get /frameworks/{frameworkId}/rules","title":"List a framework's rules","href":"/api-reference/rest/governance/list-framework-rules"},{"openapi":"get /frameworks/{frameworkId}/projects","title":"List a framework's projects","href":"/api-reference/rest/governance/list-framework-projects"},{"openapi":"get /frameworks/{frameworkId}/project-rule-stats","title":"List a framework's per-project compliance","href":"/api-reference/rest/governance/list-project-rule-stats"},{"openapi":"get /frameworks/{frameworkId}/documents","title":"List a framework's documents","href":"/api-reference/rest/governance/list-framework-documents"},{"openapi":"get /frameworks/{frameworkId}/documents/{documentId}","title":"Retrieve a framework document","href":"/api-reference/rest/governance/retrieve-framework-document"},{"openapi":"get /frameworks/{frameworkId}/sections/{sectionId}/rules","title":"List a section's rules","href":"/api-reference/rest/governance/list-section-rules"},{"openapi":"get /frameworks/{frameworkId}/subsections/{subsectionId}/rules","title":"List a subsection's rules","href":"/api-reference/rest/governance/list-subsection-rules"},{"openapi":"get /workspaces/{workspaceId}/rules","title":"List rules","href":"/api-reference/rest/governance/list-rules"},{"openapi":"post /workspaces/{workspaceId}/rules","title":"Create a rule","href":"/api-reference/rest/governance/create-rule"},{"openapi":"get /rules/{ruleId}","title":"Retrieve a rule","href":"/api-reference/rest/governance/retrieve-rule"},{"openapi":"put /rules/{ruleId}","title":"Update a rule","href":"/api-reference/rest/governance/update-rule"},{"openapi":"delete /rules/{ruleId}","title":"Delete a rule","href":"/api-reference/rest/governance/delete-rule"},{"openapi":"get /workspaces/{workspaceId}/rule-results","title":"List rule results","href":"/api-reference/rest/governance/list-rule-results"},{"openapi":"get /rule-results/{ruleResultId}","title":"Retrieve a rule result","href":"/api-reference/rest/governance/retrieve-rule-result"},{"openapi":"patch /rule-results/{ruleResultId}","title":"Update a rule result","href":"/api-reference/rest/governance/update-rule-result"},{"openapi":"get /rule-results/{ruleResultId}/evidence","title":"List a rule result's evidence","href":"/api-reference/rest/governance/list-rule-result-evidence"},{"openapi":"post /rule-results/{ruleResultId}/evidence","title":"Attach evidence to a rule result","href":"/api-reference/rest/governance/create-rule-result-evidence"},{"openapi":"get /workspaces/{workspaceId}/rule-stats","title":"Retrieve workspace compliance statistics","href":"/api-reference/rest/governance/retrieve-rule-stats"},{"openapi":"get /workspaces/{workspaceId}/rule-tags","title":"List rule tags","href":"/api-reference/rest/governance/list-rule-tags"}]},{"group":"Background tasks","pages":[{"openapi":"get /background-tasks/{taskId}","title":"Retrieve a background task","href":"/api-reference/rest/background-tasks/retrieve-background-task"}]}]}]}]},"basePath":"","title":"CLI global options - Openlayer","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}