Repository navigation
Conversation
Add the tested external webhook example and correct the HMAC secret reference documentation. Scope the policy to configured fetch requests and document fail-closed decisions, TLS, and signature expiration. Developed with AI assistance; associated with the IsMalicious provider. Signed-off-by: JVQ <jv.quilichini@gmail.com>
|
@hexablob is attempting to deploy a commit to the stacklok Team on Vercel. A member of the Team first needs to authorize it. |
|
The current Vercel status is "Authorization required to deploy", and the fork workflow has no executed jobs yet. Could a team member authorize the preview and approve the pending workflow? Local validation is recorded in the PR body: the production docs build generated 331 documents, touched MDX passes Prettier/ESLint, and the native ToolHive middleware tests pass. The commit is signed and includes the required DCO trailer. |
|
Hi @hexablob, thanks for the contribution! A working webhook example would be a useful addition to this page, but we'd prefer to keep the core docs provider-neutral. Would you be open to reworking this into a self-contained example, such as a simple URL allowlist, with steps to try both an allowed and a denied request? |
Replace the provider-specific preflight with an inline Python webhook and allowed/denied ToolHive calls, as requested in review. Use scoped local CA trust and document request-only scope. Keep the independent HMAC secret-reference correction. Developed and validated with AI assistance. Signed-off-by: JVQ <jv.quilichini@gmail.com>
|
@danbarr I have reworked the example into a self-contained Python standard-library URL allowlist. The guide now includes the service code, local HTTPS setup with scoped CA trust, complete ToolHive configuration, and commands for an allowed The running example passes nine Python protocol/policy/TLS tests. I also exercised the real ToolHive CLI and remote proxy against this HTTPS webhook and a local MCP stub: the allowed call reaches the backend once; the denied host and unknown tool return 403 without execution; stopping the webhook fails closed. Full container-fetch startup was blocked by a GHCR The HMAC field correction remains independent of the example. Certificate verification stays enabled, and the guide explains that redirects, DNS changes, and tool results need separate controls. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Thanks for reworking this! The self-contained example fits the page well and addresses the gap. One small compatibility fix: could you replace |
Replace -noenc with -nodes in the local webhook certificate command, as requested in review, so it works with macOS LibreSSL and OpenSSL. Developed and validated with AI assistance. Signed-off-by: JVQ <jv.quilichini@gmail.com>
|
@danbarr Replaced Prettier, ESLint, and the production docs build pass under Node 24.21.0. The build generates 331 documents, with the same unrelated enterprise API-reference minifier warning. The follow-up commit retains the DCO sign-off. The new commit is waiting for fork-workflow approval and Vercel deployment authorization again (On PR run); it has no executed CI jobs yet. Could a team member approve this run and authorize the preview? |
Description
Add a self-contained Python standard-library validating webhook that allows the fetch tool to request URLs on an exact hostname allowlist. Include local HTTPS setup with certificate verification, complete ToolHive configuration, allowed and denied CLI calls, and cleanup. Explain the policy's request-only scope and the separate controls needed for redirects, DNS changes, and returned content.
Correct the HMAC secret-reference field to match ToolHive's signing client and secret resolver.
This contribution was developed with AI assistance. The contributor is associated with IsMalicious; the guide contains no provider-specific integration, credentials, or service dependency.
Type of change
Related issues/PRs
Closes #1192
Submitter checklist
Content and formatting
Validation
3ca3c8f71152ad6e109dbb881be13ceb17a2cf3cconnect to the running HTTPS webhook and a synthetic local MCP server. Initialize and tool discovery work. The allowed URL executes exactly one tool call; an unlisted host and unknown tool return HTTP 403 without another backend tool call. Stopping the webhook prevents execution underfailure_policy: fail.deniedresponse before startup; the public package and tag exist, but full container-fetch execution could not be verified in this environment.Reviewer checklist
Content