twentythree-skills 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: webhook
3
+ description: Subscribe to and manage TwentyThree platform event webhooks (video uploads, webinar events, recording completions, etc.)
4
+ ---
5
+
6
+ # TwentyThree Webhook Commands
7
+
8
+ > Webhooks deliver platform events (video upload complete, webinar started, recording finished, etc.) to a URL you control.
9
+ > Every example uses `--json` for machine-readable output.
10
+
11
+ ## Prerequisites
12
+
13
+ Auth scope varies: **read** (list, events, sample), **write** (subscribe, unsubscribe).
14
+ Run `twentythree auth credentials` if not already configured.
15
+ Verify: `twentythree auth status --json`
16
+
17
+ > For any flag not listed here, run `twentythree webhook <cmd> --agent` to get the complete flag list, types, and defaults.
18
+
19
+ ## Commands
20
+
21
+ ### webhook list
22
+
23
+ **Auth scope:** read **Side effects:** none **Output:** table (ID, Event, Target URL)
24
+
25
+ No additional flags.
26
+
27
+ ```bash
28
+ # List all webhook subscriptions for the workspace
29
+ twentythree webhook list --json
30
+
31
+ # Review subscriptions before adding or removing
32
+ twentythree webhook list --json
33
+ ```
34
+
35
+ ---
36
+
37
+ ### webhook subscribe
38
+
39
+ **Auth scope:** write **Side effects:** creates **Output:** key-value (webhook_id)
40
+
41
+ | Flag | Required | Default | Description |
42
+ |------|----------|---------|-------------|
43
+ | `--target-url` | yes | — | URL to receive webhook POST requests |
44
+ | `--event` | yes | — | Event type to subscribe to (use `webhook events` to discover) |
45
+
46
+ ```bash
47
+ # Subscribe to video upload events
48
+ twentythree webhook subscribe --event video.uploaded --target-url https://example.com/hook --json
49
+
50
+ # Subscribe to a webinar started event discovered via webhook events
51
+ twentythree webhook subscribe --event webinar.started --target-url https://example.com/hook --json
52
+ ```
53
+
54
+ ---
55
+
56
+ ### webhook unsubscribe
57
+
58
+ **Auth scope:** write **Side effects:** destructive **Output:** key-value
59
+
60
+ > **Warning: This action removes the webhook subscription.** The target URL will stop receiving events for the specified webhook. Use `webhook list` to confirm the correct subscription ID before unsubscribing.
61
+
62
+ | Flag | Required | Default | Description |
63
+ |------|----------|---------|-------------|
64
+ | `--webhook-id` | no | — | Webhook subscription ID (at least one of `--webhook-id` or `--target-url` required) |
65
+ | `--target-url` | no | — | Target URL to unsubscribe (at least one of `--webhook-id` or `--target-url` required) |
66
+
67
+ ```bash
68
+ # Unsubscribe by webhook ID
69
+ twentythree webhook unsubscribe --webhook-id 12345 --json
70
+
71
+ # Unsubscribe by target URL (removes all subscriptions pointing to that URL)
72
+ twentythree webhook unsubscribe --target-url https://example.com/hook --json
73
+ ```
74
+
75
+ ---
76
+
77
+ ### webhook events
78
+
79
+ **Auth scope:** read **Side effects:** none **Output:** table (Event)
80
+
81
+ Lists all available webhook event types. Use this to discover valid event names before subscribing. Pass `--test-authentication` to include test authentication events.
82
+
83
+ | Flag | Required | Default | Description |
84
+ |------|----------|---------|-------------|
85
+ | `--test-authentication` | no | false | Include test authentication events |
86
+
87
+ ```bash
88
+ # List all available webhook event types
89
+ twentythree webhook events --json
90
+
91
+ # Include test authentication events to validate workspace credentials
92
+ twentythree webhook events --test-authentication --json
93
+ ```
94
+
95
+ ---
96
+
97
+ ### webhook sample
98
+
99
+ **Auth scope:** read **Side effects:** none **Output:** key-value
100
+
101
+ Returns a sample JSON payload for the given event type. Useful for consumer-side schema validation before subscribing. Pass the event name as a positional argument.
102
+
103
+ No additional flags — pass the event name as a positional argument.
104
+
105
+ ```bash
106
+ # Get a sample payload for video.uploaded events
107
+ twentythree webhook sample video.uploaded --json
108
+
109
+ # Redirect sample payload to a file for schema inference
110
+ twentythree webhook sample video.uploaded --json > sample-video-uploaded.json
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Common Patterns
116
+
117
+ ### Discover-then-subscribe (canonical flow)
118
+
119
+ ```bash
120
+ # 1. Discover available events
121
+ twentythree webhook events --json
122
+
123
+ # 2. Inspect a sample payload for one event
124
+ twentythree webhook sample video.uploaded --json
125
+
126
+ # 3. Subscribe
127
+ twentythree webhook subscribe --event video.uploaded --target-url https://example.com/hook --json
128
+ ```
129
+
130
+ ### Audit and clean up stale subscriptions
131
+
132
+ ```bash
133
+ # List all current webhook subscriptions
134
+ twentythree webhook list --json
135
+
136
+ # Remove a stale subscription by ID
137
+ twentythree webhook unsubscribe --webhook-id <id> --json
138
+
139
+ # Or remove all subscriptions pointing to a decommissioned endpoint
140
+ twentythree webhook unsubscribe --target-url https://old-endpoint.example.com/hook --json
141
+ ```
142
+
143
+ ### Test authentication before subscribing
144
+
145
+ ```bash
146
+ # Confirm workspace credentials are valid for webhook subscription
147
+ twentythree webhook events --test-authentication --json
148
+
149
+ # If authentication passes, proceed with subscription
150
+ twentythree webhook subscribe --event webinar.started --target-url https://example.com/hook --json
151
+ ```