jitera_proto 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,466 @@
1
+ syntax = "proto3";
2
+ package schema.v1;
3
+
4
+ import "google/protobuf/struct.proto";
5
+
6
+ message Frontend {
7
+ repeated AppPage app_pages = 1;
8
+ }
9
+
10
+ message AppPage {
11
+ string id = 1;
12
+ string page_name = 2;
13
+ string slug = 3;
14
+ PageType page_type = 4;
15
+ repeated PageNode nodes = 5;
16
+
17
+ enum PageType {
18
+ SCREEN = 0;
19
+ MOLECULE = 1;
20
+ }
21
+ }
22
+
23
+ message PageNode {
24
+ string id = 1;
25
+ string display_name = 2;
26
+ string name = 3;
27
+ string parent = 4;
28
+ repeated string nodes = 5;
29
+ map<string, string> linked_nodes = 6;
30
+ string component_name = 7;
31
+ NodeCustom custom = 8;
32
+
33
+ oneof props {
34
+ WebNodeProps web_props = 9;
35
+ MobileNodeProps mobile_props = 10;
36
+ }
37
+ }
38
+
39
+ message WebNodeProps {
40
+ string element_key = 1;
41
+ optional string button_type = 2;
42
+ optional string span = 3;
43
+ optional string offset = 4;
44
+ optional string push_prop = 5;
45
+ optional string pull_prop = 6;
46
+ optional string order = 7;
47
+ repeated int32 gutter = 8;
48
+ optional string wrap = 9;
49
+ optional string justify = 10;
50
+ optional string align = 11;
51
+ optional int32 pin_count = 12;
52
+ optional bool auto_focus = 13;
53
+ optional string otp_input_type = 14;
54
+ optional string icon_name = 15;
55
+ optional string icon_position = 16;
56
+ optional string color = 17;
57
+ optional string active_color = 18;
58
+ optional string inactive_color = 19;
59
+ optional string check_color = 20;
60
+ optional string direction = 21;
61
+ optional string size = 22;
62
+ optional string label = 23;
63
+ optional string date_mode = 24;
64
+ optional string date_format = 25;
65
+ optional string week_format = 26;
66
+ optional string month_format = 27;
67
+ optional string time_format = 28;
68
+ optional string mode = 29;
69
+ optional int32 space_between = 30;
70
+ optional bool is_required_authentication = 31;
71
+ optional string redirect_url = 32;
72
+ optional string flex = 33;
73
+ optional string source_type = 34;
74
+ optional bool is_password_field = 35;
75
+ optional string align_items = 36;
76
+ optional string justify_content = 37;
77
+ optional int32 xs = 38;
78
+ optional int32 sm = 39;
79
+ optional int32 md = 40;
80
+ optional int32 lg = 41;
81
+ optional int32 xl = 42;
82
+ optional int32 xxl = 43;
83
+
84
+ // { gutter: number, xs: number, md: number, xl: number }
85
+ optional google.protobuf.Struct grid = 44;
86
+
87
+ // { slidesToShow: number }
88
+ optional google.protobuf.Struct xl_responsive = 45;
89
+ optional google.protobuf.Struct md_responsive = 46;
90
+ optional google.protobuf.Struct xs_responsive = 47;
91
+
92
+ optional string picker = 48;
93
+ optional bool show_time = 49;
94
+ optional string format = 50;
95
+ optional bool disabled_overflow = 51;
96
+ optional bool multiple = 52;
97
+ optional int32 max_count = 53;
98
+ optional string placement = 54;
99
+ optional int32 width = 55;
100
+ optional bool closable = 56;
101
+ optional bool header_visible = 57;
102
+ optional string type = 58;
103
+ optional string text_type = 59;
104
+ optional int32 slides_to_show = 60;
105
+ optional bool variable_width = 61;
106
+ optional bool infinity = 62;
107
+ optional bool infinite = 63;
108
+ optional bool centered = 64;
109
+ optional string tab_position = 65;
110
+ optional google.protobuf.Struct tabs = 66;
111
+ optional google.protobuf.Struct tab_label_style = 67;
112
+ optional string default_active_key = 68;
113
+ optional bool is_header_visible = 69;
114
+ optional bool is_footer_visible = 70;
115
+ optional bool is_data_sortable = 71;
116
+ optional bool is_pagination_enabled = 72;
117
+ optional string pagination_position = 73;
118
+ optional int32 page_size = 74;
119
+
120
+ optional google.protobuf.Struct body_style = 75;
121
+ optional google.protobuf.Struct placeholder_style = 76;
122
+ optional google.protobuf.Struct container_style = 77;
123
+ optional google.protobuf.Struct dropdown_style = 78;
124
+ optional google.protobuf.Struct option_style = 79;
125
+ optional google.protobuf.Struct cell_style = 80;
126
+ optional google.protobuf.Struct cell_text_style = 81;
127
+ optional google.protobuf.Struct style = 82;
128
+ optional google.protobuf.Struct button_style = 83;
129
+ optional google.protobuf.Struct header_style = 84;
130
+ optional google.protobuf.Struct wrapper_style = 85;
131
+ optional google.protobuf.Struct table_style = 86;
132
+ optional google.protobuf.Struct header_row_style = 87;
133
+ optional google.protobuf.Struct header_column_style = 88;
134
+ optional google.protobuf.Struct body_row_style = 89;
135
+ optional google.protobuf.Struct body_column_style = 90;
136
+ optional google.protobuf.Struct sort_column_style = 91;
137
+ optional google.protobuf.Struct footer_row_style = 92;
138
+ optional google.protobuf.Struct footer_column_style = 93;
139
+ optional google.protobuf.Struct pagination_wrapper_style = 94;
140
+ optional google.protobuf.Struct label_style = 95;
141
+ optional google.protobuf.Struct input_style = 96;
142
+
143
+ optional WebNodeProps ascending_icon_props = 97;
144
+ optional WebNodeProps descending_icon_props = 98;
145
+ optional WebNodeProps icon_props = 99;
146
+ optional WebNodeProps drawer_props = 100;
147
+ optional WebNodeProps button_props = 101;
148
+ optional WebNodeProps prefix_icon_props = 102;
149
+ optional WebNodeProps suffix_icon_props = 103;
150
+
151
+ optional RenderMolecule render_item = 109;
152
+ optional MoleculeComponent header = 110;
153
+ optional MoleculeComponent footer = 111;
154
+
155
+ repeated NodeVariable drawer_title = 112;
156
+ repeated NodeVariable placeholder = 113;
157
+ repeated NodeVariable input_label = 114;
158
+ repeated NodeVariable href = 115;
159
+ repeated NodeVariable action = 116;
160
+ repeated NodeVariable data = 117;
161
+ repeated NodeVariable total_page = 118;
162
+ repeated NodeVariable default_value = 119;
163
+ repeated NodeVariable source = 120;
164
+ repeated NodeVariable title = 121;
165
+ repeated NodeVariable children_data = 122;
166
+ repeated NodeVariable responsive_visibility = 123;
167
+ repeated NodeVariable data_source = 124;
168
+
169
+ repeated TableColumn table_columns = 125;
170
+ repeated TableColumn table_actions = 126;
171
+
172
+ repeated NodeAction on_pagination_change = 127;
173
+ repeated NodeAction on_data_sorting_change = 128;
174
+
175
+ message TableColumn {
176
+ RenderMolecule molecule = 1;
177
+ repeated bool sortable = 2;
178
+ repeated bool filterable = 3;
179
+ repeated int32 column_index = 4;
180
+ repeated string column_name = 5;
181
+ repeated string column_path = 6;
182
+ }
183
+ }
184
+
185
+ message MobileNodeProps {
186
+ string element_key = 1;
187
+ optional string background_color = 2;
188
+ optional string safe_area = 3;
189
+ optional string placeholder_text_color = 4;
190
+ optional bool secure_text_entry = 5;
191
+ optional bool auto_correct = 6;
192
+ optional bool show_clear_text = 7;
193
+ optional bool show_character_counter = 8;
194
+ optional int32 max_length = 9;
195
+ optional string clear_icon_color = 10;
196
+ optional string secure_eye_icon_color = 11;
197
+ optional bool editable = 12;
198
+ optional int32 number_of_lines = 13;
199
+ optional bool vertical = 14;
200
+ optional bool loop = 15;
201
+ optional int32 timeout = 16;
202
+ optional bool horizontal = 17;
203
+ optional int32 num_columns = 18;
204
+ optional string source_type = 19;
205
+ optional bool use_default_back_button = 20;
206
+ optional bool auto_focus = 21;
207
+ optional int32 pin_count = 22;
208
+ optional string position = 23;
209
+ optional string return_key_type = 24;
210
+ optional string resize_mode = 25;
211
+ optional string keyboard_type = 26;
212
+ optional string auto_capitalize = 27;
213
+ optional string date_mode = 28;
214
+ optional string mode = 29;
215
+ optional bool infinity = 30;
216
+ optional bool inverted = 31;
217
+ optional string name = 32;
218
+ optional int32 size = 33;
219
+ optional string color = 34;
220
+ optional string type = 35;
221
+ optional string left_icon_name = 36;
222
+ optional string left_icon_type = 37;
223
+ optional int32 left_icon_size = 38;
224
+ optional string left_icon_color = 39;
225
+ optional string right_icon_name = 40;
226
+ optional string right_icon_type = 41;
227
+ optional int32 right_icon_size = 42;
228
+ optional string right_icon_color = 43;
229
+ optional string launcher_type = 44;
230
+ optional string otp_input_type = 45;
231
+ optional float border_bottom_width = 46;
232
+ optional string border_bottom_color = 47;
233
+
234
+ optional google.protobuf.Struct style = 48;
235
+ optional google.protobuf.Struct content_container_style = 49;
236
+ optional google.protobuf.Struct input_style = 50;
237
+ optional google.protobuf.Struct label_style = 51;
238
+ optional google.protobuf.Struct character_counter_style = 52;
239
+ optional google.protobuf.Struct cell_style = 53;
240
+ optional google.protobuf.Struct cell_text_style = 54;
241
+ optional google.protobuf.Struct title_style = 55;
242
+
243
+ optional RenderMolecule render_item = 56;
244
+ optional RenderMolecule preview = 57;
245
+ optional RenderMolecule component = 58;
246
+
247
+ optional MoleculeComponent list_empty_component = 59;
248
+ optional MoleculeComponent list_header_component = 60;
249
+ optional MoleculeComponent list_footer_component = 61;
250
+ optional MoleculeComponent item_separator_component = 62;
251
+
252
+ optional NodeReference key_extractor = 63;
253
+
254
+ repeated NodeVariable placeholder = 64;
255
+ repeated NodeVariable data = 65;
256
+ repeated NodeVariable source = 66;
257
+ repeated NodeVariable title = 67;
258
+ repeated NodeVariable children_data = 68;
259
+ }
260
+
261
+ message RenderMolecule {
262
+ optional NodeReference reference = 1;
263
+ repeated FunctionArgument arguments = 2;
264
+ repeated NodeParam props = 3;
265
+ }
266
+
267
+ message NodeReference {
268
+ string name = 1;
269
+ string ref_id = 2;
270
+ google.protobuf.Struct ref_data = 3;
271
+ string value = 4;
272
+ ReferenceRefType ref_type = 5;
273
+
274
+ enum ReferenceRefType {
275
+ NONE = 0;
276
+ API_REQUEST = 1;
277
+ API_REQUEST_PARAM = 2;
278
+ API_BUSINESS_PROCESS = 3;
279
+ API_RESPONSE_DATA = 4;
280
+ COLUMN_DEFINITION = 5;
281
+ MOBILE_APP_ASSET = 6;
282
+ MOBILE_APP_PAGE = 7;
283
+ MOBILE_APP_PAGE_ACTION = 8;
284
+ MOBILE_APP_PAGE_NODE = 9;
285
+ MOBILE_APP_PAGE_PARAM = 10;
286
+ MOBILE_APP_PAGE_FORM = 11;
287
+ MOBILE_NAVIGATION = 12;
288
+ MOBILE_NAVIGATION_NODE = 13;
289
+ MOBILE_MOLECULE_PROP = 14;
290
+ TABLE_DEFINITION = 15;
291
+ }
292
+ }
293
+
294
+ message FunctionArgument {
295
+ string name = 1;
296
+ string argument_type = 2;
297
+ bool plural = 3;
298
+ NodeReference reference = 4;
299
+ }
300
+
301
+ message NodeParam {
302
+ string name = 1;
303
+ string param_type = 2;
304
+ repeated string param_type_enum = 3;
305
+ string default_value = 4;
306
+ bool plural = 5;
307
+ bool automated = 6;
308
+ NodeReference reference = 7;
309
+ NodeVariable value = 8;
310
+ repeated NodeAction actions = 9;
311
+ repeated FunctionArgument function_arguments = 10;
312
+ }
313
+
314
+ message NodeVariable {
315
+ string local_id = 1;
316
+ string name = 2;
317
+ string value = 3;
318
+ string value_path = 4;
319
+ string default_value = 5;
320
+ string value_type = 6;
321
+ VariableDefaultType default_type = 7;
322
+ VariableSource source = 8;
323
+ VariableType variable_type = 9;
324
+ repeated NodeReference values = 10;
325
+
326
+ enum VariableDefaultType {
327
+ STRING = 0;
328
+ VARIABLE = 1;
329
+ }
330
+
331
+ enum VariableSource {
332
+ PARAMS = 0;
333
+ FORM_VALUES = 1;
334
+ ACTION_RESPONSE = 2;
335
+ STORAGE = 3;
336
+ AUTHENTICATED_USER = 4;
337
+ MOLECULE_PROPS = 5;
338
+ PROJECT_ASSET = 6;
339
+ CONTEXT_VALUES = 7;
340
+ LOCAL_CONTEXT_RESPONSE = 8;
341
+ FORM_VALIDATION_ERROR_MESSAGE = 9;
342
+ }
343
+
344
+ enum VariableType {
345
+ STATIC = 0;
346
+ DYNAMIC = 1;
347
+ }
348
+ }
349
+
350
+ message NodeAction {
351
+ string action = 1;
352
+ string value = 2;
353
+ ActionType action_type = 3;
354
+ ActionSource source = 4;
355
+ repeated NodePayload payload = 5;
356
+ repeated NodePayload response = 6;
357
+ repeated NodeReference values = 7;
358
+ repeated NodeAction success_actions = 8;
359
+ repeated NodeAction error_actions = 9;
360
+
361
+ enum ActionType {
362
+ API = 0;
363
+ GENERAL = 1;
364
+ }
365
+
366
+ enum ActionSource {
367
+ AUTHENTICATION = 0;
368
+ BACKEND_CALL = 1;
369
+ FORM_SUBMIT = 2;
370
+ NAVIGATION = 3;
371
+ SHOW_TOAST_MESSAGE = 4;
372
+ MOLECULE_PROPS = 5;
373
+ MODAL = 6;
374
+ EVENT_LOG = 7;
375
+ REQUEST_NOTIFICATION_PERMISSION = 8;
376
+ DRAWER = 9;
377
+ }
378
+ }
379
+
380
+ message NodePayload {
381
+ NodeVariable value = 1;
382
+ NodeReference reference = 2;
383
+ repeated NodeAction actions = 3;
384
+ }
385
+
386
+ message MoleculeComponent {
387
+ NodeReference reference = 1;
388
+ repeated NodeParam props = 2;
389
+ }
390
+
391
+ message NodeCustom {
392
+ optional bool use_prop_style = 1;
393
+ optional bool ignore_prop_style = 2;
394
+ optional NodeReference form = 3;
395
+ optional NodeReference molecule = 4;
396
+ repeated NodeMediaQuery media_queries = 5;
397
+ optional NodeReference authentication = 6;
398
+ optional RenderCondition render_condition = 7;
399
+ repeated NodeVariable seo_title = 8;
400
+ repeated NodeVariable seo_description = 9;
401
+ repeated NodeAction actions = 10;
402
+ repeated NodeParam params = 11;
403
+ repeated NodeParam props = 12;
404
+ repeated NodeVariable children_data = 13;
405
+ repeated FormValidation form_validations = 14;
406
+ }
407
+
408
+ message NodeMediaQuery {
409
+ int32 lower = 1;
410
+ int32 upper = 2;
411
+ google.protobuf.Struct style = 3;
412
+ }
413
+
414
+ message RenderCondition {
415
+ bool enabled = 1;
416
+ repeated Condition conditions = 2;
417
+
418
+ message Condition {
419
+ Source source = 1;
420
+ Operator operator = 2;
421
+ NodeVariable left = 3;
422
+ NodeVariable right = 4;
423
+ }
424
+
425
+ enum Source {
426
+ BINARY = 0;
427
+ GLOBAL = 1;
428
+ }
429
+
430
+ enum Operator {
431
+ LESS_THAN = 0;
432
+ LESS_EQUAL_THAN = 1;
433
+ EQUAL = 2;
434
+ NOT_EQUAL = 3;
435
+ GREATER_THAN = 4;
436
+ GREATER_EQUAL_THAN = 5;
437
+ EXIST = 6;
438
+ NOT_EXIST = 7;
439
+ }
440
+ }
441
+
442
+ message FormValidation {
443
+ ValidationType validation_type = 1;
444
+ repeated FormValidationsRule validation_rules = 2;
445
+
446
+ message FormValidationsRule {
447
+ string value = 1;
448
+ string value_type = 2;
449
+ repeated NodeVariable error_messages = 3;
450
+ }
451
+
452
+ enum ValidationType {
453
+ TEXT = 0;
454
+ NUMBER = 1;
455
+ EMAIL = 2;
456
+ PASSWORD = 3;
457
+ PHONE_NUMBER = 4;
458
+ }
459
+
460
+ enum RuleType {
461
+ REQUIRED = 0;
462
+ MAXIMUM = 1;
463
+ MINIMUM = 2;
464
+ REGEX = 3;
465
+ }
466
+ }