|
6 | 6 | "additionalProperties": false, |
7 | 7 | "properties": { |
8 | 8 | "use-asyncio": { |
| 9 | + "description": "Run source-statistics queries using asyncpg.", |
9 | 10 | "type": "boolean" |
10 | 11 | }, |
11 | 12 | "row_generators_module": { |
| 13 | + "description": "The name of a local Python module of row generators (excluding .py).", |
12 | 14 | "type": "string" |
13 | 15 | }, |
14 | 16 | "story_generators_module": { |
| 17 | + "description": "The name of a local Python module of story generators (excluding .py).", |
15 | 18 | "type": "string" |
16 | 19 | }, |
17 | | - |
18 | 20 | "src-stats": { |
| 21 | + "description": "An array of source statistics queries.", |
19 | 22 | "type": "array", |
20 | 23 | "items": { |
21 | 24 | "additionalProperties": false, |
22 | 25 | "required": ["name", "query"], |
23 | 26 | "properties": { |
24 | 27 | "name": { |
| 28 | + "description": "A name for the query, which will be used in the stats file.", |
25 | 29 | "type": "string" |
26 | 30 | }, |
27 | 31 | "query": { |
| 32 | + "description": "A SQL query.", |
28 | 33 | "type": "string" |
29 | 34 | }, |
30 | 35 | "dp-query": { |
| 36 | + "description": "A SmartNoise SQL query.", |
31 | 37 | "type": "string" |
32 | 38 | }, |
33 | 39 | "epsilon": { |
| 40 | + "description": "The differential privacy epsilon value for the DP query.", |
34 | 41 | "type": "number" |
35 | 42 | }, |
36 | 43 | "delta": { |
| 44 | + "description": "The differential privacy delta value for the DP query.", |
37 | 45 | "type": "number" |
38 | 46 | }, |
39 | | - |
40 | 47 | "snsql-metadata": { |
| 48 | + "description": "See https://docs.smartnoise.org/sql/metadata.html#yaml-format.", |
41 | 49 | "type": "object", |
42 | 50 | "properties": { |
| 51 | + "max_ids": { |
| 52 | + "type": "integer" |
| 53 | + }, |
| 54 | + "row_privacy": { |
| 55 | + "type": "boolean" |
| 56 | + }, |
| 57 | + "sample_max_ids": { |
| 58 | + "type": "boolean" |
| 59 | + }, |
43 | 60 | "censor_dims": { |
44 | 61 | "type": "boolean" |
| 62 | + }, |
| 63 | + "clamp_counts": { |
| 64 | + "type": "boolean" |
| 65 | + }, |
| 66 | + "clamp_columns": { |
| 67 | + "type": "boolean" |
| 68 | + }, |
| 69 | + "use_dpsu": { |
| 70 | + "type": "boolean" |
45 | 71 | } |
46 | 72 | }, |
47 | 73 | "patternProperties": { |
48 | | - "^(?!censor_dims).*$": { |
| 74 | + "^(?!(max_ids|row_privacy|sample_max_ids|censor_dims|clamp_counts|clamp_columns|use_dpsu)).*$": { |
49 | 75 | "type": "object", |
| 76 | + "additionalProperties": false, |
| 77 | + "required": ["type"], |
50 | 78 | "properties": { |
51 | | - "name": { |
52 | | - "type": "string" |
53 | | - }, |
54 | 79 | "type": { |
55 | 80 | "type": "string" |
56 | 81 | }, |
57 | 82 | "private_id": { |
58 | 83 | "type": "boolean" |
| 84 | + }, |
| 85 | + "lower": { |
| 86 | + "type": "number" |
| 87 | + }, |
| 88 | + "upper": { |
| 89 | + "type": "number" |
| 90 | + }, |
| 91 | + "nullable": { |
| 92 | + "type": "boolean" |
| 93 | + }, |
| 94 | + "missing_value": {}, |
| 95 | + "sensitivity": { |
| 96 | + "type": "number" |
59 | 97 | } |
60 | 98 | } |
61 | 99 | } |
|
66 | 104 | }, |
67 | 105 |
|
68 | 106 | "story_generators": { |
| 107 | + "description": "An array of story generators.", |
69 | 108 | "type": "array", |
70 | 109 | "items": { |
71 | 110 | "type": "object", |
72 | 111 | "additionalProperties": false, |
73 | 112 | "required": ["name", "num_stories_per_pass"], |
74 | 113 | "properties": { |
75 | 114 | "name": { |
| 115 | + "description": "The full name of a story generator (e.g. my_story_generators.short_story).", |
76 | 116 | "type": "string" |
77 | 117 | }, |
78 | 118 | "args": { |
| 119 | + "description": "Positional arguments to pass to the story generator.", |
79 | 120 | "type": "array" |
80 | 121 | }, |
81 | 122 | "kwargs": { |
| 123 | + "description": "Keyword arguments to pass to the story generator.", |
82 | 124 | "type": "object" |
83 | 125 | }, |
84 | 126 | "num_stories_per_pass": { |
| 127 | + "description": "The number of times to call the story generator per pass.", |
85 | 128 | "type": "integer" |
86 | 129 | } |
87 | 130 | } |
88 | 131 | } |
89 | 132 | }, |
90 | 133 |
|
91 | 134 | "max-unique-constraint-tries": { |
| 135 | + "description": "The maximum number of tries to respect a uniqueness constraint.", |
92 | 136 | "type": "integer" |
93 | 137 | }, |
94 | 138 |
|
95 | 139 | "tables": { |
| 140 | + "description": "Table configurations.", |
96 | 141 | "type": "object", |
97 | 142 | "patternProperties": { |
98 | 143 | ".*": { |
| 144 | + "description": "A table configuration.", |
99 | 145 | "additionalProperties": false, |
100 | 146 | "type": "object", |
101 | 147 | "properties": { |
102 | 148 | "vocabulary_table": { |
| 149 | + "description": "Whether to export the table data.", |
103 | 150 | "type": "boolean" |
104 | 151 | }, |
105 | 152 | "num_rows_per_pass": { |
| 153 | + "description": "The number of rows to generate per pass.", |
106 | 154 | "type": "integer" |
107 | 155 | }, |
108 | 156 | "row_generators": { |
| 157 | + "description": "An array of row generators to create column values.", |
109 | 158 | "type": "array", |
110 | 159 | "items": { |
111 | 160 | "type": "object", |
| 161 | + "required": ["name", "columns_assigned"], |
112 | 162 | "properties": { |
113 | 163 | "name": { |
| 164 | + "description": "The name of a (built-in or custom) function (e.g. max or my_row_generators.my_gen).", |
114 | 165 | "type": "string" |
115 | 166 | }, |
116 | 167 | "args": { |
| 168 | + "description": "Positional arguments to pass to the function.", |
117 | 169 | "type": "array" |
118 | 170 | }, |
119 | 171 | "kwargs": { |
| 172 | + "description": "Keyword arguments to pass to the function.", |
120 | 173 | "type": "object" |
121 | 174 | }, |
122 | 175 | "columns_assigned": { |
| 176 | + "description": "One or more columns to assign the return value to.", |
123 | 177 | "type": ["array", "string"], |
124 | 178 | "items": { |
125 | 179 | "type": "string" |
|
0 commit comments