@enfyra/mcp-server 0.1.31 → 0.1.32
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/README.md +4 -3
- package/dist/lib/mcp-instructions.d.ts +5 -1
- package/dist/lib/mcp-instructions.js +11 -9
- package/dist/lib/mcp-instructions.js.map +1 -1
- package/dist/lib/platform-operation-tools.js +141 -3
- package/dist/lib/platform-operation-tools.js.map +1 -1
- package/dist/lib/required-knowledge.js +4 -4
- package/dist/lib/required-knowledge.js.map +1 -1
- package/dist/lib/runtime-zone-tools.d.ts +44 -0
- package/dist/lib/runtime-zone-tools.js +196 -0
- package/dist/lib/runtime-zone-tools.js.map +1 -1
- package/dist/lib/table-tools.d.ts +1 -0
- package/dist/lib/table-tools.js +48 -6
- package/dist/lib/table-tools.js.map +1 -1
- package/dist/lib/tool-routing.d.ts +1 -1
- package/dist/lib/tool-routing.js +42 -28
- package/dist/lib/tool-routing.js.map +1 -1
- package/dist/lib/toolset-filter.d.ts +9 -0
- package/dist/lib/toolset-filter.js +126 -0
- package/dist/lib/toolset-filter.js.map +1 -0
- package/dist/mcp-server-entry.js +48 -15
- package/dist/mcp-server-entry.js.map +1 -1
- package/package.json +1 -1
|
@@ -136,6 +136,50 @@ export declare function searchRuntimeZone(apiUrl: string, input: any): Promise<{
|
|
|
136
136
|
};
|
|
137
137
|
guidance: string[];
|
|
138
138
|
}>;
|
|
139
|
+
export declare function searchAdminExtensions(apiUrl: string, input: any): Promise<any>;
|
|
140
|
+
export declare function debugFieldExposure(apiUrl: string, input: any): Promise<{
|
|
141
|
+
action: string;
|
|
142
|
+
tableName: string;
|
|
143
|
+
fieldPath: string;
|
|
144
|
+
resolved: {
|
|
145
|
+
ok: boolean;
|
|
146
|
+
reason: string;
|
|
147
|
+
steps: any[];
|
|
148
|
+
targetTable: RuntimeRecord;
|
|
149
|
+
targetField: any;
|
|
150
|
+
} | {
|
|
151
|
+
ok: boolean;
|
|
152
|
+
reason: any;
|
|
153
|
+
steps: any[];
|
|
154
|
+
targetTable: RuntimeRecord;
|
|
155
|
+
targetField: any;
|
|
156
|
+
};
|
|
157
|
+
metadataFinding: {
|
|
158
|
+
targetTable: any;
|
|
159
|
+
fieldKind: any;
|
|
160
|
+
fieldName: any;
|
|
161
|
+
isPublished: any;
|
|
162
|
+
isEncrypted: any;
|
|
163
|
+
error?: undefined;
|
|
164
|
+
} | {
|
|
165
|
+
error: any;
|
|
166
|
+
targetTable?: undefined;
|
|
167
|
+
fieldKind?: undefined;
|
|
168
|
+
fieldName?: undefined;
|
|
169
|
+
isPublished?: undefined;
|
|
170
|
+
isEncrypted?: undefined;
|
|
171
|
+
};
|
|
172
|
+
reproRequest: {
|
|
173
|
+
tool: string;
|
|
174
|
+
input: {
|
|
175
|
+
method: string;
|
|
176
|
+
path: string;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
repro: any;
|
|
180
|
+
verdict: string;
|
|
181
|
+
nextSteps: string[];
|
|
182
|
+
}>;
|
|
139
183
|
export declare function inspectRuntimeZoneLocation(apiUrl: string, input: any): Promise<{
|
|
140
184
|
zone: "admin_ui";
|
|
141
185
|
zoneDescription: string;
|
|
@@ -102,6 +102,70 @@ function flattenValue(value) {
|
|
|
102
102
|
function filterQuery(filter) {
|
|
103
103
|
return encodeURIComponent(JSON.stringify(filter));
|
|
104
104
|
}
|
|
105
|
+
function asArray(value) {
|
|
106
|
+
return Array.isArray(value) ? value : [];
|
|
107
|
+
}
|
|
108
|
+
function metadataTables(metadata) {
|
|
109
|
+
return Array.isArray(metadata?.data)
|
|
110
|
+
? metadata.data
|
|
111
|
+
: Array.isArray(metadata)
|
|
112
|
+
? metadata
|
|
113
|
+
: Object.values(metadata?.data ?? metadata ?? {});
|
|
114
|
+
}
|
|
115
|
+
function tableByName(tables, tableName) {
|
|
116
|
+
return tables.find((table) => table?.name === tableName) ?? null;
|
|
117
|
+
}
|
|
118
|
+
function relatedTableName(relation) {
|
|
119
|
+
return relation?.targetTable?.name
|
|
120
|
+
?? relation?.targetTable
|
|
121
|
+
?? relation?.relatedTable?.name
|
|
122
|
+
?? relation?.relatedTable
|
|
123
|
+
?? relation?.table?.name
|
|
124
|
+
?? relation?.table
|
|
125
|
+
?? null;
|
|
126
|
+
}
|
|
127
|
+
function resolveFieldExposurePath(tables, rootTableName, fieldPath) {
|
|
128
|
+
const segments = String(fieldPath || '').split('.').map((item) => item.trim()).filter(Boolean);
|
|
129
|
+
const steps = [];
|
|
130
|
+
let current = tableByName(tables, rootTableName);
|
|
131
|
+
if (!current) {
|
|
132
|
+
return { ok: false, reason: `Root table not found: ${rootTableName}`, steps, targetTable: null, targetField: null };
|
|
133
|
+
}
|
|
134
|
+
if (!segments.length) {
|
|
135
|
+
return { ok: false, reason: 'fieldPath is empty.', steps, targetTable: current, targetField: null };
|
|
136
|
+
}
|
|
137
|
+
for (let index = 0; index < segments.length - 1; index += 1) {
|
|
138
|
+
const propertyName = segments[index];
|
|
139
|
+
const relation = asArray(current?.relations).find((item) => item?.propertyName === propertyName);
|
|
140
|
+
if (!relation) {
|
|
141
|
+
return { ok: false, reason: `Relation "${propertyName}" was not found on ${current.name}.`, steps, targetTable: current, targetField: null };
|
|
142
|
+
}
|
|
143
|
+
const nextTableName = relatedTableName(relation);
|
|
144
|
+
steps.push({ type: 'relation', propertyName, fromTable: current.name, targetTable: nextTableName });
|
|
145
|
+
current = nextTableName ? tableByName(tables, String(nextTableName)) : null;
|
|
146
|
+
if (!current) {
|
|
147
|
+
return { ok: false, reason: `Target table for relation "${propertyName}" could not be resolved.`, steps, targetTable: null, targetField: null };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const fieldName = segments[segments.length - 1];
|
|
151
|
+
const column = asArray(current?.columns).find((item) => item?.name === fieldName);
|
|
152
|
+
if (column) {
|
|
153
|
+
return { ok: true, reason: null, steps, targetTable: current, targetField: { kind: 'column', ...column } };
|
|
154
|
+
}
|
|
155
|
+
const relation = asArray(current?.relations).find((item) => item?.propertyName === fieldName);
|
|
156
|
+
if (relation) {
|
|
157
|
+
return { ok: true, reason: null, steps, targetTable: current, targetField: { kind: 'relation', ...relation } };
|
|
158
|
+
}
|
|
159
|
+
return { ok: false, reason: `Field "${fieldName}" was not found on ${current.name}.`, steps, targetTable: current, targetField: null };
|
|
160
|
+
}
|
|
161
|
+
function compactRows(value) {
|
|
162
|
+
const rows = Array.isArray(value?.data) ? value.data : Array.isArray(value) ? value : [];
|
|
163
|
+
return {
|
|
164
|
+
rowCount: rows.length,
|
|
165
|
+
firstRowKeys: rows[0] && typeof rows[0] === 'object' ? Object.keys(rows[0]).slice(0, 12) : [],
|
|
166
|
+
responseShape: value && typeof value === 'object' ? Object.keys(value).slice(0, 12) : [],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
105
169
|
function sourceMatches(source, query, snippetChars) {
|
|
106
170
|
const normalizedQuery = normalizeText(query);
|
|
107
171
|
if (!source || !normalizedQuery)
|
|
@@ -328,6 +392,110 @@ export async function searchRuntimeZone(apiUrl, input) {
|
|
|
328
392
|
],
|
|
329
393
|
};
|
|
330
394
|
}
|
|
395
|
+
export async function searchAdminExtensions(apiUrl, input) {
|
|
396
|
+
const mode = input.mode ?? 'search';
|
|
397
|
+
const result = await searchRuntimeZone(apiUrl, {
|
|
398
|
+
...input,
|
|
399
|
+
mode,
|
|
400
|
+
zone: 'admin_ui',
|
|
401
|
+
extensionType: input.type ?? input.extensionType,
|
|
402
|
+
});
|
|
403
|
+
const results = Array.isArray(result?.results)
|
|
404
|
+
? result.results.map((item) => ({
|
|
405
|
+
...item,
|
|
406
|
+
nextInspect: item?.nextInspect?.input
|
|
407
|
+
? {
|
|
408
|
+
tool: 'search_admin_extensions',
|
|
409
|
+
input: {
|
|
410
|
+
...item.nextInspect.input,
|
|
411
|
+
zone: undefined,
|
|
412
|
+
type: item.nextInspect.input.extensionType,
|
|
413
|
+
extensionType: undefined,
|
|
414
|
+
},
|
|
415
|
+
}
|
|
416
|
+
: item?.nextInspect,
|
|
417
|
+
}))
|
|
418
|
+
: result?.results;
|
|
419
|
+
return {
|
|
420
|
+
...result,
|
|
421
|
+
results,
|
|
422
|
+
action: mode === 'inspect' ? 'admin_extension_inspected' : 'admin_extensions_searched',
|
|
423
|
+
guidance: mode === 'inspect'
|
|
424
|
+
? [
|
|
425
|
+
'For focused existing-code edits, prefer patch_extension_code with the inspected id/name.',
|
|
426
|
+
'For page/menu wiring, use extension_workflow or ensure_*_extension.',
|
|
427
|
+
'Use <UButton> and other auto-injected components directly in templates; do not use resolveComponent for them.',
|
|
428
|
+
]
|
|
429
|
+
: [
|
|
430
|
+
'Inspect one candidate before editing.',
|
|
431
|
+
'If the target is an existing page/widget/global extension, use patch_extension_code for a focused edit.',
|
|
432
|
+
'Do not fetch destination business lists solely to draw menu/account-panel chips; use notification signals and fetch on click.',
|
|
433
|
+
],
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
export async function debugFieldExposure(apiUrl, input) {
|
|
437
|
+
const tableName = String(input.tableName ?? '').trim();
|
|
438
|
+
const fieldPath = String(input.fieldPath ?? '').trim();
|
|
439
|
+
if (!tableName)
|
|
440
|
+
throw new Error('tableName is required.');
|
|
441
|
+
if (!fieldPath)
|
|
442
|
+
throw new Error('fieldPath is required, for example "owner.secret_token" or "api_key".');
|
|
443
|
+
const metadata = await fetchAPI(apiUrl, '/metadata');
|
|
444
|
+
const tables = metadataTables(metadata);
|
|
445
|
+
const resolved = resolveFieldExposurePath(tables, tableName, fieldPath);
|
|
446
|
+
const targetField = resolved.targetField;
|
|
447
|
+
const isPublished = targetField?.isPublished;
|
|
448
|
+
const routePath = String(input.routePath ?? `/${tableName}`).trim();
|
|
449
|
+
const fields = input.fields ? String(input.fields) : fieldPath;
|
|
450
|
+
const params = new URLSearchParams();
|
|
451
|
+
params.set('fields', fields);
|
|
452
|
+
params.set('limit', String(Math.min(Math.max(Number(input.limit ?? 1), 1), 10)));
|
|
453
|
+
if (input.deep)
|
|
454
|
+
params.set('deep', JSON.stringify(input.deep));
|
|
455
|
+
if (input.filter)
|
|
456
|
+
params.set('filter', JSON.stringify(input.filter));
|
|
457
|
+
const reproPath = `${routePath}?${params.toString()}`;
|
|
458
|
+
let repro = null;
|
|
459
|
+
if (input.runRepro) {
|
|
460
|
+
try {
|
|
461
|
+
repro = { ok: true, summary: compactRows(await fetchAPI(apiUrl, reproPath)) };
|
|
462
|
+
}
|
|
463
|
+
catch (error) {
|
|
464
|
+
repro = { ok: false, error: error?.message || String(error) };
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
const unpublishedLeak = resolved.ok && isPublished === false;
|
|
468
|
+
return {
|
|
469
|
+
action: 'field_exposure_debugged',
|
|
470
|
+
tableName,
|
|
471
|
+
fieldPath,
|
|
472
|
+
resolved,
|
|
473
|
+
metadataFinding: resolved.ok
|
|
474
|
+
? {
|
|
475
|
+
targetTable: resolved.targetTable?.name ?? null,
|
|
476
|
+
fieldKind: targetField?.kind ?? null,
|
|
477
|
+
fieldName: targetField?.name ?? targetField?.propertyName ?? null,
|
|
478
|
+
isPublished,
|
|
479
|
+
isEncrypted: targetField?.isEncrypted ?? null,
|
|
480
|
+
}
|
|
481
|
+
: { error: resolved.reason },
|
|
482
|
+
reproRequest: { tool: 'test_rest_endpoint', input: { method: 'GET', path: reproPath } },
|
|
483
|
+
repro,
|
|
484
|
+
verdict: unpublishedLeak
|
|
485
|
+
? 'If the repro returns this unpublished field through REST fields/deep, this is an Enfyra core field-exposure bug. Do not hide it with frontend code, route-local hooks, or field permissions.'
|
|
486
|
+
: 'No unpublished target field was resolved from metadata. Inspect the table/relation path before treating this as a core exposure bug.',
|
|
487
|
+
nextSteps: unpublishedLeak
|
|
488
|
+
? [
|
|
489
|
+
'Run the returned test_rest_endpoint repro if runRepro was false.',
|
|
490
|
+
'If the response includes the unpublished field, report tableName, fieldPath, reproRequest.path, metadataFinding, and response shape to Enfyra core/support.',
|
|
491
|
+
'Do not add route-local pre-hooks or frontend hiding as the real fix for a published-field contract breach.',
|
|
492
|
+
]
|
|
493
|
+
: [
|
|
494
|
+
'Use inspect_table on the root and related tables to verify the path.',
|
|
495
|
+
'If the field is published, use field permissions/guards only for business access rules, not core isPublished enforcement.',
|
|
496
|
+
],
|
|
497
|
+
};
|
|
498
|
+
}
|
|
331
499
|
export async function inspectRuntimeZoneLocation(apiUrl, input) {
|
|
332
500
|
const zone = input.zone;
|
|
333
501
|
if (!RUNTIME_ZONES.includes(zone))
|
|
@@ -389,6 +557,34 @@ export async function inspectRuntimeZoneLocation(apiUrl, input) {
|
|
|
389
557
|
};
|
|
390
558
|
}
|
|
391
559
|
export function registerRuntimeZoneTools(server, ENFYRA_API_URL) {
|
|
560
|
+
server.tool('search_admin_extensions', [
|
|
561
|
+
'Focused admin UI locator for menu/page/widget/global extensions, account panel rows, notification chips, labels, buttons, tabs, and visible blocks.',
|
|
562
|
+
'This is a weak-agent friendly alias for search_runtime_zone(zone=admin_ui): search first, then inspect one candidate before patching.',
|
|
563
|
+
].join(' '), {
|
|
564
|
+
mode: z.enum(['search', 'inspect']).optional().default('search').describe('search returns ranked admin UI matches. inspect opens one result using id/name/path/query.'),
|
|
565
|
+
query: z.string().optional().describe('Visible text, button label, menu label, component name, class, icon, source term, or UX phrase.'),
|
|
566
|
+
path: z.string().optional().describe('Menu/page path such as /cloud/hosts when known.'),
|
|
567
|
+
id: z.union([z.string(), z.number()]).optional().describe('Extension id for mode=inspect; use nextInspect.input from search results.'),
|
|
568
|
+
name: z.string().optional().describe('Extension name for mode=inspect.'),
|
|
569
|
+
type: z.enum(['page', 'widget', 'global']).optional().describe('Narrows extension type.'),
|
|
570
|
+
includeDisabled: z.boolean().optional().default(true),
|
|
571
|
+
maxResults: z.number().int().min(1).max(25).optional().default(8),
|
|
572
|
+
snippetChars: z.number().int().min(120).max(600).optional().default(180),
|
|
573
|
+
includeSourceArtifact: z.boolean().optional().default(false),
|
|
574
|
+
}, async (input) => jsonContent(await searchAdminExtensions(ENFYRA_API_URL, input)));
|
|
575
|
+
server.tool('debug_field_exposure', [
|
|
576
|
+
'Diagnose whether a REST fields/deep projection exposes an isPublished=false field.',
|
|
577
|
+
'Use this for suspected secret/private field leaks. It builds a minimal repro and tells the agent when this is a core bug rather than a hook/frontend fix.',
|
|
578
|
+
].join(' '), {
|
|
579
|
+
tableName: z.string().describe('Root route-backed table name used by the REST request.'),
|
|
580
|
+
fieldPath: z.string().describe('Field path to test, for example "secret_token", "owner.api_key", or "children.owner.email". Relation segments must be propertyName values.'),
|
|
581
|
+
routePath: z.string().optional().describe('REST route path. Defaults to /<tableName>.'),
|
|
582
|
+
fields: z.string().optional().describe('Exact fields query to use. Defaults to fieldPath.'),
|
|
583
|
+
deep: z.record(z.any()).optional().describe('Optional deep object for the repro request.'),
|
|
584
|
+
filter: z.record(z.any()).optional().describe('Optional bounded filter for the repro request.'),
|
|
585
|
+
limit: z.number().int().min(1).max(10).optional().default(1),
|
|
586
|
+
runRepro: z.boolean().optional().default(false).describe('When true, run the GET repro and return only compact response shape.'),
|
|
587
|
+
}, async (input) => jsonContent(await debugFieldExposure(ENFYRA_API_URL, input)));
|
|
392
588
|
server.tool('search_runtime_zone', [
|
|
393
589
|
'Single zone-scoped search/inspect tool for DB-backed Enfyra runtime artifacts.',
|
|
394
590
|
'Use this before editing anything that lives in the database rather than repo files.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-zone-tools.js","sourceRoot":"","sources":["../../src/lib/runtime-zone-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-zone-tools.js","sourceRoot":"","sources":["../../src/lib/runtime-zone-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ export declare function resolveTableIdentifierFromMetadata(metadata: any, tableR
|
|
|
41
41
|
export declare function fetchTableWithDetails(ENFYRA_API_URL: any, tableId: any): Promise<any>;
|
|
42
42
|
export declare function assertIndexesDoNotReferenceUniqueFields(indexes: ConstraintGroup[], uniques: ConstraintGroup[]): void;
|
|
43
43
|
export declare function normalizeRelationForTablePatch(relation: AnyRecord): RelationPatch;
|
|
44
|
+
export declare function normalizeRelationType(type: unknown): string;
|
|
44
45
|
export declare function sanitizeExistingRelationForTablePatch(relation: AnyRecord): RelationPatch;
|
|
45
46
|
export declare function resolveRelationTargetsFromMetadata(metadata: any, relations: RelationPatch[]): (RelationPatch | {
|
|
46
47
|
targetTable: any;
|
package/dist/lib/table-tools.js
CHANGED
|
@@ -44,6 +44,21 @@ const FALLBACK_COLUMN_TYPES = [
|
|
|
44
44
|
'richtext',
|
|
45
45
|
'float',
|
|
46
46
|
];
|
|
47
|
+
const RELATION_TYPE_ALIASES = {
|
|
48
|
+
many_to_one: 'many-to-one',
|
|
49
|
+
manyToOne: 'many-to-one',
|
|
50
|
+
manytoone: 'many-to-one',
|
|
51
|
+
one_to_many: 'one-to-many',
|
|
52
|
+
oneToMany: 'one-to-many',
|
|
53
|
+
onetomany: 'one-to-many',
|
|
54
|
+
one_to_one: 'one-to-one',
|
|
55
|
+
oneToOne: 'one-to-one',
|
|
56
|
+
onetoone: 'one-to-one',
|
|
57
|
+
many_to_many: 'many-to-many',
|
|
58
|
+
manyToMany: 'many-to-many',
|
|
59
|
+
manytomany: 'many-to-many',
|
|
60
|
+
};
|
|
61
|
+
const VALID_RELATION_TYPES = new Set(['many-to-one', 'one-to-many', 'one-to-one', 'many-to-many']);
|
|
47
62
|
const AUTO_MANAGED_COLUMN_NAMES = new Set(['id', '_id', 'createdAt', 'updatedAt']);
|
|
48
63
|
const COLUMN_TYPE_ALIAS_HINTS = [
|
|
49
64
|
'Use varchar for short strings; text or richtext for long prose.',
|
|
@@ -290,6 +305,12 @@ export function normalizeRelationForTablePatch(relation) {
|
|
|
290
305
|
}
|
|
291
306
|
const { sourceTable, targetTable, targetTableId, mappedBy, fkCol, fkColumn, foreignKeyColumn, sourceColumn, targetColumn, junctionSourceColumn, junctionTargetColumn, ...rest } = relation;
|
|
292
307
|
const normalized = { ...rest };
|
|
308
|
+
if (rest.type !== undefined) {
|
|
309
|
+
normalized.type = normalizeRelationType(rest.type);
|
|
310
|
+
}
|
|
311
|
+
if (normalized.type === 'one-to-many' && mappedBy !== undefined && mappedBy !== null && mappedBy !== '') {
|
|
312
|
+
delete normalized.inversePropertyName;
|
|
313
|
+
}
|
|
293
314
|
const resolvedTargetTable = targetTableId ??
|
|
294
315
|
(targetTable && typeof targetTable === 'object'
|
|
295
316
|
? targetTable.id ?? targetTable._id ?? targetTable
|
|
@@ -304,6 +325,14 @@ export function normalizeRelationForTablePatch(relation) {
|
|
|
304
325
|
}
|
|
305
326
|
return normalized;
|
|
306
327
|
}
|
|
328
|
+
export function normalizeRelationType(type) {
|
|
329
|
+
const raw = String(type ?? '').trim();
|
|
330
|
+
const normalized = RELATION_TYPE_ALIASES[raw] ?? raw;
|
|
331
|
+
if (!VALID_RELATION_TYPES.has(normalized)) {
|
|
332
|
+
throw new Error(`Invalid relation type "${raw || '<missing>'}". Use one of 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.`);
|
|
333
|
+
}
|
|
334
|
+
return normalized;
|
|
335
|
+
}
|
|
307
336
|
function assertNoForbiddenRelationKeys(args) {
|
|
308
337
|
for (const key of FORBIDDEN_RELATION_KEYS) {
|
|
309
338
|
if (Object.prototype.hasOwnProperty.call(args, key)) {
|
|
@@ -554,7 +583,9 @@ export function registerTableTools(server, ENFYRA_API_URL) {
|
|
|
554
583
|
assertGlobalRulesAck(args.globalRulesAckKey);
|
|
555
584
|
return withSchemaQueue(async () => {
|
|
556
585
|
assertNoForbiddenRelationKeys(args);
|
|
557
|
-
const { sourceTableId, targetTableId, targetTable
|
|
586
|
+
const { sourceTableId, targetTableId, targetTable } = args;
|
|
587
|
+
const relationPatch = normalizeRelationForTablePatch(args);
|
|
588
|
+
const { type, propertyName, inversePropertyName, mappedBy, isNullable, onDelete, description } = relationPatch;
|
|
558
589
|
const targetRef = targetTableId ?? targetTable;
|
|
559
590
|
if (targetRef === undefined || targetRef === null || targetRef === '') {
|
|
560
591
|
throw new Error('create_relations requires targetTableId or targetTable. Pass an existing table id, name, or alias.');
|
|
@@ -694,7 +725,7 @@ export function registerTableTools(server, ENFYRA_API_URL) {
|
|
|
694
725
|
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.'),
|
|
695
726
|
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.'),
|
|
696
727
|
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.'),
|
|
697
|
-
type: z.
|
|
728
|
+
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.'),
|
|
698
729
|
propertyName: z.string().describe('Property name on source table (e.g., "customer", "items").'),
|
|
699
730
|
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.'),
|
|
700
731
|
mappedBy: z.string().optional().describe('Mapped-by property for inverse relation shapes when required by the backend. Do not use physical FK names.'),
|
|
@@ -937,14 +968,17 @@ export function registerTableTools(server, ENFYRA_API_URL) {
|
|
|
937
968
|
};
|
|
938
969
|
}
|
|
939
970
|
// ─── READ ───
|
|
940
|
-
server.tool('get_all_tables', 'List table definitions from metadata.
|
|
941
|
-
limit: z.number().int().positive().optional().describe('Maximum tables returned after search. Required unless all=true.'),
|
|
971
|
+
server.tool('get_all_tables', 'List table definitions from metadata. Complete lists must pass either limit or all=true. If search is provided without limit, the tool returns a bounded lookup window of 10 matches.', {
|
|
972
|
+
limit: z.number().int().positive().optional().describe('Maximum tables returned after search. Required unless all=true or search is provided.'),
|
|
942
973
|
all: z.boolean().optional().describe('Return all matched tables. Use this when a complete table list is required.'),
|
|
943
974
|
search: z.string().optional().describe('Optional table name, alias, or description substring filter.'),
|
|
944
975
|
}, async ({ limit, all, search }) => {
|
|
945
|
-
if (!all && limit === undefined) {
|
|
976
|
+
if (!all && limit === undefined && !search?.trim()) {
|
|
946
977
|
throw new Error('get_all_tables requires either limit or all=true. Do not invent arbitrary limits for complete table lists; use all=true.');
|
|
947
978
|
}
|
|
979
|
+
if (all && limit !== undefined) {
|
|
980
|
+
throw new Error('get_all_tables accepts either all=true or limit, not both.');
|
|
981
|
+
}
|
|
948
982
|
const metadata = await fetchAPI(ENFYRA_API_URL, '/metadata');
|
|
949
983
|
const needle = search?.trim().toLowerCase();
|
|
950
984
|
const tables = normalizeTablesFromMetadata(metadata)
|
|
@@ -964,13 +998,16 @@ export function registerTableTools(server, ENFYRA_API_URL) {
|
|
|
964
998
|
return [table.name, table.alias, table.description]
|
|
965
999
|
.some((value) => String(value || '').toLowerCase().includes(needle));
|
|
966
1000
|
});
|
|
967
|
-
const
|
|
1001
|
+
const effectiveLimit = all ? tables.length : (limit ?? 10);
|
|
1002
|
+
const returnedTables = all ? tables : tables.slice(0, effectiveLimit);
|
|
968
1003
|
return jsonContent({
|
|
969
1004
|
action: 'get_all_tables',
|
|
970
1005
|
totalTableCount: normalizeTablesFromMetadata(metadata).length,
|
|
971
1006
|
matchedTableCount: tables.length,
|
|
972
1007
|
returnedTableCount: returnedTables.length,
|
|
973
1008
|
all: Boolean(all),
|
|
1009
|
+
implicitSearchLimit: Boolean(!all && limit === undefined && search?.trim()),
|
|
1010
|
+
hardCap: all ? null : effectiveLimit,
|
|
974
1011
|
search: search || null,
|
|
975
1012
|
tables: returnedTables,
|
|
976
1013
|
detailHint: 'Use inspect_table with a table id/name for columns, relations, indexes, routes, permissions, and GraphQL state.',
|
|
@@ -1101,6 +1138,11 @@ export function registerTableTools(server, ENFYRA_API_URL) {
|
|
|
1101
1138
|
}
|
|
1102
1139
|
}
|
|
1103
1140
|
const createdRelations = [];
|
|
1141
|
+
deferredRelations.sort((left, right) => {
|
|
1142
|
+
const leftPriority = normalizeRelationType(left.type) === 'one-to-many' ? 1 : 0;
|
|
1143
|
+
const rightPriority = normalizeRelationType(right.type) === 'one-to-many' ? 1 : 0;
|
|
1144
|
+
return leftPriority - rightPriority;
|
|
1145
|
+
});
|
|
1104
1146
|
for (const relation of deferredRelations) {
|
|
1105
1147
|
const relationResult = await appendRelationToTable({
|
|
1106
1148
|
sourceTableId: relation.sourceTableId,
|