@postgres-language-server/cli-aarch64-apple-darwin 0.17.2 → 0.19.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.
- package/package.json +1 -1
- package/postgres-language-server +0 -0
- package/schema.json +421 -22
package/package.json
CHANGED
package/postgres-language-server
CHANGED
|
Binary file
|
package/schema.json
CHANGED
|
@@ -77,6 +77,17 @@
|
|
|
77
77
|
}
|
|
78
78
|
]
|
|
79
79
|
},
|
|
80
|
+
"splinter": {
|
|
81
|
+
"description": "The configuration for splinter",
|
|
82
|
+
"anyOf": [
|
|
83
|
+
{
|
|
84
|
+
"$ref": "#/definitions/SplinterConfiguration"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "null"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
80
91
|
"typecheck": {
|
|
81
92
|
"description": "The configuration for type checking",
|
|
82
93
|
"anyOf": [
|
|
@@ -221,7 +232,7 @@
|
|
|
221
232
|
]
|
|
222
233
|
},
|
|
223
234
|
"ignore": {
|
|
224
|
-
"description": "A list of Unix shell style patterns. The
|
|
235
|
+
"description": "A list of Unix shell style patterns. The linter will ignore files/folders that will match these patterns.",
|
|
225
236
|
"anyOf": [
|
|
226
237
|
{
|
|
227
238
|
"$ref": "#/definitions/StringSet"
|
|
@@ -232,7 +243,7 @@
|
|
|
232
243
|
]
|
|
233
244
|
},
|
|
234
245
|
"include": {
|
|
235
|
-
"description": "A list of Unix shell style patterns. The
|
|
246
|
+
"description": "A list of Unix shell style patterns. The linter will include files/folders that will match these patterns.",
|
|
236
247
|
"anyOf": [
|
|
237
248
|
{
|
|
238
249
|
"$ref": "#/definitions/StringSet"
|
|
@@ -246,7 +257,37 @@
|
|
|
246
257
|
"description": "List of rules",
|
|
247
258
|
"anyOf": [
|
|
248
259
|
{
|
|
249
|
-
"$ref": "#/definitions/
|
|
260
|
+
"$ref": "#/definitions/LinterRules"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"type": "null"
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"additionalProperties": false
|
|
269
|
+
},
|
|
270
|
+
"LinterRules": {
|
|
271
|
+
"type": "object",
|
|
272
|
+
"properties": {
|
|
273
|
+
"all": {
|
|
274
|
+
"description": "It enables ALL rules. The rules that belong to `nursery` won't be enabled.",
|
|
275
|
+
"type": [
|
|
276
|
+
"boolean",
|
|
277
|
+
"null"
|
|
278
|
+
]
|
|
279
|
+
},
|
|
280
|
+
"recommended": {
|
|
281
|
+
"description": "It enables the lint rules recommended by Postgres Language Server. `true` by default.",
|
|
282
|
+
"type": [
|
|
283
|
+
"boolean",
|
|
284
|
+
"null"
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
"safety": {
|
|
288
|
+
"anyOf": [
|
|
289
|
+
{
|
|
290
|
+
"$ref": "#/definitions/Safety"
|
|
250
291
|
},
|
|
251
292
|
{
|
|
252
293
|
"type": "null"
|
|
@@ -279,6 +320,104 @@
|
|
|
279
320
|
},
|
|
280
321
|
"additionalProperties": false
|
|
281
322
|
},
|
|
323
|
+
"Performance": {
|
|
324
|
+
"description": "A list of rules that belong to this group",
|
|
325
|
+
"type": "object",
|
|
326
|
+
"properties": {
|
|
327
|
+
"all": {
|
|
328
|
+
"description": "It enables ALL rules for this group.",
|
|
329
|
+
"type": [
|
|
330
|
+
"boolean",
|
|
331
|
+
"null"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
"authRlsInitplan": {
|
|
335
|
+
"description": "Auth RLS Initialization Plan: Detects if calls to `current_setting()` and `auth.()` in RLS policies are being unnecessarily re-evaluated for each row",
|
|
336
|
+
"anyOf": [
|
|
337
|
+
{
|
|
338
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"type": "null"
|
|
342
|
+
}
|
|
343
|
+
]
|
|
344
|
+
},
|
|
345
|
+
"duplicateIndex": {
|
|
346
|
+
"description": "Duplicate Index: Detects cases where two ore more identical indexes exist.",
|
|
347
|
+
"anyOf": [
|
|
348
|
+
{
|
|
349
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"type": "null"
|
|
353
|
+
}
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
"multiplePermissivePolicies": {
|
|
357
|
+
"description": "Multiple Permissive Policies: Detects if multiple permissive row level security policies are present on a table for the same `role` and `action` (e.g. insert). Multiple permissive policies are suboptimal for performance as each policy must be executed for every relevant query.",
|
|
358
|
+
"anyOf": [
|
|
359
|
+
{
|
|
360
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"type": "null"
|
|
364
|
+
}
|
|
365
|
+
]
|
|
366
|
+
},
|
|
367
|
+
"noPrimaryKey": {
|
|
368
|
+
"description": "No Primary Key: Detects if a table does not have a primary key. Tables without a primary key can be inefficient to interact with at scale.",
|
|
369
|
+
"anyOf": [
|
|
370
|
+
{
|
|
371
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"type": "null"
|
|
375
|
+
}
|
|
376
|
+
]
|
|
377
|
+
},
|
|
378
|
+
"recommended": {
|
|
379
|
+
"description": "It enables the recommended rules for this group",
|
|
380
|
+
"type": [
|
|
381
|
+
"boolean",
|
|
382
|
+
"null"
|
|
383
|
+
]
|
|
384
|
+
},
|
|
385
|
+
"tableBloat": {
|
|
386
|
+
"description": "Table Bloat: Detects if a table has excess bloat and may benefit from maintenance operations like vacuum full or cluster.",
|
|
387
|
+
"anyOf": [
|
|
388
|
+
{
|
|
389
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"type": "null"
|
|
393
|
+
}
|
|
394
|
+
]
|
|
395
|
+
},
|
|
396
|
+
"unindexedForeignKeys": {
|
|
397
|
+
"description": "Unindexed foreign keys: Identifies foreign key constraints without a covering index, which can impact database performance.",
|
|
398
|
+
"anyOf": [
|
|
399
|
+
{
|
|
400
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"type": "null"
|
|
404
|
+
}
|
|
405
|
+
]
|
|
406
|
+
},
|
|
407
|
+
"unusedIndex": {
|
|
408
|
+
"description": "Unused Index: Detects if an index has never been used and may be a candidate for removal.",
|
|
409
|
+
"anyOf": [
|
|
410
|
+
{
|
|
411
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"type": "null"
|
|
415
|
+
}
|
|
416
|
+
]
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
"additionalProperties": false
|
|
420
|
+
},
|
|
282
421
|
"PlPgSqlCheckConfiguration": {
|
|
283
422
|
"description": "The configuration for type checking.",
|
|
284
423
|
"type": "object",
|
|
@@ -329,30 +468,26 @@
|
|
|
329
468
|
},
|
|
330
469
|
"additionalProperties": false
|
|
331
470
|
},
|
|
332
|
-
"
|
|
471
|
+
"RuleWithSplinterRuleOptions": {
|
|
333
472
|
"type": "object",
|
|
473
|
+
"required": [
|
|
474
|
+
"level",
|
|
475
|
+
"options"
|
|
476
|
+
],
|
|
334
477
|
"properties": {
|
|
335
|
-
"
|
|
336
|
-
"description": "
|
|
337
|
-
"
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
},
|
|
342
|
-
"recommended": {
|
|
343
|
-
"description": "It enables the lint rules recommended by Postgres Language Server. `true` by default.",
|
|
344
|
-
"type": [
|
|
345
|
-
"boolean",
|
|
346
|
-
"null"
|
|
478
|
+
"level": {
|
|
479
|
+
"description": "The severity of the emitted diagnostics by the rule",
|
|
480
|
+
"allOf": [
|
|
481
|
+
{
|
|
482
|
+
"$ref": "#/definitions/RulePlainConfiguration"
|
|
483
|
+
}
|
|
347
484
|
]
|
|
348
485
|
},
|
|
349
|
-
"
|
|
350
|
-
"
|
|
351
|
-
|
|
352
|
-
"$ref": "#/definitions/Safety"
|
|
353
|
-
},
|
|
486
|
+
"options": {
|
|
487
|
+
"description": "Rule's options",
|
|
488
|
+
"allOf": [
|
|
354
489
|
{
|
|
355
|
-
"
|
|
490
|
+
"$ref": "#/definitions/SplinterRuleOptions"
|
|
356
491
|
}
|
|
357
492
|
]
|
|
358
493
|
}
|
|
@@ -743,6 +878,270 @@
|
|
|
743
878
|
},
|
|
744
879
|
"additionalProperties": false
|
|
745
880
|
},
|
|
881
|
+
"Security": {
|
|
882
|
+
"description": "A list of rules that belong to this group",
|
|
883
|
+
"type": "object",
|
|
884
|
+
"properties": {
|
|
885
|
+
"all": {
|
|
886
|
+
"description": "It enables ALL rules for this group.",
|
|
887
|
+
"type": [
|
|
888
|
+
"boolean",
|
|
889
|
+
"null"
|
|
890
|
+
]
|
|
891
|
+
},
|
|
892
|
+
"authUsersExposed": {
|
|
893
|
+
"description": "Exposed Auth Users: Detects if auth.users is exposed to anon or authenticated roles via a view or materialized view in schemas exposed to PostgREST, potentially compromising user data security.",
|
|
894
|
+
"anyOf": [
|
|
895
|
+
{
|
|
896
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"type": "null"
|
|
900
|
+
}
|
|
901
|
+
]
|
|
902
|
+
},
|
|
903
|
+
"extensionInPublic": {
|
|
904
|
+
"description": "Extension in Public: Detects extensions installed in the `public` schema.",
|
|
905
|
+
"anyOf": [
|
|
906
|
+
{
|
|
907
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"type": "null"
|
|
911
|
+
}
|
|
912
|
+
]
|
|
913
|
+
},
|
|
914
|
+
"extensionVersionsOutdated": {
|
|
915
|
+
"description": "Extension Versions Outdated: Detects extensions that are not using the default (recommended) version.",
|
|
916
|
+
"anyOf": [
|
|
917
|
+
{
|
|
918
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"type": "null"
|
|
922
|
+
}
|
|
923
|
+
]
|
|
924
|
+
},
|
|
925
|
+
"fkeyToAuthUnique": {
|
|
926
|
+
"description": "Foreign Key to Auth Unique Constraint: Detects user defined foreign keys to unique constraints in the auth schema.",
|
|
927
|
+
"anyOf": [
|
|
928
|
+
{
|
|
929
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"type": "null"
|
|
933
|
+
}
|
|
934
|
+
]
|
|
935
|
+
},
|
|
936
|
+
"foreignTableInApi": {
|
|
937
|
+
"description": "Foreign Table in API: Detects foreign tables that are accessible over APIs. Foreign tables do not respect row level security policies.",
|
|
938
|
+
"anyOf": [
|
|
939
|
+
{
|
|
940
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"type": "null"
|
|
944
|
+
}
|
|
945
|
+
]
|
|
946
|
+
},
|
|
947
|
+
"functionSearchPathMutable": {
|
|
948
|
+
"description": "Function Search Path Mutable: Detects functions where the search_path parameter is not set.",
|
|
949
|
+
"anyOf": [
|
|
950
|
+
{
|
|
951
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"type": "null"
|
|
955
|
+
}
|
|
956
|
+
]
|
|
957
|
+
},
|
|
958
|
+
"insecureQueueExposedInApi": {
|
|
959
|
+
"description": "Insecure Queue Exposed in API: Detects cases where an insecure Queue is exposed over Data APIs",
|
|
960
|
+
"anyOf": [
|
|
961
|
+
{
|
|
962
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"type": "null"
|
|
966
|
+
}
|
|
967
|
+
]
|
|
968
|
+
},
|
|
969
|
+
"materializedViewInApi": {
|
|
970
|
+
"description": "Materialized View in API: Detects materialized views that are accessible over the Data APIs.",
|
|
971
|
+
"anyOf": [
|
|
972
|
+
{
|
|
973
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"type": "null"
|
|
977
|
+
}
|
|
978
|
+
]
|
|
979
|
+
},
|
|
980
|
+
"policyExistsRlsDisabled": {
|
|
981
|
+
"description": "Policy Exists RLS Disabled: Detects cases where row level security (RLS) policies have been created, but RLS has not been enabled for the underlying table.",
|
|
982
|
+
"anyOf": [
|
|
983
|
+
{
|
|
984
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"type": "null"
|
|
988
|
+
}
|
|
989
|
+
]
|
|
990
|
+
},
|
|
991
|
+
"recommended": {
|
|
992
|
+
"description": "It enables the recommended rules for this group",
|
|
993
|
+
"type": [
|
|
994
|
+
"boolean",
|
|
995
|
+
"null"
|
|
996
|
+
]
|
|
997
|
+
},
|
|
998
|
+
"rlsDisabledInPublic": {
|
|
999
|
+
"description": "RLS Disabled in Public: Detects cases where row level security (RLS) has not been enabled on tables in schemas exposed to PostgREST",
|
|
1000
|
+
"anyOf": [
|
|
1001
|
+
{
|
|
1002
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"type": "null"
|
|
1006
|
+
}
|
|
1007
|
+
]
|
|
1008
|
+
},
|
|
1009
|
+
"rlsEnabledNoPolicy": {
|
|
1010
|
+
"description": "RLS Enabled No Policy: Detects cases where row level security (RLS) has been enabled on a table but no RLS policies have been created.",
|
|
1011
|
+
"anyOf": [
|
|
1012
|
+
{
|
|
1013
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"type": "null"
|
|
1017
|
+
}
|
|
1018
|
+
]
|
|
1019
|
+
},
|
|
1020
|
+
"rlsReferencesUserMetadata": {
|
|
1021
|
+
"description": "RLS references user metadata: Detects when Supabase Auth user_metadata is referenced insecurely in a row level security (RLS) policy.",
|
|
1022
|
+
"anyOf": [
|
|
1023
|
+
{
|
|
1024
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"type": "null"
|
|
1028
|
+
}
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
1031
|
+
"securityDefinerView": {
|
|
1032
|
+
"description": "Security Definer View: Detects views defined with the SECURITY DEFINER property. These views enforce Postgres permissions and row level security policies (RLS) of the view creator, rather than that of the querying user",
|
|
1033
|
+
"anyOf": [
|
|
1034
|
+
{
|
|
1035
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
"type": "null"
|
|
1039
|
+
}
|
|
1040
|
+
]
|
|
1041
|
+
},
|
|
1042
|
+
"unsupportedRegTypes": {
|
|
1043
|
+
"description": "Unsupported reg types: Identifies columns using unsupported reg* types outside pg_catalog schema, which prevents database upgrades using pg_upgrade.",
|
|
1044
|
+
"anyOf": [
|
|
1045
|
+
{
|
|
1046
|
+
"$ref": "#/definitions/SplinterRuleConfiguration"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"type": "null"
|
|
1050
|
+
}
|
|
1051
|
+
]
|
|
1052
|
+
}
|
|
1053
|
+
},
|
|
1054
|
+
"additionalProperties": false
|
|
1055
|
+
},
|
|
1056
|
+
"SplinterConfiguration": {
|
|
1057
|
+
"type": "object",
|
|
1058
|
+
"properties": {
|
|
1059
|
+
"enabled": {
|
|
1060
|
+
"description": "if `false`, it disables the feature and the linter won't be executed. `true` by default",
|
|
1061
|
+
"type": [
|
|
1062
|
+
"boolean",
|
|
1063
|
+
"null"
|
|
1064
|
+
]
|
|
1065
|
+
},
|
|
1066
|
+
"rules": {
|
|
1067
|
+
"description": "List of rules",
|
|
1068
|
+
"anyOf": [
|
|
1069
|
+
{
|
|
1070
|
+
"$ref": "#/definitions/SplinterRules"
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"type": "null"
|
|
1074
|
+
}
|
|
1075
|
+
]
|
|
1076
|
+
}
|
|
1077
|
+
},
|
|
1078
|
+
"additionalProperties": false
|
|
1079
|
+
},
|
|
1080
|
+
"SplinterRuleConfiguration": {
|
|
1081
|
+
"anyOf": [
|
|
1082
|
+
{
|
|
1083
|
+
"$ref": "#/definitions/RulePlainConfiguration"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"$ref": "#/definitions/RuleWithSplinterRuleOptions"
|
|
1087
|
+
}
|
|
1088
|
+
]
|
|
1089
|
+
},
|
|
1090
|
+
"SplinterRuleOptions": {
|
|
1091
|
+
"description": "Shared options for all splinter rules.\n\nThese options allow configuring per-rule filtering of database objects.",
|
|
1092
|
+
"type": "object",
|
|
1093
|
+
"properties": {
|
|
1094
|
+
"ignore": {
|
|
1095
|
+
"description": "A list of glob patterns for database objects to ignore.\n\nPatterns use Unix-style globs where: - `*` matches any sequence of characters - `?` matches any single character\n\nEach pattern should be in the format `schema.object_name`, for example: - `\"public.my_table\"` - ignores a specific table - `\"audit.*\"` - ignores all objects in the audit schema - `\"*.audit_*\"` - ignores objects with audit_ prefix in any schema",
|
|
1096
|
+
"default": [],
|
|
1097
|
+
"type": "array",
|
|
1098
|
+
"items": {
|
|
1099
|
+
"type": "string"
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
"additionalProperties": false
|
|
1104
|
+
},
|
|
1105
|
+
"SplinterRules": {
|
|
1106
|
+
"type": "object",
|
|
1107
|
+
"properties": {
|
|
1108
|
+
"all": {
|
|
1109
|
+
"description": "It enables ALL rules. The rules that belong to `nursery` won't be enabled.",
|
|
1110
|
+
"type": [
|
|
1111
|
+
"boolean",
|
|
1112
|
+
"null"
|
|
1113
|
+
]
|
|
1114
|
+
},
|
|
1115
|
+
"performance": {
|
|
1116
|
+
"anyOf": [
|
|
1117
|
+
{
|
|
1118
|
+
"$ref": "#/definitions/Performance"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"type": "null"
|
|
1122
|
+
}
|
|
1123
|
+
]
|
|
1124
|
+
},
|
|
1125
|
+
"recommended": {
|
|
1126
|
+
"description": "It enables the lint rules recommended by Postgres Language Server. `true` by default.",
|
|
1127
|
+
"type": [
|
|
1128
|
+
"boolean",
|
|
1129
|
+
"null"
|
|
1130
|
+
]
|
|
1131
|
+
},
|
|
1132
|
+
"security": {
|
|
1133
|
+
"anyOf": [
|
|
1134
|
+
{
|
|
1135
|
+
"$ref": "#/definitions/Security"
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"type": "null"
|
|
1139
|
+
}
|
|
1140
|
+
]
|
|
1141
|
+
}
|
|
1142
|
+
},
|
|
1143
|
+
"additionalProperties": false
|
|
1144
|
+
},
|
|
746
1145
|
"StringSet": {
|
|
747
1146
|
"type": "array",
|
|
748
1147
|
"items": {
|