Skip to content

Commit 0850b12

Browse files
authored
feat: add tool metadata to ToolVersionInfo in webhook schema (#26)
* feat: add tool metadata to ToolVersionInfo in webhook schema Add classification, behavior, and extras metadata to ToolVersionInfo so webhook consumers can make access-control decisions based on tool capabilities and service domains. New schemas: ToolVersionInfoMetadata, ToolClassification, ToolBehavior. Made-with: Cursor * feat: add metadata to ToolInfo for pre/post hooks ToolInfo is used in PreHookRequest and PostHookRequest, so webhook consumers need metadata there too — not just in the access hook path. Made-with: Cursor * chore: bump schema version to 1.1.0-beta Made-with: Cursor
1 parent fea4a36 commit 0850b12

1 file changed

Lines changed: 58 additions & 1 deletion

File tree

logic_extensions/http/1.0/schema.yaml

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ info:
55
Webhook contract between Arcade Engine and external hook servers for tool execution control.
66
77
**Note:** All endpoint paths are fully configurable. The paths shown (/pre, /post, etc.) are just defaults. You specify the actual paths when configuring your hooks in Arcade. The payloads described below remain the same.
8-
version: 1.0.0-beta
8+
version: 1.1.0-beta
99

1010
paths:
1111
/pre:
@@ -184,6 +184,9 @@ components:
184184
version:
185185
type: string
186186
description: Tool version
187+
metadata:
188+
$ref: '#/components/schemas/ToolVersionInfoMetadata'
189+
description: Tool metadata
187190

188191
OAuth2Details:
189192
type: object
@@ -390,6 +393,60 @@ components:
390393
version:
391394
type: string
392395
description: Tool version
396+
metadata:
397+
$ref: '#/components/schemas/ToolVersionInfoMetadata'
398+
description: Tool metadata
399+
400+
ToolVersionInfoMetadata:
401+
type: object
402+
description: Tool metadata
403+
properties:
404+
classification:
405+
$ref: '#/components/schemas/ToolClassification'
406+
behavior:
407+
$ref: '#/components/schemas/ToolBehavior'
408+
extras:
409+
type: object
410+
additionalProperties: true
411+
description: 'Arbitrary additional metadata (e.g., {"IdP": "entra_id"})'
412+
413+
ToolClassification:
414+
type: object
415+
description: Classification metadata for a tool
416+
properties:
417+
service_domains:
418+
type: array
419+
items:
420+
type: string
421+
description: >
422+
Service domains this tool interfaces with (e.g., "crm", "email", "calendar").
423+
Sourced from the tool's Classification.ServiceDomains metadata.
424+
See https://docs.arcade.dev/en/guides/create-tools/tool-basics/add-tool-metadata for valid values.
425+
426+
ToolBehavior:
427+
type: object
428+
description: Behavior metadata for a tool
429+
properties:
430+
operations:
431+
type: array
432+
items:
433+
type: string
434+
description: >
435+
Operations this tool performs (e.g., "read", "create", "update", "delete", "opaque").
436+
Sourced from the tool's Behavior.Operations metadata.
437+
See https://docs.arcade.dev/en/guides/create-tools/tool-basics/add-tool-metadata for valid values.
438+
read_only:
439+
type: boolean
440+
description: Whether the tool only reads data
441+
destructive:
442+
type: boolean
443+
description: Whether the tool can delete or irreversibly modify data
444+
idempotent:
445+
type: boolean
446+
description: Whether repeated calls with the same inputs produce the same result
447+
open_world:
448+
type: boolean
449+
description: Whether the tool can affect state outside its defined outputs
393450

394451
ToolkitInfo:
395452
type: object

0 commit comments

Comments
 (0)