@contractspec/example.integration-hub 3.8.8 → 3.8.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/connection/connection.enum.js +1 -29
  2. package/dist/connection/connection.operation.js +1 -124
  3. package/dist/connection/connection.presentation.js +1 -125
  4. package/dist/connection/connection.schema.js +1 -71
  5. package/dist/connection/index.js +1 -127
  6. package/dist/docs/index.js +5 -49
  7. package/dist/docs/integration-hub.docblock.js +5 -49
  8. package/dist/events.js +1 -211
  9. package/dist/example.js +1 -42
  10. package/dist/handlers/index.js +5 -292
  11. package/dist/handlers/integration.handlers.js +5 -292
  12. package/dist/index.js +8 -2355
  13. package/dist/integration/index.js +1 -92
  14. package/dist/integration/integration.enum.js +1 -12
  15. package/dist/integration/integration.operations.js +1 -89
  16. package/dist/integration/integration.presentation.js +1 -120
  17. package/dist/integration/integration.schema.js +1 -42
  18. package/dist/integration-hub.capability.js +1 -43
  19. package/dist/integration-hub.feature.js +1 -330
  20. package/dist/mcp-example.js +1 -154
  21. package/dist/node/connection/connection.enum.js +1 -29
  22. package/dist/node/connection/connection.operation.js +1 -124
  23. package/dist/node/connection/connection.presentation.js +1 -125
  24. package/dist/node/connection/connection.schema.js +1 -71
  25. package/dist/node/connection/index.js +1 -127
  26. package/dist/node/docs/index.js +5 -49
  27. package/dist/node/docs/integration-hub.docblock.js +5 -49
  28. package/dist/node/events.js +1 -211
  29. package/dist/node/example.js +1 -42
  30. package/dist/node/handlers/index.js +5 -292
  31. package/dist/node/handlers/integration.handlers.js +5 -292
  32. package/dist/node/index.js +8 -2355
  33. package/dist/node/integration/index.js +1 -92
  34. package/dist/node/integration/integration.enum.js +1 -12
  35. package/dist/node/integration/integration.operations.js +1 -89
  36. package/dist/node/integration/integration.presentation.js +1 -120
  37. package/dist/node/integration/integration.schema.js +1 -42
  38. package/dist/node/integration-hub.capability.js +1 -43
  39. package/dist/node/integration-hub.feature.js +1 -330
  40. package/dist/node/mcp-example.js +1 -154
  41. package/dist/node/run-mcp.js +1 -159
  42. package/dist/node/seeders/index.js +6 -60
  43. package/dist/node/sync/index.js +1 -332
  44. package/dist/node/sync/sync.enum.js +1 -26
  45. package/dist/node/sync/sync.operations.js +1 -321
  46. package/dist/node/sync/sync.presentation.js +1 -301
  47. package/dist/node/sync/sync.schema.js +1 -154
  48. package/dist/node/sync-engine/index.js +1 -186
  49. package/dist/node/tests/operations.test-spec.js +1 -85
  50. package/dist/node/ui/IntegrationDashboard.js +1 -886
  51. package/dist/node/ui/IntegrationDashboard.visualizations.js +1 -250
  52. package/dist/node/ui/IntegrationHubChat.js +1 -34
  53. package/dist/node/ui/hooks/index.js +1 -57
  54. package/dist/node/ui/hooks/useIntegrationData.js +1 -54
  55. package/dist/node/ui/index.js +4 -1173
  56. package/dist/node/ui/renderers/index.js +4 -484
  57. package/dist/node/ui/renderers/integration.markdown.js +4 -484
  58. package/dist/node/ui/tables/ConnectionsTable.js +1 -211
  59. package/dist/node/ui/tables/IntegrationTables.js +1 -361
  60. package/dist/node/ui/tables/SyncConfigsTable.js +1 -230
  61. package/dist/node/ui/tables/integration-table.shared.js +1 -84
  62. package/dist/node/visualizations/catalog.js +1 -137
  63. package/dist/node/visualizations/index.js +1 -211
  64. package/dist/node/visualizations/selectors.js +1 -204
  65. package/dist/run-mcp.js +1 -159
  66. package/dist/seeders/index.js +6 -60
  67. package/dist/sync/index.js +1 -332
  68. package/dist/sync/sync.enum.js +1 -26
  69. package/dist/sync/sync.operations.js +1 -321
  70. package/dist/sync/sync.presentation.js +1 -301
  71. package/dist/sync/sync.schema.js +1 -154
  72. package/dist/sync-engine/index.js +1 -186
  73. package/dist/tests/operations.test-spec.js +1 -85
  74. package/dist/ui/IntegrationDashboard.js +1 -886
  75. package/dist/ui/IntegrationDashboard.visualizations.js +1 -250
  76. package/dist/ui/IntegrationHubChat.js +1 -34
  77. package/dist/ui/hooks/index.js +1 -57
  78. package/dist/ui/hooks/useIntegrationData.js +1 -54
  79. package/dist/ui/index.js +4 -1173
  80. package/dist/ui/renderers/index.js +4 -484
  81. package/dist/ui/renderers/integration.markdown.js +4 -484
  82. package/dist/ui/tables/ConnectionsTable.js +1 -211
  83. package/dist/ui/tables/IntegrationTables.js +1 -361
  84. package/dist/ui/tables/SyncConfigsTable.js +1 -230
  85. package/dist/ui/tables/integration-table.shared.js +1 -84
  86. package/dist/visualizations/catalog.js +1 -137
  87. package/dist/visualizations/index.js +1 -211
  88. package/dist/visualizations/selectors.js +1 -204
  89. package/package.json +14 -14
@@ -1,125 +1 @@
1
- // src/connection/connection.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var ConnectionStatusEnum = defineEnum("ConnectionStatus", [
4
- "PENDING",
5
- "CONNECTED",
6
- "DISCONNECTED",
7
- "ERROR",
8
- "EXPIRED"
9
- ]);
10
- var AuthTypeEnum = defineEnum("AuthType", [
11
- "api_key",
12
- "oauth2",
13
- "bearer",
14
- "header",
15
- "basic",
16
- "webhook_signing",
17
- "service_account"
18
- ]);
19
- var TransportTypeEnum = defineEnum("TransportType", [
20
- "rest",
21
- "mcp",
22
- "webhook",
23
- "sdk"
24
- ]);
25
-
26
- // src/connection/connection.schema.ts
27
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
28
- var ConnectionModel = defineSchemaModel({
29
- name: "ConnectionModel",
30
- fields: {
31
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
32
- integrationId: {
33
- type: ScalarTypeEnum.String_unsecure(),
34
- isOptional: false
35
- },
36
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
37
- status: { type: ConnectionStatusEnum, isOptional: false },
38
- authType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
39
- externalAccountName: {
40
- type: ScalarTypeEnum.String_unsecure(),
41
- isOptional: true
42
- },
43
- connectedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
44
- lastHealthCheck: { type: ScalarTypeEnum.DateTime(), isOptional: true },
45
- healthStatus: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
46
- transport: { type: TransportTypeEnum, isOptional: true },
47
- authMethod: { type: AuthTypeEnum, isOptional: true },
48
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
49
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
50
- }
51
- });
52
- var CreateConnectionInputModel = defineSchemaModel({
53
- name: "CreateConnectionInput",
54
- fields: {
55
- integrationId: {
56
- type: ScalarTypeEnum.String_unsecure(),
57
- isOptional: false
58
- },
59
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
60
- authType: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
61
- credentials: { type: ScalarTypeEnum.JSON(), isOptional: true },
62
- transport: { type: TransportTypeEnum, isOptional: true },
63
- authMethod: { type: AuthTypeEnum, isOptional: true },
64
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
65
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
66
- }
67
- });
68
-
69
- // src/connection/connection.presentation.ts
70
- import {
71
- definePresentation,
72
- StabilityEnum
73
- } from "@contractspec/lib.contracts-spec";
74
- var ConnectionListPresentation = definePresentation({
75
- meta: {
76
- key: "integration.connection.list",
77
- version: "1.0.0",
78
- title: "Connection List",
79
- description: "List of integration connections",
80
- domain: "integration",
81
- owners: ["@integration-team"],
82
- tags: ["integration", "connection", "list"],
83
- stability: StabilityEnum.Experimental,
84
- goal: "Provide an overview of all established integration connections.",
85
- context: "The primary management view for integration hubs."
86
- },
87
- source: {
88
- type: "component",
89
- framework: "react",
90
- componentKey: "ConnectionList",
91
- props: ConnectionModel
92
- },
93
- targets: ["react", "markdown"],
94
- policy: {
95
- flags: ["integration.enabled"]
96
- }
97
- });
98
- var ConnectionSetupPresentation = definePresentation({
99
- meta: {
100
- key: "integration.connection.setup",
101
- version: "1.0.0",
102
- title: "Connection Setup",
103
- description: "Setup wizard for creating integration connections",
104
- domain: "integration",
105
- owners: ["@integration-team"],
106
- tags: ["integration", "connection", "setup"],
107
- stability: StabilityEnum.Experimental,
108
- goal: "Guide users through the multi-step process of connecting to a new integration.",
109
- context: "The onboarding flow for new integrations."
110
- },
111
- source: {
112
- type: "component",
113
- framework: "react",
114
- componentKey: "ConnectionSetup",
115
- props: ConnectionModel
116
- },
117
- targets: ["react"],
118
- policy: {
119
- flags: ["integration.enabled"]
120
- }
121
- });
122
- export {
123
- ConnectionSetupPresentation,
124
- ConnectionListPresentation
125
- };
1
+ import{defineEnum as k}from"@contractspec/lib.schema";var B=k("ConnectionStatus",["PENDING","CONNECTED","DISCONNECTED","ERROR","EXPIRED"]),q=k("AuthType",["api_key","oauth2","bearer","header","basic","webhook_signing","service_account"]),v=k("TransportType",["rest","mcp","webhook","sdk"]);import{defineSchemaModel as D,ScalarTypeEnum as j}from"@contractspec/lib.schema";var z=D({name:"ConnectionModel",fields:{id:{type:j.String_unsecure(),isOptional:!1},integrationId:{type:j.String_unsecure(),isOptional:!1},name:{type:j.String_unsecure(),isOptional:!1},status:{type:B,isOptional:!1},authType:{type:j.String_unsecure(),isOptional:!1},externalAccountName:{type:j.String_unsecure(),isOptional:!0},connectedAt:{type:j.DateTime(),isOptional:!0},lastHealthCheck:{type:j.DateTime(),isOptional:!0},healthStatus:{type:j.String_unsecure(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:j.String_unsecure(),isOptional:!0},ownershipMode:{type:j.String_unsecure(),isOptional:!0}}}),N=D({name:"CreateConnectionInput",fields:{integrationId:{type:j.String_unsecure(),isOptional:!1},name:{type:j.NonEmptyString(),isOptional:!1},authType:{type:j.NonEmptyString(),isOptional:!1},credentials:{type:j.JSON(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:j.String_unsecure(),isOptional:!0},ownershipMode:{type:j.String_unsecure(),isOptional:!0}}});import{definePresentation as F,StabilityEnum as G}from"@contractspec/lib.contracts-spec";var U=F({meta:{key:"integration.connection.list",version:"1.0.0",title:"Connection List",description:"List of integration connections",domain:"integration",owners:["@integration-team"],tags:["integration","connection","list"],stability:G.Experimental,goal:"Provide an overview of all established integration connections.",context:"The primary management view for integration hubs."},source:{type:"component",framework:"react",componentKey:"ConnectionList",props:z},targets:["react","markdown"],policy:{flags:["integration.enabled"]}}),V=F({meta:{key:"integration.connection.setup",version:"1.0.0",title:"Connection Setup",description:"Setup wizard for creating integration connections",domain:"integration",owners:["@integration-team"],tags:["integration","connection","setup"],stability:G.Experimental,goal:"Guide users through the multi-step process of connecting to a new integration.",context:"The onboarding flow for new integrations."},source:{type:"component",framework:"react",componentKey:"ConnectionSetup",props:z},targets:["react"],policy:{flags:["integration.enabled"]}});export{V as ConnectionSetupPresentation,U as ConnectionListPresentation};
@@ -1,71 +1 @@
1
- // src/connection/connection.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var ConnectionStatusEnum = defineEnum("ConnectionStatus", [
4
- "PENDING",
5
- "CONNECTED",
6
- "DISCONNECTED",
7
- "ERROR",
8
- "EXPIRED"
9
- ]);
10
- var AuthTypeEnum = defineEnum("AuthType", [
11
- "api_key",
12
- "oauth2",
13
- "bearer",
14
- "header",
15
- "basic",
16
- "webhook_signing",
17
- "service_account"
18
- ]);
19
- var TransportTypeEnum = defineEnum("TransportType", [
20
- "rest",
21
- "mcp",
22
- "webhook",
23
- "sdk"
24
- ]);
25
-
26
- // src/connection/connection.schema.ts
27
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
28
- var ConnectionModel = defineSchemaModel({
29
- name: "ConnectionModel",
30
- fields: {
31
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
32
- integrationId: {
33
- type: ScalarTypeEnum.String_unsecure(),
34
- isOptional: false
35
- },
36
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
37
- status: { type: ConnectionStatusEnum, isOptional: false },
38
- authType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
39
- externalAccountName: {
40
- type: ScalarTypeEnum.String_unsecure(),
41
- isOptional: true
42
- },
43
- connectedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
44
- lastHealthCheck: { type: ScalarTypeEnum.DateTime(), isOptional: true },
45
- healthStatus: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
46
- transport: { type: TransportTypeEnum, isOptional: true },
47
- authMethod: { type: AuthTypeEnum, isOptional: true },
48
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
49
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
50
- }
51
- });
52
- var CreateConnectionInputModel = defineSchemaModel({
53
- name: "CreateConnectionInput",
54
- fields: {
55
- integrationId: {
56
- type: ScalarTypeEnum.String_unsecure(),
57
- isOptional: false
58
- },
59
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
60
- authType: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
61
- credentials: { type: ScalarTypeEnum.JSON(), isOptional: true },
62
- transport: { type: TransportTypeEnum, isOptional: true },
63
- authMethod: { type: AuthTypeEnum, isOptional: true },
64
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
65
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
66
- }
67
- });
68
- export {
69
- CreateConnectionInputModel,
70
- ConnectionModel
71
- };
1
+ import{defineEnum as k}from"@contractspec/lib.schema";var z=k("ConnectionStatus",["PENDING","CONNECTED","DISCONNECTED","ERROR","EXPIRED"]),q=k("AuthType",["api_key","oauth2","bearer","header","basic","webhook_signing","service_account"]),v=k("TransportType",["rest","mcp","webhook","sdk"]);import{defineSchemaModel as B,ScalarTypeEnum as j}from"@contractspec/lib.schema";var J=B({name:"ConnectionModel",fields:{id:{type:j.String_unsecure(),isOptional:!1},integrationId:{type:j.String_unsecure(),isOptional:!1},name:{type:j.String_unsecure(),isOptional:!1},status:{type:z,isOptional:!1},authType:{type:j.String_unsecure(),isOptional:!1},externalAccountName:{type:j.String_unsecure(),isOptional:!0},connectedAt:{type:j.DateTime(),isOptional:!0},lastHealthCheck:{type:j.DateTime(),isOptional:!0},healthStatus:{type:j.String_unsecure(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:j.String_unsecure(),isOptional:!0},ownershipMode:{type:j.String_unsecure(),isOptional:!0}}}),K=B({name:"CreateConnectionInput",fields:{integrationId:{type:j.String_unsecure(),isOptional:!1},name:{type:j.NonEmptyString(),isOptional:!1},authType:{type:j.NonEmptyString(),isOptional:!1},credentials:{type:j.JSON(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:j.String_unsecure(),isOptional:!0},ownershipMode:{type:j.String_unsecure(),isOptional:!0}}});export{K as CreateConnectionInputModel,J as ConnectionModel};
@@ -1,127 +1 @@
1
- // src/connection/connection.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var ConnectionStatusEnum = defineEnum("ConnectionStatus", [
4
- "PENDING",
5
- "CONNECTED",
6
- "DISCONNECTED",
7
- "ERROR",
8
- "EXPIRED"
9
- ]);
10
- var AuthTypeEnum = defineEnum("AuthType", [
11
- "api_key",
12
- "oauth2",
13
- "bearer",
14
- "header",
15
- "basic",
16
- "webhook_signing",
17
- "service_account"
18
- ]);
19
- var TransportTypeEnum = defineEnum("TransportType", [
20
- "rest",
21
- "mcp",
22
- "webhook",
23
- "sdk"
24
- ]);
25
-
26
- // src/connection/connection.schema.ts
27
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
28
- var ConnectionModel = defineSchemaModel({
29
- name: "ConnectionModel",
30
- fields: {
31
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
32
- integrationId: {
33
- type: ScalarTypeEnum.String_unsecure(),
34
- isOptional: false
35
- },
36
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
37
- status: { type: ConnectionStatusEnum, isOptional: false },
38
- authType: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
39
- externalAccountName: {
40
- type: ScalarTypeEnum.String_unsecure(),
41
- isOptional: true
42
- },
43
- connectedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
44
- lastHealthCheck: { type: ScalarTypeEnum.DateTime(), isOptional: true },
45
- healthStatus: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
46
- transport: { type: TransportTypeEnum, isOptional: true },
47
- authMethod: { type: AuthTypeEnum, isOptional: true },
48
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
49
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
50
- }
51
- });
52
- var CreateConnectionInputModel = defineSchemaModel({
53
- name: "CreateConnectionInput",
54
- fields: {
55
- integrationId: {
56
- type: ScalarTypeEnum.String_unsecure(),
57
- isOptional: false
58
- },
59
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
60
- authType: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
61
- credentials: { type: ScalarTypeEnum.JSON(), isOptional: true },
62
- transport: { type: TransportTypeEnum, isOptional: true },
63
- authMethod: { type: AuthTypeEnum, isOptional: true },
64
- apiVersion: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
65
- ownershipMode: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
66
- }
67
- });
68
-
69
- // src/connection/connection.operation.ts
70
- import { defineCommand } from "@contractspec/lib.contracts-spec/operations";
71
- var OWNERS = ["@example.integration-hub"];
72
- var CreateConnectionContract = defineCommand({
73
- meta: {
74
- key: "integration.connection.create",
75
- version: "1.0.0",
76
- stability: "stable",
77
- owners: [...OWNERS],
78
- tags: ["integration", "connection", "create"],
79
- description: "Create a connection to an external system.",
80
- goal: "Authenticate with external systems.",
81
- context: "Connection setup."
82
- },
83
- io: { input: CreateConnectionInputModel, output: ConnectionModel },
84
- policy: { auth: "user" },
85
- sideEffects: {
86
- emits: [
87
- {
88
- key: "integration.connection.created",
89
- version: "1.0.0",
90
- when: "Connection created",
91
- payload: ConnectionModel
92
- }
93
- ],
94
- audit: ["integration.connection.created"]
95
- },
96
- acceptance: {
97
- scenarios: [
98
- {
99
- key: "create-connection-happy-path",
100
- given: ["User is authenticated"],
101
- when: ["User creates connection with valid credentials"],
102
- then: ["Connection is created", "ConnectionCreated event is emitted"]
103
- }
104
- ],
105
- examples: [
106
- {
107
- key: "connect-crm",
108
- input: {
109
- name: "Salesforce Prod",
110
- integrationId: "salesforce",
111
- credentials: { clientId: "xxx" }
112
- },
113
- output: {
114
- id: "conn-123",
115
- status: "connected",
116
- connectedAt: "2025-01-01T12:00:00Z"
117
- }
118
- }
119
- ]
120
- }
121
- });
122
- export {
123
- CreateConnectionInputModel,
124
- CreateConnectionContract,
125
- ConnectionStatusEnum,
126
- ConnectionModel
127
- };
1
+ import{defineEnum as j}from"@contractspec/lib.schema";var k=j("ConnectionStatus",["PENDING","CONNECTED","DISCONNECTED","ERROR","EXPIRED"]),q=j("AuthType",["api_key","oauth2","bearer","header","basic","webhook_signing","service_account"]),v=j("TransportType",["rest","mcp","webhook","sdk"]);import{defineSchemaModel as B,ScalarTypeEnum as C}from"@contractspec/lib.schema";var x=B({name:"ConnectionModel",fields:{id:{type:C.String_unsecure(),isOptional:!1},integrationId:{type:C.String_unsecure(),isOptional:!1},name:{type:C.String_unsecure(),isOptional:!1},status:{type:k,isOptional:!1},authType:{type:C.String_unsecure(),isOptional:!1},externalAccountName:{type:C.String_unsecure(),isOptional:!0},connectedAt:{type:C.DateTime(),isOptional:!0},lastHealthCheck:{type:C.DateTime(),isOptional:!0},healthStatus:{type:C.String_unsecure(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:C.String_unsecure(),isOptional:!0},ownershipMode:{type:C.String_unsecure(),isOptional:!0}}}),z=B({name:"CreateConnectionInput",fields:{integrationId:{type:C.String_unsecure(),isOptional:!1},name:{type:C.NonEmptyString(),isOptional:!1},authType:{type:C.NonEmptyString(),isOptional:!1},credentials:{type:C.JSON(),isOptional:!0},transport:{type:v,isOptional:!0},authMethod:{type:q,isOptional:!0},apiVersion:{type:C.String_unsecure(),isOptional:!0},ownershipMode:{type:C.String_unsecure(),isOptional:!0}}});import{defineCommand as D}from"@contractspec/lib.contracts-spec/operations";var F=["@example.integration-hub"],G=D({meta:{key:"integration.connection.create",version:"1.0.0",stability:"stable",owners:[...F],tags:["integration","connection","create"],description:"Create a connection to an external system.",goal:"Authenticate with external systems.",context:"Connection setup."},io:{input:z,output:x},policy:{auth:"user"},sideEffects:{emits:[{key:"integration.connection.created",version:"1.0.0",when:"Connection created",payload:x}],audit:["integration.connection.created"]},acceptance:{scenarios:[{key:"create-connection-happy-path",given:["User is authenticated"],when:["User creates connection with valid credentials"],then:["Connection is created","ConnectionCreated event is emitted"]}],examples:[{key:"connect-crm",input:{name:"Salesforce Prod",integrationId:"salesforce",credentials:{clientId:"xxx"}},output:{id:"conn-123",status:"connected",connectedAt:"2025-01-01T12:00:00Z"}}]}});export{z as CreateConnectionInputModel,G as CreateConnectionContract,k as ConnectionStatusEnum,x as ConnectionModel};
@@ -1,15 +1,4 @@
1
- // src/docs/integration-hub.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var integrationHubDocBlocks = [
4
- {
5
- id: "docs.examples.integration-hub",
6
- title: "Integration Hub",
7
- summary: "Generic integration center with connectors, connections, sync configs, field mappings, and sync logs.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/examples/integration-hub",
11
- tags: ["integrations", "sync", "etl", "connectors"],
12
- body: `## Entities
1
+ import{registerDocBlocks as m}from"@contractspec/lib.contracts-spec/docs";var f=[{id:"docs.examples.integration-hub",title:"Integration Hub",summary:"Generic integration center with connectors, connections, sync configs, field mappings, and sync logs.",kind:"reference",visibility:"public",route:"/docs/examples/integration-hub",tags:["integrations","sync","etl","connectors"],body:`## Entities
13
2
 
14
3
  - Integration, Connection, SyncConfig, FieldMapping, SyncLog.
15
4
  - Sync engine config lives in \`src/sync-engine\` to map remote <-> local entities.
@@ -35,17 +24,7 @@ var integrationHubDocBlocks = [
35
24
  - Seed data includes voice integrations for \`ai-voice.gradium\` and \`ai-voice.fal\`.
36
25
  - Feature flags can gate specific providers; metering can track sync volume.
37
26
  - The dashboard tables demonstrate client-mode sorting, pagination, visibility, pinning, resizing, and row expansion on the shared table stack.
38
- `
39
- },
40
- {
41
- id: "docs.examples.integration-hub.goal",
42
- title: "Integration Hub — Goal",
43
- summary: "Why this integration hub exists and what success looks like.",
44
- kind: "goal",
45
- visibility: "public",
46
- route: "/docs/examples/integration-hub/goal",
47
- tags: ["integrations", "goal"],
48
- body: `## Why it matters
27
+ `},{id:"docs.examples.integration-hub.goal",title:"Integration Hub — Goal",summary:"Why this integration hub exists and what success looks like.",kind:"goal",visibility:"public",route:"/docs/examples/integration-hub/goal",tags:["integrations","goal"],body:`## Why it matters
49
28
  - Gives a regenerable, provider-agnostic integration hub with explicit mappings.
50
29
  - Prevents drift between sync configs, mappings, and event/log outputs.
51
30
 
@@ -55,17 +34,7 @@ var integrationHubDocBlocks = [
55
34
 
56
35
  ## Success criteria
57
36
  - Connections and mappings regenerate safely after spec edits.
58
- - Sync events and logs provide auditability; payloads are stored and PII-scoped.`
59
- },
60
- {
61
- id: "docs.examples.integration-hub.usage",
62
- title: "Integration Hub — Usage",
63
- summary: "How to configure connectors, mappings, and scheduled syncs.",
64
- kind: "usage",
65
- visibility: "public",
66
- route: "/docs/examples/integration-hub/usage",
67
- tags: ["integrations", "usage"],
68
- body: `## Setup
37
+ - Sync events and logs provide auditability; payloads are stored and PII-scoped.`},{id:"docs.examples.integration-hub.usage",title:"Integration Hub — Usage",summary:"How to configure connectors, mappings, and scheduled syncs.",kind:"usage",visibility:"public",route:"/docs/examples/integration-hub/usage",tags:["integrations","usage"],body:`## Setup
69
38
  1) Seed integrations/connections (if available) or create connector definitions.
70
39
  2) Configure sync jobs with Jobs module; store payload archives via Files.
71
40
  3) Use \`src/run-mcp.ts\` to validate MCP connectivity for provider adapters.
@@ -78,17 +47,7 @@ var integrationHubDocBlocks = [
78
47
  ## Guardrails
79
48
  - Keep mappings declarative; avoid hardcoded transforms.
80
49
  - Emit events for sync lifecycle; persist logs for audit.
81
- - Redact sensitive payload paths in presentations.`
82
- },
83
- {
84
- id: "docs.examples.integration-hub.constraints",
85
- title: "Integration Hub — Constraints & Safety",
86
- summary: "Internal guidance for sync lifecycle, mappings, and regeneration safety.",
87
- kind: "reference",
88
- visibility: "internal",
89
- route: "/docs/examples/integration-hub/constraints",
90
- tags: ["integrations", "constraints", "internal"],
91
- body: `## Constraints
50
+ - Redact sensitive payload paths in presentations.`},{id:"docs.examples.integration-hub.constraints",title:"Integration Hub — Constraints & Safety",summary:"Internal guidance for sync lifecycle, mappings, and regeneration safety.",kind:"reference",visibility:"internal",route:"/docs/examples/integration-hub/constraints",tags:["integrations","constraints","internal"],body:`## Constraints
92
51
  - Mappings and sync states must remain declarative in spec; no hidden code transforms.
93
52
  - Events to emit at minimum: sync.started, sync.completed, sync.failed; connection.connected/disconnected.
94
53
  - Regeneration should not alter retry/backoff semantics without explicit spec change.
@@ -101,7 +60,4 @@ var integrationHubDocBlocks = [
101
60
  ## Verification
102
61
  - Include fixtures for mapping changes and sync retries.
103
62
  - Validate that scheduled jobs (cron) are spec-driven; Jobs module wiring intact.
104
- - Ensure Audit/Notifications receive sync lifecycle events.`
105
- }
106
- ];
107
- registerDocBlocks(integrationHubDocBlocks);
63
+ - Ensure Audit/Notifications receive sync lifecycle events.`}];m(f);
@@ -1,15 +1,4 @@
1
- // src/docs/integration-hub.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var integrationHubDocBlocks = [
4
- {
5
- id: "docs.examples.integration-hub",
6
- title: "Integration Hub",
7
- summary: "Generic integration center with connectors, connections, sync configs, field mappings, and sync logs.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/examples/integration-hub",
11
- tags: ["integrations", "sync", "etl", "connectors"],
12
- body: `## Entities
1
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var h=[{id:"docs.examples.integration-hub",title:"Integration Hub",summary:"Generic integration center with connectors, connections, sync configs, field mappings, and sync logs.",kind:"reference",visibility:"public",route:"/docs/examples/integration-hub",tags:["integrations","sync","etl","connectors"],body:`## Entities
13
2
 
14
3
  - Integration, Connection, SyncConfig, FieldMapping, SyncLog.
15
4
  - Sync engine config lives in \`src/sync-engine\` to map remote <-> local entities.
@@ -35,17 +24,7 @@ var integrationHubDocBlocks = [
35
24
  - Seed data includes voice integrations for \`ai-voice.gradium\` and \`ai-voice.fal\`.
36
25
  - Feature flags can gate specific providers; metering can track sync volume.
37
26
  - The dashboard tables demonstrate client-mode sorting, pagination, visibility, pinning, resizing, and row expansion on the shared table stack.
38
- `
39
- },
40
- {
41
- id: "docs.examples.integration-hub.goal",
42
- title: "Integration Hub — Goal",
43
- summary: "Why this integration hub exists and what success looks like.",
44
- kind: "goal",
45
- visibility: "public",
46
- route: "/docs/examples/integration-hub/goal",
47
- tags: ["integrations", "goal"],
48
- body: `## Why it matters
27
+ `},{id:"docs.examples.integration-hub.goal",title:"Integration Hub — Goal",summary:"Why this integration hub exists and what success looks like.",kind:"goal",visibility:"public",route:"/docs/examples/integration-hub/goal",tags:["integrations","goal"],body:`## Why it matters
49
28
  - Gives a regenerable, provider-agnostic integration hub with explicit mappings.
50
29
  - Prevents drift between sync configs, mappings, and event/log outputs.
51
30
 
@@ -55,17 +34,7 @@ var integrationHubDocBlocks = [
55
34
 
56
35
  ## Success criteria
57
36
  - Connections and mappings regenerate safely after spec edits.
58
- - Sync events and logs provide auditability; payloads are stored and PII-scoped.`
59
- },
60
- {
61
- id: "docs.examples.integration-hub.usage",
62
- title: "Integration Hub — Usage",
63
- summary: "How to configure connectors, mappings, and scheduled syncs.",
64
- kind: "usage",
65
- visibility: "public",
66
- route: "/docs/examples/integration-hub/usage",
67
- tags: ["integrations", "usage"],
68
- body: `## Setup
37
+ - Sync events and logs provide auditability; payloads are stored and PII-scoped.`},{id:"docs.examples.integration-hub.usage",title:"Integration Hub — Usage",summary:"How to configure connectors, mappings, and scheduled syncs.",kind:"usage",visibility:"public",route:"/docs/examples/integration-hub/usage",tags:["integrations","usage"],body:`## Setup
69
38
  1) Seed integrations/connections (if available) or create connector definitions.
70
39
  2) Configure sync jobs with Jobs module; store payload archives via Files.
71
40
  3) Use \`src/run-mcp.ts\` to validate MCP connectivity for provider adapters.
@@ -78,17 +47,7 @@ var integrationHubDocBlocks = [
78
47
  ## Guardrails
79
48
  - Keep mappings declarative; avoid hardcoded transforms.
80
49
  - Emit events for sync lifecycle; persist logs for audit.
81
- - Redact sensitive payload paths in presentations.`
82
- },
83
- {
84
- id: "docs.examples.integration-hub.constraints",
85
- title: "Integration Hub — Constraints & Safety",
86
- summary: "Internal guidance for sync lifecycle, mappings, and regeneration safety.",
87
- kind: "reference",
88
- visibility: "internal",
89
- route: "/docs/examples/integration-hub/constraints",
90
- tags: ["integrations", "constraints", "internal"],
91
- body: `## Constraints
50
+ - Redact sensitive payload paths in presentations.`},{id:"docs.examples.integration-hub.constraints",title:"Integration Hub — Constraints & Safety",summary:"Internal guidance for sync lifecycle, mappings, and regeneration safety.",kind:"reference",visibility:"internal",route:"/docs/examples/integration-hub/constraints",tags:["integrations","constraints","internal"],body:`## Constraints
92
51
  - Mappings and sync states must remain declarative in spec; no hidden code transforms.
93
52
  - Events to emit at minimum: sync.started, sync.completed, sync.failed; connection.connected/disconnected.
94
53
  - Regeneration should not alter retry/backoff semantics without explicit spec change.
@@ -101,7 +60,4 @@ var integrationHubDocBlocks = [
101
60
  ## Verification
102
61
  - Include fixtures for mapping changes and sync retries.
103
62
  - Validate that scheduled jobs (cron) are spec-driven; Jobs module wiring intact.
104
- - Ensure Audit/Notifications receive sync lifecycle events.`
105
- }
106
- ];
107
- registerDocBlocks(integrationHubDocBlocks);
63
+ - Ensure Audit/Notifications receive sync lifecycle events.`}];f(h);