@enfyra/mcp-server 0.1.19 → 0.1.20
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/dist/lib/mcp-examples.js +156 -259
- package/dist/lib/mcp-examples.js.map +1 -1
- package/dist/lib/mcp-instructions.js +4 -4
- package/dist/lib/mcp-instructions.js.map +1 -1
- package/dist/lib/mutation-guards.js +3 -3
- package/dist/lib/mutation-guards.js.map +1 -1
- package/dist/lib/required-knowledge.js +5 -4
- package/dist/lib/required-knowledge.js.map +1 -1
- package/dist/lib/table-tools.js +379 -287
- package/dist/lib/table-tools.js.map +1 -1
- package/dist/lib/tool-routing.js +18 -18
- package/dist/lib/tool-routing.js.map +1 -1
- package/dist/mcp-server-entry.js +146 -76
- package/dist/mcp-server-entry.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/mcp-examples.js
CHANGED
|
@@ -483,15 +483,18 @@ const googleCallbackUrl = apiBase + "/auth/google/callback"
|
|
|
483
483
|
// https://demo.enfyra.io/api/auth/google/callback
|
|
484
484
|
|
|
485
485
|
// 4. After the user provides Google client id/secret, save Enfyra config:
|
|
486
|
-
|
|
486
|
+
create_records({
|
|
487
487
|
tableName: "enfyra_oauth_config",
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
488
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
489
|
+
records: JSON.stringify([
|
|
490
|
+
{
|
|
491
|
+
provider: "google",
|
|
492
|
+
clientId: "<google-client-id>",
|
|
493
|
+
clientSecret: "<google-client-secret>",
|
|
494
|
+
redirectUri: googleCallbackUrl,
|
|
495
|
+
isEnabled: true
|
|
496
|
+
}
|
|
497
|
+
])
|
|
495
498
|
})`,
|
|
496
499
|
notes: [
|
|
497
500
|
'Ask for the app/admin URL such as https://demo.enfyra.io; derive the API base by appending /api.',
|
|
@@ -524,15 +527,20 @@ window.location.href = oauthUrl.toString()`,
|
|
|
524
527
|
})
|
|
525
528
|
|
|
526
529
|
// If a row exists, update it instead of creating a duplicate.
|
|
527
|
-
|
|
530
|
+
update_records({
|
|
528
531
|
tableName: "enfyra_oauth_config",
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
532
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
533
|
+
items: JSON.stringify([
|
|
534
|
+
{
|
|
535
|
+
id: "<existing-config-id>",
|
|
536
|
+
data: {
|
|
537
|
+
clientId: "<google-client-id>",
|
|
538
|
+
clientSecret: "<google-client-secret>",
|
|
539
|
+
redirectUri: "https://demo.enfyra.io/api/auth/google/callback",
|
|
540
|
+
isEnabled: true
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
])
|
|
536
544
|
})`,
|
|
537
545
|
notes: [
|
|
538
546
|
'Inspect first so setup is idempotent.',
|
|
@@ -547,261 +555,142 @@ update_record({
|
|
|
547
555
|
useWhen: 'Use when creating or changing persisted data models.',
|
|
548
556
|
examples: [
|
|
549
557
|
{
|
|
550
|
-
name: '
|
|
551
|
-
code: `//
|
|
552
|
-
//
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
{ propertyName: "record", type: "many-to-one", targetTable: "app_primary_record", isNullable: false, onDelete: "CASCADE" },
|
|
594
|
-
{ propertyName: "actor", type: "many-to-one", targetTable: "enfyra_user", isNullable: false, onDelete: "CASCADE" }
|
|
595
|
-
]),
|
|
596
|
-
uniques: JSON.stringify([["record", "actor"]]),
|
|
597
|
-
indexes: JSON.stringify([
|
|
598
|
-
["status", "createdAt"]
|
|
558
|
+
name: 'Bulk schema creation with one-item-or-many arrays',
|
|
559
|
+
code: `// 0. First call get_schema_design_context and get_enfyra_required_knowledge.
|
|
560
|
+
// 1. create_tables is always array-shaped. One table = one item.
|
|
561
|
+
create_tables({
|
|
562
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
563
|
+
items: JSON.stringify([
|
|
564
|
+
{
|
|
565
|
+
name: "app_lookup",
|
|
566
|
+
columns: [
|
|
567
|
+
{ name: "name", type: "varchar", isNullable: false },
|
|
568
|
+
{ name: "slug", type: "varchar", isNullable: false },
|
|
569
|
+
{ name: "description", type: "text", isNullable: true }
|
|
570
|
+
],
|
|
571
|
+
uniques: [["slug"]]
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
name: "app_primary_record",
|
|
575
|
+
columns: [
|
|
576
|
+
{ name: "title", type: "varchar", isNullable: false },
|
|
577
|
+
{ name: "summary", type: "text", isNullable: true },
|
|
578
|
+
{ name: "amount", type: "float", isNullable: false, defaultValue: "0" },
|
|
579
|
+
{ name: "status", type: "varchar", isNullable: false, defaultValue: "draft" },
|
|
580
|
+
{ name: "metadata", type: "simple-json", isNullable: true }
|
|
581
|
+
],
|
|
582
|
+
relations: [
|
|
583
|
+
{ propertyName: "lookup", type: "many-to-one", targetTable: "app_lookup", isNullable: true, onDelete: "SET NULL" },
|
|
584
|
+
{ propertyName: "owner", type: "many-to-one", targetTable: "enfyra_user", isNullable: false, onDelete: "CASCADE" }
|
|
585
|
+
],
|
|
586
|
+
indexes: [["status", "createdAt"], ["lookup", "status"]]
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
name: "app_participation",
|
|
590
|
+
columns: [
|
|
591
|
+
{ name: "status", type: "varchar", isNullable: false, defaultValue: "active" },
|
|
592
|
+
{ name: "score", type: "float", isNullable: false, defaultValue: "0" }
|
|
593
|
+
],
|
|
594
|
+
relations: [
|
|
595
|
+
{ propertyName: "record", type: "many-to-one", targetTable: "app_primary_record", isNullable: false, onDelete: "CASCADE" },
|
|
596
|
+
{ propertyName: "actor", type: "many-to-one", targetTable: "enfyra_user", isNullable: false, onDelete: "CASCADE" }
|
|
597
|
+
],
|
|
598
|
+
uniques: [["record", "actor"]],
|
|
599
|
+
indexes: [["status", "createdAt"]]
|
|
600
|
+
}
|
|
599
601
|
])
|
|
600
602
|
})
|
|
601
603
|
|
|
602
|
-
//
|
|
603
|
-
|
|
604
|
+
// 2. create_records is also array-shaped. One row = one item.
|
|
605
|
+
create_records({
|
|
604
606
|
tableName: "app_primary_record",
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
'This is a modeling pattern, not a domain template. Rename app_lookup/app_primary_record/app_participation and relation names to the current domain vocabulary.',
|
|
615
|
-
'Map lookup to categories/tags/plans/status groups, primary_record to the main business entity, owner/actor to enfyra_user, and participation to joins/state/progress/membership when the domain needs it.',
|
|
616
|
-
'Use live column types from enfyra_column.type. Prefer float for decimal-like money/ratings unless live metadata explicitly supports decimal; prefer text/richtext for long prose; prefer simple-json for structured snapshots only when listed by metadata.',
|
|
617
|
-
'Do not create lookupId, owner_id, actorId, or recordIds scalar fields for normalized relationships. Use relations and later write relation propertyName values such as lookup, owner, record, and actor.',
|
|
618
|
-
'A unique pair such as record+actor already creates the indexed unique lookup; keep those fields out of indexes and index only other hot filters such as status+createdAt.',
|
|
619
|
-
'If a reverse collection is needed later, add inversePropertyName only for a real parent detail/deep/count/sort use case.',
|
|
620
|
-
],
|
|
621
|
-
},
|
|
622
|
-
{
|
|
623
|
-
name: 'Create a chat conversation table',
|
|
624
|
-
code: `create_table({
|
|
625
|
-
name: "chat_conversation",
|
|
626
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
627
|
-
columns: JSON.stringify([
|
|
628
|
-
{ name: "kind", type: "varchar", isNullable: false, defaultValue: "dm" },
|
|
629
|
-
{ name: "title", type: "varchar", isNullable: true },
|
|
630
|
-
{ name: "description", type: "text", isNullable: true }
|
|
607
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
608
|
+
records: JSON.stringify([
|
|
609
|
+
{
|
|
610
|
+
title: "<display title>",
|
|
611
|
+
amount: 29.99,
|
|
612
|
+
status: "active",
|
|
613
|
+
lookup: "<app_lookup_id>",
|
|
614
|
+
owner: "<enfyra_user_id>"
|
|
615
|
+
}
|
|
631
616
|
])
|
|
632
617
|
})`,
|
|
633
618
|
notes: [
|
|
634
|
-
'
|
|
635
|
-
'
|
|
636
|
-
'
|
|
637
|
-
'Do not create
|
|
619
|
+
'All mutation tools are plural envelopes. Pass one item in the array for a single mutation.',
|
|
620
|
+
'create_tables creates tables/columns first, then creates requested relations after all batch tables exist, so target table ordering is handled by the tool.',
|
|
621
|
+
'Use live column types from get_schema_design_context. Prefer float for decimal-like money/ratings unless live metadata explicitly supports decimal.',
|
|
622
|
+
'Do not create lookupId, owner_id, actorId, or recordIds scalar fields for normalized relationships. Use relations and write relation propertyName values.',
|
|
623
|
+
'A unique pair such as record+actor already creates the indexed unique lookup; keep those fields out of indexes.',
|
|
638
624
|
],
|
|
639
625
|
},
|
|
640
626
|
{
|
|
641
|
-
name: '
|
|
642
|
-
code: `
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
columns: JSON.stringify([
|
|
646
|
-
{ name: "text", type: "text", isNullable: false },
|
|
647
|
-
{ name: "persistStatus", type: "varchar", defaultValue: "persisted" }
|
|
648
|
-
]),
|
|
649
|
-
relations: JSON.stringify([
|
|
627
|
+
name: 'Bulk add columns and relations after initial schema',
|
|
628
|
+
code: `create_columns({
|
|
629
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
630
|
+
items: JSON.stringify([
|
|
650
631
|
{
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
isNullable:
|
|
655
|
-
|
|
632
|
+
tableId: "<enfyra_user_table_id>",
|
|
633
|
+
name: "emailVerifiedAt",
|
|
634
|
+
type: "datetime",
|
|
635
|
+
isNullable: true,
|
|
636
|
+
isPublished: true
|
|
656
637
|
},
|
|
657
638
|
{
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
639
|
+
tableId: "<integration_secret_table_id>",
|
|
640
|
+
name: "value",
|
|
641
|
+
type: "text",
|
|
661
642
|
isNullable: false,
|
|
662
|
-
|
|
643
|
+
isPublished: false,
|
|
644
|
+
isEncrypted: true
|
|
663
645
|
}
|
|
664
|
-
]),
|
|
665
|
-
indexes: JSON.stringify([
|
|
666
|
-
["conversation", "createdAt"]
|
|
667
646
|
])
|
|
668
|
-
})
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
code: `create_relation({
|
|
682
|
-
sourceTableId: "chat_message",
|
|
683
|
-
targetTableId: "chat_conversation",
|
|
684
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
685
|
-
propertyName: "conversation",
|
|
686
|
-
inversePropertyName: "messages",
|
|
687
|
-
type: "many-to-one",
|
|
688
|
-
isNullable: false,
|
|
689
|
-
onDelete: "CASCADE"
|
|
690
|
-
})`,
|
|
691
|
-
notes: [
|
|
692
|
-
'Use inversePropertyName only when the parent table will actually expose, deep-load, count, or sort by that child collection.',
|
|
693
|
-
'For example, conversation.messages is justified if a conversation detail response loads the latest message page with deep.messages limit/sort, or if a list sorts by _max(messages.createdAt).',
|
|
694
|
-
'Translate this to the current domain by asking whether the parent screen needs a child collection or aggregate; if not, keep the relation one-directional.',
|
|
695
|
-
'If the app only filters chat_message by conversation.id, omit inversePropertyName and keep the schema one-directional.',
|
|
696
|
-
'Before creating an inverse, inspect existing relations and state why the reverse traversal is needed.',
|
|
697
|
-
],
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
name: 'Add chat_conversation.lastMessage after chat_message exists',
|
|
701
|
-
code: `create_relation({
|
|
702
|
-
sourceTableId: "chat_conversation",
|
|
703
|
-
targetTableId: "chat_message",
|
|
704
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
705
|
-
propertyName: "lastMessage",
|
|
706
|
-
type: "many-to-one",
|
|
707
|
-
isNullable: true,
|
|
708
|
-
onDelete: "SET NULL"
|
|
709
|
-
})`,
|
|
710
|
-
notes: [
|
|
711
|
-
'Use create_relation to add a relation after both tables exist; update_table does not modify columns or relations.',
|
|
712
|
-
'Use relation fields such as lastMessage.id,lastMessage.text,lastMessage.createdAt when loading conversation lists.',
|
|
713
|
-
'When deleting the current last message, a post-hook should set lastMessage to the newest remaining message or null.',
|
|
714
|
-
],
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
name: 'Unread/read table with unique and indexes',
|
|
718
|
-
code: `create_table({
|
|
719
|
-
name: "chat_message_read",
|
|
720
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
721
|
-
columns: JSON.stringify([
|
|
722
|
-
{ name: "isRead", type: "boolean", defaultValue: false },
|
|
723
|
-
{ name: "readAt", type: "datetime", isNullable: true }
|
|
724
|
-
]),
|
|
725
|
-
relations: JSON.stringify([
|
|
726
|
-
{ propertyName: "message", type: "many-to-one", targetTable: { id: "<chat_message_id>" }, onDelete: "CASCADE" },
|
|
727
|
-
{ propertyName: "conversation", type: "many-to-one", targetTable: { id: "<chat_conversation_id>" }, onDelete: "CASCADE" },
|
|
728
|
-
{ propertyName: "member", type: "many-to-one", targetTable: { id: "<enfyra_user_id>" }, onDelete: "CASCADE" }
|
|
729
|
-
]),
|
|
730
|
-
uniques: JSON.stringify([["message", "member"]]),
|
|
731
|
-
indexes: JSON.stringify([
|
|
732
|
-
["conversation", "isRead"]
|
|
647
|
+
})
|
|
648
|
+
|
|
649
|
+
create_relations({
|
|
650
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
651
|
+
items: JSON.stringify([
|
|
652
|
+
{
|
|
653
|
+
sourceTableId: "chat_conversation",
|
|
654
|
+
targetTableId: "chat_message",
|
|
655
|
+
propertyName: "lastMessage",
|
|
656
|
+
type: "many-to-one",
|
|
657
|
+
isNullable: true,
|
|
658
|
+
onDelete: "SET NULL"
|
|
659
|
+
}
|
|
733
660
|
])
|
|
734
661
|
})`,
|
|
735
662
|
notes: [
|
|
736
|
-
'
|
|
737
|
-
'
|
|
738
|
-
'
|
|
739
|
-
'
|
|
663
|
+
'create_columns/create_relations run items sequentially through the schema queue.',
|
|
664
|
+
'Use relation property names only. Never provide fkCol, sourceColumn, targetColumn, or junction column names.',
|
|
665
|
+
'Use inversePropertyName only when a concrete parent detail/deep/count/sort use case needs the reverse traversal.',
|
|
666
|
+
'Use isEncrypted=true for encryption at rest. Add isUpdatable=false separately only when the field should be immutable.',
|
|
740
667
|
],
|
|
741
668
|
},
|
|
742
669
|
{
|
|
743
|
-
name: '
|
|
744
|
-
code: `
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
isPublished: true,
|
|
751
|
-
description: "When the user's email address was verified."
|
|
670
|
+
name: 'Bulk update and destructive preview',
|
|
671
|
+
code: `update_tables({
|
|
672
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
673
|
+
items: JSON.stringify([
|
|
674
|
+
{ tableId: "<table_id>", graphqlEnabled: true },
|
|
675
|
+
{ tableId: "<settings_table_id>", isSingleRecord: true }
|
|
676
|
+
])
|
|
752
677
|
})
|
|
753
678
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
758
|
-
type: "varchar",
|
|
759
|
-
isNullable: false,
|
|
760
|
-
defaultValue: "pending",
|
|
761
|
-
isPublished: true,
|
|
762
|
-
description: "Email verification state controlled by server hooks."
|
|
679
|
+
// Destructive tools preview first.
|
|
680
|
+
delete_columns({
|
|
681
|
+
items: JSON.stringify([{ tableId: "<table_id>", columnId: "<column_id>" }])
|
|
763
682
|
})
|
|
764
683
|
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
isNullable: false,
|
|
771
|
-
isPublished: false,
|
|
772
|
-
isEncrypted: true,
|
|
773
|
-
description: "Encrypted secret value."
|
|
774
|
-
})`,
|
|
775
|
-
notes: [
|
|
776
|
-
'Run schema-changing calls sequentially. Do not parallelize create_column calls.',
|
|
777
|
-
'create_column fetches enfyra_table and patches only real persisted columns with id/_id; generated metadata projections such as createdAt, updatedAt, or relation FK display fields are skipped.',
|
|
778
|
-
'Use isEncrypted=true for encryption at rest. Add isUpdatable=false separately only when the field should be immutable.',
|
|
779
|
-
'Use hooks or field permissions to prevent clients from updating server-owned fields.',
|
|
780
|
-
],
|
|
781
|
-
},
|
|
782
|
-
{
|
|
783
|
-
name: 'Patch table schema from metadata only',
|
|
784
|
-
code: `// Safe schema patch process used by create_column/update_column/delete_column:
|
|
785
|
-
// 1. Read GET /metadata and find the target table.
|
|
786
|
-
// 2. Keep only persisted column rows with id/_id.
|
|
787
|
-
// 3. Add, change, or remove the intended column.
|
|
788
|
-
// 4. PATCH /enfyra_table/:id with the full preserved columns array.
|
|
789
|
-
// 5. If the backend returns requiredConfirmHash, resend with ?schemaConfirmHash=<hash>.
|
|
790
|
-
// 6. Re-read metadata and verify unrelated column ids still exist.
|
|
791
|
-
|
|
792
|
-
create_column({
|
|
793
|
-
tableId: "<table_id>",
|
|
794
|
-
name: "api_secret",
|
|
795
|
-
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
796
|
-
type: "text",
|
|
797
|
-
isPublished: false,
|
|
798
|
-
isEncrypted: true
|
|
684
|
+
// Apply only after explicit user approval.
|
|
685
|
+
delete_columns({
|
|
686
|
+
globalRulesAckKey: "<globalRulesAckKey>",
|
|
687
|
+
confirm: true,
|
|
688
|
+
items: JSON.stringify([{ tableId: "<table_id>", columnId: "<column_id>" }])
|
|
799
689
|
})`,
|
|
800
690
|
notes: [
|
|
801
|
-
'
|
|
802
|
-
'
|
|
803
|
-
'
|
|
804
|
-
'Run schema-changing calls sequentially; migration locks are backend-owned.',
|
|
691
|
+
'update_tables/update_columns/update_records reject ambiguous duplicate ids where applicable and run sequentially.',
|
|
692
|
+
'delete_tables/delete_columns/delete_relations/delete_records return previews unless confirm=true.',
|
|
693
|
+
'Schema tools serialize internally; do not parallelize schema mutation tool calls.',
|
|
805
694
|
],
|
|
806
695
|
},
|
|
807
696
|
],
|
|
@@ -991,13 +880,17 @@ query_table({
|
|
|
991
880
|
GET /enfyra/integrations?filter={"api_token":{"_eq":"plaintext-token"}}
|
|
992
881
|
|
|
993
882
|
// Good: store a separate non-secret lookup hash if lookup is needed.
|
|
994
|
-
|
|
995
|
-
tableId: "<integrations_table_id>",
|
|
996
|
-
name: "api_token_lookup_sha256",
|
|
883
|
+
create_columns({
|
|
997
884
|
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
885
|
+
items: JSON.stringify([
|
|
886
|
+
{
|
|
887
|
+
tableId: "<integrations_table_id>",
|
|
888
|
+
name: "api_token_lookup_sha256",
|
|
889
|
+
type: "varchar",
|
|
890
|
+
isNullable: false,
|
|
891
|
+
isPublished: false
|
|
892
|
+
}
|
|
893
|
+
])
|
|
1001
894
|
})
|
|
1002
895
|
|
|
1003
896
|
// In the create/update handler or pre-hook, hash plaintext before it is encrypted.
|
|
@@ -1091,17 +984,21 @@ const scope = {
|
|
|
1091
984
|
},
|
|
1092
985
|
{
|
|
1093
986
|
name: 'Encrypted field table definition',
|
|
1094
|
-
code: `
|
|
1095
|
-
name: "integrations",
|
|
987
|
+
code: `create_tables({
|
|
1096
988
|
globalRulesAckKey: "<globalRulesAckKey from get_enfyra_required_knowledge>",
|
|
1097
|
-
|
|
1098
|
-
{ name: "name", type: "varchar", isNullable: false },
|
|
989
|
+
items: JSON.stringify([
|
|
1099
990
|
{
|
|
1100
|
-
name: "
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
991
|
+
name: "integrations",
|
|
992
|
+
columns: [
|
|
993
|
+
{ name: "name", type: "varchar", isNullable: false },
|
|
994
|
+
{
|
|
995
|
+
name: "api_token",
|
|
996
|
+
type: "varchar",
|
|
997
|
+
isNullable: false,
|
|
998
|
+
isPublished: false,
|
|
999
|
+
isEncrypted: true
|
|
1000
|
+
}
|
|
1001
|
+
]
|
|
1105
1002
|
}
|
|
1106
1003
|
])
|
|
1107
1004
|
})`,
|
|
@@ -1659,7 +1556,7 @@ ensure_page_extension({
|
|
|
1659
1556
|
'Use enfyra_menu.label, not title.',
|
|
1660
1557
|
'Sensitive admin menus should include a permission condition at creation time.',
|
|
1661
1558
|
'For page extensions, create the menu first with ensure_menu and pass its id to ensure_page_extension.',
|
|
1662
|
-
'When editing an existing extension by id or name, use update_extension_code so local guards plus /enfyra_extension/preview and the save happen in one atomic call. Do not spend a second LLM step on validate_extension_code followed by
|
|
1559
|
+
'When editing an existing extension by id or name, use update_extension_code so local guards plus /enfyra_extension/preview and the save happen in one atomic call. Do not spend a second LLM step on validate_extension_code followed by update_records unless the user requested validation-only output.',
|
|
1663
1560
|
'Call get_extension_theme_contract before writing or reviewing page/widget/global extension UI; that tool is the authority for theme, color, layout, modal, drawer, and shell registry details.',
|
|
1664
1561
|
'Call get_enfyra_required_knowledge before saving extension code, pass globalRulesAckKey as globalRulesAckKey, and pass extensionAckKey as extensionKnowledgeAckKey.',
|
|
1665
1562
|
'Page extensions must register the app-shell PageHeader with usePageHeaderRegistry instead of rendering a custom top header.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-examples.js","sourceRoot":"","sources":["../../src/lib/mcp-examples.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-examples.js","sourceRoot":"","sources":["../../src/lib/mcp-examples.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,17 +40,17 @@ export function buildMcpServerInstructions(apiBaseUrl) {
|
|
|
40
40
|
'- Tool JSON responses use `responseFormat: "json+columnar-v1"`. If rows are columnar, read values by matching `columns[index]` to `rows[n][index]`; do not guess row keys.',
|
|
41
41
|
'- `query_table`, `get_all_routes`, and `get_all_tables` require explicit intent: pass `limit` for bounded reads or `all: true` for a complete list. Do not invent arbitrary limits such as 30 or 50.',
|
|
42
42
|
'- Read tools are minimal by default. Pass explicit `fields`; use metadata inspection before guessing field/relation names. Field exclusion mode exists: `fields=-compiledCode`, and `fields=id,-compiledCode` still means all readable fields except `compiledCode`.',
|
|
43
|
-
'- Mutations return ids/status by default. Re-read with
|
|
44
|
-
'-
|
|
43
|
+
'- Mutations return ids/status by default. Re-read with explicit `fields` only when saved shape matters.',
|
|
44
|
+
'- Mutation tools are plural-only. Use one-item arrays for single writes; tools preflight arrays and run sequentially.',
|
|
45
45
|
'- Dynamic repository reads use `filter`, not `where`: `@REPOS.table.find({ filter: {...} })`, `@REPOS.secure.table.find({ filter: {...} })`, `#table.find({ filter: {...} })`, and `exists(filter)`.',
|
|
46
46
|
'- Dynamic repositories have two trust paths. Use secure `@REPOS.main` or `@REPOS.secure.<table>` for user-facing data. `@REPOS.<table>` is trusted/internal and can see hidden fields; never return raw trusted rows to users.',
|
|
47
47
|
'- Secure repository choice is not a substitute for authorization. Handlers and hooks still need route access, owner/tenant filters, and explicit checks before returning or mutating records.',
|
|
48
48
|
'- Filters, sort helpers, counts, and aggregates over unpublished fields/private relations are sensitive data surfaces; do not expose them in user-facing endpoints.',
|
|
49
49
|
'- Use `enfyra_user` as the user table. Model record links as real relations using relation `propertyName` values, not physical FK fields like `userId`, `conversationId`, `senderId`, or `memberId` in generated DB code.',
|
|
50
|
-
'- Before schema/app generation, call `get_schema_design_context`;
|
|
50
|
+
'- Before schema/app generation, call `get_schema_design_context`; use live types and plural schema tools, not SQL guesses.',
|
|
51
51
|
'- Relation design must stay minimal. Create the owning relation needed for writes/filters first; add `inversePropertyName` only when a concrete response, UI, deep query, aggregate sort/count, or parent-to-child traversal will use that reverse field. For schema work, explicitly review existing relations and mention which inverses are intentionally present or intentionally omitted.',
|
|
52
52
|
'- Do not call internal/no-route system tables such as `enfyra_column` or `enfyra_session` through generic CRUD. Use table/column/relation tools and route-backed tables discovered from metadata.',
|
|
53
|
-
'- Custom API paths use `api_endpoint_workflow` when a handler is needed and the model should follow returned nextSteps. Use lower-level `create_route` without `mainTableId` only when intentionally creating a route shell; `
|
|
53
|
+
'- Custom API paths use `api_endpoint_workflow` when a handler is needed and the model should follow returned nextSteps. Use lower-level `create_route` without `mainTableId` only when intentionally creating a route shell; `create_tables` is only for new persisted data.',
|
|
54
54
|
'- For canonical table reads and RLS, preserve client-controlled query shape: do not override `@QUERY.fields`, `@QUERY.deep`, `@QUERY.sort`, `@QUERY.limit`, `@QUERY.page`, `@QUERY.meta`, `@QUERY.aggregate`, or `debugMode`. Merge only security filters into `@QUERY.filter`.',
|
|
55
55
|
'- If a REST read returns a column or relation marked `isPublished=false`, including through dotted relation fields such as `fields=owner.secret` or equivalent `deep` projections, treat it as an Enfyra core support issue. Confirm the minimal repro with `test_rest_endpoint`, tell the user to send a Cloud/support ticket with the table, field path, and response shape, and do not present route-local pre-hooks or frontend hiding as the real fix.',
|
|
56
56
|
'- Script source is `sourceCode`; `compiledCode` is generated and may differ textually because macros expand. Do not warn about source/compiled mismatch unless validation or runtime behavior proves the compiled artifact is stale.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-instructions.js","sourceRoot":"","sources":["../../src/lib/mcp-instructions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,UAAU;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO;QACL,cAAc,EAAE,GAAG,IAAI,UAAU;QACjC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAU;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE1E,OAAO;QACL,eAAe;QACf,EAAE;QACF,gCAAgC,IAAI,KAAK;QACzC,wBAAwB,cAAc,YAAY,gBAAgB,KAAK;QACvE,EAAE;QACF,eAAe;QACf,6JAA6J;QAC7J,kQAAkQ;QAClQ,2SAA2S;QAC3S,oMAAoM;QACpM,iRAAiR;QACjR,2MAA2M;QAC3M,8HAA8H;QAC9H,+QAA+Q;QAC/Q,4SAA4S;QAC5S,iLAAiL;QACjL,gVAAgV;QAChV,oKAAoK;QACpK,+LAA+L;QAC/L,wJAAwJ;QACxJ,EAAE;QACF,oBAAoB;QACpB,4KAA4K;QAC5K,sMAAsM;QACtM,sQAAsQ;QACtQ,
|
|
1
|
+
{"version":3,"file":"mcp-instructions.js","sourceRoot":"","sources":["../../src/lib/mcp-instructions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,UAAU;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO;QACL,cAAc,EAAE,GAAG,IAAI,UAAU;QACjC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAU;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE1E,OAAO;QACL,eAAe;QACf,EAAE;QACF,gCAAgC,IAAI,KAAK;QACzC,wBAAwB,cAAc,YAAY,gBAAgB,KAAK;QACvE,EAAE;QACF,eAAe;QACf,6JAA6J;QAC7J,kQAAkQ;QAClQ,2SAA2S;QAC3S,oMAAoM;QACpM,iRAAiR;QACjR,2MAA2M;QAC3M,8HAA8H;QAC9H,+QAA+Q;QAC/Q,4SAA4S;QAC5S,iLAAiL;QACjL,gVAAgV;QAChV,oKAAoK;QACpK,+LAA+L;QAC/L,wJAAwJ;QACxJ,EAAE;QACF,oBAAoB;QACpB,4KAA4K;QAC5K,sMAAsM;QACtM,sQAAsQ;QACtQ,yGAAyG;QACzG,uHAAuH;QACvH,sMAAsM;QACtM,gOAAgO;QAChO,+LAA+L;QAC/L,qKAAqK;QACrK,2NAA2N;QAC3N,4HAA4H;QAC5H,gYAAgY;QAChY,mMAAmM;QACnM,8QAA8Q;QAC9Q,iRAAiR;QACjR,6bAA6b;QAC7b,sOAAsO;QACtO,kIAAkI;QAClI,4GAA4G;QAC5G,oPAAoP;QACpP,6RAA6R;QAC7R,yKAAyK;QACzK,yMAAyM;QACzM,EAAE;QACF,6BAA6B;QAC7B,4NAA4N;QAC5N,uMAAuM;QACvM,sMAAsM;QACtM,EAAE;QACF,4BAA4B;QAC5B,6WAA6W;QAC7W,+PAA+P;QAC/P,EAAE;QACF,yBAAyB;QACzB,kNAAkN;QAClN,idAAid;QACjd,6VAA6V;QAC7V,EAAE;QACF,uIAAuI;KACxI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -30,14 +30,14 @@ const FORBIDDEN_RELATION_DEFINITION_KEYS = new Set([
|
|
|
30
30
|
export function parseRecordData(data) {
|
|
31
31
|
const parsed = typeof data === 'string' ? JSON.parse(data) : data;
|
|
32
32
|
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
33
|
-
throw new Error('Record data must be a single JSON object string.
|
|
33
|
+
throw new Error('Record data must be a single JSON object string for internal mutation preparation. Public MCP writes use create_records/update_records/delete_records with array inputs, including one-item arrays for single mutations.');
|
|
34
34
|
}
|
|
35
35
|
return parsed;
|
|
36
36
|
}
|
|
37
37
|
export function parseRecordBatchData(data) {
|
|
38
38
|
const parsed = typeof data === 'string' ? JSON.parse(data) : data;
|
|
39
39
|
if (!Array.isArray(parsed)) {
|
|
40
|
-
throw new Error('Batch record data must be a JSON array string. For one record,
|
|
40
|
+
throw new Error('Batch record data must be a JSON array string. For one record, pass one object in the array.');
|
|
41
41
|
}
|
|
42
42
|
if (parsed.length === 0) {
|
|
43
43
|
throw new Error('Batch record data must include at least one record.');
|
|
@@ -97,7 +97,7 @@ export function rejectUnsafeRelationDefinitionPayload(tableName, payload) {
|
|
|
97
97
|
const forbidden = Object.keys(payload).filter((key) => FORBIDDEN_RELATION_DEFINITION_KEYS.has(key));
|
|
98
98
|
if (forbidden.length > 0) {
|
|
99
99
|
throw new Error(`Do not send physical FK/junction fields to enfyra_relation: ${forbidden.join(', ')}. ` +
|
|
100
|
-
'Use
|
|
100
|
+
'Use create_relations with targetTable/type/propertyName; Enfyra derives physical columns.');
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
export async function validateScriptSourceIfPresent(fetchAPI, apiUrl, tableName, payload) {
|