Skip to content

[Product/Roadmap] Triggers/webhooks + qveris listen #164

Description

@linfangw

This issue now tracks only the public client work for triggers/webhooks and a local qveris listen forwarder.

Per-user OAuth lifecycle work is tracked by #200, #227, and #228. Hosted MCP rollout is no longer tracked by this issue.

Status: blocked

Toolkit implementation must wait for a stable, public triggers/webhooks contract. Do not introduce guessed endpoints, event schemas, signatures, retry behavior, or CLI commands before that contract is available.

Scope

  • Discover supported trigger types and their required configuration.
  • Create, inspect, list, and delete trigger subscriptions.
  • Receive signed webhook deliveries with documented verification, retry, idempotency, and deduplication semantics.
  • Add a Stripe-CLI-style qveris listen command that forwards deliveries to a local target.
  • Keep CLI, MCP, JavaScript SDK, and Python SDK behavior aligned where the public contract applies.

Start conditions

  • Public OpenAPI or equivalent documentation defines trigger types, subscriptions, delivery payloads, and errors.
  • Webhook signature verification, timestamp tolerance, retry, and idempotency rules are published.
  • Stable test credentials and deterministic fixtures are available on every supported public deployment.
  • The lifecycle and security model for local forwarding is documented.

Acceptance criteria

  • Contract tests cover subscription lifecycle and representative delivery failures.
  • Signature verification rejects invalid, expired, and replayed deliveries.
  • qveris listen forwards valid events, reports actionable errors, and never logs credentials or signing secrets.
  • Duplicate deliveries can be identified without dropping legitimate events.
  • Public docs and examples match the deployed contract.

Out of scope

  • Per-user OAuth, Device Flow, token refresh, and Agent delegation.
  • Hosted MCP deployment or operations.
  • Server-side trigger execution, webhook delivery infrastructure, or unpublished protocol behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststatus: blockedWaiting for an external contract or dependency before implementation can proceed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions