@platformatic/composer 3.0.0-alpha.5 → 3.0.0-alpha.6

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 (49) hide show
  1. package/LICENSE +1 -1
  2. package/eslint.config.js +1 -8
  3. package/index.d.ts +1 -58
  4. package/index.js +9 -30
  5. package/package.json +8 -54
  6. package/schema.json +1136 -907
  7. package/scripts/schema.js +12 -0
  8. package/config.d.ts +0 -997
  9. package/lib/application.js +0 -186
  10. package/lib/commands/index.js +0 -15
  11. package/lib/commands/openapi-fetch-schemas.js +0 -47
  12. package/lib/composer-hook.js +0 -60
  13. package/lib/errors.js +0 -18
  14. package/lib/generator.js +0 -127
  15. package/lib/graphql-fetch.js +0 -83
  16. package/lib/graphql-generator.js +0 -33
  17. package/lib/graphql.js +0 -24
  18. package/lib/metrics.js +0 -12
  19. package/lib/not-host-constraints.js +0 -31
  20. package/lib/openapi-composer.js +0 -101
  21. package/lib/openapi-config-schema.js +0 -89
  22. package/lib/openapi-generator.js +0 -213
  23. package/lib/openapi-load-config.js +0 -31
  24. package/lib/openapi-modifier.js +0 -128
  25. package/lib/openapi-scalar.js +0 -22
  26. package/lib/proxy.js +0 -265
  27. package/lib/root.js +0 -75
  28. package/lib/schema.js +0 -258
  29. package/lib/stackable.js +0 -88
  30. package/lib/upgrade.js +0 -20
  31. package/lib/utils.js +0 -16
  32. package/lib/versions/2.0.0.js +0 -9
  33. package/lib/versions/3.0.0.js +0 -14
  34. package/public/images/dark_mode.svg +0 -3
  35. package/public/images/ellipse.svg +0 -21
  36. package/public/images/external-link.svg +0 -5
  37. package/public/images/favicon.ico +0 -0
  38. package/public/images/graphiql.svg +0 -10
  39. package/public/images/graphql.svg +0 -10
  40. package/public/images/light_mode.svg +0 -11
  41. package/public/images/openapi.svg +0 -13
  42. package/public/images/platformatic-logo-dark.svg +0 -30
  43. package/public/images/platformatic-logo-light.svg +0 -30
  44. package/public/images/reverse-proxy.svg +0 -8
  45. package/public/images/triangle_dark.svg +0 -3
  46. package/public/images/triangle_light.svg +0 -3
  47. package/public/index.html +0 -253
  48. package/public/index.njk +0 -101
  49. package/public/main.css +0 -244
package/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://schemas.platformatic.dev/@platformatic/composer/3.0.0-alpha.5.json",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/composer/3.0.0-alpha.6.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Platformatic Composer Config",
5
5
  "type": "object",
@@ -538,732 +538,384 @@
538
538
  },
539
539
  "additionalProperties": false
540
540
  },
541
- "composer": {
541
+ "types": {
542
542
  "type": "object",
543
543
  "properties": {
544
- "services": {
544
+ "autogenerate": {
545
+ "type": "boolean"
546
+ },
547
+ "dir": {
548
+ "description": "The path to the directory the types should be generated in.",
549
+ "type": "string",
550
+ "default": "types",
551
+ "resolvePath": true
552
+ }
553
+ },
554
+ "additionalProperties": false
555
+ },
556
+ "plugins": {
557
+ "type": "object",
558
+ "properties": {
559
+ "packages": {
545
560
  "type": "array",
546
561
  "items": {
547
- "type": "object",
548
- "properties": {
549
- "id": {
550
- "type": "string"
551
- },
552
- "origin": {
562
+ "anyOf": [
563
+ {
553
564
  "type": "string"
554
565
  },
555
- "openapi": {
566
+ {
556
567
  "type": "object",
557
568
  "properties": {
558
- "url": {
569
+ "name": {
559
570
  "type": "string"
560
571
  },
561
- "file": {
572
+ "options": {
573
+ "type": "object",
574
+ "additionalProperties": true
575
+ }
576
+ },
577
+ "required": [
578
+ "name"
579
+ ]
580
+ }
581
+ ]
582
+ }
583
+ },
584
+ "paths": {
585
+ "type": "array",
586
+ "items": {
587
+ "anyOf": [
588
+ {
589
+ "type": "string",
590
+ "resolvePath": true
591
+ },
592
+ {
593
+ "type": "object",
594
+ "properties": {
595
+ "path": {
562
596
  "type": "string",
563
597
  "resolvePath": true
564
598
  },
565
- "prefix": {
599
+ "encapsulate": {
600
+ "type": "boolean",
601
+ "default": true
602
+ },
603
+ "maxDepth": {
604
+ "type": "integer"
605
+ },
606
+ "autoHooks": {
607
+ "type": "boolean"
608
+ },
609
+ "autoHooksPattern": {
566
610
  "type": "string"
567
611
  },
568
- "config": {
569
- "type": "string",
570
- "resolvePath": true
612
+ "cascadeHooks": {
613
+ "type": "boolean"
614
+ },
615
+ "overwriteHooks": {
616
+ "type": "boolean"
617
+ },
618
+ "routeParams": {
619
+ "type": "boolean"
620
+ },
621
+ "forceESM": {
622
+ "type": "boolean"
623
+ },
624
+ "ignoreFilter": {
625
+ "type": "string"
626
+ },
627
+ "matchFilter": {
628
+ "type": "string"
629
+ },
630
+ "ignorePattern": {
631
+ "type": "string"
632
+ },
633
+ "scriptPattern": {
634
+ "type": "string"
635
+ },
636
+ "indexPattern": {
637
+ "type": "string"
638
+ },
639
+ "options": {
640
+ "type": "object",
641
+ "additionalProperties": true
571
642
  }
572
- },
643
+ }
644
+ }
645
+ ]
646
+ }
647
+ }
648
+ },
649
+ "additionalProperties": false,
650
+ "anyOf": [
651
+ {
652
+ "required": [
653
+ "paths"
654
+ ]
655
+ },
656
+ {
657
+ "required": [
658
+ "packages"
659
+ ]
660
+ }
661
+ ]
662
+ },
663
+ "application": {
664
+ "type": "object",
665
+ "properties": {},
666
+ "additionalProperties": false,
667
+ "required": [],
668
+ "default": {}
669
+ },
670
+ "runtime": {
671
+ "type": "object",
672
+ "properties": {
673
+ "preload": {
674
+ "anyOf": [
675
+ {
676
+ "type": "string",
677
+ "resolvePath": true
678
+ },
679
+ {
680
+ "type": "array",
681
+ "items": {
682
+ "type": "string",
683
+ "resolvePath": true
684
+ }
685
+ }
686
+ ]
687
+ },
688
+ "basePath": {
689
+ "type": "string"
690
+ },
691
+ "services": {
692
+ "type": "array",
693
+ "items": {
694
+ "type": "object",
695
+ "anyOf": [
696
+ {
697
+ "required": [
698
+ "id",
699
+ "path"
700
+ ]
701
+ },
702
+ {
703
+ "required": [
704
+ "id",
705
+ "url"
706
+ ]
707
+ }
708
+ ],
709
+ "properties": {
710
+ "id": {
711
+ "type": "string"
712
+ },
713
+ "path": {
714
+ "type": "string",
715
+ "allowEmptyPaths": true,
716
+ "resolvePath": true
717
+ },
718
+ "config": {
719
+ "type": "string"
720
+ },
721
+ "url": {
722
+ "type": "string"
723
+ },
724
+ "gitBranch": {
725
+ "type": "string",
726
+ "default": "main"
727
+ },
728
+ "useHttp": {
729
+ "type": "boolean"
730
+ },
731
+ "workers": {
573
732
  "anyOf": [
574
733
  {
575
- "required": [
576
- "url"
577
- ]
734
+ "type": "number",
735
+ "minimum": 1
578
736
  },
579
737
  {
580
- "required": [
581
- "file"
582
- ]
738
+ "type": "string"
583
739
  }
584
- ],
585
- "additionalProperties": false
740
+ ]
586
741
  },
587
- "graphql": {
588
- "anyOf": [
589
- {
590
- "type": "boolean"
742
+ "health": {
743
+ "type": "object",
744
+ "default": {},
745
+ "properties": {
746
+ "enabled": {
747
+ "anyOf": [
748
+ {
749
+ "type": "boolean"
750
+ },
751
+ {
752
+ "type": "string"
753
+ }
754
+ ]
591
755
  },
592
- {
593
- "type": "object",
594
- "properties": {
595
- "host": {
756
+ "interval": {
757
+ "anyOf": [
758
+ {
759
+ "type": "number",
760
+ "minimum": 0
761
+ },
762
+ {
596
763
  "type": "string"
764
+ }
765
+ ]
766
+ },
767
+ "gracePeriod": {
768
+ "anyOf": [
769
+ {
770
+ "type": "number",
771
+ "minimum": 0
597
772
  },
598
- "name": {
773
+ {
599
774
  "type": "string"
775
+ }
776
+ ]
777
+ },
778
+ "maxUnhealthyChecks": {
779
+ "anyOf": [
780
+ {
781
+ "type": "number",
782
+ "minimum": 1
600
783
  },
601
- "graphqlEndpoint": {
602
- "type": "string",
603
- "default": "/graphql"
784
+ {
785
+ "type": "string"
786
+ }
787
+ ]
788
+ },
789
+ "maxELU": {
790
+ "anyOf": [
791
+ {
792
+ "type": "number",
793
+ "minimum": 0,
794
+ "maximum": 1
604
795
  },
605
- "composeEndpoint": {
606
- "type": "string",
607
- "default": "/.well-known/graphql-composition"
796
+ {
797
+ "type": "string"
798
+ }
799
+ ]
800
+ },
801
+ "maxHeapUsed": {
802
+ "anyOf": [
803
+ {
804
+ "type": "number",
805
+ "minimum": 0,
806
+ "maximum": 1
608
807
  },
609
- "entities": {
610
- "type": "object",
611
- "patternProperties": {
612
- "^.*$": {
613
- "type": "object",
614
- "properties": {
615
- "pkey": {
616
- "type": "string"
617
- },
618
- "resolver": {
619
- "type": "object",
620
- "properties": {
621
- "name": {
622
- "type": "string"
623
- },
624
- "argsAdapter": {
625
- "anyOf": [
626
- {
627
- "typeof": "function"
628
- },
629
- {
630
- "type": "string"
631
- }
632
- ]
633
- },
634
- "partialResults": {
635
- "anyOf": [
636
- {
637
- "typeof": "function"
638
- },
639
- {
640
- "type": "string"
641
- }
642
- ]
643
- }
644
- },
645
- "required": [
646
- "name"
647
- ],
648
- "additionalProperties": false
649
- },
650
- "fkeys": {
651
- "type": "array",
652
- "items": {
653
- "type": "object",
654
- "properties": {
655
- "type": {
656
- "type": "string"
657
- },
658
- "field": {
659
- "type": "string"
660
- },
661
- "as": {
662
- "type": "string"
663
- },
664
- "pkey": {
665
- "type": "string"
666
- },
667
- "subgraph": {
668
- "type": "string"
669
- },
670
- "resolver": {
671
- "type": "object",
672
- "properties": {
673
- "name": {
674
- "type": "string"
675
- },
676
- "argsAdapter": {
677
- "anyOf": [
678
- {
679
- "typeof": "function"
680
- },
681
- {
682
- "type": "string"
683
- }
684
- ]
685
- },
686
- "partialResults": {
687
- "anyOf": [
688
- {
689
- "typeof": "function"
690
- },
691
- {
692
- "type": "string"
693
- }
694
- ]
695
- }
696
- },
697
- "required": [
698
- "name"
699
- ],
700
- "additionalProperties": false
701
- }
702
- },
703
- "required": [
704
- "type"
705
- ]
706
- }
707
- },
708
- "many": {
709
- "type": "array",
710
- "items": {
711
- "type": "object",
712
- "properties": {
713
- "type": {
714
- "type": "string"
715
- },
716
- "fkey": {
717
- "type": "string"
718
- },
719
- "as": {
720
- "type": "string"
721
- },
722
- "pkey": {
723
- "type": "string"
724
- },
725
- "subgraph": {
726
- "type": "string"
727
- },
728
- "resolver": {
729
- "type": "object",
730
- "properties": {
731
- "name": {
732
- "type": "string"
733
- },
734
- "argsAdapter": {
735
- "anyOf": [
736
- {
737
- "typeof": "function"
738
- },
739
- {
740
- "type": "string"
741
- }
742
- ]
743
- },
744
- "partialResults": {
745
- "anyOf": [
746
- {
747
- "typeof": "function"
748
- },
749
- {
750
- "type": "string"
751
- }
752
- ]
753
- }
754
- },
755
- "required": [
756
- "name"
757
- ],
758
- "additionalProperties": false
759
- }
760
- },
761
- "required": [
762
- "type",
763
- "fkey",
764
- "resolver"
765
- ]
766
- }
767
- }
768
- }
769
- }
770
- }
771
- }
772
- },
773
- "additionalProperties": false
774
- }
775
- ]
776
- },
777
- "proxy": {
778
- "anyOf": [
779
- {
780
- "type": "boolean",
781
- "const": false
782
- },
783
- {
784
- "type": "object",
785
- "properties": {
786
- "upstream": {
787
- "type": "string"
788
- },
789
- "prefix": {
790
- "type": "string"
791
- },
792
- "hostname": {
793
- "type": "string"
794
- },
795
- "ws": {
796
- "type": "object",
797
- "properties": {
798
- "upstream": {
799
- "type": "string"
800
- },
801
- "reconnect": {
802
- "type": "object",
803
- "properties": {
804
- "pingInterval": {
805
- "type": "number"
806
- },
807
- "maxReconnectionRetries": {
808
- "type": "number"
809
- },
810
- "reconnectInterval": {
811
- "type": "number"
812
- },
813
- "reconnectDecay": {
814
- "type": "number"
815
- },
816
- "connectionTimeout": {
817
- "type": "number"
818
- },
819
- "reconnectOnClose": {
820
- "type": "boolean"
821
- },
822
- "logs": {
823
- "type": "boolean"
824
- }
825
- }
826
- },
827
- "hooks": {
828
- "type": "object",
829
- "properties": {
830
- "path": {
831
- "type": "string"
832
- }
833
- },
834
- "required": [
835
- "path"
836
- ],
837
- "additionalProperties": false
838
- }
839
- },
840
- "required": [],
841
- "additionalProperties": false
842
- }
843
- },
844
- "required": [],
845
- "additionalProperties": false
846
- }
847
- ]
848
- }
849
- },
850
- "required": [
851
- "id"
852
- ],
853
- "additionalProperties": false
854
- }
855
- },
856
- "openapi": {
857
- "type": "object",
858
- "properties": {
859
- "info": {
860
- "$ref": "#/$defs/info"
861
- },
862
- "jsonSchemaDialect": {
863
- "type": "string",
864
- "default": "https://spec.openapis.org/oas/3.1/dialect/base"
865
- },
866
- "servers": {
867
- "type": "array",
868
- "items": {
869
- "$ref": "#/$defs/server"
870
- },
871
- "default": [
872
- {
873
- "url": "/"
874
- }
875
- ]
876
- },
877
- "paths": {
878
- "$ref": "#/$defs/paths"
879
- },
880
- "webhooks": {
881
- "type": "object",
882
- "additionalProperties": {
883
- "$ref": "#/$defs/path-item-or-reference"
884
- }
885
- },
886
- "components": {
887
- "$ref": "#/$defs/components"
888
- },
889
- "security": {
890
- "type": "array",
891
- "items": {
892
- "$ref": "#/$defs/security-requirement"
893
- }
894
- },
895
- "tags": {
896
- "type": "array",
897
- "items": {
898
- "$ref": "#/$defs/tag"
899
- }
900
- },
901
- "externalDocs": {
902
- "$ref": "#/$defs/external-documentation"
903
- },
904
- "swaggerPrefix": {
905
- "type": "string",
906
- "description": "Base URL for the OpenAPI Swagger Documentation"
907
- },
908
- "path": {
909
- "type": "string",
910
- "description": "Path to an OpenAPI spec file",
911
- "resolvePath": true
912
- }
913
- }
914
- },
915
- "graphql": {
916
- "type": "object",
917
- "properties": {
918
- "graphiql": {
919
- "type": "boolean"
920
- },
921
- "onSubgraphError": {
922
- "typeof": "function"
923
- },
924
- "defaultArgsAdapter": {
925
- "oneOf": [
926
- {
927
- "typeof": "function"
928
- },
929
- {
930
- "type": "string"
931
- }
932
- ]
933
- },
934
- "entities": {
935
- "type": "object",
936
- "patternProperties": {
937
- "^.*$": {
938
- "type": "object",
939
- "properties": {
940
- "pkey": {
941
- "type": "string"
942
- },
943
- "resolver": {
944
- "type": "object",
945
- "properties": {
946
- "name": {
947
- "type": "string"
948
- },
949
- "argsAdapter": {
950
- "anyOf": [
951
- {
952
- "typeof": "function"
953
- },
954
- {
955
- "type": "string"
956
- }
957
- ]
958
- },
959
- "partialResults": {
960
- "anyOf": [
961
- {
962
- "typeof": "function"
963
- },
964
- {
965
- "type": "string"
966
- }
967
- ]
968
- }
969
- },
970
- "required": [
971
- "name"
972
- ],
973
- "additionalProperties": false
974
- },
975
- "fkeys": {
976
- "type": "array",
977
- "items": {
978
- "type": "object",
979
- "properties": {
980
- "type": {
981
- "type": "string"
982
- },
983
- "field": {
984
- "type": "string"
985
- },
986
- "as": {
987
- "type": "string"
988
- },
989
- "pkey": {
990
- "type": "string"
991
- },
992
- "subgraph": {
993
- "type": "string"
994
- },
995
- "resolver": {
996
- "type": "object",
997
- "properties": {
998
- "name": {
999
- "type": "string"
1000
- },
1001
- "argsAdapter": {
1002
- "anyOf": [
1003
- {
1004
- "typeof": "function"
1005
- },
1006
- {
1007
- "type": "string"
1008
- }
1009
- ]
1010
- },
1011
- "partialResults": {
1012
- "anyOf": [
1013
- {
1014
- "typeof": "function"
1015
- },
1016
- {
1017
- "type": "string"
1018
- }
1019
- ]
1020
- }
1021
- },
1022
- "required": [
1023
- "name"
1024
- ],
1025
- "additionalProperties": false
1026
- }
1027
- },
1028
- "required": [
1029
- "type"
1030
- ]
808
+ {
809
+ "type": "string"
1031
810
  }
1032
- },
1033
- "many": {
1034
- "type": "array",
1035
- "items": {
1036
- "type": "object",
1037
- "properties": {
1038
- "type": {
1039
- "type": "string"
1040
- },
1041
- "fkey": {
1042
- "type": "string"
1043
- },
1044
- "as": {
1045
- "type": "string"
1046
- },
1047
- "pkey": {
1048
- "type": "string"
1049
- },
1050
- "subgraph": {
1051
- "type": "string"
1052
- },
1053
- "resolver": {
1054
- "type": "object",
1055
- "properties": {
1056
- "name": {
1057
- "type": "string"
1058
- },
1059
- "argsAdapter": {
1060
- "anyOf": [
1061
- {
1062
- "typeof": "function"
1063
- },
1064
- {
1065
- "type": "string"
1066
- }
1067
- ]
1068
- },
1069
- "partialResults": {
1070
- "anyOf": [
1071
- {
1072
- "typeof": "function"
1073
- },
1074
- {
1075
- "type": "string"
1076
- }
1077
- ]
1078
- }
1079
- },
1080
- "required": [
1081
- "name"
1082
- ],
1083
- "additionalProperties": false
1084
- }
1085
- },
1086
- "required": [
1087
- "type",
1088
- "fkey",
1089
- "resolver"
1090
- ]
811
+ ]
812
+ },
813
+ "maxHeapTotal": {
814
+ "anyOf": [
815
+ {
816
+ "type": "number",
817
+ "minimum": 0
818
+ },
819
+ {
820
+ "type": "string"
1091
821
  }
1092
- }
822
+ ]
823
+ },
824
+ "maxYoungGeneration": {
825
+ "anyOf": [
826
+ {
827
+ "type": "number",
828
+ "minimum": 0
829
+ },
830
+ {
831
+ "type": "string"
832
+ }
833
+ ]
1093
834
  }
835
+ },
836
+ "additionalProperties": false
837
+ },
838
+ "arguments": {
839
+ "type": "array",
840
+ "items": {
841
+ "type": "string"
1094
842
  }
1095
- }
1096
- },
1097
- "addEntitiesResolvers": {
1098
- "type": "boolean",
1099
- "default": false
1100
- }
1101
- },
1102
- "additionalProperties": false
1103
- },
1104
- "addEmptySchema": {
1105
- "type": "boolean",
1106
- "default": false
1107
- },
1108
- "refreshTimeout": {
1109
- "type": "integer",
1110
- "minimum": 0,
1111
- "default": 1000
1112
- }
1113
- },
1114
- "required": [],
1115
- "default": {},
1116
- "additionalProperties": false
1117
- },
1118
- "types": {
1119
- "type": "object",
1120
- "properties": {
1121
- "autogenerate": {
1122
- "type": "boolean"
1123
- },
1124
- "dir": {
1125
- "description": "The path to the directory the types should be generated in.",
1126
- "type": "string",
1127
- "default": "types",
1128
- "resolvePath": true
1129
- }
1130
- },
1131
- "additionalProperties": false
1132
- },
1133
- "plugins": {
1134
- "type": "object",
1135
- "properties": {
1136
- "packages": {
1137
- "type": "array",
1138
- "items": {
1139
- "anyOf": [
1140
- {
1141
- "type": "string"
1142
843
  },
1143
- {
844
+ "env": {
1144
845
  "type": "object",
1145
- "properties": {
1146
- "name": {
1147
- "type": "string"
1148
- },
1149
- "options": {
1150
- "type": "object",
1151
- "additionalProperties": true
1152
- }
1153
- },
1154
- "required": [
1155
- "name"
1156
- ]
1157
- }
1158
- ]
1159
- }
1160
- },
1161
- "paths": {
1162
- "type": "array",
1163
- "items": {
1164
- "anyOf": [
1165
- {
846
+ "additionalProperties": {
847
+ "type": "string"
848
+ }
849
+ },
850
+ "envfile": {
851
+ "type": "string"
852
+ },
853
+ "sourceMaps": {
854
+ "type": "boolean",
855
+ "default": false
856
+ },
857
+ "packageManager": {
1166
858
  "type": "string",
1167
- "resolvePath": true
859
+ "enum": [
860
+ "npm",
861
+ "pnpm",
862
+ "yarn"
863
+ ]
1168
864
  },
1169
- {
1170
- "type": "object",
1171
- "properties": {
1172
- "path": {
865
+ "preload": {
866
+ "anyOf": [
867
+ {
1173
868
  "type": "string",
1174
869
  "resolvePath": true
1175
870
  },
1176
- "encapsulate": {
1177
- "type": "boolean",
1178
- "default": true
1179
- },
1180
- "maxDepth": {
1181
- "type": "integer"
1182
- },
1183
- "autoHooks": {
1184
- "type": "boolean"
1185
- },
1186
- "autoHooksPattern": {
1187
- "type": "string"
1188
- },
1189
- "cascadeHooks": {
1190
- "type": "boolean"
1191
- },
1192
- "overwriteHooks": {
1193
- "type": "boolean"
1194
- },
1195
- "routeParams": {
1196
- "type": "boolean"
1197
- },
1198
- "forceESM": {
1199
- "type": "boolean"
1200
- },
1201
- "ignoreFilter": {
1202
- "type": "string"
1203
- },
1204
- "matchFilter": {
1205
- "type": "string"
1206
- },
1207
- "ignorePattern": {
1208
- "type": "string"
1209
- },
1210
- "scriptPattern": {
1211
- "type": "string"
1212
- },
1213
- "indexPattern": {
1214
- "type": "string"
1215
- },
1216
- "options": {
1217
- "type": "object",
1218
- "additionalProperties": true
871
+ {
872
+ "type": "array",
873
+ "items": {
874
+ "type": "string",
875
+ "resolvePath": true
876
+ }
1219
877
  }
1220
- }
1221
- }
1222
- ]
1223
- }
1224
- }
1225
- },
1226
- "additionalProperties": false,
1227
- "anyOf": [
1228
- {
1229
- "required": [
1230
- "paths"
1231
- ]
1232
- },
1233
- {
1234
- "required": [
1235
- "packages"
1236
- ]
1237
- }
1238
- ]
1239
- },
1240
- "application": {
1241
- "type": "object",
1242
- "properties": {},
1243
- "additionalProperties": false,
1244
- "required": [],
1245
- "default": {}
1246
- },
1247
- "runtime": {
1248
- "type": "object",
1249
- "properties": {
1250
- "preload": {
1251
- "anyOf": [
1252
- {
1253
- "type": "string",
1254
- "resolvePath": true
1255
- },
1256
- {
1257
- "type": "array",
1258
- "items": {
1259
- "type": "string",
1260
- "resolvePath": true
878
+ ]
879
+ },
880
+ "nodeOptions": {
881
+ "type": "string"
882
+ },
883
+ "telemetry": {
884
+ "type": "object",
885
+ "properties": {
886
+ "instrumentations": {
887
+ "type": "array",
888
+ "description": "An array of instrumentations loaded if telemetry is enabled",
889
+ "items": {
890
+ "oneOf": [
891
+ {
892
+ "type": "string"
893
+ },
894
+ {
895
+ "type": "object",
896
+ "properties": {
897
+ "package": {
898
+ "type": "string"
899
+ },
900
+ "exportName": {
901
+ "type": "string"
902
+ },
903
+ "options": {
904
+ "type": "object",
905
+ "additionalProperties": true
906
+ }
907
+ },
908
+ "required": [
909
+ "package"
910
+ ]
911
+ }
912
+ ]
913
+ }
914
+ }
915
+ }
1261
916
  }
1262
917
  }
1263
- ]
1264
- },
1265
- "basePath": {
1266
- "type": "string"
918
+ }
1267
919
  },
1268
920
  "workers": {
1269
921
  "anyOf": [
@@ -1579,7 +1231,7 @@
1579
1231
  ],
1580
1232
  "default": 10000
1581
1233
  },
1582
- "service": {
1234
+ "application": {
1583
1235
  "anyOf": [
1584
1236
  {
1585
1237
  "type": "number",
@@ -1595,7 +1247,7 @@
1595
1247
  "default": {},
1596
1248
  "required": [
1597
1249
  "runtime",
1598
- "service"
1250
+ "application"
1599
1251
  ],
1600
1252
  "additionalProperties": false
1601
1253
  },
@@ -2026,13 +1678,13 @@
2026
1678
  }
2027
1679
  ]
2028
1680
  },
2029
- "serviceName": {
1681
+ "applicationName": {
2030
1682
  "type": "string",
2031
- "description": "The name of the service. Defaults to the folder name if not specified."
1683
+ "description": "The name of the application. Defaults to the folder name if not specified."
2032
1684
  },
2033
1685
  "version": {
2034
1686
  "type": "string",
2035
- "description": "The version of the service (optional)"
1687
+ "description": "The version of the application (optional)"
2036
1688
  },
2037
1689
  "skip": {
2038
1690
  "type": "array",
@@ -2139,7 +1791,7 @@
2139
1791
  }
2140
1792
  },
2141
1793
  "required": [
2142
- "serviceName"
1794
+ "applicationName"
2143
1795
  ],
2144
1796
  "additionalProperties": false
2145
1797
  },
@@ -2160,7 +1812,7 @@
2160
1812
  }
2161
1813
  }
2162
1814
  },
2163
- "serviceTimeout": {
1815
+ "applicationTimeout": {
2164
1816
  "anyOf": [
2165
1817
  {
2166
1818
  "type": "number",
@@ -2178,270 +1830,847 @@
2178
1830
  "type": "number",
2179
1831
  "minimum": 1
2180
1832
  },
2181
- {
2182
- "type": "string"
1833
+ {
1834
+ "type": "string"
1835
+ }
1836
+ ],
1837
+ "default": 30000
1838
+ },
1839
+ "env": {
1840
+ "type": "object",
1841
+ "additionalProperties": {
1842
+ "type": "string"
1843
+ }
1844
+ },
1845
+ "sourceMaps": {
1846
+ "type": "boolean",
1847
+ "default": false
1848
+ },
1849
+ "scheduler": {
1850
+ "type": "array",
1851
+ "items": {
1852
+ "type": "object",
1853
+ "properties": {
1854
+ "enabled": {
1855
+ "anyOf": [
1856
+ {
1857
+ "type": "boolean"
1858
+ },
1859
+ {
1860
+ "type": "string"
1861
+ }
1862
+ ],
1863
+ "default": true
1864
+ },
1865
+ "name": {
1866
+ "type": "string"
1867
+ },
1868
+ "cron": {
1869
+ "type": "string"
1870
+ },
1871
+ "callbackUrl": {
1872
+ "type": "string"
1873
+ },
1874
+ "method": {
1875
+ "type": "string",
1876
+ "enum": [
1877
+ "GET",
1878
+ "POST",
1879
+ "PUT",
1880
+ "PATCH",
1881
+ "DELETE"
1882
+ ],
1883
+ "default": "GET"
1884
+ },
1885
+ "headers": {
1886
+ "type": "object",
1887
+ "additionalProperties": {
1888
+ "type": "string"
1889
+ }
1890
+ },
1891
+ "body": {
1892
+ "anyOf": [
1893
+ {
1894
+ "type": "string"
1895
+ },
1896
+ {
1897
+ "type": "object",
1898
+ "additionalProperties": true
1899
+ }
1900
+ ]
1901
+ },
1902
+ "maxRetries": {
1903
+ "type": "number",
1904
+ "minimum": 0,
1905
+ "default": 3
1906
+ }
1907
+ },
1908
+ "required": [
1909
+ "name",
1910
+ "cron",
1911
+ "callbackUrl"
1912
+ ]
1913
+ }
1914
+ }
1915
+ },
1916
+ "additionalProperties": false
1917
+ },
1918
+ "telemetry": {
1919
+ "type": "object",
1920
+ "properties": {
1921
+ "enabled": {
1922
+ "anyOf": [
1923
+ {
1924
+ "type": "boolean"
1925
+ },
1926
+ {
1927
+ "type": "string"
1928
+ }
1929
+ ]
1930
+ },
1931
+ "applicationName": {
1932
+ "type": "string",
1933
+ "description": "The name of the application. Defaults to the folder name if not specified."
1934
+ },
1935
+ "version": {
1936
+ "type": "string",
1937
+ "description": "The version of the application (optional)"
1938
+ },
1939
+ "skip": {
1940
+ "type": "array",
1941
+ "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
1942
+ "items": {
1943
+ "type": "object",
1944
+ "properties": {
1945
+ "path": {
1946
+ "type": "string",
1947
+ "description": "The path to skip. Can be a string or a regex."
1948
+ },
1949
+ "method": {
1950
+ "description": "HTTP method to skip",
1951
+ "type": "string",
1952
+ "enum": [
1953
+ "GET",
1954
+ "POST",
1955
+ "PUT",
1956
+ "DELETE",
1957
+ "PATCH",
1958
+ "HEAD",
1959
+ "OPTIONS"
1960
+ ]
1961
+ }
1962
+ }
1963
+ }
1964
+ },
1965
+ "exporter": {
1966
+ "anyOf": [
1967
+ {
1968
+ "type": "array",
1969
+ "items": {
1970
+ "type": "object",
1971
+ "properties": {
1972
+ "type": {
1973
+ "type": "string",
1974
+ "enum": [
1975
+ "console",
1976
+ "otlp",
1977
+ "zipkin",
1978
+ "memory",
1979
+ "file"
1980
+ ],
1981
+ "default": "console"
1982
+ },
1983
+ "options": {
1984
+ "type": "object",
1985
+ "description": "Options for the exporter. These are passed directly to the exporter.",
1986
+ "properties": {
1987
+ "url": {
1988
+ "type": "string",
1989
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
1990
+ },
1991
+ "headers": {
1992
+ "type": "object",
1993
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
1994
+ },
1995
+ "path": {
1996
+ "type": "string",
1997
+ "description": "The path to write the traces to. Only for file exporter."
1998
+ }
1999
+ }
2000
+ },
2001
+ "additionalProperties": false
2002
+ }
2003
+ }
2004
+ },
2005
+ {
2006
+ "type": "object",
2007
+ "properties": {
2008
+ "type": {
2009
+ "type": "string",
2010
+ "enum": [
2011
+ "console",
2012
+ "otlp",
2013
+ "zipkin",
2014
+ "memory",
2015
+ "file"
2016
+ ],
2017
+ "default": "console"
2018
+ },
2019
+ "options": {
2020
+ "type": "object",
2021
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2022
+ "properties": {
2023
+ "url": {
2024
+ "type": "string",
2025
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2026
+ },
2027
+ "headers": {
2028
+ "type": "object",
2029
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2030
+ },
2031
+ "path": {
2032
+ "type": "string",
2033
+ "description": "The path to write the traces to. Only for file exporter."
2034
+ }
2035
+ }
2036
+ },
2037
+ "additionalProperties": false
2038
+ }
2039
+ }
2040
+ ]
2041
+ }
2042
+ },
2043
+ "required": [
2044
+ "applicationName"
2045
+ ],
2046
+ "additionalProperties": false
2047
+ },
2048
+ "watch": {
2049
+ "anyOf": [
2050
+ {
2051
+ "type": "object",
2052
+ "properties": {
2053
+ "enabled": {
2054
+ "default": true,
2055
+ "anyOf": [
2056
+ {
2057
+ "type": "boolean"
2058
+ },
2059
+ {
2060
+ "type": "string"
2061
+ }
2062
+ ]
2063
+ },
2064
+ "allow": {
2065
+ "type": "array",
2066
+ "items": {
2067
+ "type": "string"
2068
+ },
2069
+ "minItems": 1,
2070
+ "nullable": true,
2071
+ "default": null
2072
+ },
2073
+ "ignore": {
2074
+ "type": "array",
2075
+ "items": {
2076
+ "type": "string"
2077
+ },
2078
+ "nullable": true,
2079
+ "default": null
2183
2080
  }
2184
- ],
2185
- "default": 30000
2186
- },
2187
- "env": {
2188
- "type": "object",
2189
- "additionalProperties": {
2190
- "type": "string"
2191
- }
2081
+ },
2082
+ "additionalProperties": false
2192
2083
  },
2193
- "sourceMaps": {
2194
- "type": "boolean",
2195
- "default": false
2084
+ {
2085
+ "type": "boolean"
2196
2086
  },
2197
- "scheduler": {
2087
+ {
2088
+ "type": "string"
2089
+ }
2090
+ ]
2091
+ },
2092
+ "$schema": {
2093
+ "type": "string"
2094
+ },
2095
+ "module": {
2096
+ "type": "string"
2097
+ },
2098
+ "composer": {
2099
+ "type": "object",
2100
+ "properties": {
2101
+ "applications": {
2198
2102
  "type": "array",
2199
2103
  "items": {
2200
2104
  "type": "object",
2201
2105
  "properties": {
2202
- "enabled": {
2106
+ "id": {
2107
+ "type": "string"
2108
+ },
2109
+ "origin": {
2110
+ "type": "string"
2111
+ },
2112
+ "openapi": {
2113
+ "type": "object",
2114
+ "properties": {
2115
+ "url": {
2116
+ "type": "string"
2117
+ },
2118
+ "file": {
2119
+ "type": "string",
2120
+ "resolvePath": true
2121
+ },
2122
+ "prefix": {
2123
+ "type": "string"
2124
+ },
2125
+ "config": {
2126
+ "type": "string",
2127
+ "resolvePath": true
2128
+ }
2129
+ },
2130
+ "anyOf": [
2131
+ {
2132
+ "required": [
2133
+ "url"
2134
+ ]
2135
+ },
2136
+ {
2137
+ "required": [
2138
+ "file"
2139
+ ]
2140
+ }
2141
+ ],
2142
+ "additionalProperties": false
2143
+ },
2144
+ "graphql": {
2203
2145
  "anyOf": [
2204
2146
  {
2205
2147
  "type": "boolean"
2206
2148
  },
2207
2149
  {
2208
- "type": "string"
2150
+ "type": "object",
2151
+ "properties": {
2152
+ "host": {
2153
+ "type": "string"
2154
+ },
2155
+ "name": {
2156
+ "type": "string"
2157
+ },
2158
+ "graphqlEndpoint": {
2159
+ "type": "string",
2160
+ "default": "/graphql"
2161
+ },
2162
+ "composeEndpoint": {
2163
+ "type": "string",
2164
+ "default": "/.well-known/graphql-composition"
2165
+ },
2166
+ "entities": {
2167
+ "type": "object",
2168
+ "patternProperties": {
2169
+ "^.*$": {
2170
+ "type": "object",
2171
+ "properties": {
2172
+ "pkey": {
2173
+ "type": "string"
2174
+ },
2175
+ "resolver": {
2176
+ "type": "object",
2177
+ "properties": {
2178
+ "name": {
2179
+ "type": "string"
2180
+ },
2181
+ "argsAdapter": {
2182
+ "anyOf": [
2183
+ {
2184
+ "typeof": "function"
2185
+ },
2186
+ {
2187
+ "type": "string"
2188
+ }
2189
+ ]
2190
+ },
2191
+ "partialResults": {
2192
+ "anyOf": [
2193
+ {
2194
+ "typeof": "function"
2195
+ },
2196
+ {
2197
+ "type": "string"
2198
+ }
2199
+ ]
2200
+ }
2201
+ },
2202
+ "required": [
2203
+ "name"
2204
+ ],
2205
+ "additionalProperties": false
2206
+ },
2207
+ "fkeys": {
2208
+ "type": "array",
2209
+ "items": {
2210
+ "type": "object",
2211
+ "properties": {
2212
+ "type": {
2213
+ "type": "string"
2214
+ },
2215
+ "field": {
2216
+ "type": "string"
2217
+ },
2218
+ "as": {
2219
+ "type": "string"
2220
+ },
2221
+ "pkey": {
2222
+ "type": "string"
2223
+ },
2224
+ "subgraph": {
2225
+ "type": "string"
2226
+ },
2227
+ "resolver": {
2228
+ "type": "object",
2229
+ "properties": {
2230
+ "name": {
2231
+ "type": "string"
2232
+ },
2233
+ "argsAdapter": {
2234
+ "anyOf": [
2235
+ {
2236
+ "typeof": "function"
2237
+ },
2238
+ {
2239
+ "type": "string"
2240
+ }
2241
+ ]
2242
+ },
2243
+ "partialResults": {
2244
+ "anyOf": [
2245
+ {
2246
+ "typeof": "function"
2247
+ },
2248
+ {
2249
+ "type": "string"
2250
+ }
2251
+ ]
2252
+ }
2253
+ },
2254
+ "required": [
2255
+ "name"
2256
+ ],
2257
+ "additionalProperties": false
2258
+ }
2259
+ },
2260
+ "required": [
2261
+ "type"
2262
+ ]
2263
+ }
2264
+ },
2265
+ "many": {
2266
+ "type": "array",
2267
+ "items": {
2268
+ "type": "object",
2269
+ "properties": {
2270
+ "type": {
2271
+ "type": "string"
2272
+ },
2273
+ "fkey": {
2274
+ "type": "string"
2275
+ },
2276
+ "as": {
2277
+ "type": "string"
2278
+ },
2279
+ "pkey": {
2280
+ "type": "string"
2281
+ },
2282
+ "subgraph": {
2283
+ "type": "string"
2284
+ },
2285
+ "resolver": {
2286
+ "type": "object",
2287
+ "properties": {
2288
+ "name": {
2289
+ "type": "string"
2290
+ },
2291
+ "argsAdapter": {
2292
+ "anyOf": [
2293
+ {
2294
+ "typeof": "function"
2295
+ },
2296
+ {
2297
+ "type": "string"
2298
+ }
2299
+ ]
2300
+ },
2301
+ "partialResults": {
2302
+ "anyOf": [
2303
+ {
2304
+ "typeof": "function"
2305
+ },
2306
+ {
2307
+ "type": "string"
2308
+ }
2309
+ ]
2310
+ }
2311
+ },
2312
+ "required": [
2313
+ "name"
2314
+ ],
2315
+ "additionalProperties": false
2316
+ }
2317
+ },
2318
+ "required": [
2319
+ "type",
2320
+ "fkey",
2321
+ "resolver"
2322
+ ]
2323
+ }
2324
+ }
2325
+ }
2326
+ }
2327
+ }
2328
+ }
2329
+ },
2330
+ "additionalProperties": false
2209
2331
  }
2210
- ],
2211
- "default": true
2212
- },
2213
- "name": {
2214
- "type": "string"
2215
- },
2216
- "cron": {
2217
- "type": "string"
2218
- },
2219
- "callbackUrl": {
2220
- "type": "string"
2221
- },
2222
- "method": {
2223
- "type": "string",
2224
- "enum": [
2225
- "GET",
2226
- "POST",
2227
- "PUT",
2228
- "PATCH",
2229
- "DELETE"
2230
- ],
2231
- "default": "GET"
2232
- },
2233
- "headers": {
2234
- "type": "object",
2235
- "additionalProperties": {
2236
- "type": "string"
2237
- }
2332
+ ]
2238
2333
  },
2239
- "body": {
2334
+ "proxy": {
2240
2335
  "anyOf": [
2241
2336
  {
2242
- "type": "string"
2337
+ "type": "boolean",
2338
+ "const": false
2243
2339
  },
2244
2340
  {
2245
2341
  "type": "object",
2246
- "additionalProperties": true
2342
+ "properties": {
2343
+ "upstream": {
2344
+ "type": "string"
2345
+ },
2346
+ "prefix": {
2347
+ "type": "string"
2348
+ },
2349
+ "hostname": {
2350
+ "type": "string"
2351
+ },
2352
+ "ws": {
2353
+ "type": "object",
2354
+ "properties": {
2355
+ "upstream": {
2356
+ "type": "string"
2357
+ },
2358
+ "reconnect": {
2359
+ "type": "object",
2360
+ "properties": {
2361
+ "pingInterval": {
2362
+ "type": "number"
2363
+ },
2364
+ "maxReconnectionRetries": {
2365
+ "type": "number"
2366
+ },
2367
+ "reconnectInterval": {
2368
+ "type": "number"
2369
+ },
2370
+ "reconnectDecay": {
2371
+ "type": "number"
2372
+ },
2373
+ "connectionTimeout": {
2374
+ "type": "number"
2375
+ },
2376
+ "reconnectOnClose": {
2377
+ "type": "boolean"
2378
+ },
2379
+ "logs": {
2380
+ "type": "boolean"
2381
+ }
2382
+ }
2383
+ },
2384
+ "hooks": {
2385
+ "type": "object",
2386
+ "properties": {
2387
+ "path": {
2388
+ "type": "string"
2389
+ }
2390
+ },
2391
+ "required": [
2392
+ "path"
2393
+ ],
2394
+ "additionalProperties": false
2395
+ }
2396
+ },
2397
+ "required": [],
2398
+ "additionalProperties": false
2399
+ }
2400
+ },
2401
+ "required": [],
2402
+ "additionalProperties": false
2247
2403
  }
2248
2404
  ]
2249
- },
2250
- "maxRetries": {
2251
- "type": "number",
2252
- "minimum": 0,
2253
- "default": 3
2254
2405
  }
2255
2406
  },
2256
2407
  "required": [
2257
- "name",
2258
- "cron",
2259
- "callbackUrl"
2260
- ]
2261
- }
2262
- }
2263
- },
2264
- "additionalProperties": false
2265
- },
2266
- "telemetry": {
2267
- "type": "object",
2268
- "properties": {
2269
- "enabled": {
2270
- "anyOf": [
2271
- {
2272
- "type": "boolean"
2273
- },
2274
- {
2275
- "type": "string"
2276
- }
2277
- ]
2278
- },
2279
- "serviceName": {
2280
- "type": "string",
2281
- "description": "The name of the service. Defaults to the folder name if not specified."
2282
- },
2283
- "version": {
2284
- "type": "string",
2285
- "description": "The version of the service (optional)"
2286
- },
2287
- "skip": {
2288
- "type": "array",
2289
- "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
2290
- "items": {
2291
- "type": "object",
2292
- "properties": {
2293
- "path": {
2294
- "type": "string",
2295
- "description": "The path to skip. Can be a string or a regex."
2296
- },
2297
- "method": {
2298
- "description": "HTTP method to skip",
2299
- "type": "string",
2300
- "enum": [
2301
- "GET",
2302
- "POST",
2303
- "PUT",
2304
- "DELETE",
2305
- "PATCH",
2306
- "HEAD",
2307
- "OPTIONS"
2308
- ]
2309
- }
2310
- }
2408
+ "id"
2409
+ ],
2410
+ "additionalProperties": false
2311
2411
  }
2312
2412
  },
2313
- "exporter": {
2314
- "anyOf": [
2315
- {
2413
+ "openapi": {
2414
+ "type": "object",
2415
+ "properties": {
2416
+ "info": {
2417
+ "$ref": "#/$defs/info"
2418
+ },
2419
+ "jsonSchemaDialect": {
2420
+ "type": "string",
2421
+ "default": "https://spec.openapis.org/oas/3.1/dialect/base"
2422
+ },
2423
+ "servers": {
2316
2424
  "type": "array",
2317
2425
  "items": {
2318
- "type": "object",
2319
- "properties": {
2320
- "type": {
2321
- "type": "string",
2322
- "enum": [
2323
- "console",
2324
- "otlp",
2325
- "zipkin",
2326
- "memory",
2327
- "file"
2328
- ],
2329
- "default": "console"
2330
- },
2331
- "options": {
2332
- "type": "object",
2333
- "description": "Options for the exporter. These are passed directly to the exporter.",
2334
- "properties": {
2335
- "url": {
2336
- "type": "string",
2337
- "description": "The URL to send the traces to. Not used for console or memory exporters."
2338
- },
2339
- "headers": {
2340
- "type": "object",
2341
- "description": "Headers to send to the exporter. Not used for console or memory exporters."
2342
- },
2343
- "path": {
2344
- "type": "string",
2345
- "description": "The path to write the traces to. Only for file exporter."
2346
- }
2347
- }
2348
- },
2349
- "additionalProperties": false
2426
+ "$ref": "#/$defs/server"
2427
+ },
2428
+ "default": [
2429
+ {
2430
+ "url": "/"
2350
2431
  }
2351
- }
2432
+ ]
2352
2433
  },
2353
- {
2434
+ "paths": {
2435
+ "$ref": "#/$defs/paths"
2436
+ },
2437
+ "webhooks": {
2354
2438
  "type": "object",
2355
- "properties": {
2356
- "type": {
2357
- "type": "string",
2358
- "enum": [
2359
- "console",
2360
- "otlp",
2361
- "zipkin",
2362
- "memory",
2363
- "file"
2364
- ],
2365
- "default": "console"
2366
- },
2367
- "options": {
2368
- "type": "object",
2369
- "description": "Options for the exporter. These are passed directly to the exporter.",
2370
- "properties": {
2371
- "url": {
2372
- "type": "string",
2373
- "description": "The URL to send the traces to. Not used for console or memory exporters."
2374
- },
2375
- "headers": {
2376
- "type": "object",
2377
- "description": "Headers to send to the exporter. Not used for console or memory exporters."
2378
- },
2379
- "path": {
2380
- "type": "string",
2381
- "description": "The path to write the traces to. Only for file exporter."
2382
- }
2383
- }
2384
- },
2385
- "additionalProperties": false
2439
+ "additionalProperties": {
2440
+ "$ref": "#/$defs/path-item-or-reference"
2441
+ }
2442
+ },
2443
+ "components": {
2444
+ "$ref": "#/$defs/components"
2445
+ },
2446
+ "security": {
2447
+ "type": "array",
2448
+ "items": {
2449
+ "$ref": "#/$defs/security-requirement"
2450
+ }
2451
+ },
2452
+ "tags": {
2453
+ "type": "array",
2454
+ "items": {
2455
+ "$ref": "#/$defs/tag"
2386
2456
  }
2457
+ },
2458
+ "externalDocs": {
2459
+ "$ref": "#/$defs/external-documentation"
2460
+ },
2461
+ "swaggerPrefix": {
2462
+ "type": "string",
2463
+ "description": "Base URL for the OpenAPI Swagger Documentation"
2464
+ },
2465
+ "path": {
2466
+ "type": "string",
2467
+ "description": "Path to an OpenAPI spec file",
2468
+ "resolvePath": true
2387
2469
  }
2388
- ]
2389
- }
2390
- },
2391
- "required": [
2392
- "serviceName"
2393
- ],
2394
- "additionalProperties": false
2395
- },
2396
- "watch": {
2397
- "anyOf": [
2398
- {
2470
+ }
2471
+ },
2472
+ "graphql": {
2399
2473
  "type": "object",
2400
2474
  "properties": {
2401
- "enabled": {
2402
- "default": true,
2403
- "anyOf": [
2475
+ "graphiql": {
2476
+ "type": "boolean"
2477
+ },
2478
+ "onSubgraphError": {
2479
+ "typeof": "function"
2480
+ },
2481
+ "defaultArgsAdapter": {
2482
+ "oneOf": [
2404
2483
  {
2405
- "type": "boolean"
2484
+ "typeof": "function"
2406
2485
  },
2407
2486
  {
2408
2487
  "type": "string"
2409
2488
  }
2410
2489
  ]
2411
2490
  },
2412
- "allow": {
2413
- "type": "array",
2414
- "items": {
2415
- "type": "string"
2416
- },
2417
- "minItems": 1,
2418
- "nullable": true,
2419
- "default": null
2491
+ "entities": {
2492
+ "type": "object",
2493
+ "patternProperties": {
2494
+ "^.*$": {
2495
+ "type": "object",
2496
+ "properties": {
2497
+ "pkey": {
2498
+ "type": "string"
2499
+ },
2500
+ "resolver": {
2501
+ "type": "object",
2502
+ "properties": {
2503
+ "name": {
2504
+ "type": "string"
2505
+ },
2506
+ "argsAdapter": {
2507
+ "anyOf": [
2508
+ {
2509
+ "typeof": "function"
2510
+ },
2511
+ {
2512
+ "type": "string"
2513
+ }
2514
+ ]
2515
+ },
2516
+ "partialResults": {
2517
+ "anyOf": [
2518
+ {
2519
+ "typeof": "function"
2520
+ },
2521
+ {
2522
+ "type": "string"
2523
+ }
2524
+ ]
2525
+ }
2526
+ },
2527
+ "required": [
2528
+ "name"
2529
+ ],
2530
+ "additionalProperties": false
2531
+ },
2532
+ "fkeys": {
2533
+ "type": "array",
2534
+ "items": {
2535
+ "type": "object",
2536
+ "properties": {
2537
+ "type": {
2538
+ "type": "string"
2539
+ },
2540
+ "field": {
2541
+ "type": "string"
2542
+ },
2543
+ "as": {
2544
+ "type": "string"
2545
+ },
2546
+ "pkey": {
2547
+ "type": "string"
2548
+ },
2549
+ "subgraph": {
2550
+ "type": "string"
2551
+ },
2552
+ "resolver": {
2553
+ "type": "object",
2554
+ "properties": {
2555
+ "name": {
2556
+ "type": "string"
2557
+ },
2558
+ "argsAdapter": {
2559
+ "anyOf": [
2560
+ {
2561
+ "typeof": "function"
2562
+ },
2563
+ {
2564
+ "type": "string"
2565
+ }
2566
+ ]
2567
+ },
2568
+ "partialResults": {
2569
+ "anyOf": [
2570
+ {
2571
+ "typeof": "function"
2572
+ },
2573
+ {
2574
+ "type": "string"
2575
+ }
2576
+ ]
2577
+ }
2578
+ },
2579
+ "required": [
2580
+ "name"
2581
+ ],
2582
+ "additionalProperties": false
2583
+ }
2584
+ },
2585
+ "required": [
2586
+ "type"
2587
+ ]
2588
+ }
2589
+ },
2590
+ "many": {
2591
+ "type": "array",
2592
+ "items": {
2593
+ "type": "object",
2594
+ "properties": {
2595
+ "type": {
2596
+ "type": "string"
2597
+ },
2598
+ "fkey": {
2599
+ "type": "string"
2600
+ },
2601
+ "as": {
2602
+ "type": "string"
2603
+ },
2604
+ "pkey": {
2605
+ "type": "string"
2606
+ },
2607
+ "subgraph": {
2608
+ "type": "string"
2609
+ },
2610
+ "resolver": {
2611
+ "type": "object",
2612
+ "properties": {
2613
+ "name": {
2614
+ "type": "string"
2615
+ },
2616
+ "argsAdapter": {
2617
+ "anyOf": [
2618
+ {
2619
+ "typeof": "function"
2620
+ },
2621
+ {
2622
+ "type": "string"
2623
+ }
2624
+ ]
2625
+ },
2626
+ "partialResults": {
2627
+ "anyOf": [
2628
+ {
2629
+ "typeof": "function"
2630
+ },
2631
+ {
2632
+ "type": "string"
2633
+ }
2634
+ ]
2635
+ }
2636
+ },
2637
+ "required": [
2638
+ "name"
2639
+ ],
2640
+ "additionalProperties": false
2641
+ }
2642
+ },
2643
+ "required": [
2644
+ "type",
2645
+ "fkey",
2646
+ "resolver"
2647
+ ]
2648
+ }
2649
+ }
2650
+ }
2651
+ }
2652
+ }
2420
2653
  },
2421
- "ignore": {
2422
- "type": "array",
2423
- "items": {
2424
- "type": "string"
2425
- },
2426
- "nullable": true,
2427
- "default": null
2654
+ "addEntitiesResolvers": {
2655
+ "type": "boolean",
2656
+ "default": false
2428
2657
  }
2429
2658
  },
2430
2659
  "additionalProperties": false
2431
2660
  },
2432
- {
2433
- "type": "boolean"
2661
+ "addEmptySchema": {
2662
+ "type": "boolean",
2663
+ "default": false
2434
2664
  },
2435
- {
2436
- "type": "string"
2665
+ "refreshTimeout": {
2666
+ "type": "integer",
2667
+ "minimum": 0,
2668
+ "default": 1000
2437
2669
  }
2438
- ]
2439
- },
2440
- "$schema": {
2441
- "type": "string"
2442
- },
2443
- "module": {
2444
- "type": "string"
2670
+ },
2671
+ "required": [],
2672
+ "default": {},
2673
+ "additionalProperties": false
2445
2674
  }
2446
2675
  },
2447
2676
  "additionalProperties": false,
@@ -3547,4 +3776,4 @@
3547
3776
  }
3548
3777
  }
3549
3778
  }
3550
- }
3779
+ }