stepzen 0.29.0 → 0.30.0-beta.0

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 (119) hide show
  1. package/README.md +417 -54
  2. package/lib/commands/import/curl.d.ts +48 -0
  3. package/lib/commands/import/curl.d.ts.map +1 -0
  4. package/lib/commands/import/curl.js +246 -0
  5. package/lib/commands/import/curl.js.map +1 -0
  6. package/lib/commands/import/graphql.d.ts +34 -0
  7. package/lib/commands/import/graphql.d.ts.map +1 -0
  8. package/lib/commands/import/graphql.js +118 -0
  9. package/lib/commands/import/graphql.js.map +1 -0
  10. package/lib/commands/import/index.d.ts +22 -0
  11. package/lib/commands/import/index.d.ts.map +1 -0
  12. package/lib/commands/import/index.js +165 -0
  13. package/lib/commands/import/index.js.map +1 -0
  14. package/lib/commands/import/mysql.d.ts +48 -0
  15. package/lib/commands/import/mysql.d.ts.map +1 -0
  16. package/lib/commands/import/mysql.js +145 -0
  17. package/lib/commands/import/mysql.js.map +1 -0
  18. package/lib/commands/import/postgresql.d.ts +51 -0
  19. package/lib/commands/import/postgresql.d.ts.map +1 -0
  20. package/lib/commands/import/postgresql.js +150 -0
  21. package/lib/commands/import/postgresql.js.map +1 -0
  22. package/lib/commands/import/presto.d.ts +49 -0
  23. package/lib/commands/import/presto.d.ts.map +1 -0
  24. package/lib/commands/import/presto.js +152 -0
  25. package/lib/commands/import/presto.js.map +1 -0
  26. package/lib/commands/import/snowflake.d.ts +53 -0
  27. package/lib/commands/import/snowflake.d.ts.map +1 -0
  28. package/lib/commands/import/snowflake.js +181 -0
  29. package/lib/commands/import/snowflake.js.map +1 -0
  30. package/lib/commands/list.d.ts.map +1 -1
  31. package/lib/commands/list.js +0 -2
  32. package/lib/commands/list.js.map +1 -1
  33. package/lib/commands/request.js +6 -6
  34. package/lib/commands/request.js.map +1 -1
  35. package/lib/commands/service.d.ts +1 -1
  36. package/lib/commands/service.d.ts.map +1 -1
  37. package/lib/commands/service.js +12 -12
  38. package/lib/commands/service.js.map +1 -1
  39. package/lib/generate/curl2sdl.d.ts +13 -25
  40. package/lib/generate/curl2sdl.d.ts.map +1 -1
  41. package/lib/generate/curl2sdl.js +52 -114
  42. package/lib/generate/curl2sdl.js.map +1 -1
  43. package/lib/generate/flags.d.ts +19 -0
  44. package/lib/generate/flags.d.ts.map +1 -0
  45. package/lib/generate/flags.js +74 -0
  46. package/lib/generate/flags.js.map +1 -0
  47. package/lib/generate/graphql2sdl.d.ts +5 -16
  48. package/lib/generate/graphql2sdl.d.ts.map +1 -1
  49. package/lib/generate/graphql2sdl.js +4 -49
  50. package/lib/generate/graphql2sdl.js.map +1 -1
  51. package/lib/generate/helpers.d.ts +5 -9
  52. package/lib/generate/helpers.d.ts.map +1 -1
  53. package/lib/generate/helpers.js +30 -37
  54. package/lib/generate/helpers.js.map +1 -1
  55. package/lib/generate/import-command.d.ts +25 -0
  56. package/lib/generate/import-command.d.ts.map +1 -0
  57. package/lib/generate/import-command.js +176 -0
  58. package/lib/generate/import-command.js.map +1 -0
  59. package/lib/generate/questions.d.ts +30 -0
  60. package/lib/generate/questions.d.ts.map +1 -0
  61. package/lib/generate/questions.js +50 -0
  62. package/lib/generate/questions.js.map +1 -0
  63. package/lib/generate/sql2sdl.d.ts +14 -18
  64. package/lib/generate/sql2sdl.d.ts.map +1 -1
  65. package/lib/generate/sql2sdl.js +29 -92
  66. package/lib/generate/sql2sdl.js.map +1 -1
  67. package/lib/hooks/prerun/check-upgrade.js +4 -4
  68. package/lib/hooks/prerun/check-upgrade.js.map +1 -1
  69. package/lib/shared/constants.d.ts +1 -0
  70. package/lib/shared/constants.d.ts.map +1 -1
  71. package/lib/shared/constants.js +2 -1
  72. package/lib/shared/constants.js.map +1 -1
  73. package/lib/shared/curl-parser.d.ts +3 -3
  74. package/lib/shared/curl-parser.d.ts.map +1 -1
  75. package/lib/shared/curl-parser.js +52 -39
  76. package/lib/shared/curl-parser.js.map +1 -1
  77. package/lib/shared/docker.d.ts +8 -36
  78. package/lib/shared/docker.d.ts.map +1 -1
  79. package/lib/shared/docker.js +44 -42
  80. package/lib/shared/docker.js.map +1 -1
  81. package/lib/shared/dsn-parser.d.ts +3 -0
  82. package/lib/shared/dsn-parser.d.ts.map +1 -0
  83. package/lib/shared/dsn-parser.js +28 -0
  84. package/lib/shared/dsn-parser.js.map +1 -0
  85. package/lib/shared/header-params-parser.d.ts +7 -5
  86. package/lib/shared/header-params-parser.d.ts.map +1 -1
  87. package/lib/shared/header-params-parser.js +55 -43
  88. package/lib/shared/header-params-parser.js.map +1 -1
  89. package/lib/shared/header.d.ts +2 -2
  90. package/lib/shared/header.d.ts.map +1 -1
  91. package/lib/shared/header.js +13 -7
  92. package/lib/shared/header.js.map +1 -1
  93. package/lib/shared/inquirer.d.ts +2 -0
  94. package/lib/shared/inquirer.d.ts.map +1 -1
  95. package/lib/shared/inquirer.js +12 -4
  96. package/lib/shared/inquirer.js.map +1 -1
  97. package/lib/shared/path-params-parser.d.ts +2 -2
  98. package/lib/shared/path-params-parser.d.ts.map +1 -1
  99. package/lib/shared/path-params-parser.js +11 -7
  100. package/lib/shared/path-params-parser.js.map +1 -1
  101. package/lib/shared/request-variables-parser.d.ts +2 -9
  102. package/lib/shared/request-variables-parser.d.ts.map +1 -1
  103. package/lib/shared/request-variables-parser.js +8 -8
  104. package/lib/shared/request-variables-parser.js.map +1 -1
  105. package/lib/shared/types.d.ts +33 -6
  106. package/lib/shared/types.d.ts.map +1 -1
  107. package/lib/shared/utils.d.ts +5 -13
  108. package/lib/shared/utils.d.ts.map +1 -1
  109. package/lib/shared/utils.js.map +1 -1
  110. package/oclif.manifest.json +684 -197
  111. package/package.json +6 -6
  112. package/lib/commands/import.d.ts +0 -85
  113. package/lib/commands/import.d.ts.map +0 -1
  114. package/lib/commands/import.js +0 -645
  115. package/lib/commands/import.js.map +0 -1
  116. package/lib/generate/index.d.ts +0 -6
  117. package/lib/generate/index.d.ts.map +0 -1
  118. package/lib/generate/index.js +0 -4
  119. package/lib/generate/index.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.29.0",
2
+ "version": "0.30.0-beta.0",
3
3
  "commands": {
4
4
  "deploy": {
5
5
  "id": "deploy",
@@ -72,202 +72,6 @@
72
72
  }
73
73
  }
74
74
  },
75
- "import": {
76
- "id": "import",
77
- "description": "Import a schema for an external data source or an API endpoint to your GraphQL API.",
78
- "strict": false,
79
- "usage": [
80
- "import curl [[CURLOPTS] URL] [--prefix=PREFIX] [--data=DATA] [--request=REQUEST] [--url=URL] [--header=HEADER] [--header-param=HEADER-PARAM] [--query-name=QUERY-NAME] [--query-type=QUERY-TYPE] [--path-params=PATH-PARAMS]",
81
- "import graphql [URL] [--prefix=PREFIX] [--header=HEADER] [--header-param=HEADER-PARAM]",
82
- "import mysql [--db-host=DB-HOST] [--db-user=DB-USER] [--db-password=DB-PASSWORD] [--db-database=DB-DATABASE] [--db-link-types] [--db-include=DB-INCLUDE]",
83
- "import mysql://[USER:PASSWORD@]HOST[:PORT][/DATABASE] [--db-link-types] [--db-include=DB-INCLUDE]",
84
- "import postgresql [--db-host=DB-HOST] [--db-user=DB-USER] [--db-password=DB-PASSWORD] [--db-database=DB-DATABASE] [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA]",
85
- "import postgresql://[USER:PASSWORD@]HOST[:PORT][/DATABASE] [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA]",
86
- "import snowflake [--db-user=DB-USER] [--db-password=DB-PASSWORD] [--db-database=DB-DATABASE] [--db-link-types] [--db-include=DB-INCLUDE] [--db-schema=DB-SCHEMA] [--snowflake-account-id=SNOWFLAKE-ACCOUNT-ID] [--snowflake-warehouse=SNOWFLAKE-WAREHOUSE]",
87
- "import snowflake://[USER[:PASSWORD]@]ACCOUNT_IDENTIFIER[/DATABASE][?schema=<SCHEMA>[&warehouse=<WAREHOUSE>]] [--db-link-types] [--db-include=DB-INCLUDE]"
88
- ],
89
- "pluginName": "stepzen",
90
- "pluginAlias": "stepzen",
91
- "pluginType": "core",
92
- "aliases": [],
93
- "flags": {
94
- "help": {
95
- "name": "help",
96
- "type": "boolean",
97
- "char": "h",
98
- "description": "Show CLI help",
99
- "allowNo": false
100
- },
101
- "non-interactive": {
102
- "name": "non-interactive",
103
- "type": "boolean",
104
- "description": "Disable all interactive prompts",
105
- "hidden": true,
106
- "allowNo": false
107
- },
108
- "dir": {
109
- "name": "dir",
110
- "type": "option",
111
- "description": "Working directory",
112
- "multiple": false
113
- },
114
- "silent": {
115
- "name": "silent",
116
- "type": "boolean",
117
- "hidden": true,
118
- "allowNo": false
119
- },
120
- "name": {
121
- "name": "name",
122
- "type": "option",
123
- "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
124
- "multiple": false
125
- },
126
- "overwrite": {
127
- "name": "overwrite",
128
- "type": "boolean",
129
- "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
130
- "hidden": true,
131
- "allowNo": false,
132
- "dependsOn": [
133
- "name"
134
- ]
135
- },
136
- "prefix": {
137
- "name": "prefix",
138
- "type": "option",
139
- "description": "[curl, graphql] Prefix to add to every type in the generated schema",
140
- "multiple": false
141
- },
142
- "data": {
143
- "name": "data",
144
- "type": "option",
145
- "char": "d",
146
- "hidden": true,
147
- "multiple": true,
148
- "aliases": [
149
- "data-ascii",
150
- "data-raw",
151
- "data-binary"
152
- ]
153
- },
154
- "request": {
155
- "name": "request",
156
- "type": "option",
157
- "char": "X",
158
- "hidden": true,
159
- "multiple": false
160
- },
161
- "url": {
162
- "name": "url",
163
- "type": "option",
164
- "hidden": true,
165
- "multiple": true
166
- },
167
- "header": {
168
- "name": "header",
169
- "type": "option",
170
- "char": "H",
171
- "description": "[curl, graphql] Specifies a request header to pass\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\"",
172
- "multiple": true
173
- },
174
- "header-param": {
175
- "name": "header-param",
176
- "type": "option",
177
- "description": "[curl, graphql] Specifies a parameter in a header value. Can be formed by taking a -H, --header flag and replacing the variable part of the header value with a $paramName placeholder. Repeat this flag once for each header with a parameter.\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\" \\\n\t--header-param 'Authorization: apikey $apikey'",
178
- "multiple": true
179
- },
180
- "query-name": {
181
- "name": "query-name",
182
- "type": "option",
183
- "description": "[curl] [curl] Property name to add to the Query type as a way to access the imported endpoint",
184
- "multiple": false
185
- },
186
- "query-type": {
187
- "name": "query-type",
188
- "type": "option",
189
- "description": "[curl] Name for the type returned by the curl request in the generated schema. The name specified by --query-type is not prefixed by --prefix if both flags are present.",
190
- "multiple": false
191
- },
192
- "path-params": {
193
- "name": "path-params",
194
- "type": "option",
195
- "description": "[curl] Specifies path parameters in the URL path. Can be formed by taking the original path and replacing the variable segments with $paramName placeholders.\n\nExample:\nstepzen import curl https://example.com/users/jane/posts/12 --path-params '/users/$userId/posts/$postId'",
196
- "multiple": false
197
- },
198
- "db-host": {
199
- "name": "db-host",
200
- "type": "option",
201
- "description": "[mysql, postgresql] Database host and optional port (as HOST[:PORT])",
202
- "multiple": false
203
- },
204
- "db-user": {
205
- "name": "db-user",
206
- "type": "option",
207
- "description": "[mysql, postgresql, snowflake] Database user name",
208
- "multiple": false
209
- },
210
- "db-password": {
211
- "name": "db-password",
212
- "type": "option",
213
- "description": "[mysql, postgresql, snowflake] Database password",
214
- "multiple": false
215
- },
216
- "db-database": {
217
- "name": "db-database",
218
- "type": "option",
219
- "description": "[mysql, postgresql, snowflake] Name of database to import",
220
- "multiple": false
221
- },
222
- "db-link-types": {
223
- "name": "db-link-types",
224
- "type": "boolean",
225
- "description": "[mysql, postgresql, snowflake] Automatically link types based on foreign key relationships using @materializer (https://stepzen.com/docs/features/linking-types)",
226
- "allowNo": false
227
- },
228
- "db-include": {
229
- "name": "db-include",
230
- "type": "option",
231
- "description": "[mysql, postgresql, snowflake] Should the generated GraphQL schema be based only on database views, only on tables or on both",
232
- "multiple": false,
233
- "options": [
234
- "tables-only",
235
- "views-only",
236
- "tables-and-views"
237
- ]
238
- },
239
- "db-schema": {
240
- "name": "db-schema",
241
- "type": "option",
242
- "description": "[postgresql, snowflake] Database schema to import tables from (default: public)",
243
- "multiple": false
244
- },
245
- "db-use-deprecated-2022-naming": {
246
- "name": "db-use-deprecated-2022-naming",
247
- "type": "boolean",
248
- "description": "[mysql, postgresql] Use the deprecated pre-2023 naming convention in the generated GraphQL schema:\n\t- the generated type and property names are auto-capitalized into PascalCase\n\t- the generated field names use the getCustomer and getCustomerList style.\n\nOn the other hand, when using the default naming convention:\n\t- the generated type and property names match exactly the DB table and column names\n\t- the generated field names use the customer and customerList style.",
249
- "allowNo": false
250
- },
251
- "snowflake-account-id": {
252
- "name": "snowflake-account-id",
253
- "type": "option",
254
- "description": "[snowflake] Snowflake account identifier in the orgname-accountname format. For more information, see the Snowflake documentation at https://docs.snowflake.com/en/user-guide/admin-account-identifier.html.",
255
- "multiple": false
256
- },
257
- "snowflake-warehouse": {
258
- "name": "snowflake-warehouse",
259
- "type": "option",
260
- "description": "[snowflake] Snowflake warehouse",
261
- "multiple": false
262
- }
263
- },
264
- "args": {
265
- "source": {
266
- "name": "source",
267
- "required": true
268
- }
269
- }
270
- },
271
75
  "init": {
272
76
  "id": "init",
273
77
  "description": "Initialize a StepZen workspace in the current directory.",
@@ -945,6 +749,689 @@
945
749
  }
946
750
  },
947
751
  "args": {}
752
+ },
753
+ "import:curl": {
754
+ "id": "import:curl",
755
+ "description": "Import a schema for a REST endpoint into your GraphQL API (uses the curl syntax).\n\nstepzen import curl automatically introspects a REST endpoint, generates a GraphQL schema for accessing this endpoint through a StepZen API, and adds the generated types and a query field into your GraphQL schema.",
756
+ "strict": false,
757
+ "pluginName": "stepzen",
758
+ "pluginAlias": "stepzen",
759
+ "pluginType": "core",
760
+ "aliases": [],
761
+ "flags": {
762
+ "help": {
763
+ "name": "help",
764
+ "type": "boolean",
765
+ "char": "h",
766
+ "description": "Show CLI help",
767
+ "allowNo": false
768
+ },
769
+ "non-interactive": {
770
+ "name": "non-interactive",
771
+ "type": "boolean",
772
+ "description": "Disable all interactive prompts",
773
+ "hidden": true,
774
+ "allowNo": false
775
+ },
776
+ "dir": {
777
+ "name": "dir",
778
+ "type": "option",
779
+ "description": "Working directory",
780
+ "multiple": false
781
+ },
782
+ "silent": {
783
+ "name": "silent",
784
+ "type": "boolean",
785
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
786
+ "hidden": true,
787
+ "allowNo": false
788
+ },
789
+ "name": {
790
+ "name": "name",
791
+ "type": "option",
792
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
793
+ "multiple": false
794
+ },
795
+ "overwrite": {
796
+ "name": "overwrite",
797
+ "type": "boolean",
798
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
799
+ "hidden": true,
800
+ "allowNo": false,
801
+ "dependsOn": [
802
+ "name"
803
+ ]
804
+ },
805
+ "prefix": {
806
+ "name": "prefix",
807
+ "type": "option",
808
+ "description": "Prefix to add to every type in the generated schema",
809
+ "multiple": false
810
+ },
811
+ "data": {
812
+ "name": "data",
813
+ "type": "option",
814
+ "char": "d",
815
+ "hidden": true,
816
+ "multiple": true,
817
+ "aliases": [
818
+ "data-ascii",
819
+ "data-raw",
820
+ "data-binary"
821
+ ]
822
+ },
823
+ "request": {
824
+ "name": "request",
825
+ "type": "option",
826
+ "char": "X",
827
+ "hidden": true,
828
+ "multiple": false
829
+ },
830
+ "url": {
831
+ "name": "url",
832
+ "type": "option",
833
+ "hidden": true,
834
+ "multiple": true
835
+ },
836
+ "header": {
837
+ "name": "header",
838
+ "type": "option",
839
+ "char": "H",
840
+ "description": "Specifies a request header to pass\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\"",
841
+ "multiple": true
842
+ },
843
+ "header-param": {
844
+ "name": "header-param",
845
+ "type": "option",
846
+ "description": "Specifies a parameter in a header value. Can be formed by taking a -H, --header flag and replacing the variable part of the header value with a $paramName placeholder. Repeat this flag once for each header with a parameter.\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\" \\\n\t--header-param 'Authorization: apikey $apikey'",
847
+ "multiple": true
848
+ },
849
+ "query-name": {
850
+ "name": "query-name",
851
+ "type": "option",
852
+ "description": "Property name to add to the Query type as a way to access the imported endpoint",
853
+ "multiple": false
854
+ },
855
+ "query-type": {
856
+ "name": "query-type",
857
+ "type": "option",
858
+ "description": "Name for the type returned by the curl request in the generated schema. The name specified by --query-type is not prefixed by --prefix if both flags are present.",
859
+ "multiple": false
860
+ },
861
+ "path-params": {
862
+ "name": "path-params",
863
+ "type": "option",
864
+ "description": "Specifies path parameters in the URL path. Can be formed by taking the original path and replacing the variable segments with $paramName placeholders.\n\nExample:\nstepzen import curl https://example.com/users/jane/posts/12 --path-params '/users/$userId/posts/$postId'",
865
+ "multiple": false
866
+ }
867
+ },
868
+ "args": {}
869
+ },
870
+ "import:graphql": {
871
+ "id": "import:graphql",
872
+ "description": "Import a GraphQL API as a subgraph into your GraphQL API.\n\nstepzen import graphql automatically introspects a GraphQL endpoint and merges the types, queries, mutations and subscriptions for accessing this endpoint through a StepZen API into your GraphQL schema.",
873
+ "strict": true,
874
+ "pluginName": "stepzen",
875
+ "pluginAlias": "stepzen",
876
+ "pluginType": "core",
877
+ "aliases": [],
878
+ "flags": {
879
+ "help": {
880
+ "name": "help",
881
+ "type": "boolean",
882
+ "char": "h",
883
+ "description": "Show CLI help",
884
+ "allowNo": false
885
+ },
886
+ "non-interactive": {
887
+ "name": "non-interactive",
888
+ "type": "boolean",
889
+ "description": "Disable all interactive prompts",
890
+ "hidden": true,
891
+ "allowNo": false
892
+ },
893
+ "dir": {
894
+ "name": "dir",
895
+ "type": "option",
896
+ "description": "Working directory",
897
+ "multiple": false
898
+ },
899
+ "silent": {
900
+ "name": "silent",
901
+ "type": "boolean",
902
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
903
+ "hidden": true,
904
+ "allowNo": false
905
+ },
906
+ "name": {
907
+ "name": "name",
908
+ "type": "option",
909
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
910
+ "multiple": false
911
+ },
912
+ "overwrite": {
913
+ "name": "overwrite",
914
+ "type": "boolean",
915
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
916
+ "hidden": true,
917
+ "allowNo": false,
918
+ "dependsOn": [
919
+ "name"
920
+ ]
921
+ },
922
+ "prefix": {
923
+ "name": "prefix",
924
+ "type": "option",
925
+ "description": "Prefix to add to every type in the generated schema",
926
+ "multiple": false
927
+ },
928
+ "header": {
929
+ "name": "header",
930
+ "type": "option",
931
+ "char": "H",
932
+ "description": "Specifies a request header to pass\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\"",
933
+ "multiple": true
934
+ },
935
+ "header-param": {
936
+ "name": "header-param",
937
+ "type": "option",
938
+ "description": "Specifies a parameter in a header value. Can be formed by taking a -H, --header flag and replacing the variable part of the header value with a $paramName placeholder. Repeat this flag once for each header with a parameter.\n\nExample:\nstepzen import curl https://example.com/api/customers \\\n\t-H \"Authorization: apikey SecretAPIKeyValue\" \\\n\t--header-param 'Authorization: apikey $apikey'",
939
+ "multiple": true
940
+ }
941
+ },
942
+ "args": {
943
+ "url": {
944
+ "name": "url"
945
+ }
946
+ }
947
+ },
948
+ "import": {
949
+ "id": "import",
950
+ "description": "Import a schema for an external data source or an API endpoint into your GraphQL API.\nSee more details with stepzen import [SOURCE] --help",
951
+ "strict": true,
952
+ "pluginName": "stepzen",
953
+ "pluginAlias": "stepzen",
954
+ "pluginType": "core",
955
+ "aliases": [],
956
+ "flags": {
957
+ "help": {
958
+ "name": "help",
959
+ "type": "boolean",
960
+ "char": "h",
961
+ "description": "Show CLI help",
962
+ "allowNo": false
963
+ },
964
+ "non-interactive": {
965
+ "name": "non-interactive",
966
+ "type": "boolean",
967
+ "description": "Disable all interactive prompts",
968
+ "hidden": true,
969
+ "allowNo": false
970
+ },
971
+ "dir": {
972
+ "name": "dir",
973
+ "type": "option",
974
+ "description": "Working directory",
975
+ "multiple": false
976
+ }
977
+ },
978
+ "args": {
979
+ "source": {
980
+ "name": "source",
981
+ "description": "kind of the data source: curl, graphql, mysql, postgresql, snowflake (or a full DSN string)"
982
+ }
983
+ }
984
+ },
985
+ "import:mysql": {
986
+ "id": "import:mysql",
987
+ "description": "Import a schema for a MySQL data source into your GraphQL API.\n\nstepzen import mysql automatically introspects a MySQL database, generates a GraphQL schema for accessing this database through a StepZen API, and merges the generated types, queries and mutations into your into your GraphQL schema.",
988
+ "strict": true,
989
+ "pluginName": "stepzen",
990
+ "pluginAlias": "stepzen",
991
+ "pluginType": "core",
992
+ "aliases": [
993
+ "import:singlestore"
994
+ ],
995
+ "flags": {
996
+ "help": {
997
+ "name": "help",
998
+ "type": "boolean",
999
+ "char": "h",
1000
+ "description": "Show CLI help",
1001
+ "allowNo": false
1002
+ },
1003
+ "non-interactive": {
1004
+ "name": "non-interactive",
1005
+ "type": "boolean",
1006
+ "description": "Disable all interactive prompts",
1007
+ "hidden": true,
1008
+ "allowNo": false
1009
+ },
1010
+ "dir": {
1011
+ "name": "dir",
1012
+ "type": "option",
1013
+ "description": "Working directory",
1014
+ "multiple": false
1015
+ },
1016
+ "silent": {
1017
+ "name": "silent",
1018
+ "type": "boolean",
1019
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
1020
+ "hidden": true,
1021
+ "allowNo": false
1022
+ },
1023
+ "name": {
1024
+ "name": "name",
1025
+ "type": "option",
1026
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
1027
+ "multiple": false
1028
+ },
1029
+ "overwrite": {
1030
+ "name": "overwrite",
1031
+ "type": "boolean",
1032
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
1033
+ "hidden": true,
1034
+ "allowNo": false,
1035
+ "dependsOn": [
1036
+ "name"
1037
+ ]
1038
+ },
1039
+ "db-host": {
1040
+ "name": "db-host",
1041
+ "type": "option",
1042
+ "description": "Database host and optional port (as HOST[:PORT])",
1043
+ "multiple": false
1044
+ },
1045
+ "db-user": {
1046
+ "name": "db-user",
1047
+ "type": "option",
1048
+ "description": "Database user name",
1049
+ "multiple": false
1050
+ },
1051
+ "db-password": {
1052
+ "name": "db-password",
1053
+ "type": "option",
1054
+ "description": "Database password",
1055
+ "multiple": false
1056
+ },
1057
+ "db-database": {
1058
+ "name": "db-database",
1059
+ "type": "option",
1060
+ "description": "Name of database to import",
1061
+ "multiple": false
1062
+ },
1063
+ "db-link-types": {
1064
+ "name": "db-link-types",
1065
+ "type": "boolean",
1066
+ "description": "Automatically link types based on foreign key relationships using @materializer (https://stepzen.com/docs/features/linking-types)",
1067
+ "allowNo": false
1068
+ },
1069
+ "db-include": {
1070
+ "name": "db-include",
1071
+ "type": "option",
1072
+ "description": "Should the generated GraphQL schema be based only on database views, only on tables or on both",
1073
+ "multiple": false,
1074
+ "options": [
1075
+ "tables-only",
1076
+ "views-only",
1077
+ "tables-and-views"
1078
+ ]
1079
+ },
1080
+ "db-use-deprecated-2022-naming": {
1081
+ "name": "db-use-deprecated-2022-naming",
1082
+ "type": "boolean",
1083
+ "description": "Use the deprecated pre-2023 naming convention in the generated GraphQL schema:\n\t- the generated type and property names are auto-capitalized into PascalCase\n\t- the generated field names use the getCustomer and getCustomerList style.\n\nOn the other hand, when using the default naming convention:\n\t- the generated type and property names match exactly the DB table and column names\n\t- the generated field names use the customer and customerList style.",
1084
+ "allowNo": false
1085
+ }
1086
+ },
1087
+ "args": {
1088
+ "dsn": {
1089
+ "name": "dsn",
1090
+ "description": "(optional) Data Source Name (DSN) of a MySQL database.\nExample: mysql://user:password@host:port/database\n\nFlags, such as --db-host, override the corresponding parts of the DSN (if both are provided)."
1091
+ }
1092
+ }
1093
+ },
1094
+ "import:postgresql": {
1095
+ "id": "import:postgresql",
1096
+ "description": "Import a schema for a PostgreSQL data source into your GraphQL API.\n\nstepzen import postgresql automatically introspects a PostgreSQL database, generates a GraphQL schema for accessing this database through a StepZen API, and merges the generated types, queries and mutations into your GraphQL schema.",
1097
+ "strict": true,
1098
+ "pluginName": "stepzen",
1099
+ "pluginAlias": "stepzen",
1100
+ "pluginType": "core",
1101
+ "aliases": [
1102
+ "import:postgres"
1103
+ ],
1104
+ "flags": {
1105
+ "help": {
1106
+ "name": "help",
1107
+ "type": "boolean",
1108
+ "char": "h",
1109
+ "description": "Show CLI help",
1110
+ "allowNo": false
1111
+ },
1112
+ "non-interactive": {
1113
+ "name": "non-interactive",
1114
+ "type": "boolean",
1115
+ "description": "Disable all interactive prompts",
1116
+ "hidden": true,
1117
+ "allowNo": false
1118
+ },
1119
+ "dir": {
1120
+ "name": "dir",
1121
+ "type": "option",
1122
+ "description": "Working directory",
1123
+ "multiple": false
1124
+ },
1125
+ "silent": {
1126
+ "name": "silent",
1127
+ "type": "boolean",
1128
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
1129
+ "hidden": true,
1130
+ "allowNo": false
1131
+ },
1132
+ "name": {
1133
+ "name": "name",
1134
+ "type": "option",
1135
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
1136
+ "multiple": false
1137
+ },
1138
+ "overwrite": {
1139
+ "name": "overwrite",
1140
+ "type": "boolean",
1141
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
1142
+ "hidden": true,
1143
+ "allowNo": false,
1144
+ "dependsOn": [
1145
+ "name"
1146
+ ]
1147
+ },
1148
+ "db-host": {
1149
+ "name": "db-host",
1150
+ "type": "option",
1151
+ "description": "Database host and optional port (as HOST[:PORT])",
1152
+ "multiple": false
1153
+ },
1154
+ "db-user": {
1155
+ "name": "db-user",
1156
+ "type": "option",
1157
+ "description": "Database user name",
1158
+ "multiple": false
1159
+ },
1160
+ "db-password": {
1161
+ "name": "db-password",
1162
+ "type": "option",
1163
+ "description": "Database password",
1164
+ "multiple": false
1165
+ },
1166
+ "db-database": {
1167
+ "name": "db-database",
1168
+ "type": "option",
1169
+ "description": "Name of database to import",
1170
+ "multiple": false
1171
+ },
1172
+ "db-schema": {
1173
+ "name": "db-schema",
1174
+ "type": "option",
1175
+ "description": "Database schema to import tables from (default: public)",
1176
+ "multiple": false
1177
+ },
1178
+ "db-link-types": {
1179
+ "name": "db-link-types",
1180
+ "type": "boolean",
1181
+ "description": "Automatically link types based on foreign key relationships using @materializer (https://stepzen.com/docs/features/linking-types)",
1182
+ "allowNo": false
1183
+ },
1184
+ "db-include": {
1185
+ "name": "db-include",
1186
+ "type": "option",
1187
+ "description": "Should the generated GraphQL schema be based only on database views, only on tables or on both",
1188
+ "multiple": false,
1189
+ "options": [
1190
+ "tables-only",
1191
+ "views-only",
1192
+ "tables-and-views"
1193
+ ]
1194
+ },
1195
+ "db-use-deprecated-2022-naming": {
1196
+ "name": "db-use-deprecated-2022-naming",
1197
+ "type": "boolean",
1198
+ "description": "Use the deprecated pre-2023 naming convention in the generated GraphQL schema:\n\t- the generated type and property names are auto-capitalized into PascalCase\n\t- the generated field names use the getCustomer and getCustomerList style.\n\nOn the other hand, when using the default naming convention:\n\t- the generated type and property names match exactly the DB table and column names\n\t- the generated field names use the customer and customerList style.",
1199
+ "allowNo": false
1200
+ }
1201
+ },
1202
+ "args": {
1203
+ "dsn": {
1204
+ "name": "dsn",
1205
+ "description": "(optional) Data Source Name (DSN) of a PostgreSQL database.\nExample: postgresql://user:password@host:port/database?schema=schema\n\nFlags, such as --db-host, override the corresponding parts of the DSN (if both are provided)."
1206
+ }
1207
+ }
1208
+ },
1209
+ "import:presto": {
1210
+ "id": "import:presto",
1211
+ "description": "Import a schema for a Presto data source into your GraphQL API.\n\nstepzen import presto automatically introspects a Presto database, generates a GraphQL schema for accessing this database through a StepZen API, and merges the generated types, queries and mutations into your into your GraphQL schema.",
1212
+ "strict": true,
1213
+ "pluginName": "stepzen",
1214
+ "pluginAlias": "stepzen",
1215
+ "pluginType": "core",
1216
+ "hidden": true,
1217
+ "aliases": [],
1218
+ "flags": {
1219
+ "help": {
1220
+ "name": "help",
1221
+ "type": "boolean",
1222
+ "char": "h",
1223
+ "description": "Show CLI help",
1224
+ "allowNo": false
1225
+ },
1226
+ "non-interactive": {
1227
+ "name": "non-interactive",
1228
+ "type": "boolean",
1229
+ "description": "Disable all interactive prompts",
1230
+ "hidden": true,
1231
+ "allowNo": false
1232
+ },
1233
+ "dir": {
1234
+ "name": "dir",
1235
+ "type": "option",
1236
+ "description": "Working directory",
1237
+ "multiple": false
1238
+ },
1239
+ "silent": {
1240
+ "name": "silent",
1241
+ "type": "boolean",
1242
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
1243
+ "hidden": true,
1244
+ "allowNo": false
1245
+ },
1246
+ "name": {
1247
+ "name": "name",
1248
+ "type": "option",
1249
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
1250
+ "multiple": false
1251
+ },
1252
+ "overwrite": {
1253
+ "name": "overwrite",
1254
+ "type": "boolean",
1255
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
1256
+ "hidden": true,
1257
+ "allowNo": false,
1258
+ "dependsOn": [
1259
+ "name"
1260
+ ]
1261
+ },
1262
+ "db-host": {
1263
+ "name": "db-host",
1264
+ "type": "option",
1265
+ "description": "Database host and optional port (as HOST[:PORT])",
1266
+ "multiple": false
1267
+ },
1268
+ "db-user": {
1269
+ "name": "db-user",
1270
+ "type": "option",
1271
+ "description": "Database user name",
1272
+ "multiple": false
1273
+ },
1274
+ "db-password": {
1275
+ "name": "db-password",
1276
+ "type": "option",
1277
+ "description": "Database password",
1278
+ "multiple": false
1279
+ },
1280
+ "db-catalog": {
1281
+ "name": "db-catalog",
1282
+ "type": "option",
1283
+ "description": "Name of the catalog to import",
1284
+ "multiple": false
1285
+ },
1286
+ "db-schema": {
1287
+ "name": "db-schema",
1288
+ "type": "option",
1289
+ "description": "Database schema to import tables from (default: public)",
1290
+ "multiple": false
1291
+ },
1292
+ "db-link-types": {
1293
+ "name": "db-link-types",
1294
+ "type": "boolean",
1295
+ "description": "Automatically link types based on foreign key relationships using @materializer (https://stepzen.com/docs/features/linking-types)",
1296
+ "allowNo": false
1297
+ },
1298
+ "db-include": {
1299
+ "name": "db-include",
1300
+ "type": "option",
1301
+ "description": "Should the generated GraphQL schema be based only on database views, only on tables or on both",
1302
+ "multiple": false,
1303
+ "options": [
1304
+ "tables-only",
1305
+ "views-only",
1306
+ "tables-and-views"
1307
+ ]
1308
+ }
1309
+ },
1310
+ "args": {
1311
+ "dsn": {
1312
+ "name": "dsn",
1313
+ "description": "(optional) Data Source Name (DSN) of a Presto data source.\nExample: presto://user:password@host:port/catalog\n\nFlags, such as --db-host, override the corresponding parts of the DSN (if both are provided)."
1314
+ }
1315
+ }
1316
+ },
1317
+ "import:snowflake": {
1318
+ "id": "import:snowflake",
1319
+ "description": "Import a schema for a Snowflake data source into your GraphQL API.\n\nstepzen import snowflake automatically introspects a Snowflake database, generates a GraphQL schema for accessing this database through a StepZen API, and merges the generated types, queries and mutations into your GraphQL schema.",
1320
+ "strict": true,
1321
+ "pluginName": "stepzen",
1322
+ "pluginAlias": "stepzen",
1323
+ "pluginType": "core",
1324
+ "aliases": [],
1325
+ "flags": {
1326
+ "help": {
1327
+ "name": "help",
1328
+ "type": "boolean",
1329
+ "char": "h",
1330
+ "description": "Show CLI help",
1331
+ "allowNo": false
1332
+ },
1333
+ "non-interactive": {
1334
+ "name": "non-interactive",
1335
+ "type": "boolean",
1336
+ "description": "Disable all interactive prompts",
1337
+ "hidden": true,
1338
+ "allowNo": false
1339
+ },
1340
+ "dir": {
1341
+ "name": "dir",
1342
+ "type": "option",
1343
+ "description": "Working directory",
1344
+ "multiple": false
1345
+ },
1346
+ "silent": {
1347
+ "name": "silent",
1348
+ "type": "boolean",
1349
+ "description": "This is an internal flag passed by the (no-arg) Import command when it launches a data-source specific import command. The intent is to avoid showing a welcome message twice (if its already been shown by the (no-arg) Import command).",
1350
+ "hidden": true,
1351
+ "allowNo": false
1352
+ },
1353
+ "name": {
1354
+ "name": "name",
1355
+ "type": "option",
1356
+ "description": "Subfolder inside the workspace folder to save the imported schema files to. Defaults to the name of the imported schema.",
1357
+ "multiple": false
1358
+ },
1359
+ "overwrite": {
1360
+ "name": "overwrite",
1361
+ "type": "boolean",
1362
+ "description": "Overwrite any existing schema with the same name. Cannot be used without also providing a --name flag.",
1363
+ "hidden": true,
1364
+ "allowNo": false,
1365
+ "dependsOn": [
1366
+ "name"
1367
+ ]
1368
+ },
1369
+ "db-user": {
1370
+ "name": "db-user",
1371
+ "type": "option",
1372
+ "description": "Database user name",
1373
+ "multiple": false
1374
+ },
1375
+ "db-password": {
1376
+ "name": "db-password",
1377
+ "type": "option",
1378
+ "description": "Database password",
1379
+ "multiple": false
1380
+ },
1381
+ "db-database": {
1382
+ "name": "db-database",
1383
+ "type": "option",
1384
+ "description": "Name of database to import",
1385
+ "multiple": false
1386
+ },
1387
+ "db-schema": {
1388
+ "name": "db-schema",
1389
+ "type": "option",
1390
+ "description": "Database schema to import tables from (default: PUBLIC)",
1391
+ "multiple": false
1392
+ },
1393
+ "db-link-types": {
1394
+ "name": "db-link-types",
1395
+ "type": "boolean",
1396
+ "description": "Automatically link types based on foreign key relationships using @materializer (https://stepzen.com/docs/features/linking-types)",
1397
+ "allowNo": false
1398
+ },
1399
+ "db-include": {
1400
+ "name": "db-include",
1401
+ "type": "option",
1402
+ "description": "Should the generated GraphQL schema be based only on database views, only on tables or on both",
1403
+ "multiple": false,
1404
+ "options": [
1405
+ "tables-only",
1406
+ "views-only",
1407
+ "tables-and-views"
1408
+ ]
1409
+ },
1410
+ "db-use-deprecated-2022-naming": {
1411
+ "name": "db-use-deprecated-2022-naming",
1412
+ "type": "boolean",
1413
+ "description": "Use the deprecated pre-2023 naming convention in the generated GraphQL schema:\n\t- the generated type and property names are auto-capitalized into PascalCase\n\t- the generated field names use the getCustomer and getCustomerList style.\n\nOn the other hand, when using the default naming convention:\n\t- the generated type and property names match exactly the DB table and column names\n\t- the generated field names use the customer and customerList style.",
1414
+ "allowNo": false
1415
+ },
1416
+ "snowflake-account-id": {
1417
+ "name": "snowflake-account-id",
1418
+ "type": "option",
1419
+ "description": "Snowflake account identifier in the orgname-accountname format. For more information, see the Snowflake documentation at https://docs.snowflake.com/en/user-guide/admin-account-identifier.html.",
1420
+ "multiple": false
1421
+ },
1422
+ "snowflake-warehouse": {
1423
+ "name": "snowflake-warehouse",
1424
+ "type": "option",
1425
+ "description": "Snowflake warehouse",
1426
+ "multiple": false
1427
+ }
1428
+ },
1429
+ "args": {
1430
+ "dsn": {
1431
+ "name": "dsn",
1432
+ "description": "(optional) Data Source Name (DSN) of a Snowflake database.\nExample: snowflake://user:password@orgname-accountname/database?warehouse=warehouse&schema=schema\n\nFlags, such as --db-host, override the corresponding parts of the DSN (if both are provided)."
1433
+ }
1434
+ }
948
1435
  }
949
1436
  }
950
1437
  }