@objectstack/plugin-webhooks 11.0.0 → 11.2.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 +24 -0
- package/dist/{chunk-HWFTXTTI.js → chunk-2V7E3ABN.js} +3 -1
- package/dist/chunk-2V7E3ABN.js.map +1 -0
- package/dist/{chunk-KPKLAXNA.cjs → chunk-EHLUIU42.cjs} +3 -1
- package/dist/chunk-EHLUIU42.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 +4 -34
- package/dist/schema.d.ts +4 -34
- package/dist/schema.js +1 -1
- package/package.json +4 -4
- package/src/sys-webhook.object.ts +1 -0
- package/dist/chunk-HWFTXTTI.js.map +0 -1
- package/dist/chunk-KPKLAXNA.cjs.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @objectstack/plugin-webhooks@11.
|
|
2
|
+
> @objectstack/plugin-webhooks@11.2.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-2V7E3ABN.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-2V7E3ABN.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 780ms
|
|
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-EHLUIU42.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-EHLUIU42.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 782ms
|
|
31
31
|
[34mDTS[39m Build start
|
|
32
|
-
[32mDTS[39m ⚡️ Build success in
|
|
32
|
+
[32mDTS[39m ⚡️ Build success in 26841ms
|
|
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[32m128.66 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[32m128.66 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @objectstack/plugin-webhooks
|
|
2
2
|
|
|
3
|
+
## 11.2.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [d0f4b13]
|
|
8
|
+
- Updated dependencies [302bdab]
|
|
9
|
+
- @objectstack/spec@11.2.0
|
|
10
|
+
- @objectstack/core@11.2.0
|
|
11
|
+
- @objectstack/service-messaging@11.2.0
|
|
12
|
+
|
|
13
|
+
## 11.1.0
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [ce0b4f6]
|
|
18
|
+
- Updated dependencies [9ccfcd6]
|
|
19
|
+
- Updated dependencies [ecf193f]
|
|
20
|
+
- Updated dependencies [51bec81]
|
|
21
|
+
- Updated dependencies [3e593a7]
|
|
22
|
+
- Updated dependencies [63d5403]
|
|
23
|
+
- @objectstack/core@11.1.0
|
|
24
|
+
- @objectstack/spec@11.1.0
|
|
25
|
+
- @objectstack/service-messaging@11.1.0
|
|
26
|
+
|
|
3
27
|
## 11.0.0
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -15,6 +15,8 @@ var SysWebhook = ObjectSchema.create({
|
|
|
15
15
|
userActions: { create: true, edit: true, delete: true, import: false },
|
|
16
16
|
description: "Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.",
|
|
17
17
|
displayNameField: "name",
|
|
18
|
+
nameField: "name",
|
|
19
|
+
// [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
18
20
|
titleFormat: "{label}",
|
|
19
21
|
compactLayout: ["name", "object_name", "url", "active", "updated_at"],
|
|
20
22
|
listViews: {
|
|
@@ -135,4 +137,4 @@ var SysWebhook = ObjectSchema.create({
|
|
|
135
137
|
export {
|
|
136
138
|
SysWebhook
|
|
137
139
|
};
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-2V7E3ABN.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 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":[]}
|
|
@@ -15,6 +15,8 @@ var SysWebhook = _data.ObjectSchema.create({
|
|
|
15
15
|
userActions: { create: true, edit: true, delete: true, import: false },
|
|
16
16
|
description: "Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.",
|
|
17
17
|
displayNameField: "name",
|
|
18
|
+
nameField: "name",
|
|
19
|
+
// [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
18
20
|
titleFormat: "{label}",
|
|
19
21
|
compactLayout: ["name", "object_name", "url", "active", "updated_at"],
|
|
20
22
|
listViews: {
|
|
@@ -135,4 +137,4 @@ var SysWebhook = _data.ObjectSchema.create({
|
|
|
135
137
|
|
|
136
138
|
|
|
137
139
|
exports.SysWebhook = SysWebhook;
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-EHLUIU42.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
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 _chunkEHLUIU42cjs = require('./chunk-EHLUIU42.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: [_chunkEHLUIU42cjs.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 = _chunkEHLUIU42cjs.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 _chunkEHLUIU42cjs = require('./chunk-EHLUIU42.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
exports.SysWebhook =
|
|
6
|
+
exports.SysWebhook = _chunkEHLUIU42cjs.SysWebhook;
|
|
7
7
|
//# sourceMappingURL=schema.cjs.map
|
package/dist/schema.d.cts
CHANGED
|
@@ -117,7 +117,6 @@ declare const SysWebhook: Omit<{
|
|
|
117
117
|
relationshipField?: string | undefined;
|
|
118
118
|
} | undefined;
|
|
119
119
|
language?: string | undefined;
|
|
120
|
-
maxRating?: number | undefined;
|
|
121
120
|
step?: number | undefined;
|
|
122
121
|
currencyConfig?: {
|
|
123
122
|
precision: number;
|
|
@@ -247,7 +246,6 @@ declare const SysWebhook: Omit<{
|
|
|
247
246
|
requiredPermissions?: string[] | undefined;
|
|
248
247
|
system?: boolean | undefined;
|
|
249
248
|
inlineHelpText?: string | undefined;
|
|
250
|
-
caseSensitive?: boolean | undefined;
|
|
251
249
|
autonumberFormat?: string | undefined;
|
|
252
250
|
}>;
|
|
253
251
|
_lock?: "full" | "none" | "no-overlay" | "no-delete" | undefined;
|
|
@@ -335,12 +333,6 @@ declare const SysWebhook: Omit<{
|
|
|
335
333
|
versionField: string;
|
|
336
334
|
retentionDays?: number | undefined;
|
|
337
335
|
} | undefined;
|
|
338
|
-
partitioning?: {
|
|
339
|
-
enabled: boolean;
|
|
340
|
-
strategy: "hash" | "list" | "range";
|
|
341
|
-
key: string;
|
|
342
|
-
interval?: string | undefined;
|
|
343
|
-
} | undefined;
|
|
344
336
|
validations?: _objectstack_spec_data.BaseValidationRuleShape[] | undefined;
|
|
345
337
|
activityMilestones?: {
|
|
346
338
|
field: string;
|
|
@@ -348,6 +340,7 @@ declare const SysWebhook: Omit<{
|
|
|
348
340
|
summary: string;
|
|
349
341
|
type?: string | undefined;
|
|
350
342
|
}[] | undefined;
|
|
343
|
+
nameField?: string | undefined;
|
|
351
344
|
displayNameField?: string | undefined;
|
|
352
345
|
recordName?: {
|
|
353
346
|
type: "text" | "autonumber";
|
|
@@ -671,7 +664,6 @@ declare const SysWebhook: Omit<{
|
|
|
671
664
|
debounceMs?: number | undefined;
|
|
672
665
|
} | undefined;
|
|
673
666
|
}> | undefined;
|
|
674
|
-
defaultDetailForm?: string | undefined;
|
|
675
667
|
searchableFields?: string[] | undefined;
|
|
676
668
|
search?: {
|
|
677
669
|
fields: string[];
|
|
@@ -688,7 +680,7 @@ declare const SysWebhook: Omit<{
|
|
|
688
680
|
trash: boolean;
|
|
689
681
|
mru: boolean;
|
|
690
682
|
clone: boolean;
|
|
691
|
-
apiMethods?: ("create" | "update" | "delete" | "search" | "import" | "
|
|
683
|
+
apiMethods?: ("create" | "update" | "delete" | "search" | "import" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
|
|
692
684
|
} | undefined;
|
|
693
685
|
sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
|
|
694
686
|
publicSharing?: {
|
|
@@ -716,6 +708,7 @@ declare const SysWebhook: Omit<{
|
|
|
716
708
|
locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
|
|
717
709
|
component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
|
|
718
710
|
target?: string | undefined;
|
|
711
|
+
openIn?: "self" | "new-tab" | undefined;
|
|
719
712
|
body?: {
|
|
720
713
|
language: "expression";
|
|
721
714
|
source: string;
|
|
@@ -829,6 +822,7 @@ declare const SysWebhook: Omit<{
|
|
|
829
822
|
};
|
|
830
823
|
readonly description: "Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.";
|
|
831
824
|
readonly displayNameField: "name";
|
|
825
|
+
readonly nameField: "name";
|
|
832
826
|
readonly titleFormat: "{label}";
|
|
833
827
|
readonly compactLayout: ["name", "object_name", "url", "active", "updated_at"];
|
|
834
828
|
readonly listViews: {
|
|
@@ -999,7 +993,6 @@ declare const SysWebhook: Omit<{
|
|
|
999
993
|
relationshipField?: string | undefined;
|
|
1000
994
|
} | undefined;
|
|
1001
995
|
readonly language?: string | undefined;
|
|
1002
|
-
readonly maxRating?: number | undefined;
|
|
1003
996
|
readonly step?: number | undefined;
|
|
1004
997
|
readonly currencyConfig?: {
|
|
1005
998
|
precision: number;
|
|
@@ -1093,7 +1086,6 @@ declare const SysWebhook: Omit<{
|
|
|
1093
1086
|
} | undefined;
|
|
1094
1087
|
readonly sortable?: boolean | undefined;
|
|
1095
1088
|
readonly inlineHelpText?: string | undefined;
|
|
1096
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1097
1089
|
readonly autonumberFormat?: string | undefined;
|
|
1098
1090
|
readonly index?: boolean | undefined;
|
|
1099
1091
|
readonly type: "text";
|
|
@@ -1175,7 +1167,6 @@ declare const SysWebhook: Omit<{
|
|
|
1175
1167
|
relationshipField?: string | undefined;
|
|
1176
1168
|
} | undefined;
|
|
1177
1169
|
readonly language?: string | undefined;
|
|
1178
|
-
readonly maxRating?: number | undefined;
|
|
1179
1170
|
readonly step?: number | undefined;
|
|
1180
1171
|
readonly currencyConfig?: {
|
|
1181
1172
|
precision: number;
|
|
@@ -1269,7 +1260,6 @@ declare const SysWebhook: Omit<{
|
|
|
1269
1260
|
} | undefined;
|
|
1270
1261
|
readonly sortable?: boolean | undefined;
|
|
1271
1262
|
readonly inlineHelpText?: string | undefined;
|
|
1272
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1273
1263
|
readonly autonumberFormat?: string | undefined;
|
|
1274
1264
|
readonly index?: boolean | undefined;
|
|
1275
1265
|
readonly type: "text";
|
|
@@ -1351,7 +1341,6 @@ declare const SysWebhook: Omit<{
|
|
|
1351
1341
|
relationshipField?: string | undefined;
|
|
1352
1342
|
} | undefined;
|
|
1353
1343
|
readonly language?: string | undefined;
|
|
1354
|
-
readonly maxRating?: number | undefined;
|
|
1355
1344
|
readonly step?: number | undefined;
|
|
1356
1345
|
readonly currencyConfig?: {
|
|
1357
1346
|
precision: number;
|
|
@@ -1445,7 +1434,6 @@ declare const SysWebhook: Omit<{
|
|
|
1445
1434
|
} | undefined;
|
|
1446
1435
|
readonly sortable?: boolean | undefined;
|
|
1447
1436
|
readonly inlineHelpText?: string | undefined;
|
|
1448
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1449
1437
|
readonly autonumberFormat?: string | undefined;
|
|
1450
1438
|
readonly index?: boolean | undefined;
|
|
1451
1439
|
readonly type: "text";
|
|
@@ -1527,7 +1515,6 @@ declare const SysWebhook: Omit<{
|
|
|
1527
1515
|
relationshipField?: string | undefined;
|
|
1528
1516
|
} | undefined;
|
|
1529
1517
|
readonly language?: string | undefined;
|
|
1530
|
-
readonly maxRating?: number | undefined;
|
|
1531
1518
|
readonly step?: number | undefined;
|
|
1532
1519
|
readonly currencyConfig?: {
|
|
1533
1520
|
precision: number;
|
|
@@ -1621,7 +1608,6 @@ declare const SysWebhook: Omit<{
|
|
|
1621
1608
|
} | undefined;
|
|
1622
1609
|
readonly sortable?: boolean | undefined;
|
|
1623
1610
|
readonly inlineHelpText?: string | undefined;
|
|
1624
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1625
1611
|
readonly autonumberFormat?: string | undefined;
|
|
1626
1612
|
readonly index?: boolean | undefined;
|
|
1627
1613
|
readonly type: "text";
|
|
@@ -1703,7 +1689,6 @@ declare const SysWebhook: Omit<{
|
|
|
1703
1689
|
relationshipField?: string | undefined;
|
|
1704
1690
|
} | undefined;
|
|
1705
1691
|
readonly language?: string | undefined;
|
|
1706
|
-
readonly maxRating?: number | undefined;
|
|
1707
1692
|
readonly step?: number | undefined;
|
|
1708
1693
|
readonly currencyConfig?: {
|
|
1709
1694
|
precision: number;
|
|
@@ -1797,7 +1782,6 @@ declare const SysWebhook: Omit<{
|
|
|
1797
1782
|
} | undefined;
|
|
1798
1783
|
readonly sortable?: boolean | undefined;
|
|
1799
1784
|
readonly inlineHelpText?: string | undefined;
|
|
1800
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1801
1785
|
readonly autonumberFormat?: string | undefined;
|
|
1802
1786
|
readonly index?: boolean | undefined;
|
|
1803
1787
|
readonly type: "text";
|
|
@@ -1879,7 +1863,6 @@ declare const SysWebhook: Omit<{
|
|
|
1879
1863
|
relationshipField?: string | undefined;
|
|
1880
1864
|
} | undefined;
|
|
1881
1865
|
readonly language?: string | undefined;
|
|
1882
|
-
readonly maxRating?: number | undefined;
|
|
1883
1866
|
readonly step?: number | undefined;
|
|
1884
1867
|
readonly currencyConfig?: {
|
|
1885
1868
|
precision: number;
|
|
@@ -1973,7 +1956,6 @@ declare const SysWebhook: Omit<{
|
|
|
1973
1956
|
} | undefined;
|
|
1974
1957
|
readonly sortable?: boolean | undefined;
|
|
1975
1958
|
readonly inlineHelpText?: string | undefined;
|
|
1976
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1977
1959
|
readonly autonumberFormat?: string | undefined;
|
|
1978
1960
|
readonly index?: boolean | undefined;
|
|
1979
1961
|
readonly type: "text";
|
|
@@ -2055,7 +2037,6 @@ declare const SysWebhook: Omit<{
|
|
|
2055
2037
|
relationshipField?: string | undefined;
|
|
2056
2038
|
} | undefined;
|
|
2057
2039
|
readonly language?: string | undefined;
|
|
2058
|
-
readonly maxRating?: number | undefined;
|
|
2059
2040
|
readonly step?: number | undefined;
|
|
2060
2041
|
readonly currencyConfig?: {
|
|
2061
2042
|
precision: number;
|
|
@@ -2149,7 +2130,6 @@ declare const SysWebhook: Omit<{
|
|
|
2149
2130
|
} | undefined;
|
|
2150
2131
|
readonly sortable?: boolean | undefined;
|
|
2151
2132
|
readonly inlineHelpText?: string | undefined;
|
|
2152
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2153
2133
|
readonly autonumberFormat?: string | undefined;
|
|
2154
2134
|
readonly index?: boolean | undefined;
|
|
2155
2135
|
readonly type: "text";
|
|
@@ -2231,7 +2211,6 @@ declare const SysWebhook: Omit<{
|
|
|
2231
2211
|
relationshipField?: string | undefined;
|
|
2232
2212
|
} | undefined;
|
|
2233
2213
|
readonly language?: string | undefined;
|
|
2234
|
-
readonly maxRating?: number | undefined;
|
|
2235
2214
|
readonly step?: number | undefined;
|
|
2236
2215
|
readonly currencyConfig?: {
|
|
2237
2216
|
precision: number;
|
|
@@ -2325,7 +2304,6 @@ declare const SysWebhook: Omit<{
|
|
|
2325
2304
|
} | undefined;
|
|
2326
2305
|
readonly sortable?: boolean | undefined;
|
|
2327
2306
|
readonly inlineHelpText?: string | undefined;
|
|
2328
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2329
2307
|
readonly autonumberFormat?: string | undefined;
|
|
2330
2308
|
readonly index?: boolean | undefined;
|
|
2331
2309
|
readonly type: "textarea";
|
|
@@ -2407,7 +2385,6 @@ declare const SysWebhook: Omit<{
|
|
|
2407
2385
|
relationshipField?: string | undefined;
|
|
2408
2386
|
} | undefined;
|
|
2409
2387
|
readonly language?: string | undefined;
|
|
2410
|
-
readonly maxRating?: number | undefined;
|
|
2411
2388
|
readonly step?: number | undefined;
|
|
2412
2389
|
readonly currencyConfig?: {
|
|
2413
2390
|
precision: number;
|
|
@@ -2501,7 +2478,6 @@ declare const SysWebhook: Omit<{
|
|
|
2501
2478
|
} | undefined;
|
|
2502
2479
|
readonly sortable?: boolean | undefined;
|
|
2503
2480
|
readonly inlineHelpText?: string | undefined;
|
|
2504
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2505
2481
|
readonly autonumberFormat?: string | undefined;
|
|
2506
2482
|
readonly index?: boolean | undefined;
|
|
2507
2483
|
readonly type: "boolean";
|
|
@@ -2583,7 +2559,6 @@ declare const SysWebhook: Omit<{
|
|
|
2583
2559
|
relationshipField?: string | undefined;
|
|
2584
2560
|
} | undefined;
|
|
2585
2561
|
readonly language?: string | undefined;
|
|
2586
|
-
readonly maxRating?: number | undefined;
|
|
2587
2562
|
readonly step?: number | undefined;
|
|
2588
2563
|
readonly currencyConfig?: {
|
|
2589
2564
|
precision: number;
|
|
@@ -2677,7 +2652,6 @@ declare const SysWebhook: Omit<{
|
|
|
2677
2652
|
} | undefined;
|
|
2678
2653
|
readonly sortable?: boolean | undefined;
|
|
2679
2654
|
readonly inlineHelpText?: string | undefined;
|
|
2680
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2681
2655
|
readonly autonumberFormat?: string | undefined;
|
|
2682
2656
|
readonly index?: boolean | undefined;
|
|
2683
2657
|
readonly type: "textarea";
|
|
@@ -2759,7 +2733,6 @@ declare const SysWebhook: Omit<{
|
|
|
2759
2733
|
relationshipField?: string | undefined;
|
|
2760
2734
|
} | undefined;
|
|
2761
2735
|
readonly language?: string | undefined;
|
|
2762
|
-
readonly maxRating?: number | undefined;
|
|
2763
2736
|
readonly step?: number | undefined;
|
|
2764
2737
|
readonly currencyConfig?: {
|
|
2765
2738
|
precision: number;
|
|
@@ -2853,7 +2826,6 @@ declare const SysWebhook: Omit<{
|
|
|
2853
2826
|
} | undefined;
|
|
2854
2827
|
readonly sortable?: boolean | undefined;
|
|
2855
2828
|
readonly inlineHelpText?: string | undefined;
|
|
2856
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2857
2829
|
readonly autonumberFormat?: string | undefined;
|
|
2858
2830
|
readonly index?: boolean | undefined;
|
|
2859
2831
|
readonly type: "datetime";
|
|
@@ -2935,7 +2907,6 @@ declare const SysWebhook: Omit<{
|
|
|
2935
2907
|
relationshipField?: string | undefined;
|
|
2936
2908
|
} | undefined;
|
|
2937
2909
|
readonly language?: string | undefined;
|
|
2938
|
-
readonly maxRating?: number | undefined;
|
|
2939
2910
|
readonly step?: number | undefined;
|
|
2940
2911
|
readonly currencyConfig?: {
|
|
2941
2912
|
precision: number;
|
|
@@ -3029,7 +3000,6 @@ declare const SysWebhook: Omit<{
|
|
|
3029
3000
|
} | undefined;
|
|
3030
3001
|
readonly sortable?: boolean | undefined;
|
|
3031
3002
|
readonly inlineHelpText?: string | undefined;
|
|
3032
|
-
readonly caseSensitive?: boolean | undefined;
|
|
3033
3003
|
readonly autonumberFormat?: string | undefined;
|
|
3034
3004
|
readonly index?: boolean | undefined;
|
|
3035
3005
|
readonly type: "datetime";
|
package/dist/schema.d.ts
CHANGED
|
@@ -117,7 +117,6 @@ declare const SysWebhook: Omit<{
|
|
|
117
117
|
relationshipField?: string | undefined;
|
|
118
118
|
} | undefined;
|
|
119
119
|
language?: string | undefined;
|
|
120
|
-
maxRating?: number | undefined;
|
|
121
120
|
step?: number | undefined;
|
|
122
121
|
currencyConfig?: {
|
|
123
122
|
precision: number;
|
|
@@ -247,7 +246,6 @@ declare const SysWebhook: Omit<{
|
|
|
247
246
|
requiredPermissions?: string[] | undefined;
|
|
248
247
|
system?: boolean | undefined;
|
|
249
248
|
inlineHelpText?: string | undefined;
|
|
250
|
-
caseSensitive?: boolean | undefined;
|
|
251
249
|
autonumberFormat?: string | undefined;
|
|
252
250
|
}>;
|
|
253
251
|
_lock?: "full" | "none" | "no-overlay" | "no-delete" | undefined;
|
|
@@ -335,12 +333,6 @@ declare const SysWebhook: Omit<{
|
|
|
335
333
|
versionField: string;
|
|
336
334
|
retentionDays?: number | undefined;
|
|
337
335
|
} | undefined;
|
|
338
|
-
partitioning?: {
|
|
339
|
-
enabled: boolean;
|
|
340
|
-
strategy: "hash" | "list" | "range";
|
|
341
|
-
key: string;
|
|
342
|
-
interval?: string | undefined;
|
|
343
|
-
} | undefined;
|
|
344
336
|
validations?: _objectstack_spec_data.BaseValidationRuleShape[] | undefined;
|
|
345
337
|
activityMilestones?: {
|
|
346
338
|
field: string;
|
|
@@ -348,6 +340,7 @@ declare const SysWebhook: Omit<{
|
|
|
348
340
|
summary: string;
|
|
349
341
|
type?: string | undefined;
|
|
350
342
|
}[] | undefined;
|
|
343
|
+
nameField?: string | undefined;
|
|
351
344
|
displayNameField?: string | undefined;
|
|
352
345
|
recordName?: {
|
|
353
346
|
type: "text" | "autonumber";
|
|
@@ -671,7 +664,6 @@ declare const SysWebhook: Omit<{
|
|
|
671
664
|
debounceMs?: number | undefined;
|
|
672
665
|
} | undefined;
|
|
673
666
|
}> | undefined;
|
|
674
|
-
defaultDetailForm?: string | undefined;
|
|
675
667
|
searchableFields?: string[] | undefined;
|
|
676
668
|
search?: {
|
|
677
669
|
fields: string[];
|
|
@@ -688,7 +680,7 @@ declare const SysWebhook: Omit<{
|
|
|
688
680
|
trash: boolean;
|
|
689
681
|
mru: boolean;
|
|
690
682
|
clone: boolean;
|
|
691
|
-
apiMethods?: ("create" | "update" | "delete" | "search" | "import" | "
|
|
683
|
+
apiMethods?: ("create" | "update" | "delete" | "search" | "import" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
|
|
692
684
|
} | undefined;
|
|
693
685
|
sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
|
|
694
686
|
publicSharing?: {
|
|
@@ -716,6 +708,7 @@ declare const SysWebhook: Omit<{
|
|
|
716
708
|
locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
|
|
717
709
|
component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
|
|
718
710
|
target?: string | undefined;
|
|
711
|
+
openIn?: "self" | "new-tab" | undefined;
|
|
719
712
|
body?: {
|
|
720
713
|
language: "expression";
|
|
721
714
|
source: string;
|
|
@@ -829,6 +822,7 @@ declare const SysWebhook: Omit<{
|
|
|
829
822
|
};
|
|
830
823
|
readonly description: "Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.";
|
|
831
824
|
readonly displayNameField: "name";
|
|
825
|
+
readonly nameField: "name";
|
|
832
826
|
readonly titleFormat: "{label}";
|
|
833
827
|
readonly compactLayout: ["name", "object_name", "url", "active", "updated_at"];
|
|
834
828
|
readonly listViews: {
|
|
@@ -999,7 +993,6 @@ declare const SysWebhook: Omit<{
|
|
|
999
993
|
relationshipField?: string | undefined;
|
|
1000
994
|
} | undefined;
|
|
1001
995
|
readonly language?: string | undefined;
|
|
1002
|
-
readonly maxRating?: number | undefined;
|
|
1003
996
|
readonly step?: number | undefined;
|
|
1004
997
|
readonly currencyConfig?: {
|
|
1005
998
|
precision: number;
|
|
@@ -1093,7 +1086,6 @@ declare const SysWebhook: Omit<{
|
|
|
1093
1086
|
} | undefined;
|
|
1094
1087
|
readonly sortable?: boolean | undefined;
|
|
1095
1088
|
readonly inlineHelpText?: string | undefined;
|
|
1096
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1097
1089
|
readonly autonumberFormat?: string | undefined;
|
|
1098
1090
|
readonly index?: boolean | undefined;
|
|
1099
1091
|
readonly type: "text";
|
|
@@ -1175,7 +1167,6 @@ declare const SysWebhook: Omit<{
|
|
|
1175
1167
|
relationshipField?: string | undefined;
|
|
1176
1168
|
} | undefined;
|
|
1177
1169
|
readonly language?: string | undefined;
|
|
1178
|
-
readonly maxRating?: number | undefined;
|
|
1179
1170
|
readonly step?: number | undefined;
|
|
1180
1171
|
readonly currencyConfig?: {
|
|
1181
1172
|
precision: number;
|
|
@@ -1269,7 +1260,6 @@ declare const SysWebhook: Omit<{
|
|
|
1269
1260
|
} | undefined;
|
|
1270
1261
|
readonly sortable?: boolean | undefined;
|
|
1271
1262
|
readonly inlineHelpText?: string | undefined;
|
|
1272
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1273
1263
|
readonly autonumberFormat?: string | undefined;
|
|
1274
1264
|
readonly index?: boolean | undefined;
|
|
1275
1265
|
readonly type: "text";
|
|
@@ -1351,7 +1341,6 @@ declare const SysWebhook: Omit<{
|
|
|
1351
1341
|
relationshipField?: string | undefined;
|
|
1352
1342
|
} | undefined;
|
|
1353
1343
|
readonly language?: string | undefined;
|
|
1354
|
-
readonly maxRating?: number | undefined;
|
|
1355
1344
|
readonly step?: number | undefined;
|
|
1356
1345
|
readonly currencyConfig?: {
|
|
1357
1346
|
precision: number;
|
|
@@ -1445,7 +1434,6 @@ declare const SysWebhook: Omit<{
|
|
|
1445
1434
|
} | undefined;
|
|
1446
1435
|
readonly sortable?: boolean | undefined;
|
|
1447
1436
|
readonly inlineHelpText?: string | undefined;
|
|
1448
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1449
1437
|
readonly autonumberFormat?: string | undefined;
|
|
1450
1438
|
readonly index?: boolean | undefined;
|
|
1451
1439
|
readonly type: "text";
|
|
@@ -1527,7 +1515,6 @@ declare const SysWebhook: Omit<{
|
|
|
1527
1515
|
relationshipField?: string | undefined;
|
|
1528
1516
|
} | undefined;
|
|
1529
1517
|
readonly language?: string | undefined;
|
|
1530
|
-
readonly maxRating?: number | undefined;
|
|
1531
1518
|
readonly step?: number | undefined;
|
|
1532
1519
|
readonly currencyConfig?: {
|
|
1533
1520
|
precision: number;
|
|
@@ -1621,7 +1608,6 @@ declare const SysWebhook: Omit<{
|
|
|
1621
1608
|
} | undefined;
|
|
1622
1609
|
readonly sortable?: boolean | undefined;
|
|
1623
1610
|
readonly inlineHelpText?: string | undefined;
|
|
1624
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1625
1611
|
readonly autonumberFormat?: string | undefined;
|
|
1626
1612
|
readonly index?: boolean | undefined;
|
|
1627
1613
|
readonly type: "text";
|
|
@@ -1703,7 +1689,6 @@ declare const SysWebhook: Omit<{
|
|
|
1703
1689
|
relationshipField?: string | undefined;
|
|
1704
1690
|
} | undefined;
|
|
1705
1691
|
readonly language?: string | undefined;
|
|
1706
|
-
readonly maxRating?: number | undefined;
|
|
1707
1692
|
readonly step?: number | undefined;
|
|
1708
1693
|
readonly currencyConfig?: {
|
|
1709
1694
|
precision: number;
|
|
@@ -1797,7 +1782,6 @@ declare const SysWebhook: Omit<{
|
|
|
1797
1782
|
} | undefined;
|
|
1798
1783
|
readonly sortable?: boolean | undefined;
|
|
1799
1784
|
readonly inlineHelpText?: string | undefined;
|
|
1800
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1801
1785
|
readonly autonumberFormat?: string | undefined;
|
|
1802
1786
|
readonly index?: boolean | undefined;
|
|
1803
1787
|
readonly type: "text";
|
|
@@ -1879,7 +1863,6 @@ declare const SysWebhook: Omit<{
|
|
|
1879
1863
|
relationshipField?: string | undefined;
|
|
1880
1864
|
} | undefined;
|
|
1881
1865
|
readonly language?: string | undefined;
|
|
1882
|
-
readonly maxRating?: number | undefined;
|
|
1883
1866
|
readonly step?: number | undefined;
|
|
1884
1867
|
readonly currencyConfig?: {
|
|
1885
1868
|
precision: number;
|
|
@@ -1973,7 +1956,6 @@ declare const SysWebhook: Omit<{
|
|
|
1973
1956
|
} | undefined;
|
|
1974
1957
|
readonly sortable?: boolean | undefined;
|
|
1975
1958
|
readonly inlineHelpText?: string | undefined;
|
|
1976
|
-
readonly caseSensitive?: boolean | undefined;
|
|
1977
1959
|
readonly autonumberFormat?: string | undefined;
|
|
1978
1960
|
readonly index?: boolean | undefined;
|
|
1979
1961
|
readonly type: "text";
|
|
@@ -2055,7 +2037,6 @@ declare const SysWebhook: Omit<{
|
|
|
2055
2037
|
relationshipField?: string | undefined;
|
|
2056
2038
|
} | undefined;
|
|
2057
2039
|
readonly language?: string | undefined;
|
|
2058
|
-
readonly maxRating?: number | undefined;
|
|
2059
2040
|
readonly step?: number | undefined;
|
|
2060
2041
|
readonly currencyConfig?: {
|
|
2061
2042
|
precision: number;
|
|
@@ -2149,7 +2130,6 @@ declare const SysWebhook: Omit<{
|
|
|
2149
2130
|
} | undefined;
|
|
2150
2131
|
readonly sortable?: boolean | undefined;
|
|
2151
2132
|
readonly inlineHelpText?: string | undefined;
|
|
2152
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2153
2133
|
readonly autonumberFormat?: string | undefined;
|
|
2154
2134
|
readonly index?: boolean | undefined;
|
|
2155
2135
|
readonly type: "text";
|
|
@@ -2231,7 +2211,6 @@ declare const SysWebhook: Omit<{
|
|
|
2231
2211
|
relationshipField?: string | undefined;
|
|
2232
2212
|
} | undefined;
|
|
2233
2213
|
readonly language?: string | undefined;
|
|
2234
|
-
readonly maxRating?: number | undefined;
|
|
2235
2214
|
readonly step?: number | undefined;
|
|
2236
2215
|
readonly currencyConfig?: {
|
|
2237
2216
|
precision: number;
|
|
@@ -2325,7 +2304,6 @@ declare const SysWebhook: Omit<{
|
|
|
2325
2304
|
} | undefined;
|
|
2326
2305
|
readonly sortable?: boolean | undefined;
|
|
2327
2306
|
readonly inlineHelpText?: string | undefined;
|
|
2328
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2329
2307
|
readonly autonumberFormat?: string | undefined;
|
|
2330
2308
|
readonly index?: boolean | undefined;
|
|
2331
2309
|
readonly type: "textarea";
|
|
@@ -2407,7 +2385,6 @@ declare const SysWebhook: Omit<{
|
|
|
2407
2385
|
relationshipField?: string | undefined;
|
|
2408
2386
|
} | undefined;
|
|
2409
2387
|
readonly language?: string | undefined;
|
|
2410
|
-
readonly maxRating?: number | undefined;
|
|
2411
2388
|
readonly step?: number | undefined;
|
|
2412
2389
|
readonly currencyConfig?: {
|
|
2413
2390
|
precision: number;
|
|
@@ -2501,7 +2478,6 @@ declare const SysWebhook: Omit<{
|
|
|
2501
2478
|
} | undefined;
|
|
2502
2479
|
readonly sortable?: boolean | undefined;
|
|
2503
2480
|
readonly inlineHelpText?: string | undefined;
|
|
2504
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2505
2481
|
readonly autonumberFormat?: string | undefined;
|
|
2506
2482
|
readonly index?: boolean | undefined;
|
|
2507
2483
|
readonly type: "boolean";
|
|
@@ -2583,7 +2559,6 @@ declare const SysWebhook: Omit<{
|
|
|
2583
2559
|
relationshipField?: string | undefined;
|
|
2584
2560
|
} | undefined;
|
|
2585
2561
|
readonly language?: string | undefined;
|
|
2586
|
-
readonly maxRating?: number | undefined;
|
|
2587
2562
|
readonly step?: number | undefined;
|
|
2588
2563
|
readonly currencyConfig?: {
|
|
2589
2564
|
precision: number;
|
|
@@ -2677,7 +2652,6 @@ declare const SysWebhook: Omit<{
|
|
|
2677
2652
|
} | undefined;
|
|
2678
2653
|
readonly sortable?: boolean | undefined;
|
|
2679
2654
|
readonly inlineHelpText?: string | undefined;
|
|
2680
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2681
2655
|
readonly autonumberFormat?: string | undefined;
|
|
2682
2656
|
readonly index?: boolean | undefined;
|
|
2683
2657
|
readonly type: "textarea";
|
|
@@ -2759,7 +2733,6 @@ declare const SysWebhook: Omit<{
|
|
|
2759
2733
|
relationshipField?: string | undefined;
|
|
2760
2734
|
} | undefined;
|
|
2761
2735
|
readonly language?: string | undefined;
|
|
2762
|
-
readonly maxRating?: number | undefined;
|
|
2763
2736
|
readonly step?: number | undefined;
|
|
2764
2737
|
readonly currencyConfig?: {
|
|
2765
2738
|
precision: number;
|
|
@@ -2853,7 +2826,6 @@ declare const SysWebhook: Omit<{
|
|
|
2853
2826
|
} | undefined;
|
|
2854
2827
|
readonly sortable?: boolean | undefined;
|
|
2855
2828
|
readonly inlineHelpText?: string | undefined;
|
|
2856
|
-
readonly caseSensitive?: boolean | undefined;
|
|
2857
2829
|
readonly autonumberFormat?: string | undefined;
|
|
2858
2830
|
readonly index?: boolean | undefined;
|
|
2859
2831
|
readonly type: "datetime";
|
|
@@ -2935,7 +2907,6 @@ declare const SysWebhook: Omit<{
|
|
|
2935
2907
|
relationshipField?: string | undefined;
|
|
2936
2908
|
} | undefined;
|
|
2937
2909
|
readonly language?: string | undefined;
|
|
2938
|
-
readonly maxRating?: number | undefined;
|
|
2939
2910
|
readonly step?: number | undefined;
|
|
2940
2911
|
readonly currencyConfig?: {
|
|
2941
2912
|
precision: number;
|
|
@@ -3029,7 +3000,6 @@ declare const SysWebhook: Omit<{
|
|
|
3029
3000
|
} | undefined;
|
|
3030
3001
|
readonly sortable?: boolean | undefined;
|
|
3031
3002
|
readonly inlineHelpText?: string | undefined;
|
|
3032
|
-
readonly caseSensitive?: boolean | undefined;
|
|
3033
3003
|
readonly autonumberFormat?: string | undefined;
|
|
3034
3004
|
readonly index?: boolean | undefined;
|
|
3035
3005
|
readonly type: "datetime";
|
package/dist/schema.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectstack/plugin-webhooks",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.2.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": "11.
|
|
23
|
-
"@objectstack/service-messaging": "11.
|
|
24
|
-
"@objectstack/spec": "11.
|
|
22
|
+
"@objectstack/core": "11.2.0",
|
|
23
|
+
"@objectstack/service-messaging": "11.2.0",
|
|
24
|
+
"@objectstack/spec": "11.2.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^26.0.0",
|
|
@@ -45,6 +45,7 @@ export const SysWebhook = ObjectSchema.create({
|
|
|
45
45
|
userActions: { create: true, edit: true, delete: true, import: false },
|
|
46
46
|
description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',
|
|
47
47
|
displayNameField: 'name',
|
|
48
|
+
nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)
|
|
48
49
|
titleFormat: '{label}',
|
|
49
50
|
compactLayout: ['name', 'object_name', 'url', 'active', 'updated_at'],
|
|
50
51
|
|
|
@@ -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 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-KPKLAXNA.cjs","../src/sys-webhook.object.ts"],"names":[],"mappings":"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","file":"/home/runner/work/framework/framework/packages/plugins/plugin-webhooks/dist/chunk-KPKLAXNA.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 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"]}
|