Add a generic webhook platform adapter that receives HTTP POSTs from external services (GitHub, GitLab, JIRA, Stripe, etc.), validates HMAC signatures, transforms payloads into agent prompts, and routes responses back to the source or to another platform. Features: - Configurable routes with per-route HMAC secrets, event filters, prompt templates with dot-notation payload access, skill loading, and pluggable delivery (github_comment, telegram, discord, log) - HMAC signature validation (GitHub SHA-256, GitLab token, generic) - Rate limiting (30 req/min per route, configurable) - Idempotency cache (1hr TTL, prevents duplicate runs on retries) - Body size limits (1MB default, checked before reading payload) - Setup wizard integration with security warnings and docs links - 33 tests (29 unit + 4 integration), all passing Security: - HMAC secret required per route (startup validation) - Setup wizard warns about internet exposure for webhook/SMS platforms - Sandboxing (Docker/VM) recommended in docs for public-facing deployments Files changed: - gateway/config.py — Platform.WEBHOOK enum + env var overrides - gateway/platforms/webhook.py — WebhookAdapter (~420 lines) - gateway/run.py — factory wiring + auth bypass for webhook events - hermes_cli/config.py — WEBHOOK_* env var definitions - hermes_cli/setup.py — webhook section in setup_gateway() - tests/gateway/test_webhook_adapter.py — 29 unit tests - tests/gateway/test_webhook_integration.py — 4 integration tests - website/docs/user-guide/messaging/webhooks.md — full user docs - website/docs/reference/environment-variables.md — WEBHOOK_* vars - website/sidebars.ts — nav entry
154 lines
4.4 KiB
TypeScript
154 lines
4.4 KiB
TypeScript
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
|
|
|
const sidebars: SidebarsConfig = {
|
|
docs: [
|
|
{
|
|
type: 'category',
|
|
label: 'Getting Started',
|
|
collapsed: false,
|
|
items: [
|
|
'getting-started/quickstart',
|
|
'getting-started/installation',
|
|
'getting-started/updating',
|
|
'getting-started/learning-path',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Guides & Tutorials',
|
|
collapsed: false,
|
|
items: [
|
|
'guides/tips',
|
|
'guides/daily-briefing-bot',
|
|
'guides/team-telegram-assistant',
|
|
'guides/python-library',
|
|
'guides/use-mcp-with-hermes',
|
|
'guides/use-soul-with-hermes',
|
|
'guides/use-voice-mode-with-hermes',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'User Guide',
|
|
collapsed: false,
|
|
items: [
|
|
'user-guide/cli',
|
|
'user-guide/configuration',
|
|
'user-guide/sessions',
|
|
'user-guide/security',
|
|
{
|
|
type: 'category',
|
|
label: 'Messaging Gateway',
|
|
items: [
|
|
'user-guide/messaging/index',
|
|
'user-guide/messaging/telegram',
|
|
'user-guide/messaging/discord',
|
|
'user-guide/messaging/slack',
|
|
'user-guide/messaging/whatsapp',
|
|
'user-guide/messaging/signal',
|
|
'user-guide/messaging/email',
|
|
'user-guide/messaging/homeassistant',
|
|
'user-guide/messaging/mattermost',
|
|
'user-guide/messaging/matrix',
|
|
'user-guide/messaging/dingtalk',
|
|
'user-guide/messaging/open-webui',
|
|
'user-guide/messaging/webhooks',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Core Features',
|
|
items: [
|
|
'user-guide/features/tools',
|
|
'user-guide/features/skills',
|
|
'user-guide/features/memory',
|
|
'user-guide/features/context-files',
|
|
'user-guide/features/personality',
|
|
'user-guide/features/skins',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Automation',
|
|
items: [
|
|
'user-guide/features/cron',
|
|
'user-guide/features/delegation',
|
|
'user-guide/features/code-execution',
|
|
'user-guide/features/hooks',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Web & Media',
|
|
items: [
|
|
'user-guide/features/voice-mode',
|
|
'user-guide/features/browser',
|
|
'user-guide/features/vision',
|
|
'user-guide/features/image-generation',
|
|
'user-guide/features/tts',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Integrations',
|
|
items: [
|
|
'user-guide/features/api-server',
|
|
'user-guide/features/acp',
|
|
'user-guide/features/mcp',
|
|
'user-guide/features/honcho',
|
|
'user-guide/features/provider-routing',
|
|
'user-guide/features/fallback-providers',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Advanced',
|
|
items: [
|
|
'user-guide/features/batch-processing',
|
|
'user-guide/features/rl-training',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Developer Guide',
|
|
items: [
|
|
'developer-guide/architecture',
|
|
'developer-guide/agent-loop',
|
|
'developer-guide/provider-runtime',
|
|
'developer-guide/adding-providers',
|
|
'developer-guide/prompt-assembly',
|
|
'developer-guide/context-compression-and-caching',
|
|
'developer-guide/gateway-internals',
|
|
'developer-guide/session-storage',
|
|
'developer-guide/tools-runtime',
|
|
'developer-guide/acp-internals',
|
|
'developer-guide/trajectory-format',
|
|
'developer-guide/cron-internals',
|
|
'developer-guide/environments',
|
|
'developer-guide/adding-tools',
|
|
'developer-guide/creating-skills',
|
|
'developer-guide/contributing',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Reference',
|
|
items: [
|
|
'reference/cli-commands',
|
|
'reference/slash-commands',
|
|
'reference/tools-reference',
|
|
'reference/toolsets-reference',
|
|
'reference/mcp-config-reference',
|
|
'reference/skills-catalog',
|
|
'reference/optional-skills-catalog',
|
|
'reference/environment-variables',
|
|
'reference/faq',
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
export default sidebars;
|