amsdal 0.5.19__cp312-cp312-macosx_10_13_universal2.whl → 0.5.21__cp312-cp312-macosx_10_13_universal2.whl
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.
Potentially problematic release.
This version of amsdal might be problematic. Click here for more details.
- amsdal/__about__.py +1 -1
- amsdal/cloud/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/client.cpython-312-darwin.so +0 -0
- amsdal/cloud/constants.cpython-312-darwin.so +0 -0
- amsdal/cloud/enums.cpython-312-darwin.so +0 -0
- amsdal/cloud/models/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/models/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_allowlist_ip.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_basic_auth.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_dependency.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_secret.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_env.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_session.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_allowlist_ip.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_basic_auth.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_dependency.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_env.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_secret.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/destroy_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/expose_db.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/get_monitoring_info.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_dependencies.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_deploys.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_envs.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_secrets.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/manager.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/signup_action.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/update_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/credentials.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/manager.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/signup_service.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/token.cpython-312-darwin.so +0 -0
- amsdal/contrib/__init__.cpython-312-darwin.so +0 -0
- amsdal/contrib/frontend_configs/migrations/0002_add_button_and_invoke_actions.py +314 -0
- amsdal/contrib/frontend_configs/models/frontend_config_control_action.py +57 -1
- amsdal/contrib/frontend_configs/models/frontend_control_config.py +10 -1
- amsdal/fixtures/__init__.cpython-312-darwin.so +0 -0
- amsdal/fixtures/manager.cpython-312-darwin.so +0 -0
- amsdal/fixtures/utils.cpython-312-darwin.so +0 -0
- amsdal/manager.cpython-312-darwin.so +0 -0
- amsdal/mixins/__init__.cpython-312-darwin.so +0 -0
- amsdal/mixins/class_versions_mixin.cpython-312-darwin.so +0 -0
- amsdal/schemas/manager.cpython-312-darwin.so +0 -0
- amsdal/services/__init__.py +11 -0
- amsdal/services/external_connections.py +262 -0
- amsdal/services/external_model_generator.py +350 -0
- amsdal/services/transaction_execution.cpython-312-darwin.so +0 -0
- {amsdal-0.5.19.dist-info → amsdal-0.5.21.dist-info}/METADATA +1 -1
- {amsdal-0.5.19.dist-info → amsdal-0.5.21.dist-info}/RECORD +59 -58
- amsdal/services/__init__.cpython-312-darwin.so +0 -0
- amsdal/services/external_connections.cpython-312-darwin.so +0 -0
- amsdal/services/external_model_generator.cpython-312-darwin.so +0 -0
- {amsdal-0.5.19.dist-info → amsdal-0.5.21.dist-info}/WHEEL +0 -0
- {amsdal-0.5.19.dist-info → amsdal-0.5.21.dist-info}/licenses/LICENSE.txt +0 -0
- {amsdal-0.5.19.dist-info → amsdal-0.5.21.dist-info}/top_level.txt +0 -0
amsdal/__about__.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
from amsdal_models.migration import migrations
|
|
2
|
+
from amsdal_utils.models.enums import ModuleType
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Migration(migrations.Migration):
|
|
6
|
+
operations: list[migrations.Operation] = [
|
|
7
|
+
migrations.CreateClass(
|
|
8
|
+
module_type=ModuleType.CONTRIB,
|
|
9
|
+
class_name="UpdateValueAction",
|
|
10
|
+
new_schema={
|
|
11
|
+
"title": "UpdateValueAction",
|
|
12
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
13
|
+
"required": ["type", "field_id", "value"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"type": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"options": [{"key": "update_value", "value": "update_value"}],
|
|
18
|
+
"title": "Type",
|
|
19
|
+
"enum": ["update_value"],
|
|
20
|
+
},
|
|
21
|
+
"field_id": {"type": "string", "title": "Field ID"},
|
|
22
|
+
"value": {"type": "anything", "title": "Value"},
|
|
23
|
+
},
|
|
24
|
+
"meta_class": "TypeMeta",
|
|
25
|
+
"custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
|
|
26
|
+
"storage_metadata": {"table_name": "UpdateValueAction", "db_fields": {}, "foreign_keys": {}},
|
|
27
|
+
},
|
|
28
|
+
),
|
|
29
|
+
migrations.CreateClass(
|
|
30
|
+
module_type=ModuleType.CONTRIB,
|
|
31
|
+
class_name="InvokeAction",
|
|
32
|
+
new_schema={
|
|
33
|
+
"title": "InvokeAction",
|
|
34
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
35
|
+
"required": ["type", "method", "url"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"type": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"options": [{"key": "invoke", "value": "invoke"}],
|
|
40
|
+
"title": "Type",
|
|
41
|
+
"enum": ["invoke"],
|
|
42
|
+
},
|
|
43
|
+
"method": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"title": "HTTP Method",
|
|
46
|
+
"enum": ["GET", "POST", "PUT", "PATCH", "DELETE"],
|
|
47
|
+
"options": [
|
|
48
|
+
{"key": "GET", "value": "GET"},
|
|
49
|
+
{"key": "POST", "value": "POST"},
|
|
50
|
+
{"key": "PUT", "value": "PUT"},
|
|
51
|
+
{"key": "PATCH", "value": "PATCH"},
|
|
52
|
+
{"key": "DELETE", "value": "DELETE"},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
"url": {"type": "string", "title": "URL"},
|
|
56
|
+
"headers": {"type": "dict", "title": "Headers"},
|
|
57
|
+
"body": {"type": "dict", "title": "Body"},
|
|
58
|
+
"onSuccess": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {"type": "anything"},
|
|
61
|
+
"title": "On Success Actions",
|
|
62
|
+
},
|
|
63
|
+
"onError": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": {"type": "anything"},
|
|
66
|
+
"title": "On Error Actions",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
"meta_class": "TypeMeta",
|
|
70
|
+
"custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
|
|
71
|
+
"storage_metadata": {"table_name": "InvokeAction", "db_fields": {}, "foreign_keys": {}},
|
|
72
|
+
},
|
|
73
|
+
),
|
|
74
|
+
migrations.CreateClass(
|
|
75
|
+
module_type=ModuleType.CONTRIB,
|
|
76
|
+
class_name="ChangeContextAction",
|
|
77
|
+
new_schema={
|
|
78
|
+
"title": "ChangeContextAction",
|
|
79
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
80
|
+
"required": ["type", "context"],
|
|
81
|
+
"properties": {
|
|
82
|
+
"type": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"options": [{"key": "change_context", "value": "change_context"}],
|
|
85
|
+
"title": "Type",
|
|
86
|
+
"enum": ["change_context"],
|
|
87
|
+
},
|
|
88
|
+
"context": {"type": "dict", "title": "Context"},
|
|
89
|
+
},
|
|
90
|
+
"meta_class": "TypeMeta",
|
|
91
|
+
"custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
|
|
92
|
+
"storage_metadata": {"table_name": "ChangeContextAction", "db_fields": {}, "foreign_keys": {}},
|
|
93
|
+
},
|
|
94
|
+
),
|
|
95
|
+
migrations.CreateClass(
|
|
96
|
+
module_type=ModuleType.CONTRIB,
|
|
97
|
+
class_name="SaveAction",
|
|
98
|
+
new_schema={
|
|
99
|
+
"title": "SaveAction",
|
|
100
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
101
|
+
"required": ["type"],
|
|
102
|
+
"properties": {
|
|
103
|
+
"type": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"options": [{"key": "save", "value": "save"}],
|
|
106
|
+
"title": "Type",
|
|
107
|
+
"enum": ["save"],
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
"meta_class": "TypeMeta",
|
|
111
|
+
"custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
|
|
112
|
+
"storage_metadata": {"table_name": "SaveAction", "db_fields": {}, "foreign_keys": {}},
|
|
113
|
+
},
|
|
114
|
+
),
|
|
115
|
+
migrations.UpdateClass(
|
|
116
|
+
module_type=ModuleType.CONTRIB,
|
|
117
|
+
class_name="FrontendControlConfig",
|
|
118
|
+
old_schema={
|
|
119
|
+
"title": "FrontendControlConfig",
|
|
120
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
121
|
+
"required": ["type", "name"],
|
|
122
|
+
"properties": {
|
|
123
|
+
"type": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"options": [
|
|
126
|
+
{"key": "Bytes", "value": "Bytes"},
|
|
127
|
+
{"key": "array", "value": "array"},
|
|
128
|
+
{"key": "checkbox", "value": "checkbox"},
|
|
129
|
+
{"key": "date", "value": "date"},
|
|
130
|
+
{"key": "dateTriplet", "value": "dateTriplet"},
|
|
131
|
+
{"key": "datetime", "value": "datetime"},
|
|
132
|
+
{"key": "dict", "value": "dict"},
|
|
133
|
+
{"key": "dropzone", "value": "dropzone"},
|
|
134
|
+
{"key": "email", "value": "email"},
|
|
135
|
+
{"key": "file", "value": "file"},
|
|
136
|
+
{"key": "group", "value": "group"},
|
|
137
|
+
{"key": "group_switch", "value": "group_switch"},
|
|
138
|
+
{"key": "group_toggle", "value": "group_toggle"},
|
|
139
|
+
{"key": "info-group", "value": "info-group"},
|
|
140
|
+
{"key": "infoscreen", "value": "infoscreen"},
|
|
141
|
+
{"key": "multiselect", "value": "multiselect"},
|
|
142
|
+
{"key": "number", "value": "number"},
|
|
143
|
+
{"key": "number-operations", "value": "number-operations"},
|
|
144
|
+
{"key": "number-slider", "value": "number-slider"},
|
|
145
|
+
{"key": "number_equals", "value": "number_equals"},
|
|
146
|
+
{"key": "number_initial", "value": "number_initial"},
|
|
147
|
+
{"key": "number_minus", "value": "number_minus"},
|
|
148
|
+
{"key": "number_plus", "value": "number_plus"},
|
|
149
|
+
{"key": "object", "value": "object"},
|
|
150
|
+
{"key": "object_group", "value": "object_group"},
|
|
151
|
+
{"key": "object_latest", "value": "object_latest"},
|
|
152
|
+
{"key": "password", "value": "password"},
|
|
153
|
+
{"key": "phone", "value": "phone"},
|
|
154
|
+
{"key": "radio", "value": "radio"},
|
|
155
|
+
{"key": "select", "value": "select"},
|
|
156
|
+
{"key": "text", "value": "text"},
|
|
157
|
+
{"key": "textarea", "value": "textarea"},
|
|
158
|
+
{"key": "time", "value": "time"},
|
|
159
|
+
{"key": "toggle", "value": "toggle"},
|
|
160
|
+
{"key": "sections", "value": "sections"},
|
|
161
|
+
{"key": "section", "value": "section"},
|
|
162
|
+
],
|
|
163
|
+
"title": "Type",
|
|
164
|
+
"enum": [
|
|
165
|
+
"Bytes",
|
|
166
|
+
"array",
|
|
167
|
+
"checkbox",
|
|
168
|
+
"date",
|
|
169
|
+
"dateTriplet",
|
|
170
|
+
"datetime",
|
|
171
|
+
"dict",
|
|
172
|
+
"dropzone",
|
|
173
|
+
"email",
|
|
174
|
+
"file",
|
|
175
|
+
"group",
|
|
176
|
+
"group_switch",
|
|
177
|
+
"group_toggle",
|
|
178
|
+
"info-group",
|
|
179
|
+
"infoscreen",
|
|
180
|
+
"multiselect",
|
|
181
|
+
"number",
|
|
182
|
+
"number-operations",
|
|
183
|
+
"number-slider",
|
|
184
|
+
"number_equals",
|
|
185
|
+
"number_initial",
|
|
186
|
+
"number_minus",
|
|
187
|
+
"number_plus",
|
|
188
|
+
"object",
|
|
189
|
+
"object_group",
|
|
190
|
+
"object_latest",
|
|
191
|
+
"password",
|
|
192
|
+
"phone",
|
|
193
|
+
"radio",
|
|
194
|
+
"select",
|
|
195
|
+
"text",
|
|
196
|
+
"textarea",
|
|
197
|
+
"time",
|
|
198
|
+
"toggle",
|
|
199
|
+
"sections",
|
|
200
|
+
"section",
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
"name": {"type": "string", "title": "Name"},
|
|
204
|
+
"actions": {
|
|
205
|
+
"type": "array",
|
|
206
|
+
"items": {"type": "FrontendConfigControlAction", "title": "FrontendConfigControlAction"},
|
|
207
|
+
"title": "Actions",
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
"meta_class": "TypeMeta",
|
|
211
|
+
"storage_metadata": {"table_name": "FrontendControlConfig", "db_fields": {}, "foreign_keys": {}},
|
|
212
|
+
},
|
|
213
|
+
new_schema={
|
|
214
|
+
"title": "FrontendControlConfig",
|
|
215
|
+
"type": "FrontendConfigSkipNoneBase",
|
|
216
|
+
"required": ["type", "name"],
|
|
217
|
+
"properties": {
|
|
218
|
+
"type": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"options": [
|
|
221
|
+
{"key": "Bytes", "value": "Bytes"},
|
|
222
|
+
{"key": "array", "value": "array"},
|
|
223
|
+
{"key": "button", "value": "button"},
|
|
224
|
+
{"key": "chat", "value": "chat"},
|
|
225
|
+
{"key": "checkbox", "value": "checkbox"},
|
|
226
|
+
{"key": "date", "value": "date"},
|
|
227
|
+
{"key": "dateTriplet", "value": "dateTriplet"},
|
|
228
|
+
{"key": "datetime", "value": "datetime"},
|
|
229
|
+
{"key": "dict", "value": "dict"},
|
|
230
|
+
{"key": "dropzone", "value": "dropzone"},
|
|
231
|
+
{"key": "email", "value": "email"},
|
|
232
|
+
{"key": "file", "value": "file"},
|
|
233
|
+
{"key": "group", "value": "group"},
|
|
234
|
+
{"key": "group_switch", "value": "group_switch"},
|
|
235
|
+
{"key": "group_toggle", "value": "group_toggle"},
|
|
236
|
+
{"key": "info-group", "value": "info-group"},
|
|
237
|
+
{"key": "infoscreen", "value": "infoscreen"},
|
|
238
|
+
{"key": "multiselect", "value": "multiselect"},
|
|
239
|
+
{"key": "number", "value": "number"},
|
|
240
|
+
{"key": "number-operations", "value": "number-operations"},
|
|
241
|
+
{"key": "number-slider", "value": "number-slider"},
|
|
242
|
+
{"key": "number_equals", "value": "number_equals"},
|
|
243
|
+
{"key": "number_initial", "value": "number_initial"},
|
|
244
|
+
{"key": "number_minus", "value": "number_minus"},
|
|
245
|
+
{"key": "number_plus", "value": "number_plus"},
|
|
246
|
+
{"key": "object", "value": "object"},
|
|
247
|
+
{"key": "object_group", "value": "object_group"},
|
|
248
|
+
{"key": "object_latest", "value": "object_latest"},
|
|
249
|
+
{"key": "password", "value": "password"},
|
|
250
|
+
{"key": "phone", "value": "phone"},
|
|
251
|
+
{"key": "radio", "value": "radio"},
|
|
252
|
+
{"key": "select", "value": "select"},
|
|
253
|
+
{"key": "text", "value": "text"},
|
|
254
|
+
{"key": "textarea", "value": "textarea"},
|
|
255
|
+
{"key": "time", "value": "time"},
|
|
256
|
+
{"key": "toggle", "value": "toggle"},
|
|
257
|
+
{"key": "sections", "value": "sections"},
|
|
258
|
+
{"key": "section", "value": "section"},
|
|
259
|
+
],
|
|
260
|
+
"title": "Type",
|
|
261
|
+
"enum": [
|
|
262
|
+
"Bytes",
|
|
263
|
+
"array",
|
|
264
|
+
"button",
|
|
265
|
+
"chat",
|
|
266
|
+
"checkbox",
|
|
267
|
+
"date",
|
|
268
|
+
"dateTriplet",
|
|
269
|
+
"datetime",
|
|
270
|
+
"dict",
|
|
271
|
+
"dropzone",
|
|
272
|
+
"email",
|
|
273
|
+
"file",
|
|
274
|
+
"group",
|
|
275
|
+
"group_switch",
|
|
276
|
+
"group_toggle",
|
|
277
|
+
"info-group",
|
|
278
|
+
"infoscreen",
|
|
279
|
+
"multiselect",
|
|
280
|
+
"number",
|
|
281
|
+
"number-operations",
|
|
282
|
+
"number-slider",
|
|
283
|
+
"number_equals",
|
|
284
|
+
"number_initial",
|
|
285
|
+
"number_minus",
|
|
286
|
+
"number_plus",
|
|
287
|
+
"object",
|
|
288
|
+
"object_group",
|
|
289
|
+
"object_latest",
|
|
290
|
+
"password",
|
|
291
|
+
"phone",
|
|
292
|
+
"radio",
|
|
293
|
+
"select",
|
|
294
|
+
"text",
|
|
295
|
+
"textarea",
|
|
296
|
+
"time",
|
|
297
|
+
"toggle",
|
|
298
|
+
"sections",
|
|
299
|
+
"section",
|
|
300
|
+
],
|
|
301
|
+
},
|
|
302
|
+
"name": {"type": "string", "title": "Name"},
|
|
303
|
+
"actions": {
|
|
304
|
+
"type": "array",
|
|
305
|
+
"items": {"type": "anything"},
|
|
306
|
+
"title": "Actions",
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
"meta_class": "TypeMeta",
|
|
310
|
+
"custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
|
|
311
|
+
"storage_metadata": {"table_name": "FrontendControlConfig", "db_fields": {}, "foreign_keys": {}},
|
|
312
|
+
},
|
|
313
|
+
),
|
|
314
|
+
]
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
from typing import ClassVar
|
|
3
|
+
from typing import Literal
|
|
3
4
|
|
|
4
5
|
from amsdal_models.builder.validators.options_validators import validate_options
|
|
5
6
|
from amsdal_utils.models.enums import ModuleType
|
|
7
|
+
from pydantic import Field
|
|
6
8
|
from pydantic import field_validator
|
|
7
|
-
from pydantic.fields import Field
|
|
8
9
|
|
|
9
10
|
from amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import * # noqa: F403
|
|
10
11
|
|
|
12
|
+
__all__ = [
|
|
13
|
+
'ActionType',
|
|
14
|
+
'ChangeContextAction',
|
|
15
|
+
'FrontendConfigControlAction',
|
|
16
|
+
'InvokeAction',
|
|
17
|
+
'SaveAction',
|
|
18
|
+
'UpdateValueAction',
|
|
19
|
+
]
|
|
20
|
+
|
|
11
21
|
|
|
12
22
|
class FrontendConfigControlAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
23
|
+
"""Navigation action for form controls (backward compatible)."""
|
|
24
|
+
|
|
13
25
|
__module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
|
|
14
26
|
action: str = Field(title='Action')
|
|
15
27
|
text: str = Field(title='Text')
|
|
@@ -52,3 +64,47 @@ class FrontendConfigControlAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
|
52
64
|
msg = 'Action must be one of: goPrev, goNext, goNextWithSubmit, submit, submitWithDataLayer, navigate::{string}' # noqa: E501
|
|
53
65
|
raise ValueError(msg)
|
|
54
66
|
return v
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class UpdateValueAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
70
|
+
"""Action to update a field value (used in onSuccess callbacks)."""
|
|
71
|
+
|
|
72
|
+
__module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
|
|
73
|
+
type: Literal['update_value'] = Field(title='Type')
|
|
74
|
+
field_id: str = Field(title='Field ID')
|
|
75
|
+
value: Any = Field(title='Value')
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class InvokeAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
79
|
+
"""Action to invoke an API endpoint."""
|
|
80
|
+
|
|
81
|
+
__module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
|
|
82
|
+
type: Literal['invoke'] = Field(title='Type')
|
|
83
|
+
method: Literal['GET', 'POST', 'PUT', 'PATCH', 'DELETE'] = Field(title='HTTP Method')
|
|
84
|
+
url: str = Field(title='URL')
|
|
85
|
+
headers: dict[str, str] | None = Field(None, title='Headers')
|
|
86
|
+
body: dict[str, Any] | None = Field(None, title='Body')
|
|
87
|
+
onSuccess: list['ActionType'] | None = Field(None, title='On Success Actions') # noqa: N815
|
|
88
|
+
onError: list['ActionType'] | None = Field(None, title='On Error Actions') # noqa: N815
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class ChangeContextAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
92
|
+
"""Action to change the context."""
|
|
93
|
+
|
|
94
|
+
__module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
|
|
95
|
+
type: Literal['change_context'] = Field(title='Type')
|
|
96
|
+
context: dict[str, Any] = Field(title='Context')
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class SaveAction(FrontendConfigSkipNoneBase): # noqa: F405
|
|
100
|
+
"""Action to save data."""
|
|
101
|
+
|
|
102
|
+
__module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
|
|
103
|
+
type: Literal['save'] = Field(title='Type')
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# Union type for all action types - discriminated by 'type' field
|
|
107
|
+
ActionType = FrontendConfigControlAction | InvokeAction | UpdateValueAction | ChangeContextAction | SaveAction
|
|
108
|
+
|
|
109
|
+
# Rebuild model to handle forward references
|
|
110
|
+
InvokeAction.model_rebuild()
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
1
2
|
from typing import Any
|
|
2
3
|
from typing import ClassVar
|
|
3
4
|
from typing import Literal
|
|
@@ -15,9 +16,14 @@ from amsdal.contrib.frontend_configs.models.frontend_config_slider_option import
|
|
|
15
16
|
from amsdal.contrib.frontend_configs.models.frontend_config_text_mask import * # noqa: F403
|
|
16
17
|
from amsdal.contrib.frontend_configs.models.frontend_config_validator import * # noqa: F403
|
|
17
18
|
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from amsdal.contrib.frontend_configs.models.frontend_config_control_action import ActionType
|
|
21
|
+
|
|
18
22
|
ConfigType = Literal[
|
|
19
23
|
'Bytes',
|
|
20
24
|
'array',
|
|
25
|
+
'button',
|
|
26
|
+
'chat',
|
|
21
27
|
'checkbox',
|
|
22
28
|
'date',
|
|
23
29
|
'dateTriplet',
|
|
@@ -77,7 +83,7 @@ class FrontendControlConfig(FrontendConfigSkipNoneBase): # noqa: F405
|
|
|
77
83
|
label: str | None = Field(None, title='Label')
|
|
78
84
|
required: bool | None = Field(None, title='Required')
|
|
79
85
|
hideLabel: bool | None = Field(None, title='Hide Label') # noqa: N815
|
|
80
|
-
actions: list[
|
|
86
|
+
actions: list[ActionType] | None = Field(None, title='Actions') # noqa: F405
|
|
81
87
|
validators: list['FrontendConfigValidator'] | None = Field(None, title='Validators') # noqa: F405
|
|
82
88
|
asyncValidators: list['FrontendConfigAsyncValidator'] | None = Field( # noqa: F405, N815
|
|
83
89
|
None,
|
|
@@ -96,3 +102,6 @@ class FrontendControlConfig(FrontendConfigSkipNoneBase): # noqa: F405
|
|
|
96
102
|
control: Optional['FrontendControlConfig'] = Field(None, title='Control')
|
|
97
103
|
entityType: str | None = Field(None, title='Entity Type') # noqa: N815
|
|
98
104
|
condition: Condition | None = Field(None, title='Condition') # noqa: F405
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
FrontendControlConfig.model_rebuild()
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# AMSDAL services package
|
|
2
|
+
|
|
3
|
+
from amsdal.services.external_connections import ExternalConnectionManager
|
|
4
|
+
from amsdal.services.external_connections import ExternalDatabaseReader
|
|
5
|
+
from amsdal.services.external_model_generator import ExternalModelGenerator
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
'ExternalConnectionManager',
|
|
9
|
+
'ExternalDatabaseReader',
|
|
10
|
+
'ExternalModelGenerator',
|
|
11
|
+
]
|