@objectstack/plugin-webhooks 11.9.0 → 12.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.
- package/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +36 -0
- package/dist/{chunk-2V7E3ABN.js → chunk-HSSV22TO.js} +2 -2
- package/dist/chunk-HSSV22TO.js.map +1 -0
- package/dist/{chunk-EHLUIU42.cjs → chunk-RA3REIOA.cjs} +2 -2
- package/dist/chunk-RA3REIOA.cjs.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.js +1 -1
- package/dist/schema.cjs +2 -2
- package/dist/schema.d.cts +113 -144
- package/dist/schema.d.ts +113 -144
- package/dist/schema.js +1 -1
- package/package.json +4 -4
- package/src/sys-webhook.object.ts +1 -1
- package/dist/chunk-2V7E3ABN.js.map +0 -1
- package/dist/chunk-EHLUIU42.cjs.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @objectstack/plugin-webhooks@
|
|
2
|
+
> @objectstack/plugin-webhooks@12.0.0 build /home/runner/work/framework/framework/packages/plugins/plugin-webhooks
|
|
3
3
|
> tsup
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts, src/schema.ts
|
|
@@ -12,25 +12,25 @@
|
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
13
|
[32mESM[39m [1mdist/index.js [22m[32m12.73 KB[39m
|
|
14
14
|
[32mESM[39m [1mdist/schema.js [22m[32m111.00 B[39m
|
|
15
|
-
[32mESM[39m [1mdist/chunk-
|
|
15
|
+
[32mESM[39m [1mdist/chunk-HSSV22TO.js [22m[32m4.82 KB[39m
|
|
16
16
|
[32mESM[39m [1mdist/translations-AV47AVPV.js [22m[32m19.41 KB[39m
|
|
17
17
|
[32mESM[39m [1mdist/index.js.map [22m[32m32.44 KB[39m
|
|
18
18
|
[32mESM[39m [1mdist/schema.js.map [22m[32m71.00 B[39m
|
|
19
|
-
[32mESM[39m [1mdist/chunk-
|
|
19
|
+
[32mESM[39m [1mdist/chunk-HSSV22TO.js.map [22m[32m9.27 KB[39m
|
|
20
20
|
[32mESM[39m [1mdist/translations-AV47AVPV.js.map [22m[32m30.54 KB[39m
|
|
21
|
-
[32mESM[39m ⚡️ Build success in
|
|
21
|
+
[32mESM[39m ⚡️ Build success in 878ms
|
|
22
22
|
[32mCJS[39m [1mdist/index.cjs [22m[32m16.40 KB[39m
|
|
23
23
|
[32mCJS[39m [1mdist/schema.cjs [22m[32m220.00 B[39m
|
|
24
|
-
[32mCJS[39m [1mdist/chunk-
|
|
24
|
+
[32mCJS[39m [1mdist/chunk-RA3REIOA.cjs [22m[32m4.96 KB[39m
|
|
25
25
|
[32mCJS[39m [1mdist/translations-OAKKANSP.cjs [22m[32m19.50 KB[39m
|
|
26
26
|
[32mCJS[39m [1mdist/index.cjs.map [22m[32m30.14 KB[39m
|
|
27
27
|
[32mCJS[39m [1mdist/schema.cjs.map [22m[32m278.00 B[39m
|
|
28
|
-
[32mCJS[39m [1mdist/chunk-
|
|
28
|
+
[32mCJS[39m [1mdist/chunk-RA3REIOA.cjs.map [22m[32m11.10 KB[39m
|
|
29
29
|
[32mCJS[39m [1mdist/translations-OAKKANSP.cjs.map [22m[32m34.65 KB[39m
|
|
30
|
-
[32mCJS[39m ⚡️ Build success in
|
|
30
|
+
[32mCJS[39m ⚡️ Build success in 1125ms
|
|
31
31
|
[34mDTS[39m Build start
|
|
32
|
-
[32mDTS[39m ⚡️ Build success in
|
|
32
|
+
[32mDTS[39m ⚡️ Build success in 22629ms
|
|
33
33
|
[32mDTS[39m [1mdist/index.d.ts [22m[32m6.97 KB[39m
|
|
34
|
-
[32mDTS[39m [1mdist/schema.d.ts [22m[
|
|
34
|
+
[32mDTS[39m [1mdist/schema.d.ts [22m[32m127.06 KB[39m
|
|
35
35
|
[32mDTS[39m [1mdist/index.d.cts [22m[32m6.97 KB[39m
|
|
36
|
-
[32mDTS[39m [1mdist/schema.d.cts [22m[
|
|
36
|
+
[32mDTS[39m [1mdist/schema.d.cts [22m[32m127.06 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @objectstack/plugin-webhooks
|
|
2
2
|
|
|
3
|
+
## 12.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [a8df396]
|
|
8
|
+
- Updated dependencies [e695fe0]
|
|
9
|
+
- Updated dependencies [7c09621]
|
|
10
|
+
- Updated dependencies [7709db4]
|
|
11
|
+
- Updated dependencies [2082109]
|
|
12
|
+
- Updated dependencies [7c09621]
|
|
13
|
+
- Updated dependencies [9860de4]
|
|
14
|
+
- Updated dependencies [069c205]
|
|
15
|
+
- @objectstack/spec@12.0.0
|
|
16
|
+
- @objectstack/core@12.0.0
|
|
17
|
+
- @objectstack/service-messaging@12.0.0
|
|
18
|
+
|
|
19
|
+
## 11.10.0
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 6a9397e: Retire the deprecated `compactLayout` alias for `highlightFields` (framework#2536, closes the ADR-0085 deprecation window).
|
|
24
|
+
|
|
25
|
+
- `ObjectSchema` no longer declares `compactLayout`: `create()` rejects it like any unknown key; lenient `parse()` strips it (no silent aliasing).
|
|
26
|
+
- The parse-time alias AND the `highlightFields → compactLayout` back-fill transition mirror are removed from `normalizeSemanticRoleAliases`. Served metadata now carries the canonical key only.
|
|
27
|
+
- All remaining first-party authors (27 system objects across plugin-audit / approvals / security / sharing / webhooks / service-storage / automation / messaging / realtime — missed by the #2521 sweep, caught by the type gate) renamed to `highlightFields`.
|
|
28
|
+
- The downstream smoke pin moves to hotcrm v1.2.2 (hotcrm#424: same rename + deps ^11.7.0).
|
|
29
|
+
- Consumers were switched in objectui#2168 and shipped via the console pin bump (#2526); this closes the window scheduled there. The dogfood mirror assertion (#2528) flips to `compactLayout: undefined` in this same change, per the plan it carried.
|
|
30
|
+
|
|
31
|
+
Version note: minor, not major — the key was deprecated-with-alias for a full release window, all first-party consumers/authors are migrated, and the spec api-surface gate reports no export changes (same documented-exception path as the ADR-0085 removals in 11.7.0). External metadata still authoring `compactLayout` will now fail `create()` loudly with the standard unknown-key error naming the key.
|
|
32
|
+
|
|
33
|
+
- Updated dependencies [6a9397e]
|
|
34
|
+
- Updated dependencies [c0efe5d]
|
|
35
|
+
- @objectstack/spec@11.10.0
|
|
36
|
+
- @objectstack/service-messaging@11.10.0
|
|
37
|
+
- @objectstack/core@11.10.0
|
|
38
|
+
|
|
3
39
|
## 11.9.0
|
|
4
40
|
|
|
5
41
|
### Patch Changes
|
|
@@ -18,7 +18,7 @@ var SysWebhook = ObjectSchema.create({
|
|
|
18
18
|
nameField: "name",
|
|
19
19
|
// [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
20
20
|
titleFormat: "{label}",
|
|
21
|
-
|
|
21
|
+
highlightFields: ["name", "object_name", "url", "active", "updated_at"],
|
|
22
22
|
listViews: {
|
|
23
23
|
active: {
|
|
24
24
|
type: "grid",
|
|
@@ -137,4 +137,4 @@ var SysWebhook = ObjectSchema.create({
|
|
|
137
137
|
export {
|
|
138
138
|
SysWebhook
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-HSSV22TO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sys-webhook.object.ts"],"sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_webhook — Outbound HTTP integration configuration (runtime).\n *\n * Persists a single {@link Webhook} envelope per row so administrators\n * can author, enable/disable, and edit webhook subscriptions from the\n * Studio UI without code changes. The canonical Zod schema for the\n * `definition_json` envelope lives at `@objectstack/spec/automation/webhook`.\n *\n * One row per `name`. The automation runtime\n * (`@objectstack/service-automation`, built-in `http_request` node) loads\n * active rows on boot + on `sys_webhook:changed` events, registers\n * `afterInsert` / `afterUpdate` / `afterDelete` listeners for the\n * targeted object, and dispatches outbound HTTP calls when matching\n * record events fire.\n *\n * Ownership (ADR-0029 K2.a): this object is **owned by\n * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows —\n * alongside its sibling `sys_webhook_delivery`. It used to live in the\n * `@objectstack/platform-objects` monolith and be imported here; the\n * definition now lives with its owner so the plugin ships both data and\n * behavior as one unit.\n *\n * Platform-wide on purpose: every project (standalone, single-tenant,\n * cloud) can integrate with external systems (Slack, Stripe, internal\n * services) the same way.\n *\n * @namespace sys\n */\nexport const SysWebhook = ObjectSchema.create({\n name: 'sys_webhook',\n label: 'Webhook',\n pluralLabel: 'Webhooks',\n icon: 'webhook',\n isSystem: true,\n managedBy: 'config',\n // Authoring a webhook from the UI requires a structured form for the\n // headers / auth / retry / payload blocks — the generic JSON textarea\n // is acceptable as a v1 until a dedicated builder lands. Re-enable\n // create/edit/delete so admins can at least toggle `active` and edit\n // simple URL/method fields without round-tripping through code.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',\n displayNameField: 'name',\n nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\n titleFormat: '{label}',\n highlightFields: ['name', 'object_name', 'url', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['object_name', 'label', 'url', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_webhooks: {\n type: 'grid',\n name: 'all_webhooks',\n label: 'All',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Webhook ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced in logs and audit',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: false,\n maxLength: 100,\n description: 'Short object name whose events fire this webhook (blank = manual / API-triggered)',\n group: 'Definition',\n }),\n\n triggers: Field.text({\n label: 'Triggers',\n required: false,\n maxLength: 200,\n description: 'Comma-separated event list: create,update,delete,undelete,api',\n group: 'Definition',\n }),\n\n url: Field.text({\n label: 'Target URL',\n required: true,\n maxLength: 2048,\n description: 'External endpoint that receives the POST',\n group: 'Definition',\n }),\n\n method: Field.text({\n label: 'HTTP Method',\n required: true,\n defaultValue: 'POST',\n maxLength: 10,\n description: 'GET / POST / PUT / PATCH / DELETE',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Inactive webhooks are skipped by the dispatcher',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised Webhook JSON (see @objectstack/spec/automation/webhook) — full headers/auth/retry/payload config',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n"],"mappings":";AAEA,SAAS,cAAc,aAAa;AA8B7B,IAAM,aAAa,aAAa,OAAO;AAAA,EAC5C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMX,aAAa,EAAE,QAAQ,MAAM,MAAM,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAAA,EACrE,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,WAAW;AAAA;AAAA,EACX,aAAa;AAAA,EACb,iBAAiB,CAAC,QAAQ,eAAe,OAAO,UAAU,YAAY;AAAA,EAEtE,WAAW;AAAA,IACT,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM,EAAE,UAAU,UAAU,QAAQ,cAAc;AAAA,MAClD,SAAS,CAAC,SAAS,eAAe,OAAO,UAAU,UAAU,YAAY;AAAA,MACzE,QAAQ,CAAC,EAAE,OAAO,UAAU,UAAU,UAAU,OAAO,KAAK,CAAC;AAAA,MAC7D,MAAM,CAAC,EAAE,OAAO,SAAS,OAAO,MAAM,CAAC;AAAA,MACvC,YAAY,EAAE,UAAU,GAAG;AAAA,IAC7B;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM,EAAE,UAAU,UAAU,QAAQ,cAAc;AAAA,MAClD,SAAS,CAAC,SAAS,eAAe,OAAO,UAAU,UAAU,YAAY;AAAA,MACzE,QAAQ,CAAC,EAAE,OAAO,UAAU,UAAU,UAAU,OAAO,MAAM,CAAC;AAAA,MAC9D,MAAM,CAAC,EAAE,OAAO,SAAS,OAAO,MAAM,CAAC;AAAA,MACvC,YAAY,EAAE,UAAU,GAAG;AAAA,IAC7B;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM,EAAE,UAAU,UAAU,QAAQ,cAAc;AAAA,MAClD,SAAS,CAAC,eAAe,SAAS,OAAO,UAAU,YAAY;AAAA,MAC/D,MAAM,CAAC,EAAE,OAAO,eAAe,OAAO,MAAM,GAAG,EAAE,OAAO,SAAS,OAAO,MAAM,CAAC;AAAA,MAC/E,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,eAAe,OAAO,OAAO,WAAW,MAAM,CAAC,EAAE;AAAA,MAC/E,YAAY,EAAE,UAAU,IAAI;AAAA,IAC9B;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM,EAAE,UAAU,UAAU,QAAQ,cAAc;AAAA,MAClD,SAAS,CAAC,SAAS,eAAe,OAAO,UAAU,UAAU,YAAY;AAAA,MACzE,MAAM,CAAC,EAAE,OAAO,SAAS,OAAO,MAAM,CAAC;AAAA,MACvC,YAAY,EAAE,UAAU,GAAG;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,IAAI,MAAM,KAAK,EAAE,OAAO,cAAc,UAAU,MAAM,UAAU,MAAM,OAAO,SAAS,CAAC;AAAA,IAEvF,MAAM,MAAM,KAAK;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,OAAO,MAAM,KAAK;AAAA,MAChB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,IACT,CAAC;AAAA,IAED,aAAa,MAAM,KAAK;AAAA,MACtB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,UAAU,MAAM,KAAK;AAAA,MACnB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,KAAK,MAAM,KAAK;AAAA,MACd,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,QAAQ,MAAM,KAAK;AAAA,MACjB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,aAAa,MAAM,SAAS,EAAE,OAAO,eAAe,UAAU,OAAO,OAAO,aAAa,CAAC;AAAA,IAE1F,QAAQ,MAAM,QAAQ;AAAA,MACpB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,MACd,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,iBAAiB,MAAM,SAAS;AAAA,MAC9B,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa;AAAA,MACb,OAAO;AAAA,IACT,CAAC;AAAA,IAED,YAAY,MAAM,SAAS;AAAA,MACzB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACT,CAAC;AAAA,IAED,YAAY,MAAM,SAAS,EAAE,OAAO,cAAc,UAAU,OAAO,OAAO,SAAS,CAAC;AAAA,EACtF;AAAA,EAEA,SAAS;AAAA,IACP,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,KAAK;AAAA,IACjC,EAAE,QAAQ,CAAC,aAAa,EAAE;AAAA,IAC1B,EAAE,QAAQ,CAAC,UAAU,aAAa,EAAE;AAAA,EACtC;AACF,CAAC;","names":[]}
|
|
@@ -18,7 +18,7 @@ var SysWebhook = _data.ObjectSchema.create({
|
|
|
18
18
|
nameField: "name",
|
|
19
19
|
// [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
20
20
|
titleFormat: "{label}",
|
|
21
|
-
|
|
21
|
+
highlightFields: ["name", "object_name", "url", "active", "updated_at"],
|
|
22
22
|
listViews: {
|
|
23
23
|
active: {
|
|
24
24
|
type: "grid",
|
|
@@ -137,4 +137,4 @@ var SysWebhook = _data.ObjectSchema.create({
|
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
exports.SysWebhook = SysWebhook;
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-RA3REIOA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/framework/framework/packages/plugins/plugin-webhooks/dist/chunk-RA3REIOA.cjs","../src/sys-webhook.object.ts"],"names":[],"mappings":"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","file":"/home/runner/work/framework/framework/packages/plugins/plugin-webhooks/dist/chunk-RA3REIOA.cjs","sourcesContent":[null,"// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_webhook — Outbound HTTP integration configuration (runtime).\n *\n * Persists a single {@link Webhook} envelope per row so administrators\n * can author, enable/disable, and edit webhook subscriptions from the\n * Studio UI without code changes. The canonical Zod schema for the\n * `definition_json` envelope lives at `@objectstack/spec/automation/webhook`.\n *\n * One row per `name`. The automation runtime\n * (`@objectstack/service-automation`, built-in `http_request` node) loads\n * active rows on boot + on `sys_webhook:changed` events, registers\n * `afterInsert` / `afterUpdate` / `afterDelete` listeners for the\n * targeted object, and dispatches outbound HTTP calls when matching\n * record events fire.\n *\n * Ownership (ADR-0029 K2.a): this object is **owned by\n * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows —\n * alongside its sibling `sys_webhook_delivery`. It used to live in the\n * `@objectstack/platform-objects` monolith and be imported here; the\n * definition now lives with its owner so the plugin ships both data and\n * behavior as one unit.\n *\n * Platform-wide on purpose: every project (standalone, single-tenant,\n * cloud) can integrate with external systems (Slack, Stripe, internal\n * services) the same way.\n *\n * @namespace sys\n */\nexport const SysWebhook = ObjectSchema.create({\n name: 'sys_webhook',\n label: 'Webhook',\n pluralLabel: 'Webhooks',\n icon: 'webhook',\n isSystem: true,\n managedBy: 'config',\n // Authoring a webhook from the UI requires a structured form for the\n // headers / auth / retry / payload blocks — the generic JSON textarea\n // is acceptable as a v1 until a dedicated builder lands. Re-enable\n // create/edit/delete so admins can at least toggle `active` and edit\n // simple URL/method fields without round-tripping through code.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',\n displayNameField: 'name',\n nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\n titleFormat: '{label}',\n highlightFields: ['name', 'object_name', 'url', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['object_name', 'label', 'url', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_webhooks: {\n type: 'grid',\n name: 'all_webhooks',\n label: 'All',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Webhook ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced in logs and audit',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: false,\n maxLength: 100,\n description: 'Short object name whose events fire this webhook (blank = manual / API-triggered)',\n group: 'Definition',\n }),\n\n triggers: Field.text({\n label: 'Triggers',\n required: false,\n maxLength: 200,\n description: 'Comma-separated event list: create,update,delete,undelete,api',\n group: 'Definition',\n }),\n\n url: Field.text({\n label: 'Target URL',\n required: true,\n maxLength: 2048,\n description: 'External endpoint that receives the POST',\n group: 'Definition',\n }),\n\n method: Field.text({\n label: 'HTTP Method',\n required: true,\n defaultValue: 'POST',\n maxLength: 10,\n description: 'GET / POST / PUT / PATCH / DELETE',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Inactive webhooks are skipped by the dispatcher',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised Webhook JSON (see @objectstack/spec/automation/webhook) — full headers/auth/retry/payload config',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRA3REIOAcjs = require('./chunk-RA3REIOA.cjs');
|
|
4
4
|
|
|
5
5
|
// src/auto-enqueuer.ts
|
|
6
6
|
var AutoEnqueuer = class {
|
|
@@ -215,7 +215,7 @@ var WebhookOutboxPlugin = class {
|
|
|
215
215
|
scope: "system",
|
|
216
216
|
name: "Webhook Schemas",
|
|
217
217
|
description: "Registers sys_webhook (configuration). Deliveries use messaging's sys_http_delivery outbox.",
|
|
218
|
-
objects: [
|
|
218
|
+
objects: [_chunkRA3REIOAcjs.SysWebhook],
|
|
219
219
|
navigationContributions: [
|
|
220
220
|
{
|
|
221
221
|
app: "setup",
|
|
@@ -380,5 +380,5 @@ var WebhookOutboxPlugin = class {
|
|
|
380
380
|
|
|
381
381
|
|
|
382
382
|
|
|
383
|
-
exports.AutoEnqueuer = AutoEnqueuer; exports.SysWebhook =
|
|
383
|
+
exports.AutoEnqueuer = AutoEnqueuer; exports.SysWebhook = _chunkRA3REIOAcjs.SysWebhook; exports.WebhookOutboxPlugin = WebhookOutboxPlugin;
|
|
384
384
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
package/dist/schema.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRA3REIOAcjs = require('./chunk-RA3REIOA.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
exports.SysWebhook =
|
|
6
|
+
exports.SysWebhook = _chunkRA3REIOAcjs.SysWebhook;
|
|
7
7
|
//# sourceMappingURL=schema.cjs.map
|
package/dist/schema.d.cts
CHANGED
|
@@ -70,7 +70,7 @@ declare const SysWebhook: Omit<{
|
|
|
70
70
|
inlineTitle?: string | undefined;
|
|
71
71
|
inlineColumns?: any[] | undefined;
|
|
72
72
|
inlineAmountField?: string | undefined;
|
|
73
|
-
relatedList?: boolean | undefined;
|
|
73
|
+
relatedList?: boolean | "primary" | undefined;
|
|
74
74
|
relatedListTitle?: string | undefined;
|
|
75
75
|
relatedListColumns?: any[] | undefined;
|
|
76
76
|
displayField?: string | undefined;
|
|
@@ -351,10 +351,9 @@ declare const SysWebhook: Omit<{
|
|
|
351
351
|
} | undefined;
|
|
352
352
|
} | undefined;
|
|
353
353
|
highlightFields?: string[] | undefined;
|
|
354
|
-
compactLayout?: string[] | undefined;
|
|
355
354
|
stageField?: string | false | undefined;
|
|
356
355
|
listViews?: Record<string, {
|
|
357
|
-
type: "map" | "tree" | "grid" | "kanban" | "
|
|
356
|
+
type: "map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart";
|
|
358
357
|
columns: string[] | {
|
|
359
358
|
field: string;
|
|
360
359
|
label?: string | undefined;
|
|
@@ -370,8 +369,55 @@ declare const SysWebhook: Omit<{
|
|
|
370
369
|
link?: boolean | undefined;
|
|
371
370
|
action?: string | undefined;
|
|
372
371
|
}[];
|
|
373
|
-
|
|
372
|
+
sort?: string | {
|
|
373
|
+
field: string;
|
|
374
|
+
order: "asc" | "desc";
|
|
375
|
+
}[] | undefined;
|
|
376
|
+
filter?: {
|
|
377
|
+
field: string;
|
|
378
|
+
operator: string;
|
|
379
|
+
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
380
|
+
}[] | undefined;
|
|
381
|
+
description?: string | undefined;
|
|
374
382
|
label?: string | undefined;
|
|
383
|
+
name?: string | undefined;
|
|
384
|
+
responsive?: {
|
|
385
|
+
breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
|
|
386
|
+
hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
|
|
387
|
+
columns?: {
|
|
388
|
+
xs?: number | undefined;
|
|
389
|
+
sm?: number | undefined;
|
|
390
|
+
md?: number | undefined;
|
|
391
|
+
lg?: number | undefined;
|
|
392
|
+
xl?: number | undefined;
|
|
393
|
+
'2xl'?: number | undefined;
|
|
394
|
+
} | undefined;
|
|
395
|
+
order?: {
|
|
396
|
+
xs?: number | undefined;
|
|
397
|
+
sm?: number | undefined;
|
|
398
|
+
md?: number | undefined;
|
|
399
|
+
lg?: number | undefined;
|
|
400
|
+
xl?: number | undefined;
|
|
401
|
+
'2xl'?: number | undefined;
|
|
402
|
+
} | undefined;
|
|
403
|
+
} | undefined;
|
|
404
|
+
navigation?: {
|
|
405
|
+
mode: "none" | "split" | "page" | "drawer" | "modal" | "popover" | "new_window";
|
|
406
|
+
preventNavigation: boolean;
|
|
407
|
+
openNewTab: boolean;
|
|
408
|
+
size: "full" | "md" | "sm" | "lg" | "xl" | "auto";
|
|
409
|
+
view?: string | undefined;
|
|
410
|
+
width?: string | number | undefined;
|
|
411
|
+
} | undefined;
|
|
412
|
+
sharing?: {
|
|
413
|
+
type: "personal" | "collaborative";
|
|
414
|
+
lockedBy?: string | undefined;
|
|
415
|
+
} | undefined;
|
|
416
|
+
aria?: {
|
|
417
|
+
ariaLabel?: string | undefined;
|
|
418
|
+
ariaDescribedBy?: string | undefined;
|
|
419
|
+
role?: string | undefined;
|
|
420
|
+
} | undefined;
|
|
375
421
|
data?: {
|
|
376
422
|
provider: "object";
|
|
377
423
|
object: string;
|
|
@@ -399,77 +445,42 @@ declare const SysWebhook: Omit<{
|
|
|
399
445
|
schemaId: string;
|
|
400
446
|
schema?: Record<string, unknown> | undefined;
|
|
401
447
|
} | undefined;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
field: string;
|
|
409
|
-
order: "asc" | "desc";
|
|
410
|
-
}[] | undefined;
|
|
411
|
-
searchableFields?: string[] | undefined;
|
|
412
|
-
filterableFields?: string[] | undefined;
|
|
413
|
-
userFilters?: {
|
|
414
|
-
element: "toggle" | "tabs" | "dropdown";
|
|
415
|
-
fields?: {
|
|
416
|
-
field: string;
|
|
417
|
-
label?: string | undefined;
|
|
418
|
-
type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
|
|
419
|
-
options?: {
|
|
420
|
-
value: string | number | boolean;
|
|
421
|
-
label: string;
|
|
422
|
-
color?: string | undefined;
|
|
423
|
-
}[] | undefined;
|
|
424
|
-
showCount?: boolean | undefined;
|
|
425
|
-
defaultValues?: (string | number | boolean)[] | undefined;
|
|
426
|
-
}[] | undefined;
|
|
427
|
-
tabs?: {
|
|
428
|
-
name: string;
|
|
429
|
-
pinned: boolean;
|
|
430
|
-
isDefault: boolean;
|
|
431
|
-
visible: boolean;
|
|
432
|
-
label?: string | undefined;
|
|
433
|
-
icon?: string | undefined;
|
|
434
|
-
view?: string | undefined;
|
|
435
|
-
filter?: {
|
|
436
|
-
field: string;
|
|
437
|
-
operator: string;
|
|
438
|
-
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
439
|
-
}[] | undefined;
|
|
440
|
-
order?: number | undefined;
|
|
441
|
-
}[] | undefined;
|
|
442
|
-
showAllRecords?: boolean | undefined;
|
|
448
|
+
tree?: {
|
|
449
|
+
[x: string]: unknown;
|
|
450
|
+
parentField?: string | undefined;
|
|
451
|
+
labelField?: string | undefined;
|
|
452
|
+
fields?: string[] | undefined;
|
|
453
|
+
defaultExpandedDepth?: number | undefined;
|
|
443
454
|
} | undefined;
|
|
455
|
+
inlineEdit?: boolean | undefined;
|
|
456
|
+
virtualScroll?: boolean | undefined;
|
|
444
457
|
resizable?: boolean | undefined;
|
|
445
|
-
striped?: boolean | undefined;
|
|
446
|
-
bordered?: boolean | undefined;
|
|
447
|
-
compactToolbar?: boolean | undefined;
|
|
448
|
-
selection?: {
|
|
449
|
-
type: "none" | "multiple" | "single";
|
|
450
|
-
} | undefined;
|
|
451
|
-
navigation?: {
|
|
452
|
-
mode: "none" | "split" | "page" | "drawer" | "modal" | "popover" | "new_window";
|
|
453
|
-
preventNavigation: boolean;
|
|
454
|
-
openNewTab: boolean;
|
|
455
|
-
view?: string | undefined;
|
|
456
|
-
width?: string | number | undefined;
|
|
457
|
-
} | undefined;
|
|
458
|
-
pagination?: {
|
|
459
|
-
pageSize: number;
|
|
460
|
-
pageSizeOptions?: number[] | undefined;
|
|
461
|
-
} | undefined;
|
|
462
458
|
kanban?: {
|
|
463
459
|
groupByField: string;
|
|
464
460
|
columns: string[];
|
|
465
461
|
summarizeField?: string | undefined;
|
|
466
462
|
} | undefined;
|
|
463
|
+
gallery?: {
|
|
464
|
+
coverFit: "cover" | "contain";
|
|
465
|
+
cardSize: "small" | "medium" | "large";
|
|
466
|
+
coverField?: string | undefined;
|
|
467
|
+
titleField?: string | undefined;
|
|
468
|
+
visibleFields?: string[] | undefined;
|
|
469
|
+
} | undefined;
|
|
467
470
|
calendar?: {
|
|
468
471
|
startDateField: string;
|
|
469
472
|
titleField: string;
|
|
470
473
|
endDateField?: string | undefined;
|
|
471
474
|
colorField?: string | undefined;
|
|
472
475
|
} | undefined;
|
|
476
|
+
timeline?: {
|
|
477
|
+
startDateField: string;
|
|
478
|
+
titleField: string;
|
|
479
|
+
scale: "day" | "week" | "month" | "quarter" | "year" | "hour";
|
|
480
|
+
endDateField?: string | undefined;
|
|
481
|
+
groupByField?: string | undefined;
|
|
482
|
+
colorField?: string | undefined;
|
|
483
|
+
} | undefined;
|
|
473
484
|
gantt?: {
|
|
474
485
|
[x: string]: unknown;
|
|
475
486
|
startDateField: string;
|
|
@@ -501,40 +512,40 @@ declare const SysWebhook: Omit<{
|
|
|
501
512
|
}[] | undefined;
|
|
502
513
|
autoZoomToFilter?: boolean | undefined;
|
|
503
514
|
} | undefined;
|
|
504
|
-
gallery?: {
|
|
505
|
-
coverFit: "cover" | "contain";
|
|
506
|
-
cardSize: "small" | "medium" | "large";
|
|
507
|
-
coverField?: string | undefined;
|
|
508
|
-
titleField?: string | undefined;
|
|
509
|
-
visibleFields?: string[] | undefined;
|
|
510
|
-
} | undefined;
|
|
511
|
-
timeline?: {
|
|
512
|
-
startDateField: string;
|
|
513
|
-
titleField: string;
|
|
514
|
-
scale: "day" | "week" | "month" | "quarter" | "year" | "hour";
|
|
515
|
-
endDateField?: string | undefined;
|
|
516
|
-
groupByField?: string | undefined;
|
|
517
|
-
colorField?: string | undefined;
|
|
518
|
-
} | undefined;
|
|
519
515
|
chart?: {
|
|
520
516
|
chartType: "bar" | "line" | "pie" | "area" | "scatter";
|
|
521
517
|
dataset: string;
|
|
522
518
|
values: string[];
|
|
523
519
|
dimensions?: string[] | undefined;
|
|
524
520
|
} | undefined;
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
521
|
+
rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
|
|
522
|
+
tabs?: {
|
|
523
|
+
name: string;
|
|
524
|
+
pinned: boolean;
|
|
525
|
+
isDefault: boolean;
|
|
526
|
+
visible: boolean;
|
|
527
|
+
label?: string | undefined;
|
|
528
|
+
icon?: string | undefined;
|
|
529
|
+
view?: string | undefined;
|
|
530
|
+
filter?: {
|
|
531
|
+
field: string;
|
|
532
|
+
operator: string;
|
|
533
|
+
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
534
|
+
}[] | undefined;
|
|
535
|
+
order?: number | undefined;
|
|
536
|
+
}[] | undefined;
|
|
537
|
+
searchableFields?: string[] | undefined;
|
|
538
|
+
filterableFields?: string[] | undefined;
|
|
539
|
+
striped?: boolean | undefined;
|
|
540
|
+
bordered?: boolean | undefined;
|
|
541
|
+
compactToolbar?: boolean | undefined;
|
|
542
|
+
selection?: {
|
|
543
|
+
type: "none" | "multiple" | "single";
|
|
531
544
|
} | undefined;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
lockedBy?: string | undefined;
|
|
545
|
+
pagination?: {
|
|
546
|
+
pageSize: number;
|
|
547
|
+
pageSizeOptions?: number[] | undefined;
|
|
536
548
|
} | undefined;
|
|
537
|
-
rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
|
|
538
549
|
grouping?: {
|
|
539
550
|
fields: {
|
|
540
551
|
field: string;
|
|
@@ -551,7 +562,6 @@ declare const SysWebhook: Omit<{
|
|
|
551
562
|
rowActions?: string[] | undefined;
|
|
552
563
|
bulkActions?: string[] | undefined;
|
|
553
564
|
bulkActionDefs?: Record<string, any>[] | undefined;
|
|
554
|
-
virtualScroll?: boolean | undefined;
|
|
555
565
|
conditionalFormatting?: {
|
|
556
566
|
condition: {
|
|
557
567
|
dialect: "cel" | "js" | "cron" | "template";
|
|
@@ -572,7 +582,6 @@ declare const SysWebhook: Omit<{
|
|
|
572
582
|
};
|
|
573
583
|
style: Record<string, string>;
|
|
574
584
|
}[] | undefined;
|
|
575
|
-
inlineEdit?: boolean | undefined;
|
|
576
585
|
exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
|
|
577
586
|
userActions?: {
|
|
578
587
|
sort: boolean;
|
|
@@ -585,23 +594,8 @@ declare const SysWebhook: Omit<{
|
|
|
585
594
|
} | undefined;
|
|
586
595
|
appearance?: {
|
|
587
596
|
showDescription: boolean;
|
|
588
|
-
allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "
|
|
597
|
+
allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
|
|
589
598
|
} | undefined;
|
|
590
|
-
tabs?: {
|
|
591
|
-
name: string;
|
|
592
|
-
pinned: boolean;
|
|
593
|
-
isDefault: boolean;
|
|
594
|
-
visible: boolean;
|
|
595
|
-
label?: string | undefined;
|
|
596
|
-
icon?: string | undefined;
|
|
597
|
-
view?: string | undefined;
|
|
598
|
-
filter?: {
|
|
599
|
-
field: string;
|
|
600
|
-
operator: string;
|
|
601
|
-
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
602
|
-
}[] | undefined;
|
|
603
|
-
order?: number | undefined;
|
|
604
|
-
}[] | undefined;
|
|
605
599
|
addRecord?: {
|
|
606
600
|
enabled: boolean;
|
|
607
601
|
position: "top" | "bottom" | "both";
|
|
@@ -615,31 +609,6 @@ declare const SysWebhook: Omit<{
|
|
|
615
609
|
message?: string | undefined;
|
|
616
610
|
icon?: string | undefined;
|
|
617
611
|
} | undefined;
|
|
618
|
-
aria?: {
|
|
619
|
-
ariaLabel?: string | undefined;
|
|
620
|
-
ariaDescribedBy?: string | undefined;
|
|
621
|
-
role?: string | undefined;
|
|
622
|
-
} | undefined;
|
|
623
|
-
responsive?: {
|
|
624
|
-
breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
|
|
625
|
-
hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
|
|
626
|
-
columns?: {
|
|
627
|
-
xs?: number | undefined;
|
|
628
|
-
sm?: number | undefined;
|
|
629
|
-
md?: number | undefined;
|
|
630
|
-
lg?: number | undefined;
|
|
631
|
-
xl?: number | undefined;
|
|
632
|
-
'2xl'?: number | undefined;
|
|
633
|
-
} | undefined;
|
|
634
|
-
order?: {
|
|
635
|
-
xs?: number | undefined;
|
|
636
|
-
sm?: number | undefined;
|
|
637
|
-
md?: number | undefined;
|
|
638
|
-
lg?: number | undefined;
|
|
639
|
-
xl?: number | undefined;
|
|
640
|
-
'2xl'?: number | undefined;
|
|
641
|
-
} | undefined;
|
|
642
|
-
} | undefined;
|
|
643
612
|
performance?: {
|
|
644
613
|
lazyLoad?: boolean | undefined;
|
|
645
614
|
virtualScroll?: {
|
|
@@ -807,7 +776,7 @@ declare const SysWebhook: Omit<{
|
|
|
807
776
|
readonly displayNameField: "name";
|
|
808
777
|
readonly nameField: "name";
|
|
809
778
|
readonly titleFormat: "{label}";
|
|
810
|
-
readonly
|
|
779
|
+
readonly highlightFields: ["name", "object_name", "url", "active", "updated_at"];
|
|
811
780
|
readonly listViews: {
|
|
812
781
|
readonly active: {
|
|
813
782
|
readonly type: "grid";
|
|
@@ -938,7 +907,7 @@ declare const SysWebhook: Omit<{
|
|
|
938
907
|
readonly inlineTitle?: string | undefined;
|
|
939
908
|
readonly inlineColumns?: any[] | undefined;
|
|
940
909
|
readonly inlineAmountField?: string | undefined;
|
|
941
|
-
readonly relatedList?: boolean | undefined;
|
|
910
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
942
911
|
readonly relatedListTitle?: string | undefined;
|
|
943
912
|
readonly relatedListColumns?: any[] | undefined;
|
|
944
913
|
readonly displayField?: string | undefined;
|
|
@@ -1112,7 +1081,7 @@ declare const SysWebhook: Omit<{
|
|
|
1112
1081
|
readonly inlineTitle?: string | undefined;
|
|
1113
1082
|
readonly inlineColumns?: any[] | undefined;
|
|
1114
1083
|
readonly inlineAmountField?: string | undefined;
|
|
1115
|
-
readonly relatedList?: boolean | undefined;
|
|
1084
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1116
1085
|
readonly relatedListTitle?: string | undefined;
|
|
1117
1086
|
readonly relatedListColumns?: any[] | undefined;
|
|
1118
1087
|
readonly displayField?: string | undefined;
|
|
@@ -1286,7 +1255,7 @@ declare const SysWebhook: Omit<{
|
|
|
1286
1255
|
readonly inlineTitle?: string | undefined;
|
|
1287
1256
|
readonly inlineColumns?: any[] | undefined;
|
|
1288
1257
|
readonly inlineAmountField?: string | undefined;
|
|
1289
|
-
readonly relatedList?: boolean | undefined;
|
|
1258
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1290
1259
|
readonly relatedListTitle?: string | undefined;
|
|
1291
1260
|
readonly relatedListColumns?: any[] | undefined;
|
|
1292
1261
|
readonly displayField?: string | undefined;
|
|
@@ -1460,7 +1429,7 @@ declare const SysWebhook: Omit<{
|
|
|
1460
1429
|
readonly inlineTitle?: string | undefined;
|
|
1461
1430
|
readonly inlineColumns?: any[] | undefined;
|
|
1462
1431
|
readonly inlineAmountField?: string | undefined;
|
|
1463
|
-
readonly relatedList?: boolean | undefined;
|
|
1432
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1464
1433
|
readonly relatedListTitle?: string | undefined;
|
|
1465
1434
|
readonly relatedListColumns?: any[] | undefined;
|
|
1466
1435
|
readonly displayField?: string | undefined;
|
|
@@ -1634,7 +1603,7 @@ declare const SysWebhook: Omit<{
|
|
|
1634
1603
|
readonly inlineTitle?: string | undefined;
|
|
1635
1604
|
readonly inlineColumns?: any[] | undefined;
|
|
1636
1605
|
readonly inlineAmountField?: string | undefined;
|
|
1637
|
-
readonly relatedList?: boolean | undefined;
|
|
1606
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1638
1607
|
readonly relatedListTitle?: string | undefined;
|
|
1639
1608
|
readonly relatedListColumns?: any[] | undefined;
|
|
1640
1609
|
readonly displayField?: string | undefined;
|
|
@@ -1808,7 +1777,7 @@ declare const SysWebhook: Omit<{
|
|
|
1808
1777
|
readonly inlineTitle?: string | undefined;
|
|
1809
1778
|
readonly inlineColumns?: any[] | undefined;
|
|
1810
1779
|
readonly inlineAmountField?: string | undefined;
|
|
1811
|
-
readonly relatedList?: boolean | undefined;
|
|
1780
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1812
1781
|
readonly relatedListTitle?: string | undefined;
|
|
1813
1782
|
readonly relatedListColumns?: any[] | undefined;
|
|
1814
1783
|
readonly displayField?: string | undefined;
|
|
@@ -1982,7 +1951,7 @@ declare const SysWebhook: Omit<{
|
|
|
1982
1951
|
readonly inlineTitle?: string | undefined;
|
|
1983
1952
|
readonly inlineColumns?: any[] | undefined;
|
|
1984
1953
|
readonly inlineAmountField?: string | undefined;
|
|
1985
|
-
readonly relatedList?: boolean | undefined;
|
|
1954
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1986
1955
|
readonly relatedListTitle?: string | undefined;
|
|
1987
1956
|
readonly relatedListColumns?: any[] | undefined;
|
|
1988
1957
|
readonly displayField?: string | undefined;
|
|
@@ -2156,7 +2125,7 @@ declare const SysWebhook: Omit<{
|
|
|
2156
2125
|
readonly inlineTitle?: string | undefined;
|
|
2157
2126
|
readonly inlineColumns?: any[] | undefined;
|
|
2158
2127
|
readonly inlineAmountField?: string | undefined;
|
|
2159
|
-
readonly relatedList?: boolean | undefined;
|
|
2128
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2160
2129
|
readonly relatedListTitle?: string | undefined;
|
|
2161
2130
|
readonly relatedListColumns?: any[] | undefined;
|
|
2162
2131
|
readonly displayField?: string | undefined;
|
|
@@ -2330,7 +2299,7 @@ declare const SysWebhook: Omit<{
|
|
|
2330
2299
|
readonly inlineTitle?: string | undefined;
|
|
2331
2300
|
readonly inlineColumns?: any[] | undefined;
|
|
2332
2301
|
readonly inlineAmountField?: string | undefined;
|
|
2333
|
-
readonly relatedList?: boolean | undefined;
|
|
2302
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2334
2303
|
readonly relatedListTitle?: string | undefined;
|
|
2335
2304
|
readonly relatedListColumns?: any[] | undefined;
|
|
2336
2305
|
readonly displayField?: string | undefined;
|
|
@@ -2504,7 +2473,7 @@ declare const SysWebhook: Omit<{
|
|
|
2504
2473
|
readonly inlineTitle?: string | undefined;
|
|
2505
2474
|
readonly inlineColumns?: any[] | undefined;
|
|
2506
2475
|
readonly inlineAmountField?: string | undefined;
|
|
2507
|
-
readonly relatedList?: boolean | undefined;
|
|
2476
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2508
2477
|
readonly relatedListTitle?: string | undefined;
|
|
2509
2478
|
readonly relatedListColumns?: any[] | undefined;
|
|
2510
2479
|
readonly displayField?: string | undefined;
|
|
@@ -2678,7 +2647,7 @@ declare const SysWebhook: Omit<{
|
|
|
2678
2647
|
readonly inlineTitle?: string | undefined;
|
|
2679
2648
|
readonly inlineColumns?: any[] | undefined;
|
|
2680
2649
|
readonly inlineAmountField?: string | undefined;
|
|
2681
|
-
readonly relatedList?: boolean | undefined;
|
|
2650
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2682
2651
|
readonly relatedListTitle?: string | undefined;
|
|
2683
2652
|
readonly relatedListColumns?: any[] | undefined;
|
|
2684
2653
|
readonly displayField?: string | undefined;
|
|
@@ -2852,7 +2821,7 @@ declare const SysWebhook: Omit<{
|
|
|
2852
2821
|
readonly inlineTitle?: string | undefined;
|
|
2853
2822
|
readonly inlineColumns?: any[] | undefined;
|
|
2854
2823
|
readonly inlineAmountField?: string | undefined;
|
|
2855
|
-
readonly relatedList?: boolean | undefined;
|
|
2824
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2856
2825
|
readonly relatedListTitle?: string | undefined;
|
|
2857
2826
|
readonly relatedListColumns?: any[] | undefined;
|
|
2858
2827
|
readonly displayField?: string | undefined;
|
package/dist/schema.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ declare const SysWebhook: Omit<{
|
|
|
70
70
|
inlineTitle?: string | undefined;
|
|
71
71
|
inlineColumns?: any[] | undefined;
|
|
72
72
|
inlineAmountField?: string | undefined;
|
|
73
|
-
relatedList?: boolean | undefined;
|
|
73
|
+
relatedList?: boolean | "primary" | undefined;
|
|
74
74
|
relatedListTitle?: string | undefined;
|
|
75
75
|
relatedListColumns?: any[] | undefined;
|
|
76
76
|
displayField?: string | undefined;
|
|
@@ -351,10 +351,9 @@ declare const SysWebhook: Omit<{
|
|
|
351
351
|
} | undefined;
|
|
352
352
|
} | undefined;
|
|
353
353
|
highlightFields?: string[] | undefined;
|
|
354
|
-
compactLayout?: string[] | undefined;
|
|
355
354
|
stageField?: string | false | undefined;
|
|
356
355
|
listViews?: Record<string, {
|
|
357
|
-
type: "map" | "tree" | "grid" | "kanban" | "
|
|
356
|
+
type: "map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart";
|
|
358
357
|
columns: string[] | {
|
|
359
358
|
field: string;
|
|
360
359
|
label?: string | undefined;
|
|
@@ -370,8 +369,55 @@ declare const SysWebhook: Omit<{
|
|
|
370
369
|
link?: boolean | undefined;
|
|
371
370
|
action?: string | undefined;
|
|
372
371
|
}[];
|
|
373
|
-
|
|
372
|
+
sort?: string | {
|
|
373
|
+
field: string;
|
|
374
|
+
order: "asc" | "desc";
|
|
375
|
+
}[] | undefined;
|
|
376
|
+
filter?: {
|
|
377
|
+
field: string;
|
|
378
|
+
operator: string;
|
|
379
|
+
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
380
|
+
}[] | undefined;
|
|
381
|
+
description?: string | undefined;
|
|
374
382
|
label?: string | undefined;
|
|
383
|
+
name?: string | undefined;
|
|
384
|
+
responsive?: {
|
|
385
|
+
breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
|
|
386
|
+
hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
|
|
387
|
+
columns?: {
|
|
388
|
+
xs?: number | undefined;
|
|
389
|
+
sm?: number | undefined;
|
|
390
|
+
md?: number | undefined;
|
|
391
|
+
lg?: number | undefined;
|
|
392
|
+
xl?: number | undefined;
|
|
393
|
+
'2xl'?: number | undefined;
|
|
394
|
+
} | undefined;
|
|
395
|
+
order?: {
|
|
396
|
+
xs?: number | undefined;
|
|
397
|
+
sm?: number | undefined;
|
|
398
|
+
md?: number | undefined;
|
|
399
|
+
lg?: number | undefined;
|
|
400
|
+
xl?: number | undefined;
|
|
401
|
+
'2xl'?: number | undefined;
|
|
402
|
+
} | undefined;
|
|
403
|
+
} | undefined;
|
|
404
|
+
navigation?: {
|
|
405
|
+
mode: "none" | "split" | "page" | "drawer" | "modal" | "popover" | "new_window";
|
|
406
|
+
preventNavigation: boolean;
|
|
407
|
+
openNewTab: boolean;
|
|
408
|
+
size: "full" | "md" | "sm" | "lg" | "xl" | "auto";
|
|
409
|
+
view?: string | undefined;
|
|
410
|
+
width?: string | number | undefined;
|
|
411
|
+
} | undefined;
|
|
412
|
+
sharing?: {
|
|
413
|
+
type: "personal" | "collaborative";
|
|
414
|
+
lockedBy?: string | undefined;
|
|
415
|
+
} | undefined;
|
|
416
|
+
aria?: {
|
|
417
|
+
ariaLabel?: string | undefined;
|
|
418
|
+
ariaDescribedBy?: string | undefined;
|
|
419
|
+
role?: string | undefined;
|
|
420
|
+
} | undefined;
|
|
375
421
|
data?: {
|
|
376
422
|
provider: "object";
|
|
377
423
|
object: string;
|
|
@@ -399,77 +445,42 @@ declare const SysWebhook: Omit<{
|
|
|
399
445
|
schemaId: string;
|
|
400
446
|
schema?: Record<string, unknown> | undefined;
|
|
401
447
|
} | undefined;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
field: string;
|
|
409
|
-
order: "asc" | "desc";
|
|
410
|
-
}[] | undefined;
|
|
411
|
-
searchableFields?: string[] | undefined;
|
|
412
|
-
filterableFields?: string[] | undefined;
|
|
413
|
-
userFilters?: {
|
|
414
|
-
element: "toggle" | "tabs" | "dropdown";
|
|
415
|
-
fields?: {
|
|
416
|
-
field: string;
|
|
417
|
-
label?: string | undefined;
|
|
418
|
-
type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
|
|
419
|
-
options?: {
|
|
420
|
-
value: string | number | boolean;
|
|
421
|
-
label: string;
|
|
422
|
-
color?: string | undefined;
|
|
423
|
-
}[] | undefined;
|
|
424
|
-
showCount?: boolean | undefined;
|
|
425
|
-
defaultValues?: (string | number | boolean)[] | undefined;
|
|
426
|
-
}[] | undefined;
|
|
427
|
-
tabs?: {
|
|
428
|
-
name: string;
|
|
429
|
-
pinned: boolean;
|
|
430
|
-
isDefault: boolean;
|
|
431
|
-
visible: boolean;
|
|
432
|
-
label?: string | undefined;
|
|
433
|
-
icon?: string | undefined;
|
|
434
|
-
view?: string | undefined;
|
|
435
|
-
filter?: {
|
|
436
|
-
field: string;
|
|
437
|
-
operator: string;
|
|
438
|
-
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
439
|
-
}[] | undefined;
|
|
440
|
-
order?: number | undefined;
|
|
441
|
-
}[] | undefined;
|
|
442
|
-
showAllRecords?: boolean | undefined;
|
|
448
|
+
tree?: {
|
|
449
|
+
[x: string]: unknown;
|
|
450
|
+
parentField?: string | undefined;
|
|
451
|
+
labelField?: string | undefined;
|
|
452
|
+
fields?: string[] | undefined;
|
|
453
|
+
defaultExpandedDepth?: number | undefined;
|
|
443
454
|
} | undefined;
|
|
455
|
+
inlineEdit?: boolean | undefined;
|
|
456
|
+
virtualScroll?: boolean | undefined;
|
|
444
457
|
resizable?: boolean | undefined;
|
|
445
|
-
striped?: boolean | undefined;
|
|
446
|
-
bordered?: boolean | undefined;
|
|
447
|
-
compactToolbar?: boolean | undefined;
|
|
448
|
-
selection?: {
|
|
449
|
-
type: "none" | "multiple" | "single";
|
|
450
|
-
} | undefined;
|
|
451
|
-
navigation?: {
|
|
452
|
-
mode: "none" | "split" | "page" | "drawer" | "modal" | "popover" | "new_window";
|
|
453
|
-
preventNavigation: boolean;
|
|
454
|
-
openNewTab: boolean;
|
|
455
|
-
view?: string | undefined;
|
|
456
|
-
width?: string | number | undefined;
|
|
457
|
-
} | undefined;
|
|
458
|
-
pagination?: {
|
|
459
|
-
pageSize: number;
|
|
460
|
-
pageSizeOptions?: number[] | undefined;
|
|
461
|
-
} | undefined;
|
|
462
458
|
kanban?: {
|
|
463
459
|
groupByField: string;
|
|
464
460
|
columns: string[];
|
|
465
461
|
summarizeField?: string | undefined;
|
|
466
462
|
} | undefined;
|
|
463
|
+
gallery?: {
|
|
464
|
+
coverFit: "cover" | "contain";
|
|
465
|
+
cardSize: "small" | "medium" | "large";
|
|
466
|
+
coverField?: string | undefined;
|
|
467
|
+
titleField?: string | undefined;
|
|
468
|
+
visibleFields?: string[] | undefined;
|
|
469
|
+
} | undefined;
|
|
467
470
|
calendar?: {
|
|
468
471
|
startDateField: string;
|
|
469
472
|
titleField: string;
|
|
470
473
|
endDateField?: string | undefined;
|
|
471
474
|
colorField?: string | undefined;
|
|
472
475
|
} | undefined;
|
|
476
|
+
timeline?: {
|
|
477
|
+
startDateField: string;
|
|
478
|
+
titleField: string;
|
|
479
|
+
scale: "day" | "week" | "month" | "quarter" | "year" | "hour";
|
|
480
|
+
endDateField?: string | undefined;
|
|
481
|
+
groupByField?: string | undefined;
|
|
482
|
+
colorField?: string | undefined;
|
|
483
|
+
} | undefined;
|
|
473
484
|
gantt?: {
|
|
474
485
|
[x: string]: unknown;
|
|
475
486
|
startDateField: string;
|
|
@@ -501,40 +512,40 @@ declare const SysWebhook: Omit<{
|
|
|
501
512
|
}[] | undefined;
|
|
502
513
|
autoZoomToFilter?: boolean | undefined;
|
|
503
514
|
} | undefined;
|
|
504
|
-
gallery?: {
|
|
505
|
-
coverFit: "cover" | "contain";
|
|
506
|
-
cardSize: "small" | "medium" | "large";
|
|
507
|
-
coverField?: string | undefined;
|
|
508
|
-
titleField?: string | undefined;
|
|
509
|
-
visibleFields?: string[] | undefined;
|
|
510
|
-
} | undefined;
|
|
511
|
-
timeline?: {
|
|
512
|
-
startDateField: string;
|
|
513
|
-
titleField: string;
|
|
514
|
-
scale: "day" | "week" | "month" | "quarter" | "year" | "hour";
|
|
515
|
-
endDateField?: string | undefined;
|
|
516
|
-
groupByField?: string | undefined;
|
|
517
|
-
colorField?: string | undefined;
|
|
518
|
-
} | undefined;
|
|
519
515
|
chart?: {
|
|
520
516
|
chartType: "bar" | "line" | "pie" | "area" | "scatter";
|
|
521
517
|
dataset: string;
|
|
522
518
|
values: string[];
|
|
523
519
|
dimensions?: string[] | undefined;
|
|
524
520
|
} | undefined;
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
521
|
+
rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
|
|
522
|
+
tabs?: {
|
|
523
|
+
name: string;
|
|
524
|
+
pinned: boolean;
|
|
525
|
+
isDefault: boolean;
|
|
526
|
+
visible: boolean;
|
|
527
|
+
label?: string | undefined;
|
|
528
|
+
icon?: string | undefined;
|
|
529
|
+
view?: string | undefined;
|
|
530
|
+
filter?: {
|
|
531
|
+
field: string;
|
|
532
|
+
operator: string;
|
|
533
|
+
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
534
|
+
}[] | undefined;
|
|
535
|
+
order?: number | undefined;
|
|
536
|
+
}[] | undefined;
|
|
537
|
+
searchableFields?: string[] | undefined;
|
|
538
|
+
filterableFields?: string[] | undefined;
|
|
539
|
+
striped?: boolean | undefined;
|
|
540
|
+
bordered?: boolean | undefined;
|
|
541
|
+
compactToolbar?: boolean | undefined;
|
|
542
|
+
selection?: {
|
|
543
|
+
type: "none" | "multiple" | "single";
|
|
531
544
|
} | undefined;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
lockedBy?: string | undefined;
|
|
545
|
+
pagination?: {
|
|
546
|
+
pageSize: number;
|
|
547
|
+
pageSizeOptions?: number[] | undefined;
|
|
536
548
|
} | undefined;
|
|
537
|
-
rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
|
|
538
549
|
grouping?: {
|
|
539
550
|
fields: {
|
|
540
551
|
field: string;
|
|
@@ -551,7 +562,6 @@ declare const SysWebhook: Omit<{
|
|
|
551
562
|
rowActions?: string[] | undefined;
|
|
552
563
|
bulkActions?: string[] | undefined;
|
|
553
564
|
bulkActionDefs?: Record<string, any>[] | undefined;
|
|
554
|
-
virtualScroll?: boolean | undefined;
|
|
555
565
|
conditionalFormatting?: {
|
|
556
566
|
condition: {
|
|
557
567
|
dialect: "cel" | "js" | "cron" | "template";
|
|
@@ -572,7 +582,6 @@ declare const SysWebhook: Omit<{
|
|
|
572
582
|
};
|
|
573
583
|
style: Record<string, string>;
|
|
574
584
|
}[] | undefined;
|
|
575
|
-
inlineEdit?: boolean | undefined;
|
|
576
585
|
exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
|
|
577
586
|
userActions?: {
|
|
578
587
|
sort: boolean;
|
|
@@ -585,23 +594,8 @@ declare const SysWebhook: Omit<{
|
|
|
585
594
|
} | undefined;
|
|
586
595
|
appearance?: {
|
|
587
596
|
showDescription: boolean;
|
|
588
|
-
allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "
|
|
597
|
+
allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
|
|
589
598
|
} | undefined;
|
|
590
|
-
tabs?: {
|
|
591
|
-
name: string;
|
|
592
|
-
pinned: boolean;
|
|
593
|
-
isDefault: boolean;
|
|
594
|
-
visible: boolean;
|
|
595
|
-
label?: string | undefined;
|
|
596
|
-
icon?: string | undefined;
|
|
597
|
-
view?: string | undefined;
|
|
598
|
-
filter?: {
|
|
599
|
-
field: string;
|
|
600
|
-
operator: string;
|
|
601
|
-
value?: string | number | boolean | (string | number)[] | null | undefined;
|
|
602
|
-
}[] | undefined;
|
|
603
|
-
order?: number | undefined;
|
|
604
|
-
}[] | undefined;
|
|
605
599
|
addRecord?: {
|
|
606
600
|
enabled: boolean;
|
|
607
601
|
position: "top" | "bottom" | "both";
|
|
@@ -615,31 +609,6 @@ declare const SysWebhook: Omit<{
|
|
|
615
609
|
message?: string | undefined;
|
|
616
610
|
icon?: string | undefined;
|
|
617
611
|
} | undefined;
|
|
618
|
-
aria?: {
|
|
619
|
-
ariaLabel?: string | undefined;
|
|
620
|
-
ariaDescribedBy?: string | undefined;
|
|
621
|
-
role?: string | undefined;
|
|
622
|
-
} | undefined;
|
|
623
|
-
responsive?: {
|
|
624
|
-
breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
|
|
625
|
-
hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
|
|
626
|
-
columns?: {
|
|
627
|
-
xs?: number | undefined;
|
|
628
|
-
sm?: number | undefined;
|
|
629
|
-
md?: number | undefined;
|
|
630
|
-
lg?: number | undefined;
|
|
631
|
-
xl?: number | undefined;
|
|
632
|
-
'2xl'?: number | undefined;
|
|
633
|
-
} | undefined;
|
|
634
|
-
order?: {
|
|
635
|
-
xs?: number | undefined;
|
|
636
|
-
sm?: number | undefined;
|
|
637
|
-
md?: number | undefined;
|
|
638
|
-
lg?: number | undefined;
|
|
639
|
-
xl?: number | undefined;
|
|
640
|
-
'2xl'?: number | undefined;
|
|
641
|
-
} | undefined;
|
|
642
|
-
} | undefined;
|
|
643
612
|
performance?: {
|
|
644
613
|
lazyLoad?: boolean | undefined;
|
|
645
614
|
virtualScroll?: {
|
|
@@ -807,7 +776,7 @@ declare const SysWebhook: Omit<{
|
|
|
807
776
|
readonly displayNameField: "name";
|
|
808
777
|
readonly nameField: "name";
|
|
809
778
|
readonly titleFormat: "{label}";
|
|
810
|
-
readonly
|
|
779
|
+
readonly highlightFields: ["name", "object_name", "url", "active", "updated_at"];
|
|
811
780
|
readonly listViews: {
|
|
812
781
|
readonly active: {
|
|
813
782
|
readonly type: "grid";
|
|
@@ -938,7 +907,7 @@ declare const SysWebhook: Omit<{
|
|
|
938
907
|
readonly inlineTitle?: string | undefined;
|
|
939
908
|
readonly inlineColumns?: any[] | undefined;
|
|
940
909
|
readonly inlineAmountField?: string | undefined;
|
|
941
|
-
readonly relatedList?: boolean | undefined;
|
|
910
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
942
911
|
readonly relatedListTitle?: string | undefined;
|
|
943
912
|
readonly relatedListColumns?: any[] | undefined;
|
|
944
913
|
readonly displayField?: string | undefined;
|
|
@@ -1112,7 +1081,7 @@ declare const SysWebhook: Omit<{
|
|
|
1112
1081
|
readonly inlineTitle?: string | undefined;
|
|
1113
1082
|
readonly inlineColumns?: any[] | undefined;
|
|
1114
1083
|
readonly inlineAmountField?: string | undefined;
|
|
1115
|
-
readonly relatedList?: boolean | undefined;
|
|
1084
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1116
1085
|
readonly relatedListTitle?: string | undefined;
|
|
1117
1086
|
readonly relatedListColumns?: any[] | undefined;
|
|
1118
1087
|
readonly displayField?: string | undefined;
|
|
@@ -1286,7 +1255,7 @@ declare const SysWebhook: Omit<{
|
|
|
1286
1255
|
readonly inlineTitle?: string | undefined;
|
|
1287
1256
|
readonly inlineColumns?: any[] | undefined;
|
|
1288
1257
|
readonly inlineAmountField?: string | undefined;
|
|
1289
|
-
readonly relatedList?: boolean | undefined;
|
|
1258
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1290
1259
|
readonly relatedListTitle?: string | undefined;
|
|
1291
1260
|
readonly relatedListColumns?: any[] | undefined;
|
|
1292
1261
|
readonly displayField?: string | undefined;
|
|
@@ -1460,7 +1429,7 @@ declare const SysWebhook: Omit<{
|
|
|
1460
1429
|
readonly inlineTitle?: string | undefined;
|
|
1461
1430
|
readonly inlineColumns?: any[] | undefined;
|
|
1462
1431
|
readonly inlineAmountField?: string | undefined;
|
|
1463
|
-
readonly relatedList?: boolean | undefined;
|
|
1432
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1464
1433
|
readonly relatedListTitle?: string | undefined;
|
|
1465
1434
|
readonly relatedListColumns?: any[] | undefined;
|
|
1466
1435
|
readonly displayField?: string | undefined;
|
|
@@ -1634,7 +1603,7 @@ declare const SysWebhook: Omit<{
|
|
|
1634
1603
|
readonly inlineTitle?: string | undefined;
|
|
1635
1604
|
readonly inlineColumns?: any[] | undefined;
|
|
1636
1605
|
readonly inlineAmountField?: string | undefined;
|
|
1637
|
-
readonly relatedList?: boolean | undefined;
|
|
1606
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1638
1607
|
readonly relatedListTitle?: string | undefined;
|
|
1639
1608
|
readonly relatedListColumns?: any[] | undefined;
|
|
1640
1609
|
readonly displayField?: string | undefined;
|
|
@@ -1808,7 +1777,7 @@ declare const SysWebhook: Omit<{
|
|
|
1808
1777
|
readonly inlineTitle?: string | undefined;
|
|
1809
1778
|
readonly inlineColumns?: any[] | undefined;
|
|
1810
1779
|
readonly inlineAmountField?: string | undefined;
|
|
1811
|
-
readonly relatedList?: boolean | undefined;
|
|
1780
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1812
1781
|
readonly relatedListTitle?: string | undefined;
|
|
1813
1782
|
readonly relatedListColumns?: any[] | undefined;
|
|
1814
1783
|
readonly displayField?: string | undefined;
|
|
@@ -1982,7 +1951,7 @@ declare const SysWebhook: Omit<{
|
|
|
1982
1951
|
readonly inlineTitle?: string | undefined;
|
|
1983
1952
|
readonly inlineColumns?: any[] | undefined;
|
|
1984
1953
|
readonly inlineAmountField?: string | undefined;
|
|
1985
|
-
readonly relatedList?: boolean | undefined;
|
|
1954
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
1986
1955
|
readonly relatedListTitle?: string | undefined;
|
|
1987
1956
|
readonly relatedListColumns?: any[] | undefined;
|
|
1988
1957
|
readonly displayField?: string | undefined;
|
|
@@ -2156,7 +2125,7 @@ declare const SysWebhook: Omit<{
|
|
|
2156
2125
|
readonly inlineTitle?: string | undefined;
|
|
2157
2126
|
readonly inlineColumns?: any[] | undefined;
|
|
2158
2127
|
readonly inlineAmountField?: string | undefined;
|
|
2159
|
-
readonly relatedList?: boolean | undefined;
|
|
2128
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2160
2129
|
readonly relatedListTitle?: string | undefined;
|
|
2161
2130
|
readonly relatedListColumns?: any[] | undefined;
|
|
2162
2131
|
readonly displayField?: string | undefined;
|
|
@@ -2330,7 +2299,7 @@ declare const SysWebhook: Omit<{
|
|
|
2330
2299
|
readonly inlineTitle?: string | undefined;
|
|
2331
2300
|
readonly inlineColumns?: any[] | undefined;
|
|
2332
2301
|
readonly inlineAmountField?: string | undefined;
|
|
2333
|
-
readonly relatedList?: boolean | undefined;
|
|
2302
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2334
2303
|
readonly relatedListTitle?: string | undefined;
|
|
2335
2304
|
readonly relatedListColumns?: any[] | undefined;
|
|
2336
2305
|
readonly displayField?: string | undefined;
|
|
@@ -2504,7 +2473,7 @@ declare const SysWebhook: Omit<{
|
|
|
2504
2473
|
readonly inlineTitle?: string | undefined;
|
|
2505
2474
|
readonly inlineColumns?: any[] | undefined;
|
|
2506
2475
|
readonly inlineAmountField?: string | undefined;
|
|
2507
|
-
readonly relatedList?: boolean | undefined;
|
|
2476
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2508
2477
|
readonly relatedListTitle?: string | undefined;
|
|
2509
2478
|
readonly relatedListColumns?: any[] | undefined;
|
|
2510
2479
|
readonly displayField?: string | undefined;
|
|
@@ -2678,7 +2647,7 @@ declare const SysWebhook: Omit<{
|
|
|
2678
2647
|
readonly inlineTitle?: string | undefined;
|
|
2679
2648
|
readonly inlineColumns?: any[] | undefined;
|
|
2680
2649
|
readonly inlineAmountField?: string | undefined;
|
|
2681
|
-
readonly relatedList?: boolean | undefined;
|
|
2650
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2682
2651
|
readonly relatedListTitle?: string | undefined;
|
|
2683
2652
|
readonly relatedListColumns?: any[] | undefined;
|
|
2684
2653
|
readonly displayField?: string | undefined;
|
|
@@ -2852,7 +2821,7 @@ declare const SysWebhook: Omit<{
|
|
|
2852
2821
|
readonly inlineTitle?: string | undefined;
|
|
2853
2822
|
readonly inlineColumns?: any[] | undefined;
|
|
2854
2823
|
readonly inlineAmountField?: string | undefined;
|
|
2855
|
-
readonly relatedList?: boolean | undefined;
|
|
2824
|
+
readonly relatedList?: boolean | "primary" | undefined;
|
|
2856
2825
|
readonly relatedListTitle?: string | undefined;
|
|
2857
2826
|
readonly relatedListColumns?: any[] | undefined;
|
|
2858
2827
|
readonly displayField?: string | undefined;
|
package/dist/schema.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectstack/plugin-webhooks",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Persistent, cluster-aware webhook dispatcher. Durable outbox + per-partition cluster.lock for exactly-once-ish delivery across nodes. See content/docs/concepts/webhook-delivery.mdx.",
|
|
6
6
|
"type": "module",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@objectstack/core": "
|
|
23
|
-
"@objectstack/service-messaging": "
|
|
24
|
-
"@objectstack/spec": "
|
|
22
|
+
"@objectstack/core": "12.0.0",
|
|
23
|
+
"@objectstack/service-messaging": "12.0.0",
|
|
24
|
+
"@objectstack/spec": "12.0.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^26.0.1",
|
|
@@ -47,7 +47,7 @@ export const SysWebhook = ObjectSchema.create({
|
|
|
47
47
|
displayNameField: 'name',
|
|
48
48
|
nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
49
49
|
titleFormat: '{label}',
|
|
50
|
-
|
|
50
|
+
highlightFields: ['name', 'object_name', 'url', 'active', 'updated_at'],
|
|
51
51
|
|
|
52
52
|
listViews: {
|
|
53
53
|
active: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sys-webhook.object.ts"],"sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_webhook — Outbound HTTP integration configuration (runtime).\n *\n * Persists a single {@link Webhook} envelope per row so administrators\n * can author, enable/disable, and edit webhook subscriptions from the\n * Studio UI without code changes. The canonical Zod schema for the\n * `definition_json` envelope lives at `@objectstack/spec/automation/webhook`.\n *\n * One row per `name`. The automation runtime\n * (`@objectstack/service-automation`, built-in `http_request` node) loads\n * active rows on boot + on `sys_webhook:changed` events, registers\n * `afterInsert` / `afterUpdate` / `afterDelete` listeners for the\n * targeted object, and dispatches outbound HTTP calls when matching\n * record events fire.\n *\n * Ownership (ADR-0029 K2.a): this object is **owned by\n * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows —\n * alongside its sibling `sys_webhook_delivery`. It used to live in the\n * `@objectstack/platform-objects` monolith and be imported here; the\n * definition now lives with its owner so the plugin ships both data and\n * behavior as one unit.\n *\n * Platform-wide on purpose: every project (standalone, single-tenant,\n * cloud) can integrate with external systems (Slack, Stripe, internal\n * services) the same way.\n *\n * @namespace sys\n */\nexport const SysWebhook = ObjectSchema.create({\n name: 'sys_webhook',\n label: 'Webhook',\n pluralLabel: 'Webhooks',\n icon: 'webhook',\n isSystem: true,\n managedBy: 'config',\n // Authoring a webhook from the UI requires a structured form for the\n // headers / auth / retry / payload blocks — the generic JSON textarea\n // is acceptable as a v1 until a dedicated builder lands. Re-enable\n // create/edit/delete so admins can at least toggle `active` and edit\n // simple URL/method fields without round-tripping through code.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',\n displayNameField: 'name',\n nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\n titleFormat: '{label}',\n compactLayout: ['name', 'object_name', 'url', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['object_name', 'label', 'url', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_webhooks: {\n type: 'grid',\n name: 'all_webhooks',\n label: 'All',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Webhook ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced in logs and audit',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: false,\n maxLength: 100,\n description: 'Short object name whose events fire this webhook (blank = manual / API-triggered)',\n group: 'Definition',\n }),\n\n triggers: Field.text({\n label: 'Triggers',\n required: false,\n maxLength: 200,\n description: 'Comma-separated event list: create,update,delete,undelete,api',\n group: 'Definition',\n }),\n\n url: Field.text({\n label: 'Target URL',\n required: true,\n maxLength: 2048,\n description: 'External endpoint that receives the POST',\n group: 'Definition',\n }),\n\n method: Field.text({\n label: 'HTTP Method',\n required: true,\n defaultValue: 'POST',\n maxLength: 10,\n description: 'GET / POST / PUT / PATCH / DELETE',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Inactive webhooks are skipped by the dispatcher',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised Webhook JSON (see @objectstack/spec/automation/webhook) — full headers/auth/retry/payload config',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/framework/framework/packages/plugins/plugin-webhooks/dist/chunk-EHLUIU42.cjs","../src/sys-webhook.object.ts"],"names":[],"mappings":"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","file":"/home/runner/work/framework/framework/packages/plugins/plugin-webhooks/dist/chunk-EHLUIU42.cjs","sourcesContent":[null,"// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_webhook — Outbound HTTP integration configuration (runtime).\n *\n * Persists a single {@link Webhook} envelope per row so administrators\n * can author, enable/disable, and edit webhook subscriptions from the\n * Studio UI without code changes. The canonical Zod schema for the\n * `definition_json` envelope lives at `@objectstack/spec/automation/webhook`.\n *\n * One row per `name`. The automation runtime\n * (`@objectstack/service-automation`, built-in `http_request` node) loads\n * active rows on boot + on `sys_webhook:changed` events, registers\n * `afterInsert` / `afterUpdate` / `afterDelete` listeners for the\n * targeted object, and dispatches outbound HTTP calls when matching\n * record events fire.\n *\n * Ownership (ADR-0029 K2.a): this object is **owned by\n * `@objectstack/plugin-webhooks`** — the plugin that consumes these rows —\n * alongside its sibling `sys_webhook_delivery`. It used to live in the\n * `@objectstack/platform-objects` monolith and be imported here; the\n * definition now lives with its owner so the plugin ships both data and\n * behavior as one unit.\n *\n * Platform-wide on purpose: every project (standalone, single-tenant,\n * cloud) can integrate with external systems (Slack, Stripe, internal\n * services) the same way.\n *\n * @namespace sys\n */\nexport const SysWebhook = ObjectSchema.create({\n name: 'sys_webhook',\n label: 'Webhook',\n pluralLabel: 'Webhooks',\n icon: 'webhook',\n isSystem: true,\n managedBy: 'config',\n // Authoring a webhook from the UI requires a structured form for the\n // headers / auth / retry / payload blocks — the generic JSON textarea\n // is acceptable as a v1 until a dedicated builder lands. Re-enable\n // create/edit/delete so admins can at least toggle `active` and edit\n // simple URL/method fields without round-tripping through code.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',\n displayNameField: 'name',\n nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\n titleFormat: '{label}',\n compactLayout: ['name', 'object_name', 'url', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['object_name', 'label', 'url', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_webhooks: {\n type: 'grid',\n name: 'all_webhooks',\n label: 'All',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Webhook ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced in logs and audit',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: false,\n maxLength: 100,\n description: 'Short object name whose events fire this webhook (blank = manual / API-triggered)',\n group: 'Definition',\n }),\n\n triggers: Field.text({\n label: 'Triggers',\n required: false,\n maxLength: 200,\n description: 'Comma-separated event list: create,update,delete,undelete,api',\n group: 'Definition',\n }),\n\n url: Field.text({\n label: 'Target URL',\n required: true,\n maxLength: 2048,\n description: 'External endpoint that receives the POST',\n group: 'Definition',\n }),\n\n method: Field.text({\n label: 'HTTP Method',\n required: true,\n defaultValue: 'POST',\n maxLength: 10,\n description: 'GET / POST / PUT / PATCH / DELETE',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Inactive webhooks are skipped by the dispatcher',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised Webhook JSON (see @objectstack/spec/automation/webhook) — full headers/auth/retry/payload config',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n"]}
|