primitive-admin 1.1.0-alpha.4 → 1.1.0-alpha.41

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.
Files changed (219) hide show
  1. package/README.md +325 -31
  2. package/assets/skill/skills/primitive-platform/SKILL.md +281 -0
  3. package/dist/bin/primitive.d.ts +2 -0
  4. package/dist/bin/primitive.js +268 -16
  5. package/dist/bin/primitive.js.map +1 -1
  6. package/dist/src/commands/admins.d.ts +2 -0
  7. package/dist/src/commands/admins.js +123 -18
  8. package/dist/src/commands/admins.js.map +1 -1
  9. package/dist/src/commands/analytics.d.ts +2 -0
  10. package/dist/src/commands/analytics.js +464 -55
  11. package/dist/src/commands/analytics.js.map +1 -1
  12. package/dist/src/commands/apps.d.ts +2 -0
  13. package/dist/src/commands/apps.js +55 -13
  14. package/dist/src/commands/apps.js.map +1 -1
  15. package/dist/src/commands/auth.d.ts +2 -0
  16. package/dist/src/commands/auth.js +177 -7
  17. package/dist/src/commands/auth.js.map +1 -1
  18. package/dist/src/commands/blob-buckets.d.ts +2 -0
  19. package/dist/src/commands/blob-buckets.js +422 -0
  20. package/dist/src/commands/blob-buckets.js.map +1 -0
  21. package/dist/src/commands/catalog.d.ts +2 -0
  22. package/dist/src/commands/catalog.js +34 -35
  23. package/dist/src/commands/catalog.js.map +1 -1
  24. package/dist/src/commands/collection-type-configs.d.ts +2 -0
  25. package/dist/src/commands/collection-type-configs.js +178 -0
  26. package/dist/src/commands/collection-type-configs.js.map +1 -0
  27. package/dist/src/commands/collections.d.ts +2 -0
  28. package/dist/src/commands/collections.js +515 -0
  29. package/dist/src/commands/collections.js.map +1 -0
  30. package/dist/src/commands/comparisons.d.ts +2 -0
  31. package/dist/src/commands/comparisons.js +6 -6
  32. package/dist/src/commands/comparisons.js.map +1 -1
  33. package/dist/src/commands/cron-triggers.d.ts +2 -0
  34. package/dist/src/commands/cron-triggers.js +357 -0
  35. package/dist/src/commands/cron-triggers.js.map +1 -0
  36. package/dist/src/commands/database-types.d.ts +2 -0
  37. package/dist/src/commands/database-types.js +471 -0
  38. package/dist/src/commands/database-types.js.map +1 -0
  39. package/dist/src/commands/databases.d.ts +2 -0
  40. package/dist/src/commands/databases.js +1462 -83
  41. package/dist/src/commands/databases.js.map +1 -1
  42. package/dist/src/commands/documents.d.ts +2 -0
  43. package/dist/src/commands/documents.js +518 -11
  44. package/dist/src/commands/documents.js.map +1 -1
  45. package/dist/src/commands/email-templates.d.ts +2 -0
  46. package/dist/src/commands/email-templates.js +281 -0
  47. package/dist/src/commands/email-templates.js.map +1 -0
  48. package/dist/src/commands/env.d.ts +12 -0
  49. package/dist/src/commands/env.js +260 -0
  50. package/dist/src/commands/env.js.map +1 -0
  51. package/dist/src/commands/group-type-configs.d.ts +2 -0
  52. package/dist/src/commands/group-type-configs.js +181 -0
  53. package/dist/src/commands/group-type-configs.js.map +1 -0
  54. package/dist/src/commands/groups.d.ts +2 -0
  55. package/dist/src/commands/groups.js +48 -45
  56. package/dist/src/commands/groups.js.map +1 -1
  57. package/dist/src/commands/guides.d.ts +159 -0
  58. package/dist/src/commands/guides.js +449 -35
  59. package/dist/src/commands/guides.js.map +1 -1
  60. package/dist/src/commands/init.d.ts +17 -0
  61. package/dist/src/commands/init.js +811 -201
  62. package/dist/src/commands/init.js.map +1 -1
  63. package/dist/src/commands/integrations.d.ts +2 -0
  64. package/dist/src/commands/integrations.js +533 -46
  65. package/dist/src/commands/integrations.js.map +1 -1
  66. package/dist/src/commands/llm.d.ts +2 -0
  67. package/dist/src/commands/llm.js +4 -2
  68. package/dist/src/commands/llm.js.map +1 -1
  69. package/dist/src/commands/metadata.d.ts +2 -0
  70. package/dist/src/commands/metadata.js +194 -0
  71. package/dist/src/commands/metadata.js.map +1 -0
  72. package/dist/src/commands/prompts.d.ts +2 -0
  73. package/dist/src/commands/prompts.js +50 -52
  74. package/dist/src/commands/prompts.js.map +1 -1
  75. package/dist/src/commands/rule-sets.d.ts +3 -0
  76. package/dist/src/commands/rule-sets.js +388 -0
  77. package/dist/src/commands/rule-sets.js.map +1 -0
  78. package/dist/src/commands/scripts.d.ts +2 -0
  79. package/dist/src/commands/scripts.js +667 -0
  80. package/dist/src/commands/scripts.js.map +1 -0
  81. package/dist/src/commands/secrets.d.ts +2 -0
  82. package/dist/src/commands/secrets.js +108 -0
  83. package/dist/src/commands/secrets.js.map +1 -0
  84. package/dist/src/commands/skill.d.ts +2 -0
  85. package/dist/src/commands/skill.js +29 -0
  86. package/dist/src/commands/skill.js.map +1 -0
  87. package/dist/src/commands/sync.d.ts +175 -0
  88. package/dist/src/commands/sync.js +4412 -233
  89. package/dist/src/commands/sync.js.map +1 -1
  90. package/dist/src/commands/tokens.d.ts +2 -0
  91. package/dist/src/commands/tokens.js +122 -19
  92. package/dist/src/commands/tokens.js.map +1 -1
  93. package/dist/src/commands/users.d.ts +2 -0
  94. package/dist/src/commands/users.js +440 -22
  95. package/dist/src/commands/users.js.map +1 -1
  96. package/dist/src/commands/waitlist.d.ts +2 -0
  97. package/dist/src/commands/waitlist.js +10 -10
  98. package/dist/src/commands/waitlist.js.map +1 -1
  99. package/dist/src/commands/webhooks.d.ts +2 -0
  100. package/dist/src/commands/webhooks.js +391 -0
  101. package/dist/src/commands/webhooks.js.map +1 -0
  102. package/dist/src/commands/workflows.d.ts +49 -0
  103. package/dist/src/commands/workflows.js +1009 -123
  104. package/dist/src/commands/workflows.js.map +1 -1
  105. package/dist/src/lib/api-client.d.ts +1283 -0
  106. package/dist/src/lib/api-client.js +1129 -83
  107. package/dist/src/lib/api-client.js.map +1 -1
  108. package/dist/src/lib/auth-flow.d.ts +8 -0
  109. package/dist/src/lib/block-layout.d.ts +160 -0
  110. package/dist/src/lib/block-layout.js +451 -0
  111. package/dist/src/lib/block-layout.js.map +1 -0
  112. package/dist/src/lib/cli-manifest.d.ts +60 -0
  113. package/dist/src/lib/cli-manifest.js +70 -0
  114. package/dist/src/lib/cli-manifest.js.map +1 -0
  115. package/dist/src/lib/config.d.ts +53 -0
  116. package/dist/src/lib/config.js +92 -53
  117. package/dist/src/lib/config.js.map +1 -1
  118. package/dist/src/lib/confirm-prompt.d.ts +83 -0
  119. package/dist/src/lib/confirm-prompt.js +110 -0
  120. package/dist/src/lib/confirm-prompt.js.map +1 -0
  121. package/dist/src/lib/constants.d.ts +2 -0
  122. package/dist/src/lib/constants.js +3 -0
  123. package/dist/src/lib/constants.js.map +1 -0
  124. package/dist/src/lib/crash-handlers.d.ts +20 -0
  125. package/dist/src/lib/crash-handlers.js +49 -0
  126. package/dist/src/lib/crash-handlers.js.map +1 -0
  127. package/dist/src/lib/credentials-store.d.ts +79 -0
  128. package/dist/src/lib/credentials-store.js +307 -0
  129. package/dist/src/lib/credentials-store.js.map +1 -0
  130. package/dist/src/lib/csv.d.ts +48 -0
  131. package/dist/src/lib/csv.js +177 -0
  132. package/dist/src/lib/csv.js.map +1 -0
  133. package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
  134. package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
  135. package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
  136. package/dist/src/lib/db-codegen/dbGenerator.d.ts +111 -0
  137. package/dist/src/lib/db-codegen/dbGenerator.js +371 -0
  138. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
  139. package/dist/src/lib/db-codegen/dbNaming.d.ts +45 -0
  140. package/dist/src/lib/db-codegen/dbNaming.js +104 -0
  141. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
  142. package/dist/src/lib/db-codegen/dbTemplates.d.ts +97 -0
  143. package/dist/src/lib/db-codegen/dbTemplates.js +159 -0
  144. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
  145. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +78 -0
  146. package/dist/src/lib/db-codegen/dbTsTypes.js +112 -0
  147. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
  148. package/dist/src/lib/env-resolver.d.ts +62 -0
  149. package/dist/src/lib/env-resolver.js +121 -0
  150. package/dist/src/lib/env-resolver.js.map +1 -0
  151. package/dist/src/lib/fetch.d.ts +5 -0
  152. package/dist/src/lib/generated-allowlist.d.ts +28 -0
  153. package/dist/src/lib/generated-allowlist.js +220 -0
  154. package/dist/src/lib/generated-allowlist.js.map +1 -0
  155. package/dist/src/lib/init-config.d.ts +59 -0
  156. package/dist/src/lib/init-config.js +113 -0
  157. package/dist/src/lib/init-config.js.map +1 -0
  158. package/dist/src/lib/migration-nag.d.ts +49 -0
  159. package/dist/src/lib/migration-nag.js +163 -0
  160. package/dist/src/lib/migration-nag.js.map +1 -0
  161. package/dist/src/lib/output.d.ts +86 -0
  162. package/dist/src/lib/output.js +150 -8
  163. package/dist/src/lib/output.js.map +1 -1
  164. package/dist/src/lib/paginate.d.ts +33 -0
  165. package/dist/src/lib/paginate.js +42 -0
  166. package/dist/src/lib/paginate.js.map +1 -0
  167. package/dist/src/lib/project-config.d.ts +97 -0
  168. package/dist/src/lib/project-config.js +209 -0
  169. package/dist/src/lib/project-config.js.map +1 -0
  170. package/dist/src/lib/query-operators.d.ts +43 -0
  171. package/dist/src/lib/query-operators.js +80 -0
  172. package/dist/src/lib/query-operators.js.map +1 -0
  173. package/dist/src/lib/refresh-admin-credentials.d.ts +65 -0
  174. package/dist/src/lib/refresh-admin-credentials.js +103 -0
  175. package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
  176. package/dist/src/lib/resolve-platform.d.ts +45 -0
  177. package/dist/src/lib/resolve-platform.js +43 -0
  178. package/dist/src/lib/resolve-platform.js.map +1 -0
  179. package/dist/src/lib/skill-installer.d.ts +23 -0
  180. package/dist/src/lib/skill-installer.js +135 -0
  181. package/dist/src/lib/skill-installer.js.map +1 -0
  182. package/dist/src/lib/snapshots.d.ts +99 -0
  183. package/dist/src/lib/snapshots.js +357 -0
  184. package/dist/src/lib/snapshots.js.map +1 -0
  185. package/dist/src/lib/sync-paths.d.ts +72 -0
  186. package/dist/src/lib/sync-paths.js +130 -0
  187. package/dist/src/lib/sync-paths.js.map +1 -0
  188. package/dist/src/lib/template.d.ts +97 -0
  189. package/dist/src/lib/template.js +336 -62
  190. package/dist/src/lib/template.js.map +1 -1
  191. package/dist/src/lib/token-inject.d.ts +56 -0
  192. package/dist/src/lib/token-inject.js +204 -0
  193. package/dist/src/lib/token-inject.js.map +1 -0
  194. package/dist/src/lib/toml-database-config.d.ts +152 -0
  195. package/dist/src/lib/toml-database-config.js +600 -0
  196. package/dist/src/lib/toml-database-config.js.map +1 -0
  197. package/dist/src/lib/toml-metadata-config.d.ts +139 -0
  198. package/dist/src/lib/toml-metadata-config.js +427 -0
  199. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  200. package/dist/src/lib/toml-params-validator.d.ts +129 -0
  201. package/dist/src/lib/toml-params-validator.js +298 -0
  202. package/dist/src/lib/toml-params-validator.js.map +1 -0
  203. package/dist/src/lib/version-check.d.ts +10 -0
  204. package/dist/src/lib/version-check.js +172 -0
  205. package/dist/src/lib/version-check.js.map +1 -0
  206. package/dist/src/lib/workflow-apply.d.ts +66 -0
  207. package/dist/src/lib/workflow-apply.js +117 -0
  208. package/dist/src/lib/workflow-apply.js.map +1 -0
  209. package/dist/src/lib/workflow-fragments.d.ts +41 -0
  210. package/dist/src/lib/workflow-fragments.js +121 -0
  211. package/dist/src/lib/workflow-fragments.js.map +1 -0
  212. package/dist/src/lib/workflow-toml-validator.d.ts +95 -0
  213. package/dist/src/lib/workflow-toml-validator.js +323 -0
  214. package/dist/src/lib/workflow-toml-validator.js.map +1 -0
  215. package/dist/src/types/index.d.ts +520 -0
  216. package/dist/src/validators.d.ts +64 -0
  217. package/dist/src/validators.js +63 -0
  218. package/dist/src/validators.js.map +1 -0
  219. package/package.json +18 -4
@@ -1 +1 @@
1
- {"version":3,"file":"waitlist.js","sourceRoot":"","sources":["../../../src/commands/waitlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waitlist.js","sourceRoot":"","sources":["../../../src/commands/waitlist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare function registerWebhooksCommands(program: Command): void;
@@ -0,0 +1,391 @@
1
+ import { ApiClient } from "../lib/api-client.js";
2
+ import { resolveAppId } from "../lib/config.js";
3
+ import { success, error, info, keyValue, result as printResult, formatTable, formatId, formatDate, formatStatus, json, divider, } from "../lib/output.js";
4
+ import { confirmPrompt } from "../lib/confirm-prompt.js";
5
+ export function registerWebhooksCommands(program) {
6
+ const webhooks = program
7
+ .command("webhooks")
8
+ .description("Manage inbound webhooks that trigger workflows")
9
+ .addHelpText("after", `
10
+ Examples:
11
+ $ primitive webhooks list
12
+ $ primitive webhooks create --key stripe-events --name "Stripe Events" --workflow-key process-stripe --scheme hmac-sha256
13
+ $ primitive webhooks get 01HXY...
14
+ $ primitive webhooks rotate-secret 01HXY... --secret newsecret123
15
+ $ primitive webhooks events 01HXY...
16
+ $ primitive webhooks test 01HXY... --payload '{"event":"test"}'
17
+ `);
18
+ // List webhooks
19
+ webhooks
20
+ .command("list")
21
+ .description("List webhooks")
22
+ .argument("[app-id]", "App ID (uses current app if not specified)")
23
+ .option("--app <app-id>", "App ID")
24
+ .option("--status <status>", "Filter by status: active, paused, archived")
25
+ .option("--json", "Output as JSON")
26
+ .action(async (appId, options) => {
27
+ const resolvedAppId = resolveAppId(appId, options);
28
+ const client = new ApiClient();
29
+ try {
30
+ const { items } = await client.listWebhooks(resolvedAppId, {
31
+ status: options.status,
32
+ });
33
+ if (options.json) {
34
+ json(items);
35
+ return;
36
+ }
37
+ if (!items || items.length === 0) {
38
+ info("No webhooks found.");
39
+ return;
40
+ }
41
+ console.log(formatTable(items, [
42
+ { header: "KEY", key: "webhookKey" },
43
+ { header: "NAME", key: "displayName" },
44
+ { header: "SCHEME", key: "verificationScheme" },
45
+ { header: "WORKFLOW", key: "workflowKey" },
46
+ { header: "STATUS", key: "status", format: formatStatus },
47
+ { header: "LAST TRIGGERED", key: "lastTriggeredAt", format: formatDate },
48
+ ]));
49
+ }
50
+ catch (err) {
51
+ error(err.message);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ // Create webhook
56
+ webhooks
57
+ .command("create")
58
+ .description("Create a new webhook")
59
+ .argument("[app-id]", "App ID (uses current app if not specified)")
60
+ .option("--app <app-id>", "App ID")
61
+ .option("--key <key>", "Webhook key (unique identifier)")
62
+ .option("--name <name>", "Display name")
63
+ .option("--workflow-key <wfKey>", "Workflow key to trigger")
64
+ .option("--scheme <scheme>", "Verification scheme (e.g., hmac-sha256, none)")
65
+ .option("--secret <secret>", "Signing secret")
66
+ .option("--status <status>", "Status: active, paused (default: active)")
67
+ .option("--description <desc>", "Description")
68
+ .option("--tolerance-seconds <n>", "Timestamp tolerance in seconds")
69
+ .option("--no-dedup", "Disable deduplication")
70
+ .option("--dedup-window-ms <n>", "Deduplication window in milliseconds")
71
+ .option("--allowed-ips <cidrs...>", "Allowed IP CIDRs")
72
+ .option("--input-mapping <json>", "Input mapping as JSON")
73
+ .option("--json", "Output as JSON")
74
+ .action(async (appId, options) => {
75
+ const resolvedAppId = resolveAppId(appId, options);
76
+ const client = new ApiClient();
77
+ if (!options.key || !options.name || !options.workflowKey || !options.scheme) {
78
+ error("Required: --key, --name, --workflow-key, --scheme");
79
+ process.exit(1);
80
+ }
81
+ const payload = {
82
+ webhookKey: options.key,
83
+ displayName: options.name,
84
+ workflowKey: options.workflowKey,
85
+ verificationScheme: options.scheme,
86
+ // Default new webhooks to active so they accept inbound deliveries
87
+ // immediately. The server also defaults to active, but sending an
88
+ // explicit status keeps create self-describing.
89
+ status: options.status || "active",
90
+ };
91
+ if (options.secret)
92
+ payload.signingSecret = options.secret;
93
+ if (options.description)
94
+ payload.description = options.description;
95
+ if (options.toleranceSeconds)
96
+ payload.toleranceSeconds = parseInt(options.toleranceSeconds);
97
+ if (options.dedup === false)
98
+ payload.deduplicationEnabled = false;
99
+ if (options.dedupWindowMs)
100
+ payload.deduplicationWindowMs = parseInt(options.dedupWindowMs);
101
+ if (options.allowedIps)
102
+ payload.allowedIpCidrs = options.allowedIps;
103
+ if (options.inputMapping) {
104
+ try {
105
+ payload.inputMapping = JSON.parse(options.inputMapping);
106
+ }
107
+ catch {
108
+ error("Invalid JSON in --input-mapping");
109
+ process.exit(1);
110
+ }
111
+ }
112
+ try {
113
+ const result = await client.createWebhook(resolvedAppId, payload);
114
+ if (options.json) {
115
+ json(result);
116
+ return;
117
+ }
118
+ success(`Webhook created: ${result.displayName}`);
119
+ keyValue("Webhook ID", result.webhookId);
120
+ keyValue("Key", result.webhookKey);
121
+ keyValue("Workflow", result.workflowKey);
122
+ keyValue("Scheme", result.verificationScheme);
123
+ }
124
+ catch (err) {
125
+ error(err.message);
126
+ process.exit(1);
127
+ }
128
+ });
129
+ // Get webhook
130
+ webhooks
131
+ .command("get")
132
+ .description("Get webhook details")
133
+ .argument("<webhook-id>", "Webhook ID")
134
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
135
+ .option("--json", "Output as JSON")
136
+ .action(async (webhookId, options) => {
137
+ const resolvedAppId = resolveAppId(undefined, options);
138
+ const client = new ApiClient();
139
+ try {
140
+ const result = await client.getWebhook(resolvedAppId, webhookId);
141
+ if (options.json) {
142
+ json(result);
143
+ return;
144
+ }
145
+ printResult("Webhook ID", result.webhookId);
146
+ printResult("Key", result.webhookKey);
147
+ printResult("Name", result.displayName);
148
+ printResult("Description", result.description || "-");
149
+ printResult("Status", formatStatus(result.status));
150
+ printResult("Workflow Key", result.workflowKey);
151
+ printResult("Verification Scheme", result.verificationScheme);
152
+ printResult("Signing Secret", result.signingSecretMasked || "-");
153
+ divider();
154
+ info("Configuration:");
155
+ printResult(" Tolerance Seconds", String(result.toleranceSeconds ?? "-"));
156
+ printResult(" Deduplication", result.deduplicationEnabled ? "enabled" : "disabled");
157
+ printResult(" Dedup Window", result.deduplicationWindowMs ? `${result.deduplicationWindowMs}ms` : "-");
158
+ printResult(" Grace Period", result.secretGracePeriodMs ? `${result.secretGracePeriodMs}ms` : "-");
159
+ printResult(" Allowed IPs", result.allowedIpCidrs || "-");
160
+ printResult(" Input Mapping", result.inputMapping || "-");
161
+ divider();
162
+ printResult("Last Triggered", result.lastTriggeredAt ? formatDate(result.lastTriggeredAt) : "never");
163
+ printResult("Created", formatDate(result.createdAt));
164
+ printResult("Modified", formatDate(result.modifiedAt));
165
+ }
166
+ catch (err) {
167
+ error(err.message);
168
+ process.exit(1);
169
+ }
170
+ });
171
+ // Update webhook
172
+ webhooks
173
+ .command("update")
174
+ .description("Update a webhook")
175
+ .argument("<webhook-id>", "Webhook ID")
176
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
177
+ .option("--name <name>", "Display name")
178
+ .option("--description <desc>", "Description")
179
+ .option("--status <status>", "Status: active, paused")
180
+ .option("--scheme <scheme>", "Verification scheme")
181
+ .option("--workflow-key <wfKey>", "Workflow key to trigger")
182
+ .option("--tolerance-seconds <n>", "Timestamp tolerance in seconds")
183
+ .option("--no-dedup", "Disable deduplication")
184
+ .option("--dedup-window-ms <n>", "Deduplication window in milliseconds")
185
+ .option("--allowed-ips <cidrs...>", "Allowed IP CIDRs")
186
+ .option("--grace-period-ms <n>", "Secret grace period in milliseconds")
187
+ .option("--input-mapping <json>", "Input mapping as JSON")
188
+ .option("--json", "Output as JSON")
189
+ .action(async (webhookId, options) => {
190
+ const resolvedAppId = resolveAppId(undefined, options);
191
+ const payload = {};
192
+ if (options.name)
193
+ payload.displayName = options.name;
194
+ if (options.description)
195
+ payload.description = options.description;
196
+ if (options.status)
197
+ payload.status = options.status;
198
+ if (options.scheme)
199
+ payload.verificationScheme = options.scheme;
200
+ if (options.workflowKey)
201
+ payload.workflowKey = options.workflowKey;
202
+ if (options.toleranceSeconds)
203
+ payload.toleranceSeconds = parseInt(options.toleranceSeconds);
204
+ if (options.dedup === false)
205
+ payload.deduplicationEnabled = false;
206
+ if (options.dedupWindowMs)
207
+ payload.deduplicationWindowMs = parseInt(options.dedupWindowMs);
208
+ if (options.allowedIps)
209
+ payload.allowedIpCidrs = options.allowedIps;
210
+ if (options.gracePeriodMs)
211
+ payload.secretGracePeriodMs = parseInt(options.gracePeriodMs);
212
+ if (options.inputMapping) {
213
+ try {
214
+ payload.inputMapping = JSON.parse(options.inputMapping);
215
+ }
216
+ catch {
217
+ error("Invalid JSON in --input-mapping");
218
+ process.exit(1);
219
+ }
220
+ }
221
+ if (Object.keys(payload).length === 0) {
222
+ error("No update options specified.");
223
+ process.exit(1);
224
+ }
225
+ const client = new ApiClient();
226
+ try {
227
+ const result = await client.updateWebhook(resolvedAppId, webhookId, payload);
228
+ if (options.json) {
229
+ json(result);
230
+ return;
231
+ }
232
+ success("Webhook updated.");
233
+ }
234
+ catch (err) {
235
+ error(err.message);
236
+ process.exit(1);
237
+ }
238
+ });
239
+ // Delete webhook
240
+ webhooks
241
+ .command("delete")
242
+ .description("Delete a webhook")
243
+ .argument("<webhook-id>", "Webhook ID")
244
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
245
+ .option("-y, --yes", "Skip confirmation prompt")
246
+ .action(async (webhookId, options) => {
247
+ const resolvedAppId = resolveAppId(undefined, options);
248
+ if (!options.yes) {
249
+ let confirm;
250
+ try {
251
+ confirm = await confirmPrompt(`Are you sure you want to delete webhook ${webhookId}?`);
252
+ }
253
+ catch (err) {
254
+ error(err.message);
255
+ process.exit(1);
256
+ }
257
+ if (!confirm) {
258
+ info("Cancelled.");
259
+ return;
260
+ }
261
+ }
262
+ const client = new ApiClient();
263
+ try {
264
+ await client.deleteWebhook(resolvedAppId, webhookId);
265
+ success("Webhook deleted.");
266
+ }
267
+ catch (err) {
268
+ error(err.message);
269
+ process.exit(1);
270
+ }
271
+ });
272
+ // Rotate secret
273
+ webhooks
274
+ .command("rotate-secret")
275
+ .description("Rotate the signing secret for a webhook")
276
+ .argument("<webhook-id>", "Webhook ID")
277
+ .requiredOption("--secret <new-secret>", "New signing secret")
278
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
279
+ .option("--json", "Output as JSON")
280
+ .action(async (webhookId, options) => {
281
+ const resolvedAppId = resolveAppId(undefined, options);
282
+ const client = new ApiClient();
283
+ try {
284
+ const result = await client.rotateWebhookSecret(resolvedAppId, webhookId, {
285
+ signingSecret: options.secret,
286
+ });
287
+ if (options.json) {
288
+ json(result);
289
+ return;
290
+ }
291
+ success("Signing secret rotated.");
292
+ if (result.signingSecretMasked) {
293
+ keyValue("Secret (masked)", result.signingSecretMasked);
294
+ }
295
+ }
296
+ catch (err) {
297
+ error(err.message);
298
+ process.exit(1);
299
+ }
300
+ });
301
+ // List webhook events
302
+ webhooks
303
+ .command("events")
304
+ .description("View webhook event history")
305
+ .argument("<webhook-id>", "Webhook ID")
306
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
307
+ .option("--limit <n>", "Number of events to show", "20")
308
+ .option("--json", "Output as JSON")
309
+ .action(async (webhookId, options) => {
310
+ const resolvedAppId = resolveAppId(undefined, options);
311
+ const client = new ApiClient();
312
+ try {
313
+ const result = await client.listWebhookEvents(resolvedAppId, webhookId, {
314
+ limit: parseInt(options.limit),
315
+ });
316
+ const events = result?.items ?? result ?? [];
317
+ if (options.json) {
318
+ json(events);
319
+ return;
320
+ }
321
+ if (!events || events.length === 0) {
322
+ info("No events found.");
323
+ return;
324
+ }
325
+ console.log(formatTable(events, [
326
+ { header: "EVENT ID", key: "eventId", format: formatId },
327
+ { header: "EXTERNAL ID", key: "externalEventId" },
328
+ { header: "STATUS", key: "status", format: formatStatus },
329
+ { header: "HTTP", key: "httpStatus" },
330
+ { header: "REASON", key: "rejectionReason" },
331
+ { header: "CREATED", key: "createdAt", format: formatDate },
332
+ ]));
333
+ }
334
+ catch (err) {
335
+ error(err.message);
336
+ process.exit(1);
337
+ }
338
+ });
339
+ // Test webhook
340
+ webhooks
341
+ .command("test")
342
+ .description("Send a test payload to a webhook")
343
+ .argument("<webhook-id>", "Webhook ID")
344
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
345
+ .option("--payload <json>", "Test payload as JSON")
346
+ .option("--json", "Output as JSON")
347
+ .action(async (webhookId, options) => {
348
+ const resolvedAppId = resolveAppId(undefined, options);
349
+ let payload = {};
350
+ if (options.payload) {
351
+ try {
352
+ payload = JSON.parse(options.payload);
353
+ }
354
+ catch {
355
+ error("Invalid JSON in --payload");
356
+ process.exit(1);
357
+ }
358
+ }
359
+ const client = new ApiClient();
360
+ try {
361
+ const result = await client.testWebhook(resolvedAppId, webhookId, payload);
362
+ if (options.json) {
363
+ json(result);
364
+ return;
365
+ }
366
+ if (result.success) {
367
+ success("Test webhook delivered successfully.");
368
+ if (result.signatureHeaders) {
369
+ divider();
370
+ info("Generated Signature Headers:");
371
+ for (const [header, value] of Object.entries(result.signatureHeaders)) {
372
+ keyValue(` ${header}`, String(value));
373
+ }
374
+ }
375
+ if (result.payload) {
376
+ divider();
377
+ info("Test Payload:");
378
+ console.log(JSON.stringify(result.payload, null, 2));
379
+ }
380
+ }
381
+ else {
382
+ error(`Test failed: ${result.message || result.errorCode || "unknown error"}`);
383
+ }
384
+ }
385
+ catch (err) {
386
+ error(err.message);
387
+ process.exit(1);
388
+ }
389
+ });
390
+ }
391
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Render the `Step Results` section of `workflows runs status`. Pure
4
+ * formatting helper — returns lines as strings so it's unit-testable
5
+ * (the caller console.logs them). For each step, emits:
6
+ *
7
+ * ` <id>: <status-label> <duration>`
8
+ *
9
+ * and, when applicable, indented follow-up lines:
10
+ *
11
+ * - `error_captured` step with `error` → ` error: <truncated message>`
12
+ * - forEach output with `errors[]` non-empty →
13
+ * ` forEach errors: <N/M> - first: <truncated message>`
14
+ *
15
+ * The truncation length matches `runs steps` ERROR column (80 chars,
16
+ * trailing "..." when truncated). See #688.
17
+ */
18
+ /**
19
+ * Terminal-status predicate for the `workflows preview --wait` poll loop
20
+ * (issue #941). A status is terminal when the run has reached an end state and
21
+ * the wait should stop polling — as opposed to a still-in-flight status
22
+ * ("running"/"queued"/"waiting") that should keep the loop going until the cap.
23
+ *
24
+ * The admin preview-status endpoint emits these terminal values (see
25
+ * `mapWorkflowStatus` / the server-side `isEnded` set in admin-api.ts):
26
+ * - "completed" (Cloudflare "complete" normalized)
27
+ * - "failed" (Cloudflare "errored" normalized)
28
+ * - "terminated" (an aborted preview — Codex P2: previously NOT treated as
29
+ * terminal, so an aborted preview was misreported as a wait timeout)
30
+ *
31
+ * We accept the un-normalized Cloudflare spellings too ("complete"/"errored")
32
+ * defensively, in case a status slips through un-normalized.
33
+ */
34
+ export declare function isPreviewWaitTerminalStatus(s: unknown): boolean;
35
+ export declare function renderRunStatusStepResults(stepResults: any[]): string[];
36
+ /**
37
+ * Issue #687 (review feedback): render an unambiguous label for a workflow
38
+ * config slot ("active config", "draft config", etc.) when the slot may be
39
+ * unnamed. Falls back to a short ID prefix so users staging multiple unnamed
40
+ * configs can still tell them apart.
41
+ *
42
+ * formatConfigSlotLabel("active config", "v2", "01KRT...") → 'active config "v2"'
43
+ * formatConfigSlotLabel("active config", null, "01KRTABCDXYZ...") → 'active config (01KRTABCDXYZ…)'
44
+ * formatConfigSlotLabel("active config", null, null) → 'active config'
45
+ *
46
+ * Exported for testability.
47
+ */
48
+ export declare function formatConfigSlotLabel(slot: string, configName: string | null | undefined, configId: string | null | undefined, prefixLength?: number): string;
49
+ export declare function registerWorkflowsCommands(program: Command): void;