@enfyra/mcp-server 0.1.69 → 0.1.71

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 (248) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/config-local-adapters.d.ts +18 -0
  3. package/dist/lib/config-local-adapters.js +271 -0
  4. package/dist/lib/config-local-adapters.js.map +1 -0
  5. package/dist/lib/config-local-contracts.d.ts +28 -0
  6. package/dist/lib/config-local-contracts.js +200 -0
  7. package/dist/lib/config-local-contracts.js.map +1 -0
  8. package/dist/lib/config-local-prompts.d.ts +10 -0
  9. package/dist/lib/config-local-prompts.js +185 -0
  10. package/dist/lib/config-local-prompts.js.map +1 -0
  11. package/dist/lib/config-local-types.d.ts +23 -0
  12. package/dist/lib/config-local-types.js +2 -0
  13. package/dist/lib/config-local-types.js.map +1 -0
  14. package/dist/lib/config-local.js +3 -649
  15. package/dist/lib/config-local.js.map +1 -1
  16. package/dist/lib/discovery-tools.d.ts +4 -0
  17. package/dist/lib/discovery-tools.js +546 -0
  18. package/dist/lib/discovery-tools.js.map +1 -0
  19. package/dist/lib/dynamic-repository-builder.d.ts +1 -1
  20. package/dist/lib/dynamic-script-context-contract.d.ts +100 -0
  21. package/dist/lib/dynamic-script-context-contract.js +163 -0
  22. package/dist/lib/dynamic-script-context-contract.js.map +1 -0
  23. package/dist/lib/enfyra-mcp-server.d.ts +3 -0
  24. package/dist/lib/enfyra-mcp-server.js +79 -0
  25. package/dist/lib/enfyra-mcp-server.js.map +1 -0
  26. package/dist/lib/enfyra-tool-logic.d.ts +7 -0
  27. package/dist/lib/enfyra-tool-logic.js +8 -0
  28. package/dist/lib/enfyra-tool-logic.js.map +1 -0
  29. package/dist/lib/enfyra-tool-types.d.ts +27 -0
  30. package/dist/lib/enfyra-tool-types.js +2 -0
  31. package/dist/lib/enfyra-tool-types.js.map +1 -0
  32. package/dist/lib/extension-api-builders.d.ts +17 -0
  33. package/dist/lib/extension-api-builders.js +235 -0
  34. package/dist/lib/extension-api-builders.js.map +1 -0
  35. package/dist/lib/extension-component-builders.d.ts +87 -0
  36. package/dist/lib/extension-component-builders.js +623 -0
  37. package/dist/lib/extension-component-builders.js.map +1 -0
  38. package/dist/lib/extension-contract-review.d.ts +26 -0
  39. package/dist/lib/extension-contract-review.js +187 -0
  40. package/dist/lib/extension-contract-review.js.map +1 -0
  41. package/dist/lib/extension-theme-contract.d.ts +63 -0
  42. package/dist/lib/extension-theme-contract.js +417 -0
  43. package/dist/lib/extension-theme-contract.js.map +1 -0
  44. package/dist/lib/identity-tools.d.ts +4 -0
  45. package/dist/lib/identity-tools.js +46 -0
  46. package/dist/lib/identity-tools.js.map +1 -0
  47. package/dist/lib/log-tools.d.ts +4 -0
  48. package/dist/lib/log-tools.js +65 -0
  49. package/dist/lib/log-tools.js.map +1 -0
  50. package/dist/lib/mcp-example-connect.d.ts +9 -0
  51. package/dist/lib/mcp-example-connect.js +442 -0
  52. package/dist/lib/mcp-example-connect.js.map +1 -0
  53. package/dist/lib/mcp-example-extensions.d.ts +9 -0
  54. package/dist/lib/mcp-example-extensions.js +729 -0
  55. package/dist/lib/mcp-example-extensions.js.map +1 -0
  56. package/dist/lib/mcp-example-files.d.ts +9 -0
  57. package/dist/lib/mcp-example-files.js +51 -0
  58. package/dist/lib/mcp-example-files.js.map +1 -0
  59. package/dist/lib/mcp-example-flows.d.ts +9 -0
  60. package/dist/lib/mcp-example-flows.js +76 -0
  61. package/dist/lib/mcp-example-flows.js.map +1 -0
  62. package/dist/lib/mcp-example-graphql.d.ts +9 -0
  63. package/dist/lib/mcp-example-graphql.js +57 -0
  64. package/dist/lib/mcp-example-graphql.js.map +1 -0
  65. package/dist/lib/mcp-example-handlers-hooks.d.ts +9 -0
  66. package/dist/lib/mcp-example-handlers-hooks.js +328 -0
  67. package/dist/lib/mcp-example-handlers-hooks.js.map +1 -0
  68. package/dist/lib/mcp-example-oauth-setup.d.ts +9 -0
  69. package/dist/lib/mcp-example-oauth-setup.js +41 -0
  70. package/dist/lib/mcp-example-oauth-setup.js.map +1 -0
  71. package/dist/lib/mcp-example-permissions-rls.d.ts +9 -0
  72. package/dist/lib/mcp-example-permissions-rls.js +210 -0
  73. package/dist/lib/mcp-example-permissions-rls.js.map +1 -0
  74. package/dist/lib/mcp-example-queries-deep.d.ts +9 -0
  75. package/dist/lib/mcp-example-queries-deep.js +220 -0
  76. package/dist/lib/mcp-example-queries-deep.js.map +1 -0
  77. package/dist/lib/mcp-example-schema-relations.d.ts +9 -0
  78. package/dist/lib/mcp-example-schema-relations.js +148 -0
  79. package/dist/lib/mcp-example-schema-relations.js.map +1 -0
  80. package/dist/lib/mcp-example-websocket.d.ts +9 -0
  81. package/dist/lib/mcp-example-websocket.js +103 -0
  82. package/dist/lib/mcp-example-websocket.js.map +1 -0
  83. package/dist/lib/mcp-examples.d.ts +5 -5
  84. package/dist/lib/mcp-examples.js +22 -2394
  85. package/dist/lib/mcp-examples.js.map +1 -1
  86. package/dist/lib/method-tools.d.ts +4 -0
  87. package/dist/lib/method-tools.js +217 -0
  88. package/dist/lib/method-tools.js.map +1 -0
  89. package/dist/lib/package-tools.d.ts +4 -0
  90. package/dist/lib/package-tools.js +98 -0
  91. package/dist/lib/package-tools.js.map +1 -0
  92. package/dist/lib/platform-data-operations.d.ts +24 -0
  93. package/dist/lib/platform-data-operations.js +71 -0
  94. package/dist/lib/platform-data-operations.js.map +1 -0
  95. package/dist/lib/platform-endpoint-workflow.d.ts +42 -0
  96. package/dist/lib/platform-endpoint-workflow.js +382 -0
  97. package/dist/lib/platform-endpoint-workflow.js.map +1 -0
  98. package/dist/lib/platform-extension-source.d.ts +487 -0
  99. package/dist/lib/platform-extension-source.js +524 -0
  100. package/dist/lib/platform-extension-source.js.map +1 -0
  101. package/dist/lib/platform-extension-tools.d.ts +1 -0
  102. package/dist/lib/platform-extension-tools.js +416 -0
  103. package/dist/lib/platform-extension-tools.js.map +1 -0
  104. package/dist/lib/platform-extension-ui.d.ts +4 -0
  105. package/dist/lib/platform-extension-ui.js +5 -0
  106. package/dist/lib/platform-extension-ui.js.map +1 -0
  107. package/dist/lib/platform-extension-workflow.d.ts +54 -0
  108. package/dist/lib/platform-extension-workflow.js +194 -0
  109. package/dist/lib/platform-extension-workflow.js.map +1 -0
  110. package/dist/lib/platform-flow-operations.d.ts +554 -0
  111. package/dist/lib/platform-flow-operations.js +317 -0
  112. package/dist/lib/platform-flow-operations.js.map +1 -0
  113. package/dist/lib/platform-flow-tools.d.ts +1 -0
  114. package/dist/lib/platform-flow-tools.js +248 -0
  115. package/dist/lib/platform-flow-tools.js.map +1 -0
  116. package/dist/lib/platform-operation-logic.d.ts +10 -0
  117. package/dist/lib/platform-operation-logic.js +11 -0
  118. package/dist/lib/platform-operation-logic.js.map +1 -0
  119. package/dist/lib/platform-operation-tools.d.ts +1 -324
  120. package/dist/lib/platform-operation-tools.js +13 -4620
  121. package/dist/lib/platform-operation-tools.js.map +1 -1
  122. package/dist/lib/platform-operation-types.d.ts +46 -0
  123. package/dist/lib/platform-operation-types.js +2 -0
  124. package/dist/lib/platform-operation-types.js.map +1 -0
  125. package/dist/lib/platform-policy-tools.d.ts +1 -0
  126. package/dist/lib/platform-policy-tools.js +248 -0
  127. package/dist/lib/platform-policy-tools.js.map +1 -0
  128. package/dist/lib/platform-resource-operations.d.ts +124 -0
  129. package/dist/lib/platform-resource-operations.js +109 -0
  130. package/dist/lib/platform-resource-operations.js.map +1 -0
  131. package/dist/lib/platform-resource-tools.d.ts +1 -0
  132. package/dist/lib/platform-resource-tools.js +70 -0
  133. package/dist/lib/platform-resource-tools.js.map +1 -0
  134. package/dist/lib/platform-route-operations.d.ts +222 -0
  135. package/dist/lib/platform-route-operations.js +290 -0
  136. package/dist/lib/platform-route-operations.js.map +1 -0
  137. package/dist/lib/platform-route-tools.d.ts +1 -0
  138. package/dist/lib/platform-route-tools.js +307 -0
  139. package/dist/lib/platform-route-tools.js.map +1 -0
  140. package/dist/lib/platform-shared-operations.d.ts +7 -0
  141. package/dist/lib/platform-shared-operations.js +4 -0
  142. package/dist/lib/platform-shared-operations.js.map +1 -0
  143. package/dist/lib/platform-websocket-tools.d.ts +1 -0
  144. package/dist/lib/platform-websocket-tools.js +70 -0
  145. package/dist/lib/platform-websocket-tools.js.map +1 -0
  146. package/dist/lib/record-tools.d.ts +4 -0
  147. package/dist/lib/record-tools.js +418 -0
  148. package/dist/lib/record-tools.js.map +1 -0
  149. package/dist/lib/required-knowledge.d.ts +1 -1
  150. package/dist/lib/required-knowledge.js +3 -2
  151. package/dist/lib/required-knowledge.js.map +1 -1
  152. package/dist/lib/route-access-tools.d.ts +4 -0
  153. package/dist/lib/route-access-tools.js +172 -0
  154. package/dist/lib/route-access-tools.js.map +1 -0
  155. package/dist/lib/route-definition-tools.d.ts +4 -0
  156. package/dist/lib/route-definition-tools.js +285 -0
  157. package/dist/lib/route-definition-tools.js.map +1 -0
  158. package/dist/lib/route-inspection-tools.d.ts +4 -0
  159. package/dist/lib/route-inspection-tools.js +319 -0
  160. package/dist/lib/route-inspection-tools.js.map +1 -0
  161. package/dist/lib/route-tools.d.ts +1 -0
  162. package/dist/lib/route-tools.js +9 -0
  163. package/dist/lib/route-tools.js.map +1 -0
  164. package/dist/lib/runtime-zone-registry.d.ts +27 -0
  165. package/dist/lib/runtime-zone-registry.js +81 -0
  166. package/dist/lib/runtime-zone-registry.js.map +1 -0
  167. package/dist/lib/runtime-zone-search.d.ts +303 -0
  168. package/dist/lib/runtime-zone-search.js +596 -0
  169. package/dist/lib/runtime-zone-search.js.map +1 -0
  170. package/dist/lib/runtime-zone-tools.d.ts +2 -307
  171. package/dist/lib/runtime-zone-tools.js +2 -674
  172. package/dist/lib/runtime-zone-tools.js.map +1 -1
  173. package/dist/lib/schema-column-tools.d.ts +3 -0
  174. package/dist/lib/schema-column-tools.js +80 -0
  175. package/dist/lib/schema-column-tools.js.map +1 -0
  176. package/dist/lib/schema-mutation-coordinator.d.ts +28 -0
  177. package/dist/lib/schema-mutation-coordinator.js +154 -0
  178. package/dist/lib/schema-mutation-coordinator.js.map +1 -0
  179. package/dist/lib/schema-relation-contracts.d.ts +39 -0
  180. package/dist/lib/schema-relation-contracts.js +160 -0
  181. package/dist/lib/schema-relation-contracts.js.map +1 -0
  182. package/dist/lib/schema-relation-tools.d.ts +3 -0
  183. package/dist/lib/schema-relation-tools.js +61 -0
  184. package/dist/lib/schema-relation-tools.js.map +1 -0
  185. package/dist/lib/schema-table-contracts.d.ts +28 -0
  186. package/dist/lib/schema-table-contracts.js +263 -0
  187. package/dist/lib/schema-table-contracts.js.map +1 -0
  188. package/dist/lib/schema-table-tools.d.ts +3 -0
  189. package/dist/lib/schema-table-tools.js +297 -0
  190. package/dist/lib/schema-table-tools.js.map +1 -0
  191. package/dist/lib/schema-tool-operations.d.ts +150 -0
  192. package/dist/lib/schema-tool-operations.js +468 -0
  193. package/dist/lib/schema-tool-operations.js.map +1 -0
  194. package/dist/lib/schema-tool-types.d.ts +38 -0
  195. package/dist/lib/schema-tool-types.js +2 -0
  196. package/dist/lib/schema-tool-types.js.map +1 -0
  197. package/dist/lib/schema-verification.d.ts +14 -0
  198. package/dist/lib/schema-verification.js +105 -0
  199. package/dist/lib/schema-verification.js.map +1 -0
  200. package/dist/lib/script-tools.d.ts +4 -0
  201. package/dist/lib/script-tools.js +127 -0
  202. package/dist/lib/script-tools.js.map +1 -0
  203. package/dist/lib/system-tools.d.ts +4 -0
  204. package/dist/lib/system-tools.js +41 -0
  205. package/dist/lib/system-tools.js.map +1 -0
  206. package/dist/lib/table-tool-logic.d.ts +5 -0
  207. package/dist/lib/table-tool-logic.js +6 -0
  208. package/dist/lib/table-tool-logic.js.map +1 -0
  209. package/dist/lib/table-tools.d.ts +1 -84
  210. package/dist/lib/table-tools.js +7 -1522
  211. package/dist/lib/table-tools.js.map +1 -1
  212. package/dist/lib/tool-catalog.d.ts +2 -1
  213. package/dist/lib/tool-catalog.js +23 -2
  214. package/dist/lib/tool-catalog.js.map +1 -1
  215. package/dist/lib/tool-metadata-operations.d.ts +27 -0
  216. package/dist/lib/tool-metadata-operations.js +93 -0
  217. package/dist/lib/tool-metadata-operations.js.map +1 -0
  218. package/dist/lib/tool-permission-profile.d.ts +37 -0
  219. package/dist/lib/tool-permission-profile.js +106 -0
  220. package/dist/lib/tool-permission-profile.js.map +1 -0
  221. package/dist/lib/tool-record-operations.d.ts +102 -0
  222. package/dist/lib/tool-record-operations.js +260 -0
  223. package/dist/lib/tool-record-operations.js.map +1 -0
  224. package/dist/lib/tool-route-inspection.d.ts +47 -0
  225. package/dist/lib/tool-route-inspection.js +168 -0
  226. package/dist/lib/tool-route-inspection.js.map +1 -0
  227. package/dist/lib/tool-routing.d.ts +3 -417
  228. package/dist/lib/tool-routing.js +3 -1038
  229. package/dist/lib/tool-routing.js.map +1 -1
  230. package/dist/lib/tool-runtime-config.d.ts +33 -0
  231. package/dist/lib/tool-runtime-config.js +237 -0
  232. package/dist/lib/tool-runtime-config.js.map +1 -0
  233. package/dist/lib/tool-script-operations.d.ts +34 -0
  234. package/dist/lib/tool-script-operations.js +153 -0
  235. package/dist/lib/tool-script-operations.js.map +1 -0
  236. package/dist/lib/workflow-definitions.d.ts +366 -0
  237. package/dist/lib/workflow-definitions.js +703 -0
  238. package/dist/lib/workflow-definitions.js.map +1 -0
  239. package/dist/lib/workflow-planner.d.ts +45 -0
  240. package/dist/lib/workflow-planner.js +338 -0
  241. package/dist/lib/workflow-planner.js.map +1 -0
  242. package/dist/lib/workflow-types.d.ts +39 -0
  243. package/dist/lib/workflow-types.js +2 -0
  244. package/dist/lib/workflow-types.js.map +1 -0
  245. package/dist/mcp-server-entry.d.ts +0 -3
  246. package/dist/mcp-server-entry.js +2 -3249
  247. package/dist/mcp-server-entry.js.map +1 -1
  248. package/package.json +1 -1
@@ -0,0 +1,468 @@
1
+ /**
2
+ * Table & Column tools for Enfyra MCP Server
3
+ */
4
+ import { z } from 'zod';
5
+ import { fetchAPI } from './fetch.js';
6
+ import { fetchMetadataContext, fetchTableCatalog, fetchTableMetadata, } from './metadata-client.js';
7
+ import { jsonContent } from './response-format.js';
8
+ import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.js';
9
+ import { assertColumnContractBroadening, assertColumnNameCanBeCreated, assertIndexesDoNotReferenceUniqueFields, assertNoColumnRelationNameCollision, assertNoForbiddenRelationKeys, buildColumnDefinition, buildPrimaryColumnForDbType, fetchTableWithDetails, getId, getPatchableColumns, getSupportedColumnTypesFromMetadata, mergeConstraintGroups, normalizeColumnForTablePatch, normalizeColumnOptionsValue, normalizeColumnTypeForLiveMetadata, normalizeColumnsForLiveMetadata, normalizeConstraintGroupsValue, normalizeRelationForTablePatch, parseJsonArrayParam, patchTableAutoConfirm, pruneIndexesThatOverlapUniques, resolveRelationConstraintGroups, resolveTableIdentifierFromMetadata, sanitizeExistingRelationForTablePatch, splitRelationConstraintGroups, stripAutoManagedColumns, summarizeCreatedTableSchema, verifyColumnCascade, verifyRelationCascade, withSchemaQueue, } from './table-tool-logic.js';
10
+ export function createSchemaToolOperations(ENFYRA_API_URL, toolset) {
11
+ const apiBase = ENFYRA_API_URL.replace(/\/$/, '');
12
+ async function appendColumnToTable(args) {
13
+ assertGlobalRulesAck(args.globalRulesAckKey);
14
+ return withSchemaQueue(async () => {
15
+ const [tableData, columnMetadata] = await Promise.all([
16
+ fetchTableWithDetails(ENFYRA_API_URL, args.tableId),
17
+ fetchTableMetadata(ENFYRA_API_URL, 'enfyra_column'),
18
+ ]);
19
+ if (!tableData) {
20
+ throw new Error(`Table with ID ${args.tableId} not found.`);
21
+ }
22
+ const supportedTypes = getSupportedColumnTypesFromMetadata(columnMetadata);
23
+ const normalized = normalizeColumnTypeForLiveMetadata(args.type, supportedTypes);
24
+ assertColumnNameCanBeCreated(args.name, 'create_columns');
25
+ const existingColumns = getPatchableColumns(tableData.columns);
26
+ const beforeIds = existingColumns.map((column) => String(getId(column)));
27
+ const newCol = buildColumnDefinition({ ...args, supportedTypes });
28
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, args.tableId, { columns: [...existingColumns, newCol] });
29
+ await verifyColumnCascade(ENFYRA_API_URL, args.tableId, beforeIds, {
30
+ action: 'create',
31
+ columnName: args.name,
32
+ });
33
+ return jsonContent({
34
+ action: 'column_created',
35
+ tableId: args.tableId,
36
+ columnName: args.name,
37
+ schemaNormalization: normalized.changed ? [{ column: args.name, from: normalized.originalType, to: normalized.type }] : [],
38
+ supportedColumnTypes: supportedTypes,
39
+ result,
40
+ });
41
+ });
42
+ }
43
+ async function appendRelationToTable(args) {
44
+ assertGlobalRulesAck(args.globalRulesAckKey);
45
+ return withSchemaQueue(async () => {
46
+ assertNoForbiddenRelationKeys(args);
47
+ const { sourceTableId, targetTableId, targetTable } = args;
48
+ const relationPatch = normalizeRelationForTablePatch(args);
49
+ const { type, propertyName, inversePropertyName, mappedBy, isNullable, onDelete, description } = relationPatch;
50
+ const targetRef = targetTableId ?? targetTable;
51
+ if (targetRef === undefined || targetRef === null || targetRef === '') {
52
+ throw new Error('create_relations requires targetTableId or targetTable. Pass an existing table id, name, or alias.');
53
+ }
54
+ const catalog = await fetchTableCatalog(ENFYRA_API_URL);
55
+ const resolvedSourceTableId = resolveTableIdentifierFromMetadata(catalog, sourceTableId, 'sourceTableId');
56
+ const resolvedTargetTableId = resolveTableIdentifierFromMetadata(catalog, targetRef, 'targetTableId');
57
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, resolvedSourceTableId);
58
+ if (!tableData) {
59
+ throw new Error(`Table ${sourceTableId} not found.`);
60
+ }
61
+ const existingRelations = (tableData.relations || []).map(sanitizeExistingRelationForTablePatch);
62
+ const beforeIds = existingRelations.map((relation) => String(getId(relation))).filter((id) => id !== 'null');
63
+ const newRelation = { targetTable: resolvedTargetTableId, type, propertyName };
64
+ if (inversePropertyName !== undefined)
65
+ newRelation.inversePropertyName = inversePropertyName || null;
66
+ if (mappedBy !== undefined)
67
+ newRelation.mappedBy = mappedBy;
68
+ if (isNullable !== undefined)
69
+ newRelation.isNullable = isNullable;
70
+ if (onDelete !== undefined)
71
+ newRelation.onDelete = onDelete;
72
+ if (description !== undefined)
73
+ newRelation.description = description;
74
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, resolvedSourceTableId, { relations: [...existingRelations, newRelation] });
75
+ await verifyRelationCascade(ENFYRA_API_URL, resolvedSourceTableId, beforeIds, {
76
+ action: 'create',
77
+ propertyName,
78
+ });
79
+ return jsonContent({
80
+ action: 'relation_created',
81
+ relation: { propertyName, type, sourceTableId: resolvedSourceTableId, targetTableId: resolvedTargetTableId },
82
+ result,
83
+ });
84
+ });
85
+ }
86
+ async function removeColumnFromTable({ tableId, columnId, confirm, globalRulesAckKey }) {
87
+ return withSchemaQueue(async () => {
88
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, tableId);
89
+ if (!tableData) {
90
+ throw new Error(`Table with ID ${tableId} not found.`);
91
+ }
92
+ const existingColumns = getPatchableColumns(tableData.columns);
93
+ const beforeIds = existingColumns.map((column) => String(getId(column)));
94
+ if (!beforeIds.includes(String(columnId))) {
95
+ throw new Error(`Column ${columnId} was not found on table ${tableId}; refusing schema cascade patch.`);
96
+ }
97
+ if (!confirm) {
98
+ const target = existingColumns.find((column) => String(getId(column)) === String(columnId));
99
+ return {
100
+ content: [{ type: 'text', text: JSON.stringify({
101
+ action: 'delete_column_preview',
102
+ tableId,
103
+ columnId,
104
+ targetColumn: target,
105
+ preservedColumnIds: beforeIds.filter((id) => id !== String(columnId)),
106
+ destructive: true,
107
+ next: 'Call delete_columns again with the same one-item array and confirm=true to drop the physical column and metadata.',
108
+ }, null, 2) }],
109
+ };
110
+ }
111
+ assertGlobalRulesAck(globalRulesAckKey);
112
+ const columns = existingColumns
113
+ .filter(col => String(getId(col)) !== String(columnId));
114
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, tableId, { columns });
115
+ await verifyColumnCascade(ENFYRA_API_URL, tableId, beforeIds, {
116
+ action: 'delete',
117
+ columnId,
118
+ });
119
+ return jsonContent({
120
+ action: 'column_deleted',
121
+ tableId,
122
+ columnId,
123
+ result,
124
+ });
125
+ });
126
+ }
127
+ async function removeRelationFromTable({ tableId, relationId, confirm, globalRulesAckKey }) {
128
+ return withSchemaQueue(async () => {
129
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, tableId);
130
+ if (!tableData) {
131
+ throw new Error(`Table with ID ${tableId} not found.`);
132
+ }
133
+ const existingRelations = (tableData.relations || []).map(sanitizeExistingRelationForTablePatch);
134
+ const beforeIds = existingRelations.map((relation) => String(getId(relation))).filter((id) => id !== 'null');
135
+ if (!beforeIds.includes(String(relationId))) {
136
+ throw new Error(`Relation ${relationId} was not found on table ${tableId}; refusing schema cascade patch.`);
137
+ }
138
+ if (!confirm) {
139
+ const target = existingRelations.find((relation) => String(getId(relation)) === String(relationId));
140
+ return {
141
+ content: [{ type: 'text', text: JSON.stringify({
142
+ action: 'delete_relation_preview',
143
+ tableId,
144
+ relationId,
145
+ targetRelation: target,
146
+ preservedRelationIds: beforeIds.filter((id) => id !== String(relationId)),
147
+ destructive: true,
148
+ next: 'Call delete_relations again with the same one-item array and confirm=true to drop relation metadata and any derived FK/junction structures.',
149
+ }, null, 2) }],
150
+ };
151
+ }
152
+ assertGlobalRulesAck(globalRulesAckKey);
153
+ const relations = existingRelations
154
+ .filter(rel => String(getId(rel)) !== String(relationId));
155
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, tableId, { relations });
156
+ await verifyRelationCascade(ENFYRA_API_URL, tableId, beforeIds, {
157
+ action: 'delete',
158
+ relationId,
159
+ });
160
+ return jsonContent({
161
+ action: 'relation_deleted',
162
+ tableId,
163
+ relationId,
164
+ result,
165
+ });
166
+ });
167
+ }
168
+ const columnCreateSchema = {
169
+ tableId: z.string().describe('Table definition ID (from get_all_tables or create_tables).'),
170
+ name: z.string().describe('Column name (e.g., "title", "webhook_secret"). Lowercase with underscores. Do not create id, _id, createdAt, or updatedAt; Enfyra manages them automatically.'),
171
+ type: z.string().describe('Column type from the live enfyra_column.type enum. Common valid types are int, varchar, text, boolean, uuid, ObjectId, bigint, date, datetime, timestamp, enum, simple-json, code, array-select, richtext, and float. The tool normalizes common aliases before sending: decimal/numeric/money/number -> float when decimal is not live-supported, longtext -> text, json/jsonb/object/array -> simple-json when live-supported, string -> varchar. Prefer relations instead of *_id columns.'),
172
+ isNullable: z.boolean().optional().default(true).describe('Set to false if column cannot be null.'),
173
+ isUnique: z.boolean().optional().default(false).describe('Set to true for unique constraint.'),
174
+ isPublished: z.boolean().optional().describe('Set column visibility baseline. Use false for secrets and internal fields.'),
175
+ isUpdatable: z.boolean().optional().describe('Set false for immutable fields that cannot be updated after creation. Independent from isEncrypted.'),
176
+ isEncrypted: z.boolean().optional().describe('Set true to encrypt this column at the Enfyra database-query layer. This does not change isUpdatable. Encrypted fields cannot be filtered or sorted.'),
177
+ isPrimary: z.boolean().optional().describe('Set true only for primary key columns; normally only create_tables auto id uses this.'),
178
+ isGenerated: z.boolean().optional().describe('Set true only for generated columns such as auto id.'),
179
+ isSystem: z.boolean().optional().describe('Set true only for system-managed columns. Avoid for normal app fields.'),
180
+ defaultValue: z.string().optional().describe('Default value as JSON string or backend-supported literal.'),
181
+ description: z.string().optional().describe('Column description.'),
182
+ options: z.union([z.array(z.string()), z.string()]).optional().describe('Column options as a native array such as ["draft","published"] or a JSON string for older clients.'),
183
+ globalRulesAckKey: globalRulesAckParam(z),
184
+ };
185
+ const relationCreateSchema = {
186
+ sourceTableId: z.string().describe('Source table id, exact table name, or alias. For many-to-one, this is the table that owns the relation property.'),
187
+ targetTableId: z.string().optional().describe('Target table id, exact table name, or alias. MCP resolves names/aliases to ids before mutation. Optional when targetTable is provided.'),
188
+ targetTable: z.string().optional().describe('Alias for targetTableId when naturally using a target table name/alias such as enfyra_user. Optional when targetTableId is provided.'),
189
+ type: z.string().describe('Relation type. Use many-to-one, one-to-many, one-to-one, or many-to-many. Common aliases such as many_to_one are normalized by the tool.'),
190
+ propertyName: z.string().describe('Property name on source table (e.g., "customer", "items").'),
191
+ inversePropertyName: z.string().optional().describe('Property name on target table for bidirectional relation (e.g., "orders"). Omit unless a concrete response, UI, deep query, aggregate sort/count, or parent-to-child traversal will use the reverse field. Do not add inverses merely because a parent table exists.'),
192
+ mappedBy: z.string().optional().describe('Mapped-by property for inverse relation shapes when required by the backend. Do not use physical FK names.'),
193
+ isNullable: z.boolean().optional().default(true).describe('Whether the relation is nullable.'),
194
+ onDelete: z.enum(['CASCADE', 'SET NULL', 'RESTRICT']).optional().default('SET NULL').describe('On delete behavior.'),
195
+ description: z.string().optional().describe('Relation description.'),
196
+ fkCol: z.never().optional().describe('Forbidden. Use propertyName only; Enfyra derives FK columns.'),
197
+ fkColumn: z.never().optional().describe('Forbidden. Use propertyName only; Enfyra derives FK columns.'),
198
+ foreignKeyColumn: z.never().optional().describe('Forbidden. Use propertyName only; Enfyra derives FK columns.'),
199
+ sourceColumn: z.never().optional().describe('Forbidden. Use propertyName only; Enfyra derives FK columns.'),
200
+ targetColumn: z.never().optional().describe('Forbidden. Use propertyName only; Enfyra derives FK columns.'),
201
+ junctionSourceColumn: z.never().optional().describe('Forbidden. Use relation property names only; Enfyra derives junction columns.'),
202
+ junctionTargetColumn: z.never().optional().describe('Forbidden. Use relation property names only; Enfyra derives junction columns.'),
203
+ globalRulesAckKey: globalRulesAckParam(z),
204
+ };
205
+ const columnDeleteSchema = {
206
+ tableId: z.string().describe('Table definition ID.'),
207
+ columnId: z.string().describe('Column definition ID to delete.'),
208
+ confirm: z.boolean().optional().default(false).describe('Required true to apply the destructive delete. Omit/false returns a preview only.'),
209
+ globalRulesAckKey: globalRulesAckParam(z).optional().describe('Required when confirm=true. Use globalRulesAckKey from get_enfyra_required_knowledge.'),
210
+ };
211
+ const relationDeleteSchema = {
212
+ tableId: z.string().describe('Table definition ID (source table of the relation).'),
213
+ relationId: z.string().describe('Relation definition ID to delete.'),
214
+ confirm: z.boolean().optional().default(false).describe('Required true to apply the destructive delete. Omit/false returns a preview only.'),
215
+ globalRulesAckKey: globalRulesAckParam(z).optional().describe('Required when confirm=true. Use globalRulesAckKey from get_enfyra_required_knowledge.'),
216
+ };
217
+ function arrayValue(name, value) {
218
+ if (value === undefined || value === null || value === '')
219
+ return [];
220
+ return Array.isArray(value) ? value : parseJsonArrayParam(name, value);
221
+ }
222
+ async function createOneTable(args) {
223
+ const userColumns = arrayValue('columns', args.columns);
224
+ const [metadataContext, columnMetadata] = await Promise.all([
225
+ fetchMetadataContext(ENFYRA_API_URL),
226
+ fetchTableMetadata(ENFYRA_API_URL, 'enfyra_column'),
227
+ ]);
228
+ const supportedTypes = getSupportedColumnTypesFromMetadata(columnMetadata);
229
+ const idColumn = buildPrimaryColumnForDbType(metadataContext.dbType);
230
+ const { columns: userColumnsWithoutAuto, skippedAutoColumns } = stripAutoManagedColumns(userColumns);
231
+ const { columns: normalizedUserColumns, normalizations } = normalizeColumnsForLiveMetadata(userColumnsWithoutAuto, supportedTypes);
232
+ const schemaNormalizations = [
233
+ ...(args._requestedTableName ? [{ field: 'name', from: args._requestedTableName, to: args.name, reason: 'Enfyra table names are lowercase.' }] : []),
234
+ ...normalizations,
235
+ ];
236
+ const deferredRelations = arrayValue('relations', args.relations).map(normalizeRelationForTablePatch);
237
+ const relationNames = new Set(deferredRelations.map((relation) => relation.propertyName).filter(Boolean));
238
+ assertNoColumnRelationNameCollision(normalizedUserColumns.map((column) => String(column.name || '')).filter(Boolean), deferredRelations.map((relation) => String(relation.propertyName || '')).filter(Boolean), `create_tables item "${args.name}"`);
239
+ const indexes = normalizeConstraintGroupsValue('indexes', args.indexes ?? []);
240
+ const uniques = normalizeConstraintGroupsValue('uniques', args.uniques ?? []);
241
+ assertIndexesDoNotReferenceUniqueFields(indexes, uniques);
242
+ const splitIndexes = splitRelationConstraintGroups(indexes, relationNames);
243
+ const splitUniques = splitRelationConstraintGroups(uniques, relationNames);
244
+ const body = { name: args.name, description: args.description, columns: [idColumn, ...normalizedUserColumns], relations: [] };
245
+ if (args.isSingleRecord !== undefined)
246
+ body.isSingleRecord = args.isSingleRecord;
247
+ if (args.indexes !== undefined)
248
+ body.indexes = splitIndexes.immediate;
249
+ if (args.uniques !== undefined)
250
+ body.uniques = splitUniques.immediate;
251
+ const result = await fetchAPI(ENFYRA_API_URL, '/enfyra_table', {
252
+ method: 'POST',
253
+ body: JSON.stringify(body),
254
+ });
255
+ const createdTable = Array.isArray(result?.data) ? result.data[0] : result;
256
+ const createdTableId = createdTable?.id ?? createdTable?._id;
257
+ const liveMetadataAfterCreate = await fetchAPI(ENFYRA_API_URL, `/metadata/${encodeURIComponent(args.name)}`)
258
+ .catch((error) => ({ error: error?.message || String(error) }));
259
+ const liveTableAfterCreate = liveMetadataAfterCreate?.error
260
+ ? null
261
+ : liveMetadataAfterCreate?.data?.table || liveMetadataAfterCreate?.data || liveMetadataAfterCreate?.table || liveMetadataAfterCreate;
262
+ const liveSchema = summarizeCreatedTableSchema(liveTableAfterCreate, args.name);
263
+ const routePath = `/${args.name}`;
264
+ return {
265
+ action: 'table_created',
266
+ table: { id: createdTableId, name: args.name, routePath },
267
+ summary: {
268
+ columnCount: normalizedUserColumns.length + 1,
269
+ createdColumnCount: normalizedUserColumns.length,
270
+ deferredRelationCount: deferredRelations.length,
271
+ indexGroupCount: indexes.length,
272
+ uniqueGroupCount: uniques.length,
273
+ deferredConstraintCount: splitIndexes.deferred.length + splitUniques.deferred.length,
274
+ },
275
+ schemaNormalization: schemaNormalizations,
276
+ skippedAutoColumns,
277
+ schema: {
278
+ intended: {
279
+ tableName: args.name,
280
+ primaryKey: idColumn.name,
281
+ fields: [idColumn.name, ...normalizedUserColumns.map((column) => column.name), ...deferredRelations.map((relation) => relation.propertyName)].filter(Boolean).sort(),
282
+ columns: [idColumn.name, ...normalizedUserColumns.map((column) => column.name)].filter(Boolean),
283
+ relations: deferredRelations.map((relation) => relation.propertyName).filter(Boolean),
284
+ },
285
+ live: liveSchema,
286
+ liveMetadataAvailable: Boolean(liveSchema),
287
+ liveMetadataError: liveMetadataAfterCreate?.error || undefined,
288
+ },
289
+ supportedColumnTypes: supportedTypes,
290
+ rest: {
291
+ base: apiBase,
292
+ routePath,
293
+ operations: ['GET /<table>', 'POST /<table>', 'PATCH /<table>/:id', 'DELETE /<table>/:id'],
294
+ noGetById: true,
295
+ },
296
+ deferredRelations,
297
+ deferredConstraints: {
298
+ indexes: splitIndexes.deferred,
299
+ uniques: splitUniques.deferred,
300
+ },
301
+ result,
302
+ };
303
+ }
304
+ async function applyDeferredConstraints(tableId, deferredConstraints) {
305
+ const deferredIndexes = deferredConstraints?.indexes || [];
306
+ const deferredUniques = deferredConstraints?.uniques || [];
307
+ if (deferredIndexes.length === 0 && deferredUniques.length === 0)
308
+ return null;
309
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, tableId);
310
+ const mappedIndexes = resolveRelationConstraintGroups(tableData, deferredIndexes, 'indexes');
311
+ const mappedUniques = resolveRelationConstraintGroups(tableData, deferredUniques, 'uniques');
312
+ const existingIndexes = normalizeConstraintGroupsValue('indexes', tableData.indexes || []);
313
+ const existingUniques = normalizeConstraintGroupsValue('uniques', tableData.uniques || []);
314
+ const uniques = mergeConstraintGroups(existingUniques, mappedUniques);
315
+ const prunedExistingIndexes = pruneIndexesThatOverlapUniques(existingIndexes, uniques);
316
+ const indexes = mergeConstraintGroups(prunedExistingIndexes.indexes, mappedIndexes);
317
+ assertIndexesDoNotReferenceUniqueFields(indexes, uniques);
318
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, tableId, { indexes, uniques });
319
+ return {
320
+ action: 'deferred_constraints_applied',
321
+ tableId,
322
+ tableName: tableData.name,
323
+ requested: {
324
+ indexes: deferredIndexes,
325
+ uniques: deferredUniques,
326
+ },
327
+ applied: {
328
+ indexes: mappedIndexes,
329
+ uniques: mappedUniques,
330
+ },
331
+ prunedExistingIndexes: prunedExistingIndexes.removed,
332
+ result,
333
+ };
334
+ }
335
+ async function updateOneTable(args) {
336
+ const body = {};
337
+ let schemaConstraintNormalization;
338
+ if (args.name !== undefined)
339
+ body.name = args.name;
340
+ if (args.alias !== undefined)
341
+ body.alias = args.alias;
342
+ if (args.description !== undefined)
343
+ body.description = args.description;
344
+ if (args.isSingleRecord !== undefined)
345
+ body.isSingleRecord = args.isSingleRecord;
346
+ if (args.graphqlEnabled !== undefined)
347
+ body.graphqlEnabled = args.graphqlEnabled;
348
+ if (args.indexes !== undefined)
349
+ body.indexes = normalizeConstraintGroupsValue('indexes', args.indexes);
350
+ if (args.uniques !== undefined)
351
+ body.uniques = normalizeConstraintGroupsValue('uniques', args.uniques);
352
+ if (args.indexes !== undefined || args.uniques !== undefined) {
353
+ let indexes = body.indexes;
354
+ let uniques = body.uniques;
355
+ if (indexes === undefined || uniques === undefined) {
356
+ const existing = await fetchTableWithDetails(ENFYRA_API_URL, args.tableId);
357
+ if (indexes === undefined)
358
+ indexes = normalizeConstraintGroupsValue('indexes', existing.indexes);
359
+ if (uniques === undefined)
360
+ uniques = normalizeConstraintGroupsValue('uniques', existing.uniques);
361
+ }
362
+ if (args.uniques !== undefined && args.indexes === undefined) {
363
+ const prunedExistingIndexes = pruneIndexesThatOverlapUniques(indexes ?? [], uniques ?? []);
364
+ indexes = prunedExistingIndexes.indexes;
365
+ body.indexes = indexes;
366
+ schemaConstraintNormalization = {
367
+ prunedExistingIndexes: prunedExistingIndexes.removed,
368
+ reason: 'Unique constraints already provide indexed lookups; MCP removed existing non-unique indexes that used fields now covered by uniques.',
369
+ };
370
+ }
371
+ assertIndexesDoNotReferenceUniqueFields(indexes ?? [], uniques ?? []);
372
+ }
373
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, args.tableId, body);
374
+ return {
375
+ action: 'table_updated',
376
+ tableId: args.tableId,
377
+ schemaConstraintNormalization,
378
+ result,
379
+ };
380
+ }
381
+ async function deleteOneTable({ tableId, tableName, confirm }) {
382
+ const resolvedTableId = tableId ?? resolveTableIdentifierFromMetadata(await fetchTableCatalog(ENFYRA_API_URL), tableName, 'delete_tables item tableName');
383
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, resolvedTableId);
384
+ if (!confirm) {
385
+ return {
386
+ action: 'delete_table_preview',
387
+ tableId: resolvedTableId,
388
+ tableName: tableData.name,
389
+ columnCount: (tableData.columns || []).length,
390
+ relationCount: (tableData.relations || []).length,
391
+ destructive: true,
392
+ };
393
+ }
394
+ const result = await fetchAPI(ENFYRA_API_URL, `/enfyra_table/${resolvedTableId}`, {
395
+ method: 'DELETE',
396
+ });
397
+ return {
398
+ action: 'table_deleted',
399
+ tableId: resolvedTableId,
400
+ tableName: tableData.name,
401
+ result,
402
+ };
403
+ }
404
+ async function updateOneColumn({ tableId, columnId, name, type, isNullable, isPublished, isUpdatable, defaultValue, description, options, allowContractBroadening }) {
405
+ const tableData = await fetchTableWithDetails(ENFYRA_API_URL, tableId);
406
+ if (!tableData) {
407
+ throw new Error(`Table with ID ${tableId} not found.`);
408
+ }
409
+ const existingColumns = getPatchableColumns(tableData.columns);
410
+ const beforeIds = existingColumns.map((column) => String(getId(column)));
411
+ if (!beforeIds.includes(String(columnId))) {
412
+ throw new Error(`Column ${columnId} was not found on table ${tableId}; refusing schema cascade patch.`);
413
+ }
414
+ const existingColumn = existingColumns.find((column) => String(getId(column)) === String(columnId));
415
+ const contractBroadening = assertColumnContractBroadening(existingColumn || {}, {
416
+ isPublished,
417
+ isUpdatable,
418
+ allowContractBroadening,
419
+ }, toolset);
420
+ const columns = existingColumns.map(col => {
421
+ const rest = normalizeColumnForTablePatch(col);
422
+ if (String(getId(col)) === String(columnId)) {
423
+ if (name !== undefined)
424
+ rest.name = name;
425
+ if (type !== undefined)
426
+ rest.type = type;
427
+ if (isNullable !== undefined)
428
+ rest.isNullable = isNullable;
429
+ if (isPublished !== undefined)
430
+ rest.isPublished = isPublished;
431
+ if (isUpdatable !== undefined)
432
+ rest.isUpdatable = isUpdatable;
433
+ if (defaultValue !== undefined)
434
+ rest.defaultValue = defaultValue;
435
+ if (description !== undefined)
436
+ rest.description = description;
437
+ if (options !== undefined)
438
+ rest.options = normalizeColumnOptionsValue(options);
439
+ }
440
+ return rest;
441
+ });
442
+ const result = await patchTableAutoConfirm(ENFYRA_API_URL, tableId, { columns });
443
+ await verifyColumnCascade(ENFYRA_API_URL, tableId, beforeIds, {
444
+ action: 'update',
445
+ columnId,
446
+ });
447
+ return {
448
+ action: 'column_updated',
449
+ tableId,
450
+ columnId,
451
+ contractBroadening,
452
+ result,
453
+ };
454
+ }
455
+ return {
456
+ appendColumnToTable,
457
+ appendRelationToTable,
458
+ applyDeferredConstraints,
459
+ arrayValue,
460
+ createOneTable,
461
+ deleteOneTable,
462
+ removeColumnFromTable,
463
+ removeRelationFromTable,
464
+ updateOneColumn,
465
+ updateOneTable,
466
+ };
467
+ }
468
+ //# sourceMappingURL=schema-tool-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-tool-operations.js","sourceRoot":"","sources":["../../src/lib/schema-tool-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export type AnyRecord = Record<string, any>;
2
+ export type ConstraintGroup = string[];
3
+ export type ColumnPatch = AnyRecord & {
4
+ id?: unknown;
5
+ _id?: unknown;
6
+ name?: string;
7
+ type?: string;
8
+ isNullable?: boolean;
9
+ isPrimary?: boolean;
10
+ isGenerated?: boolean;
11
+ isSystem?: boolean;
12
+ isPublished?: boolean;
13
+ isUpdatable?: boolean;
14
+ isEncrypted?: boolean;
15
+ isUnique?: boolean;
16
+ defaultValue?: unknown;
17
+ description?: string;
18
+ options?: unknown;
19
+ };
20
+ export type RelationPatch = AnyRecord & {
21
+ id?: unknown;
22
+ _id?: unknown;
23
+ targetTable?: unknown;
24
+ type?: string;
25
+ propertyName?: string;
26
+ inversePropertyName?: string | null;
27
+ mappedBy?: unknown;
28
+ isNullable?: boolean;
29
+ onDelete?: string;
30
+ description?: string;
31
+ };
32
+ export type CascadeVerifyOptions = {
33
+ action: 'create' | 'update' | 'delete';
34
+ columnId?: unknown;
35
+ columnName?: string;
36
+ relationId?: unknown;
37
+ propertyName?: string;
38
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema-tool-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-tool-types.js","sourceRoot":"","sources":["../../src/lib/schema-tool-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { AnyRecord, CascadeVerifyOptions, ColumnPatch } from './schema-mutation-coordinator.js';
2
+ export declare function metadataColumnNames(metadata: AnyRecord, tableName: string): any;
3
+ export declare function metadataColumnOptions(metadata: AnyRecord, tableName: string, columnName: string): string[];
4
+ export declare function summarizeCreatedTableSchema(table: AnyRecord | null, fallbackName: string): {
5
+ tableName: any;
6
+ primaryKey: any;
7
+ fields: any[];
8
+ columns: any;
9
+ relations: any;
10
+ };
11
+ export declare function getPatchableColumns(columns?: AnyRecord[]): ColumnPatch[];
12
+ export declare function verifyColumnCascade(ENFYRA_API_URL: any, tableId: any, beforeIds: any, { action, columnId, columnName, }: CascadeVerifyOptions): Promise<ColumnPatch[]>;
13
+ export declare function verifyRelationCascade(ENFYRA_API_URL: any, tableId: any, beforeIds: any, { action, relationId, propertyName, }: CascadeVerifyOptions): Promise<any>;
14
+ export declare function buildColumnDefinition({ name, type, supportedTypes, isNullable, isUnique, isPublished, isUpdatable, isEncrypted, isPrimary, isGenerated, isSystem, defaultValue, description, options, }: AnyRecord): ColumnPatch;