The connect service (hellocobi/dashboard-connect) is a Python FastAPI service responsible for ingesting data from external data sources. It:
Validates connector credentials against third-party APIs (GitHub, Slack, Linear, HubSpot)
Executes ingestion runs that sync data from those sources into MinIO object storage
Triggers schema mapping syncs requested by the backend
It runs on port 8000 as a ClusterIP service. By default it is reachable only within the cluster, but the chart can expose it through gateway.connect or ingress.connect when a deployment needs a public Connect endpoint.Set the backend’s CONNECT_SERVICE_URL to the in-cluster service URL, usually http://cobi-dashboard-connect:8000.
The connect service writes ingestion artifacts to MinIO. The bucket, prefix, and per-request credentials are passed in the API request body by the backend, but the S3 endpoint for MinIO must be set as an environment variable — it is not included in the request body.
Variable
Required
Description
S3_ENDPOINT
Yes (on-prem)
MinIO endpoint URL — http://<release>-minio:9000 for in-cluster. DuckDB httpfs reads this to write storage artifacts. Also enables path-style URL mode automatically
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Cobi Documentation","colors":{"primary":"#9EB306","light":"#C8E108","dark":"#788A05"},"logo":{"light":"https://www.hellocobi.com/cobiLogo.svg","dark":"https://www.hellocobi.com/cobiLogo.svg"},"favicon":"https://mintcdn.com/cobi/TXkfCiVKOkAvB3cQ/favicon.ico?fit=max\u0026auto=format\u0026n=TXkfCiVKOkAvB3cQ\u0026q=85\u0026s=84db410cda412ea458541247778d0f13","api":{"openapi":"api-reference/openapi.yml","playground":{"display":"none"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}]},"footer":{"socials":{"website":"https://www.hellocobi.com","linkedin":"https://www.linkedin.com/company/hellocobi"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cobi","hasAudioNarration":false,"actualSubdomain":"cobi","customDomains":["docs.hellocobi.com"],"gitSource":{"type":"github","owner":"hellocobi","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae927d7129d4a289f28b1d8:success","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":36},{"language":"default","tag":"Data","count":31},{"language":"default","tag":"Overview","count":29},{"language":"default","tag":"Endpoints","count":17},{"language":"default","tag":"Models","count":17},{"language":"default","tag":"Self-Hosted Deployment","count":12},{"language":"default","tag":"On-Premises Deployment","count":12},{"language":"default","tag":"Channels","count":8},{"language":"default","tag":"Slack","count":6},{"language":"default","tag":"Data Sources","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":"custom-rbac-roles","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"deployment/dashboard-connect","slug":"/deployment/dashboard-connect","pageMetadata":{"title":"Connect Service","description":"Environment variables and secrets required to run the connect service for data source ingestion","href":"/deployment/dashboard-connect"},"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: \"Environment variables and secrets required to run the connect service for data source ingestion\"\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`,strong:`strong`,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(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`connect service`}),` (`,_jsx(_components.code,{children:`hellocobi/dashboard-connect`}),`) is a Python FastAPI service responsible for ingesting data from external data sources. It:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Validates connector credentials against third-party APIs (GitHub, Slack, Linear, HubSpot)`}),`\n`,_jsx(_components.li,{children:`Executes ingestion runs that sync data from those sources into MinIO object storage`}),`\n`,_jsx(_components.li,{children:`Triggers schema mapping syncs requested by the backend`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`It runs on port `,_jsx(_components.code,{children:`8000`}),` as a `,_jsx(_components.code,{children:`ClusterIP`}),` service. By default it is reachable only within the cluster, but the chart can expose it through `,_jsx(_components.code,{children:`gateway.connect`}),` or `,_jsx(_components.code,{children:`ingress.connect`}),` when a deployment needs a public Connect endpoint.`]}),`\n`,_jsxs(_components.p,{children:[`Set the backend’s `,_jsx(_components.code,{children:`CONNECT_SERVICE_URL`}),` to the in-cluster service URL, usually `,_jsx(_components.code,{children:`http://cobi-dashboard-connect:8000`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-authentication-works`,children:`How Authentication Works`}),`\n`,_jsx(_components.p,{children:`Every request from the backend carries the header:`}),`\n`,_jsx(CodeBlock,{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:`x-connect-service-token: \u003ctoken>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The service reads `,_jsx(_components.code,{children:`CONNECT_SERVICE_TOKEN`}),` at startup and validates each incoming request. If the variable is not set, the service `,_jsx(_components.strong,{children:`refuses to start`}),`:`]}),`\n`,_jsx(CodeBlock,{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:`RuntimeError: CONNECT_SERVICE_TOKEN must be set`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The same token value must be present on `,_jsx(_components.strong,{children:`both`}),` sides — the connect Secret and the backend Secret.`]}),`\n`,_jsx(Heading,{level:`2`,id:`required-secrets`,children:`Required Secrets`}),`\n`,_jsx(Heading,{level:`3`,id:`connect-secret`,children:`Connect Secret`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,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:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`kubectl create secret generic cobi-connect-secrets \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` --namespace cobi \\\\`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` --from-literal=HOST=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.0.0.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` --from-literal=PORT=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"8000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` --from-literal=CONNECT_SERVICE_TOKEN=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cshared-token>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` `})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`HOST`}),` must be `,_jsx(_components.code,{children:`0.0.0.0`}),`. The default `,_jsx(_components.code,{children:`127.0.0.1`}),` binds to loopback only — the Kubernetes Service cannot reach the pod.`]})}),`\n`,_jsx(_components.p,{children:`Generate the shared token (use the same value in the backend Secret):`}),`\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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`openssl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rand -hex 32`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`backend-secret-additions`,children:`Backend Secret additions`}),`\n`,_jsxs(_components.p,{children:[`The backend also needs `,_jsx(_components.code,{children:`CONNECT_SERVICE_TOKEN`}),` and `,_jsx(_components.code,{children:`CONNECT_BUCKET_PREFIX`}),`. See `,_jsx(_components.a,{href:`/deployment/backend`,children:`Backend Service`}),` for the full backend secret.`]}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variable-reference`,children:`Environment Variable Reference`}),`\n`,_jsx(Heading,{level:`3`,id:`server`,children:`Server`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`HOST`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`127.0.0.1`})}),_jsxs(_components.td,{children:[`Bind address. `,_jsxs(_components.strong,{children:[`Must be `,_jsx(_components.code,{children:`0.0.0.0`})]}),` in a container`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PORT`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`8000`})}),_jsxs(_components.td,{children:[`Port uvicorn listens on. Must match `,_jsx(_components.code,{children:`connect.port`}),` in Helm values`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CONNECT_SERVICE_TOKEN`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Shared secret for authenticating requests from the backend`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`minio-connection`,children:`MinIO Connection`}),`\n`,_jsxs(_components.p,{children:[`The connect service writes ingestion artifacts to MinIO. The bucket, prefix, and per-request credentials are passed in the API request body by the backend, but the S3 `,_jsx(_components.strong,{children:`endpoint`}),` for MinIO must be set as an environment variable — it is not included in the request body.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`S3_ENDPOINT`})}),_jsx(_components.td,{children:`Yes (on-prem)`}),_jsxs(_components.td,{children:[`MinIO endpoint URL — `,_jsx(_components.code,{children:`http://\u003crelease>-minio:9000`}),` for in-cluster. DuckDB httpfs reads this to write storage artifacts. Also enables path-style URL mode automatically`]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`helm-values`,children:`Helm Values`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`connect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` enabled`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` repository`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`docker.io/hellocobi/dashboard-connect`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` tag`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"823edd6d96f97aae01425d8c3ddfc9ef8839c65b\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` pullPolicy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`IfNotPresent`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` replicaCount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` service`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ClusterIP`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` port`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`8000`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` envFrom`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`secretRef`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`cobi-connect-secrets`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` resources`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` requests`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` cpu`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`100m`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` memory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`256Mi`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` limits`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` cpu`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`500m`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` memory`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`512Mi`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-service`,children:`Verify the Service`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,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:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Port-forward`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`kubectl port-forward -n cobi svc/cobi-dashboard-connect 8000:8000`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Health check — no auth required`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` http://localhost:8000/health`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# {\"status\":\"ok\"}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Protected endpoint without token returns 401`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -X POST http://localhost:8000/internal/mirror-connections/ping`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# {\"detail\":\"Invalid connect service token\"}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`backend-connection`,children:`Backend Connection`}),`\n`,_jsxs(_components.p,{children:[`Add `,_jsx(_components.code,{children:`CONNECT_SERVICE_URL`}),` to the backend Secret or `,_jsx(_components.code,{children:`backend.env`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`CONNECT_SERVICE_URL`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://cobi-dashboard-connect:8000\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Verify it is set:`}),`\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:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`kubectl exec -n cobi deploy/cobi-dashboard-backend -- env | grep CONNECT_SERVICE_URL`})}),`\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":"Connect Service","description":"Environment variables and secrets required to run the connect service for data source ingestion","href":"/deployment/dashboard-connect"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How Authentication Works","slug":"how-authentication-works","depth":2,"children":[]},{"title":"Required Secrets","slug":"required-secrets","depth":2,"children":[{"title":"Connect Secret","slug":"connect-secret","depth":3,"children":[]},{"title":"Backend Secret additions","slug":"backend-secret-additions","depth":3,"children":[]}]},{"title":"Environment Variable Reference","slug":"environment-variable-reference","depth":2,"children":[{"title":"Server","slug":"server","depth":3,"children":[]},{"title":"MinIO Connection","slug":"minio-connection","depth":3,"children":[]}]},{"title":"Helm Values","slug":"helm-values","depth":2,"children":[]},{"title":"Verify the Service","slug":"verify-the-service","depth":2,"children":[]},{"title":"Backend Connection","slug":"backend-connection","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"cobi","siteName":"Cobi Documentation","title":"Connect Service - Cobi Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-30T06:21:48.771Z","originalFileLocation":"deployment/dashboard-connect.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=\"Environment variables and secrets required to run the connect service for data source ingestion\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cobi Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_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/cobi/ksYxqsROLb6VcqjO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect Service - Cobi Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Environment variables and secrets required to run the connect service for data source ingestion\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cobi Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hellocobi.com/deployment/dashboard-connect\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cobi.mintlify.site/_mintlify/api/og/v2?division=On-Premises+Deployment\u0026amp;title=Connect+Service\u0026amp;description=Environment+variables+and+secrets+required+to+run+the+connect+service+for+data+source+ingestion\u0026amp;theme=f75fbde0b77631b21ae3abb9\u0026amp;signature=98bbdfa0c6d21cefbca804ce7ac3a70831efd4de634b7f23bc4c15714304c6be\">\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=\"Connect Service - Cobi Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Environment variables and secrets required to run the connect service for data source ingestion\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cobi.mintlify.site/_mintlify/api/og/v2?division=On-Premises+Deployment\u0026amp;title=Connect+Service\u0026amp;description=Environment+variables+and+secrets+required+to+run+the+connect+service+for+data+source+ingestion\u0026amp;theme=f75fbde0b77631b21ae3abb9\u0026amp;signature=98bbdfa0c6d21cefbca804ce7ac3a70831efd4de634b7f23bc4c15714304c6be\">\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/cobi/ksYxqsROLb6VcqjO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cobi Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9EB306\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hellocobi.com/deployment/dashboard-connect\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/deployment/dashboard-connect.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hellocobi.com/#organization\",\"name\":\"Cobi Documentation\",\"url\":\"https://docs.hellocobi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.hellocobi.com/cobiLogo.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hellocobi.com#website\",\"name\":\"Cobi Documentation\",\"url\":\"https://docs.hellocobi.com\",\"publisher\":{\"@id\":\"https://docs.hellocobi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hellocobi.com/deployment/dashboard-connect#webpage\",\"url\":\"https://docs.hellocobi.com/deployment/dashboard-connect\",\"name\":\"Connect Service\",\"description\":\"Environment variables and secrets required to run the connect service for data source ingestion\",\"dateModified\":\"2026-06-30T06:21:48.771Z\",\"isPartOf\":{\"@id\":\"https://docs.hellocobi.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hellocobi.com/deployment/dashboard-connect#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hellocobi.com/deployment/dashboard-connect#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Self-Hosted Deployment\",\"item\":\"https://docs.hellocobi.com/deployment/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"On-Premises Deployment\",\"item\":\"https://docs.hellocobi.com/deployment/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Connect Service\",\"item\":\"https://docs.hellocobi.com/deployment/dashboard-connect\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hellocobi.com/deployment/dashboard-connect#article\",\"headline\":\"Connect Service\",\"name\":\"Connect Service\",\"description\":\"Environment variables and secrets required to run the connect service for data source ingestion\",\"url\":\"https://docs.hellocobi.com/deployment/dashboard-connect\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hellocobi.com/deployment/dashboard-connect#webpage\"},\"dateModified\":\"2026-06-30T06:21:48.771Z\",\"publisher\":{\"@id\":\"https://docs.hellocobi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hellocobi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cobi Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Cobi Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/deployment/dashboard-connect.md","siteName":"Cobi Documentation","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Overview","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"}]},{"group":"Self-Hosted Deployment","pages":[{"group":"On-Premises Deployment","pages":[{"title":"On-Premises Deployment Overview","href":"/deployment/overview"},{"title":"Requirements","href":"/deployment/requirements"},{"title":"Helm Chart Setup","href":"/deployment/helm-setup"},{"title":"Gateway, Ingress \u0026 Routes","href":"/deployment/ingress-routes"},{"title":"Backend Service","href":"/deployment/backend"},{"title":"Frontend Service","description":"Environment variables and secrets required to run the Cobi frontend service on-premises","href":"/deployment/frontend"},{"title":"Connect Service","href":"/deployment/dashboard-connect"},{"title":"PostgreSQL Setup","description":"Deploy PostgreSQL in-cluster via the Helm subchart, or connect to an existing standalone database instance","href":"/deployment/postgresql-setup"},{"title":"Qdrant Setup","href":"/deployment/qdrant-setup"},{"title":"MinIO Setup","href":"/deployment/minio-setup"},{"title":"vLLM Inference Setup","href":"/deployment/vllm-setup"},{"title":"Model Storage","href":"/deployment/model-storage"}]}]},{"group":"Data Sources","pages":[{"group":"Data Connectors","pages":[{"title":"Overview","href":"/platform/data-connectors/overview"},{"title":"PostgreSQL","href":"/platform/data-connectors/postgresql"},{"title":"MySQL","href":"/platform/data-connectors/mysql"},{"title":"MongoDB","href":"/platform/data-connectors/mongodb"},{"title":"Troubleshooting","href":"/platform/data-connectors/troubleshooting"}]},{"title":"Custom Instructions","href":"/platform/custom-instructions"}]},{"group":"Channels","pages":[{"title":"Chat Widget","href":"/platform/channels/embed-chat-widget"},{"title":"Data Scopes","href":"/platform/channels/data-scopes"},{"group":"Slack","pages":[{"title":"Slack","href":"/platform/channels/slack/overview"},{"title":"Install Slack","href":"/platform/channels/slack/install"},{"title":"Using Cobi in Slack","href":"/platform/channels/slack/using-cobi"},{"title":"Slash Commands","href":"/platform/channels/slack/slash-commands"},{"title":"Account Linking","href":"/platform/channels/slack/account-linking"},{"title":"Slack Troubleshooting","href":"/platform/channels/slack/troubleshooting"}]}]},{"group":"API","pages":[{"title":"Quickstart","href":"/quickstart"},{"title":"Authentication","href":"/authentication"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/data/overview"}]}]},"basePath":"","title":"Connect Service - Cobi Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}