Skip to content

[docs] Publish JSON Schema for webhook 2xx response envelope #60

Description

@B2JK-Industry

Friction

POST /api/workflows/<id>/webhook returns a 2xx body containing the captured executionId (or id — see #55), but no schema documents what else may appear in the response. Our adapter at crates/sbo3l-keeperhub-adapter/src/lib.rs:316-319 parses only executionId / id and discards the rest. We've observed (informally, across a handful of submissions) responses also containing:

  • status — sometimes "queued", sometimes "running", sometimes absent
  • metadata — sometimes a nested object, sometimes a flat key/value, sometimes absent
  • error — appears on partial-success delivery; no documented enumeration of possible values

Without a schema, every adapter author guesses at which fields are stable, which are nullable, which are optional. The result: brittle parsers + silent drops of useful response data.

Proposed fix

Publish a JSON Schema (Draft 2020-12) at /schemas/webhook-response.v1.json describing the canonical 2xx response envelope. Each field annotated with required / nullable / additionalProperties semantics. Sister to issue #48 (request-side schema).

Bonus: an OpenAPI 3.1 spec for the whole webhook surface (request + response) so adapter authors can codegen typed clients in any language.

Context

Filed as part of SBO3L's KeeperHub Builder Feedback round 3 for ETHGlobal Open Agents 2026. Sister: #48 (request schema), #56 (max payload size). Together: a complete documented contract.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedReason, scope and plan all stand - a PR for this is welcomedocumentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions