jaaql-middleware-python 4.33.13__tar.gz → 4.33.15__tar.gz

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.
Files changed (77) hide show
  1. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/PKG-INFO +1 -1
  2. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/constants.py +1 -1
  3. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/documentation/documentation_public.py +19 -0
  4. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/base_controller.py +9 -2
  5. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/controller.py +6 -1
  6. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/model.py +3 -1
  7. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql_middleware_python.egg-info/PKG-INFO +1 -1
  8. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/LICENSE.txt +0 -0
  9. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/README.md +0 -0
  10. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/__init__.py +0 -0
  11. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/config/__init__.py +0 -0
  12. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/config/config-docker.ini +0 -0
  13. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/config/config-test.ini +0 -0
  14. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/config/config.ini +0 -0
  15. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/config_constants.py +0 -0
  16. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/db/__init__.py +0 -0
  17. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/db/db_interface.py +0 -0
  18. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/db/db_pg_interface.py +0 -0
  19. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/db/db_utils.py +0 -0
  20. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/db/db_utils_no_circ.py +0 -0
  21. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/documentation/__init__.py +0 -0
  22. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/documentation/documentation_internal.py +0 -0
  23. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/documentation/documentation_shared.py +0 -0
  24. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/email/__init__.py +0 -0
  25. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/email/email_manager.py +0 -0
  26. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/email/email_manager_service.py +0 -0
  27. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/email/patch_ems.py +0 -0
  28. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/exceptions/__init__.py +0 -0
  29. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/exceptions/custom_http_status.py +0 -0
  30. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/exceptions/http_status_exception.py +0 -0
  31. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/exceptions/jaaql_interpretable_handled_errors.py +0 -0
  32. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/exceptions/not_yet_implement_exception.py +0 -0
  33. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/generated_constants.py +0 -0
  34. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/interpreter/__init__.py +0 -0
  35. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/interpreter/interpret_jaaql.py +0 -0
  36. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/jaaql.py +0 -0
  37. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/migrations/__init__.py +0 -0
  38. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/migrations/migrations.py +0 -0
  39. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/__init__.py +0 -0
  40. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/base_model.py +0 -0
  41. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/controller_interface.py +0 -0
  42. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/exception_queries.py +0 -0
  43. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/generated_queries.py +0 -0
  44. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/handmade_queries.py +0 -0
  45. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/model_interface.py +0 -0
  46. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/mvc/response.py +0 -0
  47. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/openapi/__init__.py +0 -0
  48. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/openapi/swagger_documentation.py +0 -0
  49. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/patch.py +0 -0
  50. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/01.install_domains.generated.sql +0 -0
  51. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/02.install_super_user.exceptions.sql +0 -0
  52. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/03.install_super_user.handwritten.sql +0 -0
  53. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/04.install_jaaql_data_structures.generated.sql +0 -0
  54. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/05.install_static_data.generated.sql +0 -0
  55. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/06.install_jaaql.exceptions.sql +0 -0
  56. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/ZZZZ.generated_functions_views_and_permissions.sql +0 -0
  57. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/ZZZZ.reset_references.sql +0 -0
  58. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/scripts/swagger_template.html +0 -0
  59. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/__init__.py +0 -0
  60. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/cached_canned_query_service.py +0 -0
  61. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/migrations_manager_service.py +0 -0
  62. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/patch_mms.py +0 -0
  63. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/patch_shared_var_service.py +0 -0
  64. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/services/shared_var_service.py +0 -0
  65. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/__init__.py +0 -0
  66. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/cron.py +0 -0
  67. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/crypt_utils.py +0 -0
  68. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/options.py +0 -0
  69. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/utils.py +0 -0
  70. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/utils_no_project_imports.py +0 -0
  71. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql/utilities/vault.py +0 -0
  72. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql_middleware_python.egg-info/SOURCES.txt +0 -0
  73. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql_middleware_python.egg-info/dependency_links.txt +0 -0
  74. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql_middleware_python.egg-info/requires.txt +0 -0
  75. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/jaaql_middleware_python.egg-info/top_level.txt +0 -0
  76. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/setup.cfg +0 -0
  77. {jaaql_middleware_python-4.33.13 → jaaql_middleware_python-4.33.15}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaaql-middleware-python
3
- Version: 4.33.13
3
+ Version: 4.33.15
4
4
  Summary: The jaaql package, allowing for rapid development and deployment of RESTful HTTP applications
5
5
  Home-page: https://github.com/JAAQL/JAAQL-middleware-python
6
6
  Author: Software Quality Measurement and Improvement bv
@@ -208,5 +208,5 @@ ROLE__postgres = "postgres"
208
208
 
209
209
  PROTOCOL__postgres = "postgresql://"
210
210
 
211
- VERSION = "4.33.13"
211
+ VERSION = "4.33.15"
212
212
 
@@ -176,6 +176,25 @@ DOCUMENTATION__webhook = SwaggerDocumentation(
176
176
  ]
177
177
  )
178
178
 
179
+ DOCUMENTATION__secure_webhook = SwaggerDocumentation(
180
+ tags="Webhook",
181
+ security=True, # Security is handled at the webhook implementation itself
182
+ methods=[
183
+ SwaggerMethod(
184
+ name="Receive Webhook GET",
185
+ description="Receives a webhook as a GET",
186
+ method=REST__GET,
187
+ arguments=ARG_RES__proc + [ARG_RES__parameters]
188
+ ),
189
+ SwaggerMethod(
190
+ name="Receive Webhook POST",
191
+ description="Receives a webhook as a POST",
192
+ method=REST__POST,
193
+ arguments=ARG_RESP__allow_all
194
+ )
195
+ ]
196
+ )
197
+
179
198
  EXAMPLE__document_id = "b47dc954-d608-4e1b-8a8c-d8b754ee554b"
180
199
 
181
200
  ARG_RES__document_id = SwaggerArgumentResponse(
@@ -1,5 +1,6 @@
1
1
  import threading
2
2
  import traceback
3
+ from werkzeug.datastructures import Headers
3
4
  import uuid
4
5
  from functools import wraps
5
6
 
@@ -667,9 +668,15 @@ class BaseJAAQLController:
667
668
  if jaaql_resp.raw_response is not None:
668
669
  resp = jaaql_resp.raw_response
669
670
  if jaaql_resp.is_binary:
670
- resp = Response(resp, mimetype=jaaql_resp.response_type, status=jaaql_resp.response_code)
671
+ hdrs = Headers(jaaql_resp.raw_headers or {})
672
+ content_type = hdrs.pop("Content-Type", None)
673
+ try:
674
+ del jaaql_resp.raw_headers["Content-Type"]
675
+ except:
676
+ pass
677
+ resp = Response(resp, status=jaaql_resp.response_code, content_type=content_type or "application/octet-stream")
671
678
  else:
672
- resp = Response(resp, status=jaaql_resp.response_code)
679
+ resp = Response(resp, mimetype=jaaql_resp.response_type, status=jaaql_resp.response_code)
673
680
 
674
681
  for key, val in jaaql_resp.raw_headers.items():
675
682
  resp.headers.add(key, val)
@@ -151,7 +151,12 @@ class JAAQLController(BaseJAAQLController):
151
151
 
152
152
  @self.publish_route('/webhook/<application>/<name>', DOCUMENTATION__webhook)
153
153
  def handle_webhook(application: str, name: str, body: bytes, headers: dict, args: dict, response: JAAQLResponse):
154
- self.model.handle_webhook(application, name, body, headers, args, response)
154
+ self.model.handle_webhook(application, name, body, headers, args, response, None)
155
+
156
+ @self.publish_route('/secure/<application>/<name>', DOCUMENTATION__secure_webhook)
157
+ def handle_secure_webhook(application: str, name: str, body: bytes, headers: dict, args: dict,
158
+ response: JAAQLResponse, account_id: str):
159
+ self.model.handle_webhook(application, name, body, headers, args, response, account_id)
155
160
 
156
161
  @self.publish_route('/remote_procedure', DOCUMENTATION__remote_procedures)
157
162
  def handle_remote_procedure(http_inputs: dict, is_the_anonymous_user: bool, auth_token: str, username: str, ip_address: str, account_id: str):
@@ -1647,7 +1647,7 @@ WHERE
1647
1647
  raise HttpStatusException("Could not intepret remote procedure result", HTTPStatus.INTERNAL_SERVER_ERROR)
1648
1648
 
1649
1649
  def handle_webhook(self, application: str, name: str, body: bytes, headers: dict, args: dict,
1650
- response: JAAQLResponse):
1650
+ response: JAAQLResponse, account_id: str | None):
1651
1651
  rpc = remote_procedure__select(self.jaaql_lookup_connection, application, name)
1652
1652
  if rpc[KG__remote_procedure__access] != RPC_ACCESS__webhook:
1653
1653
  raise HttpStatusException("Procedure type is not type webhook")
@@ -1668,6 +1668,8 @@ WHERE
1668
1668
 
1669
1669
  argv = shlex.split(base_cmd) # ["node","--import","./__imports__.js","RemoteProcedures/...entrypoint.js"]
1670
1670
  argv += [encoded_headers, encoded_args, encoded_body]
1671
+ if account_id is not None:
1672
+ argv += [account_id]
1671
1673
 
1672
1674
  # No shell; pass argv list. Capture output as text.
1673
1675
  result = subprocess.run(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaaql-middleware-python
3
- Version: 4.33.13
3
+ Version: 4.33.15
4
4
  Summary: The jaaql package, allowing for rapid development and deployment of RESTful HTTP applications
5
5
  Home-page: https://github.com/JAAQL/JAAQL-middleware-python
6
6
  Author: Software Quality Measurement and Improvement bv