1
+ {
2
+ "$schema" : " https://json-schema.org/draft-04/schema#" ,
3
+ "title" : " MySQL2JSONL configuration file" ,
4
+ "type" : " object" ,
5
+ "properties" : {
6
+ "connection" : {
7
+ "$ref" : " #/definitions/connection" ,
8
+ "description" : " MySQL connections settings"
9
+ },
10
+ "includeTables" : {
11
+ "$ref" : " #/definitions/tableConditions" ,
12
+ "description" : " List of tables to include from the database dump"
13
+ },
14
+ "excludeTables" : {
15
+ "$ref" : " #/definitions/tableConditions" ,
16
+ "description" : " List of tables to exclude from the database dump"
17
+ }
18
+ },
19
+ "definitions" : {
20
+ "matchExpression" : {
21
+ "type" : " object" ,
22
+ "description" : " Match condition for table name" ,
23
+ "properties" : {
24
+ "regexp" : {
25
+ "type" : " string" ,
26
+ "description" : " Valid regular expression for a table name with qualifiers"
27
+ },
28
+ "startsWith" : {
29
+ "type" : " string" ,
30
+ "description" : " Table name starts with"
31
+ },
32
+ "endsWith" : {
33
+ "type" : " string" ,
34
+ "description" : " Table name ends with"
35
+ },
36
+ "contains" : {
37
+ "type" : " string" ,
38
+ "description" : " Table name contains"
39
+ }
40
+ },
41
+ "minProperties" : 1 ,
42
+ "maxProperties" : 1
43
+ },
44
+ "rowCount" : {
45
+ "type" : " object" ,
46
+ "properties" : {
47
+ "min" : {
48
+ "type" : " integer" ,
49
+ "description" : " Minimum number of rows for table to be exported"
50
+ },
51
+ "max" : {
52
+ "type" : " integer" ,
53
+ "description" : " Maximum number of rows for table to be exported"
54
+ }
55
+ },
56
+ "minProperties" : 1 ,
57
+ "maxProperties" : 1
58
+ } ,
59
+ "tableName" : {
60
+ "type" : " string" ,
61
+ "pattern" : " ^[0-9a-zA-Z$_\u0080 -\uFFFF ]+$"
62
+ },
63
+ "tableConditions" : {
64
+ "type" : " array" ,
65
+ "description" : " Table matching conditions" ,
66
+ "oneOf" : [
67
+ { "$ref" : " #/definitions/matchExpression" },
68
+ { "$ref" : " #/definitions/rowCount" },
69
+ { "$ref" : " #/definitions/tableName" }
70
+ ]
71
+ },
72
+ "connection" : {
73
+ "type" : " object" ,
74
+ "properties" : {
75
+ "host" : {
76
+ "type" : " string" ,
77
+ "description" : " Host for MySQL host"
78
+ },
79
+ "port" : {
80
+ "type" : " integer" ,
81
+ "description" : " Port for MySQL connection" ,
82
+ "default" : 3306
83
+ },
84
+ "user" : {
85
+ "type" : " string" ,
86
+ "description" : " Username for MySQL connection" ,
87
+ "default" : " root"
88
+ },
89
+ "password" : {
90
+ "type" : " string" ,
91
+ "description" : " Password for MySQL connection" ,
92
+ "default" : " "
93
+ },
94
+ "database" : {
95
+ "type" : " string" ,
96
+ "description" : " Database for MySQL connection"
97
+ },
98
+ "charset" : {
99
+ "type" : " string" ,
100
+ "description" : " Charset for MySQL connection" ,
101
+ "default" : " utf8mb4"
102
+ },
103
+ "collate" : {
104
+ "type" : " string" ,
105
+ "description" : " Collation for MySQL connection" ,
106
+ "default" : " utf8mb4_unicode_ci"
107
+ },
108
+ "sqlMode" : {
109
+ "type" : " string" ,
110
+ "description" : " SQL_MODE to set for the connection"
111
+ },
112
+ "useCompression" : {
113
+ "type" : " boolean" ,
114
+ "description" : " Use compression for MySQL connection"
115
+ },
116
+ "key" : {
117
+ "type" : " string" ,
118
+ "description" : " Private key to use for sha256_password auth method in MySQL connection"
119
+ }
120
+ },
121
+ "required" : [
122
+ " host" , " database"
123
+ ]
124
+ }
125
+ }
126
+ }
0 commit comments