docs(enterprise): add Slack integration guide for self-hosted OHE#525
docs(enterprise): add Slack integration guide for self-hosted OHE#525jpshackelford wants to merge 1 commit into
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Adds enterprise/integrations/slack.mdx documenting how to configure the Slack resolver on a self-hosted OpenHands Enterprise install (Replicated and standalone Helm). Covers: - creating a Slack App with the OpenHands-Cloud helper script (or via manifest paste) so webhooks point at app.<your-base-domain> - entering credentials in the Replicated admin console (Enable Slack group) or the openhands / openhands-secrets Helm charts - installing the app via /slack/install and linking each user - limitations (no Socket Mode, no token rotation, public HTTPS required) - troubleshooting (URL verification, missing scopes, duplicate replies, credential rotation) Wires the page into the Enterprise tab under a new 'Integrations' group in docs.json. Regenerates llms.txt / llms-full.txt via make llms; most of the diff in those files is unrelated drift that the weekly sync workflow would have picked up anyway. mint broken-links: clean Co-authored-by: openhands <openhands@all-hands.dev>
983e4fe to
29d5d24
Compare
|
Rebased onto How the Net "group": "Integrations",
"pages": [
"enterprise/integrations/bitbucket-data-center",
- "enterprise/integrations/jira-data-center"
+ "enterprise/integrations/jira-data-center",
+ "enterprise/integrations/slack"
]llms.txt / llms-full.txt regenerated via Verification.
PR is now mergeable (was This comment was posted by an AI agent (OpenHands) on behalf of @jpshackelford. |
What
Adds
enterprise/integrations/slack.mdxdocumenting how to enable the@OpenHandsSlack resolver on a self-hosted OpenHands Enterprise install (both the Replicated VM-based install and standalone Helm). Wires the new page into the Enterprise tab under a new "Integrations" group indocs.json.Why
The Slack resolver has shipped for self-hosted OHE — the chart wiring landed in
OpenHands/OpenHands-Cloud#584(ALL-5659) and the Slack-App creation script landed inOpenHands/OpenHands-Cloud#601(PLTF-2036) — but the docs site only documents the Cloud flow (openhands/usage/cloud/slack-installation), which uses the All-Hands-managed Slack App and is not applicable to customers running their own install.Today the operator-facing information is split across:
help_textstrings in the Replicated admin console,scripts/create_slack_app/README.mdinOpenHands-Cloud,This PR consolidates the end-to-end workflow on docs.openhands.dev so an operator can stand up Slack against a fresh OHE install without reading source code.
Contents of the new page
End-to-end, in order:
scripts/create_slack_app/create_slack_app.pyfromOpenHands-Cloudwith--base-domain <your-domain>and a Slack App Configuration Token, which mints the app viaapps.manifest.createand prints Client ID, Client Secret, Signing Secret.Documents all four webhook URLs registered on the app (
/slack/install-callback,/slack/on-event,/slack/on-form-interaction,/slack/on-options-load), the bot scopes, and the disabled flags (Socket Mode, Org Deploy, Token Rotation).slack-authSecret, theslack.enabled/slack.clientIdHelm values, and theENABLE_V1_SLACK_RESOLVER=trueenv var that the Replicated overlay sets.values.yamlsnippets for theopenhandsandopenhands-secretscharts, plus a note for operators who manage theslack-authSecret directly.Ends with a
kubectl set env … --listone-liner to verify the integrations pod restarted withSLACK_*env vars.https://app.<your-base-domain>/slack/install. Notes themissing_scoperecovery path.@openhandsonce and clicking the login link the bot replies with. Explains that the link populates theslack_userstable and that conversations then run as that OpenHands user (their LLM keys, provider tokens, org)./slack/on-options-load, thread ownership (only the original asker can@openhandsin follow-up replies), and conversation-link URLs.SLACK_WEBHOOKS_ENABLEDmissingpsqlquery to verify the link row)missing_scopein pod logsOpenHands-Cloud, plus the Cloud Slack page for end-user UX.Navigation
docs.jsongets a new "Integrations" group under the Enterprise tab. It's intentionally separate from "K8s Install" so future enterprise integrations (Jira DC, Bitbucket DC, etc.) can land alongside Slack without further nav churn.{ "group": "Integrations", "pages": [ "enterprise/integrations/slack" ] }llms.txt / llms-full.txt
make llmswas run per the repo's AGENTS.md guidance. The new page is included, but the regenerator also picks up pre-existing drift from other recently-merged PRs (org pages, skills pages, an automations description tweak, etc.). The weeklycheck-llms-files.ymlsync workflow would have produced the same diff. If reviewers would rather keep this PR minimal, I'm happy to revert the llms changes and let the weekly job handle them — let me know.Verification
python3 -c "import json; json.load(open('docs.json'))"— JSON syntax OK.npx mintlify@latest broken-links—success no broken links found./enterprise/quick-start,/enterprise/k8s-install/index,/openhands/usage/cloud/slack-installation#working-with-the-slack-app).main.Out of scope
openhands/usage/cloud/slack-installation.mdx) — I deliberately left it focused on Cloud and added an<Info>cross-link from the new enterprise page rather than rewriting the Cloud one.This PR was opened by an AI agent (OpenHands) on behalf of the requesting user.
@jpshackelford can click here to continue refining the PR