@centia-io/mcp-server 1.0.4 → 1.0.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.
package/centia-api.json CHANGED
@@ -13,10 +13,10 @@
13
13
  "tags": [
14
14
  "Methods"
15
15
  ],
16
- "description": "Call a JSON-RPC method with or without parameters. The method must be defined in the database. See /api/v4/methods (postRpc) ",
16
+ "description": "Call a JSON-RPC method. The method must exist (see /api/v4/methods).",
17
17
  "operationId": "postCall",
18
18
  "requestBody": {
19
- "description": "RPC method call",
19
+ "description": "RPC request payload.",
20
20
  "required": true,
21
21
  "content": {
22
22
  "application/json": {
@@ -46,7 +46,7 @@
46
46
  "tags": [
47
47
  "Methods"
48
48
  ],
49
- "description": "Dry run the RPC-JSON call to infer the types and store them. \n Types are only inferred and stored when dry running calls. Dry runs doesn't make effects on the database.\n Dry-run before getting TypeScript types from /api/v4/interfaces (getTypeScript)",
49
+ "description": "Dry-run an RPC call to infer and store input/output types. Dry-runs do not modify the database. \n Run this before requesting TypeScript types from /api/v4/interfaces.",
50
50
  "operationId": "postCallDry",
51
51
  "requestBody": {
52
52
  "description": "RPC method call",
@@ -87,6 +87,9 @@
87
87
  "in": "path",
88
88
  "description": "Id of client",
89
89
  "required": false,
90
+ "schema": {
91
+ "type": "string"
92
+ },
90
93
  "example": "66f5005bd44c6"
91
94
  }
92
95
  ],
@@ -160,7 +163,7 @@
160
163
  }
161
164
  ],
162
165
  "requestBody": {
163
- "description": "Properties to update. Partial update is allowed.",
166
+ "description": "Fields to update. Partial update is allowed.",
164
167
  "required": true,
165
168
  "content": {
166
169
  "application/json": {
@@ -191,7 +194,7 @@
191
194
  "description": "Create new OAuth client(s).",
192
195
  "operationId": "postClient",
193
196
  "requestBody": {
194
- "description": "New client",
197
+ "description": "Client to create.",
195
198
  "required": true,
196
199
  "content": {
197
200
  "application/json": {
@@ -237,7 +240,7 @@
237
240
  "tags": [
238
241
  "Schema"
239
242
  ],
240
- "description": "Get column(s)",
243
+ "description": "Get column(s).",
241
244
  "operationId": "getColumn",
242
245
  "parameters": [
243
246
  {
@@ -245,6 +248,9 @@
245
248
  "in": "path",
246
249
  "description": "Schema name",
247
250
  "required": true,
251
+ "schema": {
252
+ "type": "string"
253
+ },
248
254
  "example": "my_schema"
249
255
  },
250
256
  {
@@ -252,6 +258,9 @@
252
258
  "in": "path",
253
259
  "description": "Table name",
254
260
  "required": true,
261
+ "schema": {
262
+ "type": "string"
263
+ },
255
264
  "example": "my_table"
256
265
  },
257
266
  {
@@ -259,6 +268,9 @@
259
268
  "in": "path",
260
269
  "description": "Column names",
261
270
  "required": false,
271
+ "schema": {
272
+ "type": "string"
273
+ },
262
274
  "example": "my_columns"
263
275
  }
264
276
  ],
@@ -282,7 +294,7 @@
282
294
  "tags": [
283
295
  "Schema"
284
296
  ],
285
- "description": "Delete column(s)",
297
+ "description": "Delete column(s).",
286
298
  "operationId": "deleteColumn",
287
299
  "parameters": [
288
300
  {
@@ -290,6 +302,9 @@
290
302
  "in": "path",
291
303
  "description": "Schema name",
292
304
  "required": true,
305
+ "schema": {
306
+ "type": "string"
307
+ },
293
308
  "example": "my_schema"
294
309
  },
295
310
  {
@@ -297,6 +312,9 @@
297
312
  "in": "path",
298
313
  "description": "Table name",
299
314
  "required": true,
315
+ "schema": {
316
+ "type": "string"
317
+ },
300
318
  "example": "my_table"
301
319
  },
302
320
  {
@@ -304,6 +322,9 @@
304
322
  "in": "path",
305
323
  "description": "Column names",
306
324
  "required": true,
325
+ "schema": {
326
+ "type": "string"
327
+ },
307
328
  "example": "my_columns"
308
329
  }
309
330
  ],
@@ -330,6 +351,9 @@
330
351
  "in": "path",
331
352
  "description": "Schema name",
332
353
  "required": true,
354
+ "schema": {
355
+ "type": "string"
356
+ },
333
357
  "example": "my_schema"
334
358
  },
335
359
  {
@@ -337,11 +361,14 @@
337
361
  "in": "path",
338
362
  "description": "Table name",
339
363
  "required": true,
364
+ "schema": {
365
+ "type": "string"
366
+ },
340
367
  "example": "my_table"
341
368
  }
342
369
  ],
343
370
  "requestBody": {
344
- "description": "New column",
371
+ "description": "Column to create.",
345
372
  "required": true,
346
373
  "content": {
347
374
  "application/json": {
@@ -369,7 +396,7 @@
369
396
  "tags": [
370
397
  "Schema"
371
398
  ],
372
- "description": "Update existing column(s)",
399
+ "description": "Update existing column(s).",
373
400
  "operationId": "patchColumn",
374
401
  "parameters": [
375
402
  {
@@ -377,6 +404,9 @@
377
404
  "in": "path",
378
405
  "description": "Schema name",
379
406
  "required": true,
407
+ "schema": {
408
+ "type": "string"
409
+ },
380
410
  "example": "my_schema"
381
411
  },
382
412
  {
@@ -384,6 +414,9 @@
384
414
  "in": "path",
385
415
  "description": "Table name",
386
416
  "required": true,
417
+ "schema": {
418
+ "type": "string"
419
+ },
387
420
  "example": "my_table"
388
421
  },
389
422
  {
@@ -391,6 +424,9 @@
391
424
  "in": "path",
392
425
  "description": "Column names",
393
426
  "required": true,
427
+ "schema": {
428
+ "type": "string"
429
+ },
394
430
  "example": "my_columns"
395
431
  }
396
432
  ],
@@ -423,10 +459,10 @@
423
459
  "tags": [
424
460
  "Commit"
425
461
  ],
426
- "description": "Commit schema changes to Git and push to remote.",
462
+ "description": "Commit schema changes to Git and push to the remote repository.",
427
463
  "operationId": "postCommit",
428
464
  "requestBody": {
429
- "description": "New index",
465
+ "description": "Commit request payload.",
430
466
  "required": true,
431
467
  "content": {
432
468
  "application/json": {
@@ -459,6 +495,9 @@
459
495
  "in": "path",
460
496
  "description": "Schema name",
461
497
  "required": true,
498
+ "schema": {
499
+ "type": "string"
500
+ },
462
501
  "example": "my_schema"
463
502
  },
464
503
  {
@@ -466,6 +505,9 @@
466
505
  "in": "path",
467
506
  "description": "Table name",
468
507
  "required": true,
508
+ "schema": {
509
+ "type": "string"
510
+ },
469
511
  "example": "my_table"
470
512
  },
471
513
  {
@@ -473,6 +515,9 @@
473
515
  "in": "path",
474
516
  "description": "Constraint name(s)",
475
517
  "required": false,
518
+ "schema": {
519
+ "type": "string"
520
+ },
476
521
  "example": "my_constraint"
477
522
  }
478
523
  ],
@@ -496,7 +541,7 @@
496
541
  "tags": [
497
542
  "Schema"
498
543
  ],
499
- "description": "Delete constraint(s)",
544
+ "description": "Delete constraint(s).",
500
545
  "operationId": "deleteConstraint",
501
546
  "parameters": [
502
547
  {
@@ -504,6 +549,9 @@
504
549
  "in": "path",
505
550
  "description": "Schema name",
506
551
  "required": true,
552
+ "schema": {
553
+ "type": "string"
554
+ },
507
555
  "example": "my_schema"
508
556
  },
509
557
  {
@@ -511,6 +559,9 @@
511
559
  "in": "path",
512
560
  "description": "Table name",
513
561
  "required": true,
562
+ "schema": {
563
+ "type": "string"
564
+ },
514
565
  "example": "my_table"
515
566
  },
516
567
  {
@@ -518,12 +569,15 @@
518
569
  "in": "path",
519
570
  "description": "Constraint name(s)",
520
571
  "required": true,
572
+ "schema": {
573
+ "type": "string"
574
+ },
521
575
  "example": "my_constraint"
522
576
  }
523
577
  ],
524
578
  "responses": {
525
579
  "204": {
526
- "description": "Column deleted"
580
+ "description": "Constraint deleted"
527
581
  },
528
582
  "404": {
529
583
  "description": "Not found"
@@ -544,6 +598,9 @@
544
598
  "in": "path",
545
599
  "description": "Schema name",
546
600
  "required": true,
601
+ "schema": {
602
+ "type": "string"
603
+ },
547
604
  "example": "my_schema"
548
605
  },
549
606
  {
@@ -551,11 +608,14 @@
551
608
  "in": "path",
552
609
  "description": "Table name",
553
610
  "required": true,
611
+ "schema": {
612
+ "type": "string"
613
+ },
554
614
  "example": "my_table"
555
615
  }
556
616
  ],
557
617
  "requestBody": {
558
- "description": "New constraint",
618
+ "description": "Constraint to create.",
559
619
  "required": true,
560
620
  "content": {
561
621
  "application/json": {
@@ -577,7 +637,7 @@
577
637
  "tags": [
578
638
  "File"
579
639
  ],
580
- "description": "Upload the file(s) using multipart/form-data to get them staged on the server.",
640
+ "description": "Upload file(s) via multipart/form-data and stage them on the server.",
581
641
  "operationId": "postFileUpload",
582
642
  "requestBody": {
583
643
  "content": {
@@ -597,7 +657,7 @@
597
657
  },
598
658
  "responses": {
599
659
  "201": {
600
- "description": "Created"
660
+ "description": "File uploaded successfully."
601
661
  }
602
662
  }
603
663
  }
@@ -607,10 +667,10 @@
607
667
  "tags": [
608
668
  "File"
609
669
  ],
610
- "description": "Process the uploaded file into a target schema/table with desired options (dry-run, append, SRS, etc.).",
670
+ "description": "Import a staged file into a target schema/table. Supports dry-run, append, SRS, and more.",
611
671
  "operationId": "postFileProcess",
612
672
  "requestBody": {
613
- "description": "New table",
673
+ "description": "Import options and target information.",
614
674
  "required": true,
615
675
  "content": {
616
676
  "application/json": {
@@ -643,6 +703,9 @@
643
703
  "in": "path",
644
704
  "description": "Rule identifier",
645
705
  "required": false,
706
+ "schema": {
707
+ "type": "integer"
708
+ },
646
709
  "example": 2
647
710
  }
648
711
  ],
@@ -674,7 +737,10 @@
674
737
  "in": "path",
675
738
  "description": "Id of rule",
676
739
  "required": true,
677
- "example": "2"
740
+ "schema": {
741
+ "type": "integer"
742
+ },
743
+ "example": 2
678
744
  }
679
745
  ],
680
746
  "responses": {
@@ -698,6 +764,9 @@
698
764
  "in": "path",
699
765
  "description": "Rule identifier",
700
766
  "required": true,
767
+ "schema": {
768
+ "type": "integer"
769
+ },
701
770
  "example": 2
702
771
  }
703
772
  ],
@@ -733,7 +802,7 @@
733
802
  "description": "Create rule(s).",
734
803
  "operationId": "postRule",
735
804
  "requestBody": {
736
- "description": "New rule",
805
+ "description": "Rule to create.",
737
806
  "required": true,
738
807
  "content": {
739
808
  "application/json": {
@@ -762,19 +831,22 @@
762
831
  "GraphQL"
763
832
  ],
764
833
  "summary": "GraphQL POST endpoint.\nAccepts a JSON body: { \"query\": string, \"variables\": object|null }",
765
- "description": "Run GraphQL query/mutation",
834
+ "description": "Run a GraphQL query or mutation.",
766
835
  "operationId": "postGraphQL",
767
836
  "parameters": [
768
837
  {
769
838
  "name": "schema",
770
839
  "in": "path",
771
- "description": "Schema name",
840
+ "description": "Schema name.",
772
841
  "required": true,
842
+ "schema": {
843
+ "type": "string"
844
+ },
773
845
  "example": "my_schema"
774
846
  }
775
847
  ],
776
848
  "requestBody": {
777
- "description": "New rule",
849
+ "description": "GraphQL request payload.",
778
850
  "required": true,
779
851
  "content": {
780
852
  "application/json": {
@@ -802,7 +874,7 @@
802
874
  "tags": [
803
875
  "Schema"
804
876
  ],
805
- "description": "Get index(s).",
877
+ "description": "Get index(es).",
806
878
  "operationId": "getIndex",
807
879
  "parameters": [
808
880
  {
@@ -810,6 +882,9 @@
810
882
  "in": "path",
811
883
  "description": "Schema",
812
884
  "required": true,
885
+ "schema": {
886
+ "type": "string"
887
+ },
813
888
  "example": "my_schema"
814
889
  },
815
890
  {
@@ -817,6 +892,9 @@
817
892
  "in": "path",
818
893
  "description": "Table",
819
894
  "required": true,
895
+ "schema": {
896
+ "type": "string"
897
+ },
820
898
  "example": "my_table"
821
899
  },
822
900
  {
@@ -824,6 +902,9 @@
824
902
  "in": "path",
825
903
  "description": "Index",
826
904
  "required": false,
905
+ "schema": {
906
+ "type": "string"
907
+ },
827
908
  "example": "my_index"
828
909
  }
829
910
  ],
@@ -861,7 +942,7 @@
861
942
  "tags": [
862
943
  "Schema"
863
944
  ],
864
- "description": "Delete index(s)",
945
+ "description": "Delete index(es).",
865
946
  "operationId": "deleteIndex",
866
947
  "parameters": [
867
948
  {
@@ -907,7 +988,7 @@
907
988
  "tags": [
908
989
  "Schema"
909
990
  ],
910
- "description": "Create index(s).",
991
+ "description": "Create index(es).",
911
992
  "operationId": "postIndex",
912
993
  "parameters": [
913
994
  {
@@ -932,7 +1013,7 @@
932
1013
  }
933
1014
  ],
934
1015
  "requestBody": {
935
- "description": "New index",
1016
+ "description": "Index to create.",
936
1017
  "required": true,
937
1018
  "content": {
938
1019
  "application/json": {
@@ -957,6 +1038,76 @@
957
1038
  }
958
1039
  }
959
1040
  },
1041
+ "/api/v4/meta/{query}": {
1042
+ "get": {
1043
+ "tags": [
1044
+ "Metadata"
1045
+ ],
1046
+ "summary": "Get relation metadata",
1047
+ "operationId": "getMetaData",
1048
+ "parameters": [
1049
+ {
1050
+ "name": "query",
1051
+ "in": "path",
1052
+ "description": "Schema-qualified relation name, schema name, or tag (tag:name). Comma-separated values are supported.",
1053
+ "required": false,
1054
+ "schema": {
1055
+ "type": "string"
1056
+ }
1057
+ }
1058
+ ],
1059
+ "responses": {
1060
+ "200": {
1061
+ "description": "Ok",
1062
+ "content": {
1063
+ "application/json": {
1064
+ "schema": {
1065
+ "$ref": "#/components/schemas/Meta"
1066
+ }
1067
+ }
1068
+ }
1069
+ }
1070
+ },
1071
+ "security": [
1072
+ {
1073
+ "bearerAuth": []
1074
+ }
1075
+ ]
1076
+ }
1077
+ },
1078
+ "/api/v4/meta": {
1079
+ "patch": {
1080
+ "tags": [
1081
+ "Metadata"
1082
+ ],
1083
+ "summary": "Update relation metadata",
1084
+ "operationId": "patchMetaData",
1085
+ "requestBody": {
1086
+ "description": "Metadata updates.",
1087
+ "required": true,
1088
+ "content": {
1089
+ "application/json": {
1090
+ "schema": {
1091
+ "$ref": "#/components/schemas/Meta"
1092
+ }
1093
+ }
1094
+ }
1095
+ },
1096
+ "responses": {
1097
+ "204": {
1098
+ "description": "Metadata updated"
1099
+ },
1100
+ "400": {
1101
+ "description": "Bad request"
1102
+ }
1103
+ },
1104
+ "security": [
1105
+ {
1106
+ "bearerAuth": []
1107
+ }
1108
+ ]
1109
+ }
1110
+ },
960
1111
  "/api/v4/methods/{method}": {
961
1112
  "get": {
962
1113
  "tags": [
@@ -970,6 +1121,9 @@
970
1121
  "in": "path",
971
1122
  "description": "Identifier of RPC method",
972
1123
  "required": false,
1124
+ "schema": {
1125
+ "type": "string"
1126
+ },
973
1127
  "example": "myMethod"
974
1128
  }
975
1129
  ],
@@ -1001,6 +1155,9 @@
1001
1155
  "in": "path",
1002
1156
  "description": "Name of method",
1003
1157
  "required": true,
1158
+ "schema": {
1159
+ "type": "string"
1160
+ },
1004
1161
  "example": "myStatement"
1005
1162
  }
1006
1163
  ],
@@ -1017,7 +1174,7 @@
1017
1174
  "tags": [
1018
1175
  "Methods"
1019
1176
  ],
1020
- "description": "Update existing JSON-RPC method(s).",
1177
+ "description": "Update existing JSON-RPC method definitions.",
1021
1178
  "operationId": "patchRpc",
1022
1179
  "parameters": [
1023
1180
  {
@@ -1025,11 +1182,14 @@
1025
1182
  "in": "path",
1026
1183
  "description": "Method name",
1027
1184
  "required": true,
1028
- "example": "66f5005bd44c6"
1185
+ "schema": {
1186
+ "type": "string"
1187
+ },
1188
+ "example": "myMethod"
1029
1189
  }
1030
1190
  ],
1031
1191
  "requestBody": {
1032
- "description": "RPC method to execute",
1192
+ "description": "RPC method updates.",
1033
1193
  "required": true,
1034
1194
  "content": {
1035
1195
  "application/json": {
@@ -1057,10 +1217,10 @@
1057
1217
  "tags": [
1058
1218
  "Methods"
1059
1219
  ],
1060
- "description": "Create JSON-RPC method(s). This means you define a named method which holds your SQL query along with optional instructions on how to interpret and format the data types.",
1220
+ "description": "Create JSON-RPC method definitions.",
1061
1221
  "operationId": "postRpc",
1062
1222
  "requestBody": {
1063
- "description": "RPC method to create",
1223
+ "description": "RPC method definition(s).",
1064
1224
  "required": true,
1065
1225
  "content": {
1066
1226
  "application/json": {
@@ -1088,10 +1248,10 @@
1088
1248
  "tags": [
1089
1249
  "OAuth"
1090
1250
  ],
1091
- "description": "Create token",
1251
+ "description": "Create token.",
1092
1252
  "operationId": "postOauth",
1093
1253
  "requestBody": {
1094
- "description": "OAuth flow",
1254
+ "description": "OAuth token request.",
1095
1255
  "required": true,
1096
1256
  "content": {
1097
1257
  "application/json": {
@@ -1123,10 +1283,10 @@
1123
1283
  "tags": [
1124
1284
  "OAuth"
1125
1285
  ],
1126
- "description": "Start device flow",
1286
+ "description": "Start device flow.",
1127
1287
  "operationId": "postDevice",
1128
1288
  "requestBody": {
1129
- "description": "OAuth device flow",
1289
+ "description": "Device flow request.",
1130
1290
  "required": true,
1131
1291
  "content": {
1132
1292
  "application/json": {
@@ -1243,7 +1403,7 @@
1243
1403
  "tags": [
1244
1404
  "Methods"
1245
1405
  ],
1246
- "description": "Get the interfaces for all RPC-JSON methods. Returns TypeScript interfaces inferred from dry-runs via /api/v4/call/dry (postCallDry)",
1406
+ "description": "Get TypeScript interfaces for RPC methods inferred from /api/v4/call/dry.",
1247
1407
  "operationId": "getTypeScript",
1248
1408
  "responses": {
1249
1409
  "200": {
@@ -1268,7 +1428,20 @@
1268
1428
  "in": "path",
1269
1429
  "description": "Schema name",
1270
1430
  "required": false,
1431
+ "schema": {
1432
+ "type": "string"
1433
+ },
1271
1434
  "example": "my_schema"
1435
+ },
1436
+ {
1437
+ "name": "namesOnly",
1438
+ "in": "query",
1439
+ "description": "Return only schema names (omit tables and sequences).",
1440
+ "required": false,
1441
+ "schema": {
1442
+ "type": "boolean"
1443
+ },
1444
+ "example": true
1272
1445
  }
1273
1446
  ],
1274
1447
  "responses": {
@@ -1311,6 +1484,9 @@
1311
1484
  "in": "path",
1312
1485
  "description": "Schema name",
1313
1486
  "required": true,
1487
+ "schema": {
1488
+ "type": "string"
1489
+ },
1314
1490
  "example": "my_schema"
1315
1491
  }
1316
1492
  ],
@@ -1338,6 +1514,9 @@
1338
1514
  "in": "path",
1339
1515
  "description": "Schema name",
1340
1516
  "required": false,
1517
+ "schema": {
1518
+ "type": "string"
1519
+ },
1341
1520
  "example": "my_schema"
1342
1521
  }
1343
1522
  ],
@@ -1354,7 +1533,7 @@
1354
1533
  ],
1355
1534
  "properties": {
1356
1535
  "name": {
1357
- "description": "New name of schema",
1536
+ "description": "New schema name.",
1358
1537
  "type": "string",
1359
1538
  "example": "my_schema_with_new_name"
1360
1539
  }
@@ -1387,7 +1566,7 @@
1387
1566
  "description": "Create schema(s).",
1388
1567
  "operationId": "postSchema",
1389
1568
  "requestBody": {
1390
- "description": "New schema",
1569
+ "description": "Schema to create.",
1391
1570
  "required": true,
1392
1571
  "content": {
1393
1572
  "application/json": {
@@ -1420,6 +1599,9 @@
1420
1599
  "in": "path",
1421
1600
  "description": "Schema name",
1422
1601
  "required": true,
1602
+ "schema": {
1603
+ "type": "string"
1604
+ },
1423
1605
  "example": "my_schema"
1424
1606
  },
1425
1607
  {
@@ -1427,6 +1609,9 @@
1427
1609
  "in": "path",
1428
1610
  "description": "Sequence names",
1429
1611
  "required": false,
1612
+ "schema": {
1613
+ "type": "string"
1614
+ },
1430
1615
  "example": "my_sequences"
1431
1616
  }
1432
1617
  ],
@@ -1458,6 +1643,9 @@
1458
1643
  "in": "path",
1459
1644
  "description": "Schema name",
1460
1645
  "required": true,
1646
+ "schema": {
1647
+ "type": "string"
1648
+ },
1461
1649
  "example": "my_schema"
1462
1650
  },
1463
1651
  {
@@ -1465,6 +1653,9 @@
1465
1653
  "in": "path",
1466
1654
  "description": "Sequence names",
1467
1655
  "required": true,
1656
+ "schema": {
1657
+ "type": "string"
1658
+ },
1468
1659
  "example": "my_sequences"
1469
1660
  }
1470
1661
  ],
@@ -1489,6 +1680,9 @@
1489
1680
  "in": "path",
1490
1681
  "description": "Schema name",
1491
1682
  "required": true,
1683
+ "schema": {
1684
+ "type": "string"
1685
+ },
1492
1686
  "example": "my_schema"
1493
1687
  },
1494
1688
  {
@@ -1496,6 +1690,9 @@
1496
1690
  "in": "path",
1497
1691
  "description": "Sequence names",
1498
1692
  "required": true,
1693
+ "schema": {
1694
+ "type": "string"
1695
+ },
1499
1696
  "example": "my_sequences"
1500
1697
  }
1501
1698
  ],
@@ -1536,11 +1733,14 @@
1536
1733
  "in": "path",
1537
1734
  "description": "Schema name",
1538
1735
  "required": true,
1736
+ "schema": {
1737
+ "type": "string"
1738
+ },
1539
1739
  "example": "my_schema"
1540
1740
  }
1541
1741
  ],
1542
1742
  "requestBody": {
1543
- "description": "New sequence",
1743
+ "description": "Sequence to create.",
1544
1744
  "required": true,
1545
1745
  "content": {
1546
1746
  "application/json": {
@@ -1568,10 +1768,10 @@
1568
1768
  "tags": [
1569
1769
  "Sql"
1570
1770
  ],
1571
- "description": "Execute SQL statements",
1771
+ "description": "Execute SQL statements.",
1572
1772
  "operationId": "postSql",
1573
1773
  "requestBody": {
1574
- "description": "Sql statement to execute",
1774
+ "description": "SQL statement(s) to execute.",
1575
1775
  "required": true,
1576
1776
  "content": {
1577
1777
  "application/json": {
@@ -1601,19 +1801,22 @@
1601
1801
  "tags": [
1602
1802
  "Sql"
1603
1803
  ],
1604
- "description": "Run SQL statements without token",
1804
+ "description": "Run SQL statements without a token.",
1605
1805
  "operationId": "postSqlNoToken",
1606
1806
  "parameters": [
1607
1807
  {
1608
1808
  "name": "database",
1609
1809
  "in": "path",
1610
- "description": "Database to use",
1810
+ "description": "Database name to use.",
1611
1811
  "required": false,
1812
+ "schema": {
1813
+ "type": "string"
1814
+ },
1612
1815
  "example": "mydb"
1613
1816
  }
1614
1817
  ],
1615
1818
  "requestBody": {
1616
- "description": "Sql statement to run",
1819
+ "description": "SQL statement(s) to run.",
1617
1820
  "required": true,
1618
1821
  "content": {
1619
1822
  "application/json": {
@@ -1631,7 +1834,7 @@
1631
1834
  }
1632
1835
  },
1633
1836
  "500": {
1634
- "description": "Internal error. Most like an SQL error."
1837
+ "description": "Internal error. Most likely an SQL error."
1635
1838
  }
1636
1839
  }
1637
1840
  }
@@ -1641,7 +1844,7 @@
1641
1844
  "tags": [
1642
1845
  "Stats"
1643
1846
  ],
1644
- "description": "Get statistics",
1847
+ "description": "Get database statistics.",
1645
1848
  "operationId": "getStats",
1646
1849
  "responses": {
1647
1850
  "200": {
@@ -1673,6 +1876,9 @@
1673
1876
  "in": "path",
1674
1877
  "description": "Schema name",
1675
1878
  "required": true,
1879
+ "schema": {
1880
+ "type": "string"
1881
+ },
1676
1882
  "example": "my_schema"
1677
1883
  },
1678
1884
  {
@@ -1680,7 +1886,20 @@
1680
1886
  "in": "path",
1681
1887
  "description": "Table name",
1682
1888
  "required": false,
1889
+ "schema": {
1890
+ "type": "string"
1891
+ },
1683
1892
  "example": "my_table"
1893
+ },
1894
+ {
1895
+ "name": "namesOnly",
1896
+ "in": "query",
1897
+ "description": "Return only table names (omit columns, indexes, constraints, and other details).",
1898
+ "required": false,
1899
+ "schema": {
1900
+ "type": "boolean"
1901
+ },
1902
+ "example": true
1684
1903
  }
1685
1904
  ],
1686
1905
  "responses": {
@@ -1698,7 +1917,7 @@
1698
1917
  "operationId": "getColumn",
1699
1918
  "parameters": {
1700
1919
  "schema": "$request.path.schema",
1701
- "table ": "$request.path.table"
1920
+ "table": "$request.path.table"
1702
1921
  },
1703
1922
  "description": "Link to columns."
1704
1923
  },
@@ -1706,7 +1925,7 @@
1706
1925
  "operationId": "getConstraint",
1707
1926
  "parameters": {
1708
1927
  "schema": "$request.path.schema",
1709
- "table ": "$request.path.table"
1928
+ "table": "$request.path.table"
1710
1929
  },
1711
1930
  "description": "Link to constraints."
1712
1931
  },
@@ -1714,15 +1933,15 @@
1714
1933
  "operationId": "getIndex",
1715
1934
  "parameters": {
1716
1935
  "schema": "$request.path.schema",
1717
- "table ": "$request.path.table"
1936
+ "table": "$request.path.table"
1718
1937
  },
1719
- "description": "Link to indices."
1938
+ "description": "Link to indexes."
1720
1939
  },
1721
1940
  "getPrivileges": {
1722
1941
  "operationId": "getPrivileges",
1723
1942
  "parameters": {
1724
1943
  "schema": "$request.path.schema",
1725
- "table ": "$request.path.table"
1944
+ "table": "$request.path.table"
1726
1945
  },
1727
1946
  "description": "Link to privileges."
1728
1947
  }
@@ -1748,6 +1967,9 @@
1748
1967
  "in": "path",
1749
1968
  "description": "Schema name",
1750
1969
  "required": true,
1970
+ "schema": {
1971
+ "type": "string"
1972
+ },
1751
1973
  "example": "my_schema"
1752
1974
  },
1753
1975
  {
@@ -1755,6 +1977,9 @@
1755
1977
  "in": "path",
1756
1978
  "description": "Table name",
1757
1979
  "required": true,
1980
+ "schema": {
1981
+ "type": "string"
1982
+ },
1758
1983
  "example": "my_table"
1759
1984
  }
1760
1985
  ],
@@ -1774,7 +1999,7 @@
1774
1999
  "tags": [
1775
2000
  "Schema"
1776
2001
  ],
1777
- "description": "Rename and move existing table(s).",
2002
+ "description": "Rename or move existing table(s).",
1778
2003
  "operationId": "patchTable",
1779
2004
  "parameters": [
1780
2005
  {
@@ -1782,6 +2007,9 @@
1782
2007
  "in": "path",
1783
2008
  "description": "Schema name",
1784
2009
  "required": true,
2010
+ "schema": {
2011
+ "type": "string"
2012
+ },
1785
2013
  "example": "my_schema"
1786
2014
  },
1787
2015
  {
@@ -1789,6 +2017,9 @@
1789
2017
  "in": "path",
1790
2018
  "description": "Table name",
1791
2019
  "required": true,
2020
+ "schema": {
2021
+ "type": "string"
2022
+ },
1792
2023
  "example": "my_table"
1793
2024
  }
1794
2025
  ],
@@ -1807,7 +2038,7 @@
1807
2038
  "example": "my_table_with_new_name"
1808
2039
  },
1809
2040
  "schema": {
1810
- "description": "Move table to schema",
2041
+ "description": "Target schema to move the table to.",
1811
2042
  "type": "string",
1812
2043
  "example": "my_other_schema"
1813
2044
  },
@@ -1847,15 +2078,18 @@
1847
2078
  "operationId": "postTable",
1848
2079
  "parameters": [
1849
2080
  {
1850
- "name": "name",
2081
+ "name": "schema",
1851
2082
  "in": "path",
1852
2083
  "description": "Schema name",
1853
2084
  "required": true,
2085
+ "schema": {
2086
+ "type": "string"
2087
+ },
1854
2088
  "example": "my_schema"
1855
2089
  }
1856
2090
  ],
1857
2091
  "requestBody": {
1858
- "description": "New table",
2092
+ "description": "Table to create.",
1859
2093
  "required": true,
1860
2094
  "content": {
1861
2095
  "application/json": {
@@ -1880,7 +2114,7 @@
1880
2114
  "tags": [
1881
2115
  "Users"
1882
2116
  ],
1883
- "description": "Get sub-user(s)",
2117
+ "description": "Get sub-user(s).",
1884
2118
  "operationId": "getUser",
1885
2119
  "parameters": [
1886
2120
  {
@@ -1888,6 +2122,9 @@
1888
2122
  "in": "path",
1889
2123
  "description": "User identifier",
1890
2124
  "required": false,
2125
+ "schema": {
2126
+ "type": "string"
2127
+ },
1891
2128
  "example": "joe"
1892
2129
  }
1893
2130
  ],
@@ -1911,7 +2148,7 @@
1911
2148
  "tags": [
1912
2149
  "Users"
1913
2150
  ],
1914
- "description": "Delete sub-user(s)",
2151
+ "description": "Delete sub-user(s).",
1915
2152
  "operationId": "deleteUsers",
1916
2153
  "parameters": [
1917
2154
  {
@@ -1919,6 +2156,9 @@
1919
2156
  "in": "path",
1920
2157
  "description": "User identifier",
1921
2158
  "required": true,
2159
+ "schema": {
2160
+ "type": "string"
2161
+ },
1922
2162
  "example": "joe"
1923
2163
  }
1924
2164
  ],
@@ -1935,7 +2175,7 @@
1935
2175
  "tags": [
1936
2176
  "Users"
1937
2177
  ],
1938
- "description": "Update exiting sub-user(s)",
2178
+ "description": "Update existing sub-user(s).",
1939
2179
  "operationId": "patchUser",
1940
2180
  "parameters": [
1941
2181
  {
@@ -1943,11 +2183,14 @@
1943
2183
  "in": "path",
1944
2184
  "description": "User identifier",
1945
2185
  "required": true,
2186
+ "schema": {
2187
+ "type": "string"
2188
+ },
1946
2189
  "example": "joe"
1947
2190
  }
1948
2191
  ],
1949
2192
  "requestBody": {
1950
- "description": "User",
2193
+ "description": "User updates.",
1951
2194
  "required": true,
1952
2195
  "content": {
1953
2196
  "application/json": {
@@ -1959,7 +2202,7 @@
1959
2202
  },
1960
2203
  "responses": {
1961
2204
  "204": {
1962
- "description": "Rule updated"
2205
+ "description": "User updated"
1963
2206
  },
1964
2207
  "400": {
1965
2208
  "description": "Bad request"
@@ -1975,10 +2218,10 @@
1975
2218
  "tags": [
1976
2219
  "Users"
1977
2220
  ],
1978
- "description": "Create new sub-user(s)",
2221
+ "description": "Create new sub-user(s).",
1979
2222
  "operationId": "postUser",
1980
2223
  "requestBody": {
1981
- "description": "New user",
2224
+ "description": "User to create.",
1982
2225
  "required": true,
1983
2226
  "content": {
1984
2227
  "application/json": {
@@ -2005,7 +2248,7 @@
2005
2248
  "components": {
2006
2249
  "schemas": {
2007
2250
  "Call": {
2008
- "description": "JSON-RPC is a stateless, lightweight remote procedure call (RPC) protocol that uses JSON for data interchange. Defined by the JSON-RPC 2.0 specification, it enables clients to invoke methods on a server by sending JSON-formatted requests and receiving JSON-formatted responses, with support for batch calls, notifications, and standardized error handling.",
2251
+ "description": "JSON-RPC 2.0 request payload. Used to call a named RPC method with optional parameters.",
2009
2252
  "required": [
2010
2253
  "jsonrpc",
2011
2254
  "method"
@@ -2022,19 +2265,19 @@
2022
2265
  },
2023
2266
  "id": {
2024
2267
  "title": "Identifier",
2025
- "description": "An identifier established by the Client that MUST contain a string if included.",
2268
+ "description": "Client-supplied request id. If present, must be a string.",
2026
2269
  "type": "string",
2027
2270
  "example": "1"
2028
2271
  },
2029
2272
  "method": {
2030
2273
  "title": "Method name",
2031
- "description": "A String containing the name of the method to be invoked or created.",
2274
+ "description": "Name of the RPC method to call.",
2032
2275
  "type": "string",
2033
2276
  "example": "getDate"
2034
2277
  },
2035
2278
  "params": {
2036
2279
  "title": "Parameters",
2037
- "description": "Parameters for method.",
2280
+ "description": "Parameters for the method. For SELECT methods, only one parameter set is allowed.",
2038
2281
  "type": "array",
2039
2282
  "items": {
2040
2283
  "type": "object"
@@ -2052,31 +2295,31 @@
2052
2295
  "type": "object"
2053
2296
  },
2054
2297
  "Client": {
2055
- "description": "OAuth clients are applications that request and manage access to user resources through the OAuth authorization protocol. These clients act as intermediaries, enabling secure, delegated access to user accounts without directly handling sensitive credentials.",
2298
+ "description": "OAuth client definition used to request and manage user access.",
2056
2299
  "required": [],
2057
2300
  "properties": {
2058
2301
  "id": {
2059
2302
  "title": "Client id",
2060
- "description": "Id of client, which identify the client.",
2303
+ "description": "Client id.",
2061
2304
  "type": "string",
2062
2305
  "example": "my_client_id"
2063
2306
  },
2064
2307
  "name": {
2065
2308
  "title": "Name",
2066
- "description": "Name of client. Can help identify the client.",
2309
+ "description": "Client display name.",
2067
2310
  "type": "string",
2068
2311
  "example": "My Application"
2069
2312
  },
2070
2313
  "homepage": {
2071
2314
  "title": "Homepage",
2072
- "description": "The homepage (or web-app), which starts the code flow.",
2315
+ "description": "Homepage or web app URL that starts the code flow.",
2073
2316
  "type": "string",
2074
2317
  "format": "uri",
2075
2318
  "example": "https://mapcentia.com"
2076
2319
  },
2077
2320
  "description": {
2078
2321
  "title": "Description",
2079
- "description": "A longer description of the client, which can help identify the client.",
2322
+ "description": "Longer description to identify the client.",
2080
2323
  "type": [
2081
2324
  "string",
2082
2325
  "null"
@@ -2085,7 +2328,7 @@
2085
2328
  },
2086
2329
  "redirect_uri": {
2087
2330
  "title": "Redirect URIs.",
2088
- "description": "The URIs the auth server is allowed to redirect back to.",
2331
+ "description": "Allowed redirect URIs for this client.",
2089
2332
  "type": "array",
2090
2333
  "items": {
2091
2334
  "type": "string"
@@ -2104,28 +2347,28 @@
2104
2347
  },
2105
2348
  "confirm": {
2106
2349
  "title": "Confirm",
2107
- "description": "Users must confirm client access.",
2350
+ "description": "Require user confirmation before granting access.",
2108
2351
  "type": "boolean",
2109
2352
  "default": true,
2110
2353
  "example": true
2111
2354
  },
2112
2355
  "two_factor": {
2113
2356
  "title": "Two factor authentication",
2114
- "description": "Users must log in with two factor authentication.",
2357
+ "description": "Require two-factor authentication for login.",
2115
2358
  "type": "boolean",
2116
2359
  "default": true,
2117
2360
  "example": true
2118
2361
  },
2119
2362
  "allow_signup": {
2120
2363
  "title": "Allow users to sign up",
2121
- "description": "Users can sign up for a new account in the web-dialog.",
2364
+ "description": "Allow users to sign up in the web dialog.",
2122
2365
  "type": "boolean",
2123
2366
  "default": false,
2124
2367
  "example": true
2125
2368
  },
2126
2369
  "social_signup": {
2127
2370
  "title": "Enable social signup",
2128
- "description": "Users can sign up for a new account with social login.",
2371
+ "description": "Allow social login during signup.",
2129
2372
  "type": "boolean",
2130
2373
  "default": false,
2131
2374
  "example": true
@@ -2134,37 +2377,37 @@
2134
2377
  "type": "object"
2135
2378
  },
2136
2379
  "Column": {
2137
- "description": "Each column has a data type. The data type constrains the set of possible values that can be assigned to a column and assigns semantics to the data stored in the column so that it can be used for computations. For instance, a column declared to be of a numerical type will not accept arbitrary text strings, and the data stored in such a column can be used for mathematical computations. By contrast, a column declared to be of a character string type will accept almost any kind of data but it does not lend itself to mathematical calculations, although other operations such as string concatenation are available.",
2380
+ "description": "Table column definition, including name, data type, nullability, defaults, identity, and comment.",
2138
2381
  "required": [],
2139
2382
  "properties": {
2140
2383
  "name": {
2141
2384
  "title": "Name",
2142
- "description": "Name of the column.",
2385
+ "description": "Column name.",
2143
2386
  "type": "string",
2144
2387
  "example": "my-column"
2145
2388
  },
2146
2389
  "type": {
2147
2390
  "title": "Type",
2148
- "description": "The type of the column, like varchar, integer, boolean etc. Array types are denoted by adding [] to the type, e.g. varchar[].",
2391
+ "description": "Column type, e.g. varchar, integer, boolean. Array types use [] (e.g. varchar[]).",
2149
2392
  "type": "string",
2150
2393
  "example": "int"
2151
2394
  },
2152
2395
  "is_nullable": {
2153
2396
  "title": "Is nullable",
2154
- "description": "If true the column can be set to null.",
2397
+ "description": "Whether the column allows NULL values.",
2155
2398
  "type": "boolean",
2156
- "default": "true",
2157
- "example": "false"
2399
+ "default": true,
2400
+ "example": false
2158
2401
  },
2159
2402
  "default_value": {
2160
2403
  "title": "Default value",
2161
- "description": "The column is set to the default value if no value is given.",
2404
+ "description": "Default value used when no value is provided.",
2162
2405
  "type": "string",
2163
2406
  "example": "my-value"
2164
2407
  },
2165
2408
  "identity_generation": {
2166
2409
  "title": "Identity generation of the column",
2167
- "description": "An identity column is a special column that is generated automatically from an implicit sequence. It can be used to generate key values.",
2410
+ "description": "Identity generation mode for auto-generated values.",
2168
2411
  "type": "string",
2169
2412
  "enum": [
2170
2413
  "always",
@@ -2174,7 +2417,7 @@
2174
2417
  },
2175
2418
  "comment": {
2176
2419
  "title": "Comment",
2177
- "description": "Comment on the column.",
2420
+ "description": "Comment for the column.",
2178
2421
  "type": "string",
2179
2422
  "example": "This is a comment on the column"
2180
2423
  }
@@ -2182,7 +2425,7 @@
2182
2425
  "type": "object"
2183
2426
  },
2184
2427
  "Commit": {
2185
- "description": "Schema commit.",
2428
+ "description": "Commit schema metadata and table definitions to a Git repository.",
2186
2429
  "required": [
2187
2430
  "schema",
2188
2431
  "repo",
@@ -2191,13 +2434,13 @@
2191
2434
  "properties": {
2192
2435
  "schema": {
2193
2436
  "title": "Schema",
2194
- "description": "Schema to commit",
2437
+ "description": "Schema name to export and commit.",
2195
2438
  "type": "string",
2196
2439
  "example": "myschema"
2197
2440
  },
2198
2441
  "repo": {
2199
2442
  "title": "Repository",
2200
- "description": "An Git repository URL with credentials.",
2443
+ "description": "Git repository URL (can include credentials).",
2201
2444
  "type": "string",
2202
2445
  "example": "https://user:password@github.com/path/repo.git"
2203
2446
  },
@@ -2209,7 +2452,7 @@
2209
2452
  },
2210
2453
  "meta_query": {
2211
2454
  "title": "Meta query string",
2212
- "description": "Only commit meta for this search.",
2455
+ "description": "Only include meta entries that match this search query.",
2213
2456
  "type": "string",
2214
2457
  "default": null,
2215
2458
  "example": "tag:mytables"
@@ -2218,7 +2461,7 @@
2218
2461
  "type": "object"
2219
2462
  },
2220
2463
  "Constraint": {
2221
- "description": "A constraint is a rule that is enforced on a table to ensure data integrity. Constraints can be used to enforce rules such as uniqueness, foreign key relationships, and check constraints. They help maintain the consistency and accuracy of data in a database.",
2464
+ "description": "Table constraint definition (primary key, foreign key, unique, or check).",
2222
2465
  "required": [
2223
2466
  "constraint",
2224
2467
  "columns"
@@ -2226,13 +2469,13 @@
2226
2469
  "properties": {
2227
2470
  "name": {
2228
2471
  "title": "Name",
2229
- "description": "Name of the constraint.",
2472
+ "description": "Constraint name.",
2230
2473
  "type": "string",
2231
2474
  "example": "my-constraint"
2232
2475
  },
2233
2476
  "constraint": {
2234
2477
  "title": "Type",
2235
- "description": "Type of the constraint.",
2478
+ "description": "Constraint type.",
2236
2479
  "type": "string",
2237
2480
  "enum": [
2238
2481
  "primary",
@@ -2244,7 +2487,7 @@
2244
2487
  },
2245
2488
  "columns": {
2246
2489
  "title": "Columns",
2247
- "description": "Columns in constraint",
2490
+ "description": "Columns included in the constraint.",
2248
2491
  "type": "array",
2249
2492
  "items": {
2250
2493
  "type": "string"
@@ -2257,19 +2500,19 @@
2257
2500
  },
2258
2501
  "check": {
2259
2502
  "title": "Check",
2260
- "description": "A check constraint.",
2503
+ "description": "CHECK expression (for check constraints).",
2261
2504
  "type": "string",
2262
2505
  "example": "c1 > 0"
2263
2506
  },
2264
2507
  "referenced_table": {
2265
2508
  "title": "Referenced table",
2266
- "description": "Referenced table in a foreign key constraint.",
2509
+ "description": "Referenced table for a foreign key constraint.",
2267
2510
  "type": "string",
2268
2511
  "example": "my_schema.my.table"
2269
2512
  },
2270
2513
  "referenced_columns": {
2271
2514
  "title": "Referenced columns",
2272
- "description": "Referenced columns in a foreign key constraint. This will default to the primary key if omitted.",
2515
+ "description": "Referenced columns for a foreign key. Defaults to the referenced table's primary key.",
2273
2516
  "type": "array",
2274
2517
  "items": {
2275
2518
  "type": "string"
@@ -2284,7 +2527,7 @@
2284
2527
  "type": "object"
2285
2528
  },
2286
2529
  "File": {
2287
- "description": "Use the Files endpoints to upload one or more files (like CSV files) to temporary storage and then process them into a database table.",
2530
+ "description": "Upload files to temporary storage and then import them into database tables.",
2288
2531
  "required": [
2289
2532
  "file",
2290
2533
  "schema"
@@ -2292,66 +2535,66 @@
2292
2535
  "properties": {
2293
2536
  "file": {
2294
2537
  "title": "File",
2295
- "description": "File to import to database.",
2538
+ "description": "Uploaded file name to import.",
2296
2539
  "type": "string"
2297
2540
  },
2298
2541
  "schema": {
2299
2542
  "title": "Schema",
2300
- "description": "Destination schema",
2543
+ "description": "Destination schema name.",
2301
2544
  "type": "string"
2302
2545
  },
2303
2546
  "import": {
2304
2547
  "title": "Import",
2305
- "description": "If false, a dry-run will be executed.",
2548
+ "description": "If false, run a dry-run (no changes).",
2306
2549
  "type": "boolean",
2307
2550
  "default": false
2308
2551
  },
2309
2552
  "t_srs": {
2310
2553
  "title": "Target srs",
2311
- "description": "Fallback target SRS. Will be used if no authority name/code is available.",
2554
+ "description": "Fallback target SRS. Used if no authority name/code is available.",
2312
2555
  "type": "string",
2313
2556
  "default": "EPSG:4326"
2314
2557
  },
2315
2558
  "s_srs": {
2316
2559
  "title": "Source srs",
2317
- "description": "Fallback source SRS. Will be used if file doesn't contain projection information.",
2560
+ "description": "Fallback source SRS. Used if the file has no projection information.",
2318
2561
  "type": "string",
2319
2562
  "default": "EPSG:4326"
2320
2563
  },
2321
2564
  "append": {
2322
2565
  "title": "Append",
2323
- "description": "Append to existing table instead of creating new.",
2566
+ "description": "Append to an existing table instead of creating a new one.",
2324
2567
  "type": "boolean",
2325
2568
  "default": false
2326
2569
  },
2327
2570
  "p_multi": {
2328
2571
  "title": "Promote to multi",
2329
- "description": "Promote single geometries to multi part.",
2572
+ "description": "Promote single-part geometries to multi-part.",
2330
2573
  "type": "boolean",
2331
2574
  "default": false
2332
2575
  },
2333
2576
  "truncate": {
2334
2577
  "title": "Truncate",
2335
- "description": "Truncate table before appending. Only have effect if --append is set.",
2578
+ "description": "Truncate table before appending. Only applies when append is true.",
2336
2579
  "type": "boolean",
2337
2580
  "default": false
2338
2581
  },
2339
2582
  "timestamp": {
2340
2583
  "title": "Timestamp",
2341
- "description": "Name of timestamp field. Create a timestamp field in the import table. Omit property for no timestamp field.",
2584
+ "description": "Name of timestamp field to create. Omit to skip creating a timestamp field.",
2342
2585
  "type": "string",
2343
2586
  "example": "creation_timestamp"
2344
2587
  },
2345
2588
  "x_possible_names": {
2346
2589
  "title": "Possible names for X",
2347
- "description": "Specify the potential names of the columns that can contain X/longitude. Only effects CSV",
2590
+ "description": "Possible column names for X/longitude (CSV only).",
2348
2591
  "type": "string",
2349
2592
  "default": "lon*,Lon*,x,X",
2350
2593
  "example": "Lon*"
2351
2594
  },
2352
2595
  "y_possible_names": {
2353
2596
  "title": "Possible names for Y",
2354
- "description": "Specify the potential names of the columns that can contain Y/latitude. Only effects CSV",
2597
+ "description": "Possible column names for Y/latitude (CSV only).",
2355
2598
  "type": "string",
2356
2599
  "default": "lat*,Lat*,y,Y",
2357
2600
  "example": "Lat*"
@@ -2360,30 +2603,30 @@
2360
2603
  "type": "object"
2361
2604
  },
2362
2605
  "Rule": {
2363
- "description": "Rules can deny or allow access to tables or rewrite the SQL statement by adding a where clause. Rules are not attached to tables but applied to the incoming SQL statement before it actually runs in the database engine.",
2606
+ "description": "Access-control rules applied to incoming SQL before execution (allow, deny, or limit via WHERE clause).",
2364
2607
  "required": [],
2365
2608
  "properties": {
2366
2609
  "id": {
2367
2610
  "title": "Unique identifier",
2368
- "description": "Id of the rule. If omitted the rule will get an id automatically generated.",
2611
+ "description": "Rule id. If omitted, an id is generated.",
2369
2612
  "type": "integer",
2370
2613
  "example": 1000
2371
2614
  },
2372
2615
  "priority": {
2373
2616
  "title": "Priority",
2374
- "description": "All rules are checked by priority in descending order. The first that matches will be applied.",
2617
+ "description": "Rules are evaluated by priority (highest first). First match is applied.",
2375
2618
  "type": "integer",
2376
2619
  "example": 10
2377
2620
  },
2378
2621
  "username": {
2379
2622
  "title": "Username",
2380
- "description": "Rule match for user name (the user that makes the request).",
2623
+ "description": "Match by user name (requesting user).",
2381
2624
  "type": "string",
2382
2625
  "example": "john"
2383
2626
  },
2384
2627
  "service": {
2385
2628
  "title": "Service",
2386
- "description": "Rule match for service.",
2629
+ "description": "Match by service.",
2387
2630
  "type": "string",
2388
2631
  "enum": [
2389
2632
  "sql",
@@ -2394,7 +2637,7 @@
2394
2637
  },
2395
2638
  "request": {
2396
2639
  "title": "Request",
2397
- "description": "Rule match for request.",
2640
+ "description": "Match by request type.",
2398
2641
  "type": "string",
2399
2642
  "enum": [
2400
2643
  "select",
@@ -2404,27 +2647,27 @@
2404
2647
  ],
2405
2648
  "example": "select"
2406
2649
  },
2407
- "layer": {
2408
- "title": "Layer",
2409
- "description": "Rule match for the requested layer(s).",
2650
+ "table": {
2651
+ "title": "Table",
2652
+ "description": "Match by table name(s).",
2410
2653
  "type": "string",
2411
2654
  "example": "my_table"
2412
2655
  },
2413
2656
  "iprange": {
2414
2657
  "title": "Iprange",
2415
- "description": "Rule match for the iprange, which the request originates from.",
2658
+ "description": "Match by source IP range (CIDR).",
2416
2659
  "type": "string",
2417
2660
  "example": "127.0.0.1/32"
2418
2661
  },
2419
2662
  "schema": {
2420
2663
  "title": "Schema",
2421
- "description": "Rule match for the requested schema(s).",
2664
+ "description": "Match by schema name(s).",
2422
2665
  "type": "string",
2423
2666
  "example": "my_schema"
2424
2667
  },
2425
2668
  "access": {
2426
2669
  "title": "Access",
2427
- "description": "The access level the rule grants.",
2670
+ "description": "Access level the rule grants.",
2428
2671
  "type": "string",
2429
2672
  "enum": [
2430
2673
  "allow",
@@ -2435,7 +2678,7 @@
2435
2678
  },
2436
2679
  "filter": {
2437
2680
  "title": "Filter",
2438
- "description": "A filter for rules with 'limit' access. This is a valid WHERE clause.",
2681
+ "description": "Filter for 'limit' access (SQL WHERE clause).",
2439
2682
  "type": "string",
2440
2683
  "example": "user='john'"
2441
2684
  }
@@ -2443,20 +2686,20 @@
2443
2686
  "type": "object"
2444
2687
  },
2445
2688
  "GraphQL": {
2446
- "description": "The GraphQL API allows you to query and manipulate your database data using a dynamically generated schema. Each table in your schema is automatically mapped to GraphQL types, queries, and mutations.",
2689
+ "description": "GraphQL request payload for the limited GraphQL endpoint backed by database metadata.",
2447
2690
  "required": [
2448
2691
  "query"
2449
2692
  ],
2450
2693
  "properties": {
2451
2694
  "query": {
2452
2695
  "title": "Query",
2453
- "description": "GraphQL query. Both query and mutation operations are supported. Queries retrieve data, while mutations modify data.",
2696
+ "description": "GraphQL query string. Queries read data; mutations modify data.",
2454
2697
  "type": "string",
2455
2698
  "example": "query { ... }"
2456
2699
  },
2457
2700
  "variables": {
2458
2701
  "title": "Variables",
2459
- "description": "Variables for the GraphQL query. Should be a JSON object with variable names as keys and their values as values.",
2702
+ "description": "Variables object for the GraphQL query.",
2460
2703
  "type": "object",
2461
2704
  "example": {
2462
2705
  "id": 1
@@ -2464,7 +2707,7 @@
2464
2707
  },
2465
2708
  "operationName": {
2466
2709
  "title": "Operation name",
2467
- "description": "Name of the operation to execute. Useful when a query contains multiple operations.",
2710
+ "description": "Operation name to execute when the document contains multiple operations.",
2468
2711
  "type": "string",
2469
2712
  "example": "Artists"
2470
2713
  }
@@ -2472,7 +2715,7 @@
2472
2715
  "type": "object"
2473
2716
  },
2474
2717
  "Index": {
2475
- "description": "Indices in a database use a similar approach as in most non-fiction books: terms and concepts that are frequently looked up by readers are collected in an alphabetic index at the end of the book. The interested reader can scan the index relatively quickly and flip to the appropriate page(s), rather than having to read the entire book to find the material of interest.",
2718
+ "description": "Database indexes speed up lookups by keeping an ordered structure over one or more columns.",
2476
2719
  "required": [
2477
2720
  "columns"
2478
2721
  ],
@@ -2485,7 +2728,7 @@
2485
2728
  },
2486
2729
  "columns": {
2487
2730
  "title": "Columns",
2488
- "description": "Column(s) to index. An index can comprise more columns.",
2731
+ "description": "Column(s) to include in the index.",
2489
2732
  "type": "array",
2490
2733
  "items": {
2491
2734
  "type": "string"
@@ -2496,7 +2739,7 @@
2496
2739
  },
2497
2740
  "method": {
2498
2741
  "title": "The index method.",
2499
- "description": "The index method.",
2742
+ "description": "Index method to use.",
2500
2743
  "type": "string",
2501
2744
  "default": "btree",
2502
2745
  "enum": [
@@ -2511,8 +2754,72 @@
2511
2754
  },
2512
2755
  "type": "object"
2513
2756
  },
2757
+ "Meta": {
2758
+ "description": "Metadata for relations (tables/views) used by clients and tools. Stored outside the physical schema.",
2759
+ "required": [],
2760
+ "properties": {
2761
+ "relations": {
2762
+ "description": "Relation metadata provides supplementary information about database relations.\n Metadata is stored outside the physical schema and does not change table structure or constraints.\n It is used by clients such as UI applications, query builders, and access layers.",
2763
+ "type": "object",
2764
+ "additionalProperties": {
2765
+ "properties": {
2766
+ "title": {
2767
+ "description": "Human-readable relation title.",
2768
+ "type": "string"
2769
+ },
2770
+ "abstract": {
2771
+ "description": "Description or summary of the relation.",
2772
+ "type": "string"
2773
+ },
2774
+ "group": {
2775
+ "description": "Logical grouping (e.g. for UI categorization).",
2776
+ "type": "string"
2777
+ },
2778
+ "sort_id": {
2779
+ "description": "Sorting weight for presentation.",
2780
+ "type": "integer"
2781
+ },
2782
+ "tags": {
2783
+ "description": "Arbitrary classification tags.",
2784
+ "type": "array",
2785
+ "items": {
2786
+ "type": "string"
2787
+ }
2788
+ },
2789
+ "properties": {
2790
+ "description": "Free-form key/value metadata.",
2791
+ "type": "object"
2792
+ },
2793
+ "fields": {
2794
+ "description": "Per-column metadata.",
2795
+ "type": "object",
2796
+ "additionalProperties": {
2797
+ "properties": {
2798
+ "alias": {
2799
+ "description": "Display name used in clients/UI.",
2800
+ "type": "string"
2801
+ },
2802
+ "queryable": {
2803
+ "description": "Whether the field can be queried/filtered.",
2804
+ "type": "boolean"
2805
+ },
2806
+ "sort_id": {
2807
+ "description": "Sorting weight within the field list.",
2808
+ "type": "integer"
2809
+ }
2810
+ },
2811
+ "type": "object"
2812
+ }
2813
+ }
2814
+ },
2815
+ "type": "object"
2816
+ }
2817
+ }
2818
+ },
2819
+ "type": "object"
2820
+ },
2514
2821
  "Method": {
2515
- "description": "nstead of sending raw SQL every time you want to run a statement, you can wrap your SQL statements inside JSON-RPC methods. This means you define a named method which holds your SQL query along with optional instructions on how to interpret and format the data types.",
2822
+ "description": "Define reusable JSON-RPC methods that wrap SQL statements plus optional type hints and output formats.",
2516
2823
  "required": [
2517
2824
  "method",
2518
2825
  "q"
@@ -2520,19 +2827,19 @@
2520
2827
  "properties": {
2521
2828
  "method": {
2522
2829
  "title": "Method",
2523
- "description": "A String containing the name of the method to be created.",
2830
+ "description": "Name of the method to create.",
2524
2831
  "type": "string",
2525
2832
  "example": "getDate"
2526
2833
  },
2527
2834
  "q": {
2528
2835
  "title": "Query",
2529
- "description": "SQL statement. SELECT, INSERT, UPDATE, DELETE or MERGE.",
2836
+ "description": "SQL statement. Allowed: SELECT, INSERT, UPDATE, DELETE, MERGE.",
2530
2837
  "type": "string",
2531
2838
  "example": "SELECT :my_date::date as my_date"
2532
2839
  },
2533
2840
  "type_hints": {
2534
2841
  "title": "Type hints",
2535
- "description": "For JSON represented parameters which are not of JSON type.",
2842
+ "description": "Type hints for JSON-encoded parameters that are not JSON in the database.",
2536
2843
  "type": "object",
2537
2844
  "example": {
2538
2845
  "my_date": "date"
@@ -2540,7 +2847,7 @@
2540
2847
  },
2541
2848
  "type_formats": {
2542
2849
  "title": "Type formats",
2543
- "description": "For JSON represented parameters which are not of JSON type.",
2850
+ "description": "Formatting rules for typed parameters, e.g. date formats.",
2544
2851
  "type": "object",
2545
2852
  "example": {
2546
2853
  "my_date": "Y m d"
@@ -2548,14 +2855,14 @@
2548
2855
  },
2549
2856
  "output_format": {
2550
2857
  "title": "Output format",
2551
- "description": "The wanted output format.",
2858
+ "description": "Output format for the result.",
2552
2859
  "type": "string",
2553
2860
  "default": "json",
2554
2861
  "example": "csv"
2555
2862
  },
2556
2863
  "srs": {
2557
2864
  "title": "Spatial reference system",
2558
- "description": "The spatial reference system to use for PostGIS geometry columns. EPSG code.",
2865
+ "description": "EPSG code for the spatial reference system used for geometry output.",
2559
2866
  "type": "integer",
2560
2867
  "default": 4326,
2561
2868
  "example": 25832
@@ -2564,14 +2871,14 @@
2564
2871
  "type": "object"
2565
2872
  },
2566
2873
  "OAuth": {
2567
- "description": "OAuth is used to authenticate users and grant access to resources. It is a protocol that allows users to authorize third-party applications to access their resources without sharing their credentials.",
2874
+ "description": "OAuth token request payload for supported grant types.",
2568
2875
  "required": [
2569
2876
  "grant_type"
2570
2877
  ],
2571
2878
  "properties": {
2572
2879
  "grant_type": {
2573
2880
  "title": "OAuth grant type",
2574
- "description": "The OAuth grant type to use for authentication.",
2881
+ "description": "OAuth grant type to use.",
2575
2882
  "type": "string",
2576
2883
  "enum": [
2577
2884
  "password",
@@ -2583,7 +2890,7 @@
2583
2890
  },
2584
2891
  "username": {
2585
2892
  "title": "Username",
2586
- "description": "Username - either database user or sub-user. Only used in password grant.",
2893
+ "description": "Username (database user or sub-user). Used only with password grant.",
2587
2894
  "type": "string",
2588
2895
  "example": "mydb"
2589
2896
  },
@@ -2595,37 +2902,37 @@
2595
2902
  },
2596
2903
  "database": {
2597
2904
  "title": "Database",
2598
- "description": "The database the user belongs to.",
2905
+ "description": "Database name the user belongs to.",
2599
2906
  "type": "string",
2600
2907
  "example": "mydb"
2601
2908
  },
2602
2909
  "client_id": {
2603
2910
  "title": "Client id",
2604
- "description": "The OAuth client id.",
2911
+ "description": "OAuth client id.",
2605
2912
  "type": "string",
2606
2913
  "example": "djskjskdj"
2607
2914
  },
2608
2915
  "client_secret": {
2609
2916
  "title": "Client secret",
2610
- "description": "The OAuth client secret.",
2917
+ "description": "OAuth client secret.",
2611
2918
  "type": "string",
2612
2919
  "example": "xxx"
2613
2920
  },
2614
2921
  "code": {
2615
2922
  "title": "Code",
2616
- "description": "The code which is exchanged for an access token in authorization_code grant",
2923
+ "description": "Authorization code exchanged for tokens (authorization_code grant).",
2617
2924
  "type": "string",
2618
2925
  "example": "xxx"
2619
2926
  },
2620
2927
  "redirect_uri": {
2621
2928
  "title": "Redirect uri",
2622
- "description": "The redirect uris for authorization_code grant.",
2929
+ "description": "Redirect URI for authorization_code grant.",
2623
2930
  "type": "string",
2624
2931
  "example": "xxx"
2625
2932
  },
2626
2933
  "code_verifier": {
2627
2934
  "title": "Code verifier",
2628
- "description": "The code verifier for PKCE.",
2935
+ "description": "PKCE code verifier.",
2629
2936
  "type": "string",
2630
2937
  "example": "xxx"
2631
2938
  }
@@ -2633,7 +2940,7 @@
2633
2940
  "type": "object"
2634
2941
  },
2635
2942
  "OAuthResponse": {
2636
- "description": "OAuth grant response. This is the final response with tokens.",
2943
+ "description": "OAuth token response payload.",
2637
2944
  "required": [
2638
2945
  "access_token",
2639
2946
  "token_type",
@@ -2650,7 +2957,7 @@
2650
2957
  },
2651
2958
  "token_type": {
2652
2959
  "title": "Token type",
2653
- "description": "Always 'bearer'",
2960
+ "description": "Always 'bearer'.",
2654
2961
  "type": "string",
2655
2962
  "enum": [
2656
2963
  "bearer"
@@ -2659,19 +2966,19 @@
2659
2966
  },
2660
2967
  "expires_in": {
2661
2968
  "title": "Expiration time",
2662
- "description": "The token expiration time.",
2969
+ "description": "Token lifetime in seconds.",
2663
2970
  "type": "integer",
2664
2971
  "example": 3600
2665
2972
  },
2666
2973
  "refresh_token": {
2667
2974
  "title": "JWT refresh token",
2668
- "description": "The JWT refresh token.",
2975
+ "description": "Refresh token.",
2669
2976
  "type": "string",
2670
2977
  "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
2671
2978
  },
2672
2979
  "scope": {
2673
2980
  "title": "Scope",
2674
- "description": "The scope.",
2981
+ "description": "Granted scope.",
2675
2982
  "type": "string",
2676
2983
  "example": "sql"
2677
2984
  }
@@ -2679,7 +2986,7 @@
2679
2986
  "type": "object"
2680
2987
  },
2681
2988
  "OAuthDeviceResponse": {
2682
- "description": "Device response with user code and verification uri.",
2989
+ "description": "Device flow response with user code and verification URI.",
2683
2990
  "required": [
2684
2991
  "device_code",
2685
2992
  "user_code",
@@ -2690,32 +2997,32 @@
2690
2997
  "properties": {
2691
2998
  "device_code": {
2692
2999
  "title": "Device code",
2693
- "description": "The device code.",
3000
+ "description": "Device code.",
2694
3001
  "type": "string",
2695
3002
  "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
2696
3003
  },
2697
3004
  "user_code": {
2698
3005
  "title": "User code",
2699
- "description": "The user code.",
3006
+ "description": "User code to show to the user.",
2700
3007
  "type": "string",
2701
3008
  "example": "AB12-CD34"
2702
3009
  },
2703
3010
  "verification_uri": {
2704
3011
  "title": "Verification uri",
2705
- "description": "The verification URI.",
3012
+ "description": "Verification URI where the user completes authorization.",
2706
3013
  "type": "string",
2707
3014
  "format": "url",
2708
3015
  "example": "https://api.centia.io/api/v4/oauth"
2709
3016
  },
2710
3017
  "expires_in": {
2711
3018
  "title": "Expiration time",
2712
- "description": "The JWT refresh token.",
3019
+ "description": "Device code lifetime in seconds.",
2713
3020
  "type": "integer",
2714
3021
  "example": "1800"
2715
3022
  },
2716
3023
  "interval": {
2717
3024
  "title": "Interval",
2718
- "description": "The interval.",
3025
+ "description": "Polling interval in seconds.",
2719
3026
  "type": "integer",
2720
3027
  "example": 5
2721
3028
  }
@@ -2723,14 +3030,14 @@
2723
3030
  "type": "object"
2724
3031
  },
2725
3032
  "OAuthDevice": {
2726
- "description": "Device request for starting a device flow.",
3033
+ "description": "Device flow request payload.",
2727
3034
  "required": [
2728
3035
  "client_id"
2729
3036
  ],
2730
3037
  "properties": {
2731
3038
  "client_id": {
2732
3039
  "title": "Client id",
2733
- "description": "The client id.",
3040
+ "description": "OAuth client id.",
2734
3041
  "type": "string",
2735
3042
  "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
2736
3043
  }
@@ -2738,7 +3045,7 @@
2738
3045
  "type": "object"
2739
3046
  },
2740
3047
  "Privilege": {
2741
- "description": "The privilege system enables the super-user to grant sub-users read or write privileges to tables. Sub-users can grant privileges to tables in their own schemas.",
3048
+ "description": "Privileges define read/write access for sub-users on tables.",
2742
3049
  "required": [
2743
3050
  "subuser",
2744
3051
  "privileges"
@@ -2746,33 +3053,33 @@
2746
3053
  "properties": {
2747
3054
  "subuser": {
2748
3055
  "title": "Sub-user",
2749
- "description": "Name of the sub-user",
3056
+ "description": "Sub-user name.",
2750
3057
  "type": "string",
2751
3058
  "example": "joe"
2752
3059
  },
2753
3060
  "privilege": {
2754
3061
  "title": "Privilege",
2755
- "description": "The privilege granted to the sub-user on a table.",
3062
+ "description": "Privilege level for the sub-user on the table.",
2756
3063
  "type": "string",
2757
3064
  "enum": [
2758
3065
  "none",
2759
3066
  "read",
2760
3067
  "write"
2761
3068
  ],
2762
- "example": "all"
3069
+ "example": "read"
2763
3070
  }
2764
3071
  },
2765
3072
  "type": "object"
2766
3073
  },
2767
3074
  "Schema": {
2768
- "description": "A database contains one or more named schemas, which in turn contain tables. Within one schema, two tables cannot have the same name. The same table name can be used in different schemas without conflict.",
3075
+ "description": "Schema definition, including tables and sequences.",
2769
3076
  "required": [
2770
3077
  "name"
2771
3078
  ],
2772
3079
  "properties": {
2773
3080
  "name": {
2774
3081
  "title": "Name",
2775
- "description": "Name of the schema.",
3082
+ "description": "Schema name.",
2776
3083
  "type": "string",
2777
3084
  "example": "my-schema"
2778
3085
  },
@@ -2796,20 +3103,20 @@
2796
3103
  "type": "object"
2797
3104
  },
2798
3105
  "Sequence": {
2799
- "description": "A sequence is a database object that generates a sequence of integers, often used for auto-incrementing primary key columns.",
3106
+ "description": "Sequence definition for generating incremental numeric values.",
2800
3107
  "required": [
2801
3108
  "name"
2802
3109
  ],
2803
3110
  "properties": {
2804
3111
  "name": {
2805
3112
  "title": "Name",
2806
- "description": "The name of the sequence",
3113
+ "description": "Sequence name.",
2807
3114
  "type": "string",
2808
3115
  "example": "my_sequence"
2809
3116
  },
2810
3117
  "data_type": {
2811
3118
  "title": "Data type",
2812
- "description": "The data type of the sequence",
3119
+ "description": "Data type used by the sequence.",
2813
3120
  "type": "string",
2814
3121
  "default": "bigint",
2815
3122
  "enum": [
@@ -2821,39 +3128,39 @@
2821
3128
  },
2822
3129
  "increment_by": {
2823
3130
  "title": "Increment by",
2824
- "description": "Specifies which value is added to the current sequence value to create a new value",
3131
+ "description": "Value added to the current sequence value to create a new value.",
2825
3132
  "type": "integer",
2826
3133
  "default": 1,
2827
3134
  "example": 1
2828
3135
  },
2829
3136
  "min_value": {
2830
3137
  "title": "Min value",
2831
- "description": "Determines the minimum value a sequence can generate.",
3138
+ "description": "Minimum value the sequence can generate.",
2832
3139
  "type": "integer",
2833
3140
  "example": 1
2834
3141
  },
2835
3142
  "max_value": {
2836
3143
  "title": "Max value",
2837
- "description": "Determines the maximum value for the sequence.",
3144
+ "description": "Maximum value the sequence can generate.",
2838
3145
  "type": "integer",
2839
3146
  "example": 9223372036854
2840
3147
  },
2841
3148
  "start_value": {
2842
3149
  "title": "Start value",
2843
- "description": "he initial value of the sequence",
3150
+ "description": "The initial value of the sequence",
2844
3151
  "type": "integer",
2845
3152
  "example": 1
2846
3153
  },
2847
3154
  "cache_size": {
2848
3155
  "title": "Cache size",
2849
- "description": "Specifies how many sequence numbers should be preallocated and stored in memory for faster access.",
3156
+ "description": "How many sequence numbers to preallocate and cache.",
2850
3157
  "type": "integer",
2851
3158
  "default": 1,
2852
3159
  "example": 1
2853
3160
  },
2854
3161
  "owned_by": {
2855
- "title": "Qwned by",
2856
- "description": "Associates the sequence with a specific table column, so that if that column (or its whole table) is deleted, the sequence will be automatically deleted as well. The format is schema.table.column.",
3162
+ "title": "Owned by",
3163
+ "description": "Associates the sequence with a table column so it is dropped with that column/table. Format: schema.table.column.",
2857
3164
  "type": "string",
2858
3165
  "example": "public.my_table.id"
2859
3166
  }
@@ -2861,18 +3168,18 @@
2861
3168
  "type": "object"
2862
3169
  },
2863
3170
  "Sql": {
2864
- "description": "SQL query execution endpoint. Supports SELECT, INSERT, UPDATE, DELETE and MERGE statements.",
3171
+ "description": "Execute SQL statements. Supports SELECT, INSERT, UPDATE, DELETE, and MERGE (no DDL or transaction control).",
2865
3172
  "required": [],
2866
3173
  "properties": {
2867
3174
  "q": {
2868
3175
  "title": "Query",
2869
- "description": "SQL statement. SELECT, INSERT, UPDATE, DELETE or MERGE. No DDL, transaction control, etc.",
3176
+ "description": "SQL statement to run. Allowed: SELECT, INSERT, UPDATE, DELETE, MERGE. Not allowed: DDL, transaction control.",
2870
3177
  "type": "string",
2871
3178
  "example": "SELECT :my_date::date as my_date"
2872
3179
  },
2873
3180
  "params": {
2874
3181
  "title": "Parameters",
2875
- "description": "Parameters for prepared statements.",
3182
+ "description": "Parameters for the statement. For SELECT, only one parameter set is allowed.",
2876
3183
  "type": "array",
2877
3184
  "items": {
2878
3185
  "type": "object"
@@ -2888,7 +3195,7 @@
2888
3195
  },
2889
3196
  "type_hints": {
2890
3197
  "title": "Type hints",
2891
- "description": "For JSON represented parameters which are not of JSON/JSONB type.",
3198
+ "description": "Type hints for JSON-encoded parameters that are not JSON/JSONB in the database.",
2892
3199
  "type": "object",
2893
3200
  "example": {
2894
3201
  "my_date": "date"
@@ -2896,7 +3203,7 @@
2896
3203
  },
2897
3204
  "type_formats": {
2898
3205
  "title": "Type formats",
2899
- "description": "Formats for types (like date formatting).",
3206
+ "description": "Formatting rules for typed parameters, e.g. date formats.",
2900
3207
  "type": "object",
2901
3208
  "example": {
2902
3209
  "my_date": "Y m d"
@@ -2904,14 +3211,14 @@
2904
3211
  },
2905
3212
  "output_format": {
2906
3213
  "title": "Output format",
2907
- "description": "The wanted output format: json, geojson, csv, ccsv ndjson, excel or ogr/[any ogr vector format e.g 'ogr/ESRI Shape']. ccsv and ndjson are streamed instead of returning a whole document or file.",
3214
+ "description": "Output format. Supported: json, geojson, csv, ccsv, ndjson, excel, or ogr/<format> (e.g. ogr/ESRI Shape). ccsv and ndjson are streamed.",
2908
3215
  "type": "string",
2909
3216
  "default": "json",
2910
3217
  "example": "csv"
2911
3218
  },
2912
3219
  "srs": {
2913
3220
  "title": "Spatial reference system",
2914
- "description": "The spatial reference system to use for PostGIS geometry columns. EPSG code.",
3221
+ "description": "EPSG code for the spatial reference system used for PostGIS geometry output.",
2915
3222
  "type": "integer",
2916
3223
  "default": 4326,
2917
3224
  "example": 25832
@@ -2920,7 +3227,7 @@
2920
3227
  "type": "object"
2921
3228
  },
2922
3229
  "Stats": {
2923
- "description": "Statistics about the whole database.",
3230
+ "description": "Database-level statistics, including sizes and per-table stats.",
2924
3231
  "required": [
2925
3232
  "tables",
2926
3233
  "total_size",
@@ -2931,7 +3238,7 @@
2931
3238
  "properties": {
2932
3239
  "tables": {
2933
3240
  "title": "Tables.",
2934
- "description": "List of stats for all tables.",
3241
+ "description": "Per-table statistics.",
2935
3242
  "type": "array",
2936
3243
  "items": {
2937
3244
  "$ref": "#/components/schemas/TableStats"
@@ -2939,25 +3246,25 @@
2939
3246
  },
2940
3247
  "total_size": {
2941
3248
  "title": "Total size",
2942
- "description": "The total size of all tables in human-readable format.",
3249
+ "description": "Total size of all tables in bytes.",
2943
3250
  "type": "integer",
2944
3251
  "example": 722018304
2945
3252
  },
2946
3253
  "total_size_bytes": {
2947
3254
  "title": "Total size",
2948
- "description": "The total size of all tables in bytes.",
3255
+ "description": "Total size of all tables in human-readable format.",
2949
3256
  "type": "string",
2950
3257
  "example": "689 MB"
2951
3258
  },
2952
3259
  "number_of_tables": {
2953
3260
  "title": "Number of tables",
2954
- "description": "The total of table in the database",
3261
+ "description": "Number of tables in the database.",
2955
3262
  "type": "integer",
2956
3263
  "example": 21
2957
3264
  },
2958
3265
  "cost": {
2959
3266
  "title": "Cost of queries",
2960
- "description": "The cost of queries.",
3267
+ "description": "Aggregate cost of queries (as reported by the database).",
2961
3268
  "type": "number",
2962
3269
  "example": 25686.6
2963
3270
  }
@@ -2965,7 +3272,7 @@
2965
3272
  "type": "object"
2966
3273
  },
2967
3274
  "TableStats": {
2968
- "description": "Table statistics.",
3275
+ "description": "Per-table statistics.",
2969
3276
  "required": [
2970
3277
  "table_name",
2971
3278
  "schema_name",
@@ -2987,7 +3294,7 @@
2987
3294
  },
2988
3295
  "total_size": {
2989
3296
  "title": "Total size",
2990
- "description": "The total size of the table including indices in human-readable format.",
3297
+ "description": "Total size of the table including indexes, human-readable.",
2991
3298
  "type": "string",
2992
3299
  "example": "2728 kB"
2993
3300
  },
@@ -3011,7 +3318,7 @@
3011
3318
  },
3012
3319
  "indices_size": {
3013
3320
  "title": "Indices size",
3014
- "description": "The size of the table's indices in human-readable format",
3321
+ "description": "Size of the table's indexes, human-readable.",
3015
3322
  "type": "string",
3016
3323
  "example": "520 kB"
3017
3324
  },
@@ -3031,14 +3338,14 @@
3031
3338
  "type": "object"
3032
3339
  },
3033
3340
  "Table": {
3034
- "description": "A table is much like a table on paper: It consists of rows and columns. The number and order of the columns is fixed, and each column has a name. The number of rows is variable — it reflects how much data is stored at a given moment.",
3341
+ "description": "Table definition including columns, indexes, constraints, and comments.",
3035
3342
  "required": [
3036
3343
  "name"
3037
3344
  ],
3038
3345
  "properties": {
3039
3346
  "name": {
3040
3347
  "title": "Name",
3041
- "description": "Name of the table",
3348
+ "description": "Table name.",
3042
3349
  "type": "string",
3043
3350
  "example": "my-column"
3044
3351
  },
@@ -3052,7 +3359,7 @@
3052
3359
  },
3053
3360
  "indices": {
3054
3361
  "title": "Indices",
3055
- "description": "Indices in the table.",
3362
+ "description": "Indexes defined on the table.",
3056
3363
  "type": "array",
3057
3364
  "items": {
3058
3365
  "$ref": "#/components/schemas/Index"
@@ -3060,7 +3367,7 @@
3060
3367
  },
3061
3368
  "constraints": {
3062
3369
  "title": "Constraints",
3063
- "description": "Constraints in the table.",
3370
+ "description": "Constraints defined on the table.",
3064
3371
  "type": "array",
3065
3372
  "items": {
3066
3373
  "$ref": "#/components/schemas/Constraint"
@@ -3068,7 +3375,7 @@
3068
3375
  },
3069
3376
  "comment": {
3070
3377
  "title": "Comment",
3071
- "description": "Comment on the table",
3378
+ "description": "Comment for the table.",
3072
3379
  "type": "string",
3073
3380
  "example": "This is a comment on the table"
3074
3381
  }
@@ -3076,7 +3383,7 @@
3076
3383
  "type": "object"
3077
3384
  },
3078
3385
  "User": {
3079
- "description": "Sub-users are users for your API. While you can use your super-user for single user projects, it is a good idea to create sub-users for projects involving multiple users, which can be granted different privileges in the database.",
3386
+ "description": "Sub-users are API users managed under a super-user and can be granted specific database privileges.",
3080
3387
  "required": [
3081
3388
  "name",
3082
3389
  "email",
@@ -3085,26 +3392,27 @@
3085
3392
  "properties": {
3086
3393
  "name": {
3087
3394
  "title": "Name",
3088
- "description": "Name of user.",
3395
+ "description": "User name.",
3089
3396
  "type": "string",
3090
3397
  "example": "joe"
3091
3398
  },
3092
3399
  "email": {
3093
3400
  "title": "E-mail",
3094
- "description": "Users e-mail.",
3401
+ "description": "User email address.",
3095
3402
  "type": "string",
3096
3403
  "format": "email",
3097
3404
  "example": "joe@example.com"
3098
3405
  },
3099
3406
  "password": {
3100
3407
  "title": "Password",
3101
- "description": "Users password. Min. 8 characters and at least one upper case letter and one number.",
3102
- "type": "password",
3408
+ "description": "User password. Minimum 8 characters with at least one uppercase letter and one number.",
3409
+ "type": "string",
3410
+ "format": "password",
3103
3411
  "example": "Abc123!"
3104
3412
  },
3105
3413
  "properties": {
3106
3414
  "title": "Properties",
3107
- "description": "An object, which can contain any properties and values.",
3415
+ "description": "Arbitrary custom properties for the user.",
3108
3416
  "type": "object",
3109
3417
  "example": {
3110
3418
  "phone": "555-1234567",
@@ -3114,7 +3422,7 @@
3114
3422
  },
3115
3423
  "default_user": {
3116
3424
  "title": "Is default user",
3117
- "description": "The default user is the user that is used when no token is provided. Use for public applications where users should not be able to access data without a token.",
3425
+ "description": "Whether this is the default user when no token is provided (public access).",
3118
3426
  "type": "boolean",
3119
3427
  "example": true
3120
3428
  }
@@ -3166,6 +3474,10 @@
3166
3474
  "name": "GraphQL",
3167
3475
  "description": "GraphQL"
3168
3476
  },
3477
+ {
3478
+ "name": "Metadata",
3479
+ "description": "Metadata"
3480
+ },
3169
3481
  {
3170
3482
  "name": "OAuth",
3171
3483
  "description": "OAuth"