mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
* refactor: carve out extraction panel * refactor: create spec versions for node types * refactor: create a GenericNode and remove custom nodes * feat: add python and typescript sdk * add dograh sdk * fix: fetch draft workflow definition over published one * fix: fix routes of SDKs to use code gen * chore: remove doclink dependency to reduce image size * chore: format files * chore: bump pipecat * feat: let mcp fetch archived workflows on demand * chore: fix tests * feat: add sdk documentation * chore: change banner and add badge
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
"""Spec for the API Trigger node — exposes a public webhook URL that
|
|
external systems can hit to launch the workflow."""
|
|
|
|
from api.services.workflow.node_specs._base import (
|
|
GraphConstraints,
|
|
NodeCategory,
|
|
NodeExample,
|
|
NodeSpec,
|
|
PropertySpec,
|
|
PropertyType,
|
|
)
|
|
|
|
SPEC = NodeSpec(
|
|
name="trigger",
|
|
display_name="API Trigger",
|
|
description="Public HTTP endpoint that launches the workflow.",
|
|
llm_hint=(
|
|
"Exposes a public HTTP POST endpoint. External systems call the URL "
|
|
"(derived from the auto-generated `trigger_path`) to launch this "
|
|
"workflow. Requires an API key in the `X-API-Key` header."
|
|
),
|
|
category=NodeCategory.trigger,
|
|
icon="Webhook",
|
|
properties=[
|
|
PropertySpec(
|
|
name="name",
|
|
type=PropertyType.string,
|
|
display_name="Name",
|
|
description="Short identifier shown in the canvas. No runtime effect.",
|
|
required=True,
|
|
min_length=1,
|
|
default="API Trigger",
|
|
),
|
|
PropertySpec(
|
|
name="enabled",
|
|
type=PropertyType.boolean,
|
|
display_name="Enabled",
|
|
description="When false, the trigger URL returns 404.",
|
|
default=True,
|
|
),
|
|
PropertySpec(
|
|
name="trigger_path",
|
|
type=PropertyType.string,
|
|
display_name="Trigger Path",
|
|
description=(
|
|
"Auto-generated UUID-style path segment that uniquely "
|
|
"identifies this trigger. Do not edit manually."
|
|
),
|
|
),
|
|
],
|
|
examples=[
|
|
NodeExample(
|
|
name="default",
|
|
data={"name": "Inbound Trigger", "enabled": True},
|
|
),
|
|
],
|
|
graph_constraints=GraphConstraints(
|
|
min_incoming=0,
|
|
max_incoming=0,
|
|
),
|
|
)
|