zolo-os 1.6.2__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 (763) hide show
  1. zolo_os-1.6.2/Documentation/zAuth_GUIDE.md +1032 -0
  2. zolo_os-1.6.2/Documentation/zAuth_Guides/actions_GUIDE.md +791 -0
  3. zolo_os-1.6.2/Documentation/zAuth_Guides/authentication_GUIDE.md +903 -0
  4. zolo_os-1.6.2/Documentation/zAuth_Guides/delegates_GUIDE.md +701 -0
  5. zolo_os-1.6.2/Documentation/zAuth_Guides/persistence_GUIDE.md +823 -0
  6. zolo_os-1.6.2/Documentation/zAuth_Guides/rbac_GUIDE.md +859 -0
  7. zolo_os-1.6.2/Documentation/zAuth_Guides/security_GUIDE.md +591 -0
  8. zolo_os-1.6.2/Documentation/zBifrost_GUIDE.md +1149 -0
  9. zolo_os-1.6.2/Documentation/zBifrost_Guides/authentication_GUIDE.md +644 -0
  10. zolo_os-1.6.2/Documentation/zBifrost_Guides/caching_GUIDE.md +899 -0
  11. zolo_os-1.6.2/Documentation/zBifrost_Guides/connection_GUIDE.md +813 -0
  12. zolo_os-1.6.2/Documentation/zBifrost_Guides/events_GUIDE.md +783 -0
  13. zolo_os-1.6.2/Documentation/zBifrost_Guides/monitoring_GUIDE.md +853 -0
  14. zolo_os-1.6.2/Documentation/zCLI_GUIDE.md +1596 -0
  15. zolo_os-1.6.2/Documentation/zComm_GUIDE.md +1439 -0
  16. zolo_os-1.6.2/Documentation/zComm_Guides/http_GUIDE.md +533 -0
  17. zolo_os-1.6.2/Documentation/zComm_Guides/network_GUIDE.md +430 -0
  18. zolo_os-1.6.2/Documentation/zComm_Guides/services_GUIDE.md +792 -0
  19. zolo_os-1.6.2/Documentation/zComm_Guides/storage_GUIDE.md +332 -0
  20. zolo_os-1.6.2/Documentation/zComm_Guides/websocket_GUIDE.md +911 -0
  21. zolo_os-1.6.2/Documentation/zConfig_GUIDE.md +1536 -0
  22. zolo_os-1.6.2/Documentation/zConfig_Guides/environment_GUIDE.md +873 -0
  23. zolo_os-1.6.2/Documentation/zConfig_Guides/loggers_GUIDE.md +814 -0
  24. zolo_os-1.6.2/Documentation/zConfig_Guides/machine_GUIDE.md +778 -0
  25. zolo_os-1.6.2/Documentation/zConfig_Guides/network_GUIDE.md +901 -0
  26. zolo_os-1.6.2/Documentation/zConfig_Guides/paths_GUIDE.md +570 -0
  27. zolo_os-1.6.2/Documentation/zConfig_Guides/persistence_GUIDE.md +737 -0
  28. zolo_os-1.6.2/Documentation/zConfig_Guides/session_GUIDE.md +851 -0
  29. zolo_os-1.6.2/Documentation/zData_GUIDE.md +1170 -0
  30. zolo_os-1.6.2/Documentation/zData_Guides/aggregations_GUIDE.md +737 -0
  31. zolo_os-1.6.2/Documentation/zData_Guides/backends_GUIDE.md +548 -0
  32. zolo_os-1.6.2/Documentation/zData_Guides/crud_operations_GUIDE.md +679 -0
  33. zolo_os-1.6.2/Documentation/zData_Guides/ddl_operations_GUIDE.md +647 -0
  34. zolo_os-1.6.2/Documentation/zData_Guides/migration_GUIDE.md +661 -0
  35. zolo_os-1.6.2/Documentation/zData_Guides/orchestrator_GUIDE.md +321 -0
  36. zolo_os-1.6.2/Documentation/zData_Guides/parsers_GUIDE.md +498 -0
  37. zolo_os-1.6.2/Documentation/zData_Guides/schema_manager_GUIDE.md +408 -0
  38. zolo_os-1.6.2/Documentation/zData_Guides/validators_GUIDE.md +597 -0
  39. zolo_os-1.6.2/Documentation/zDialog_GUIDE.md +915 -0
  40. zolo_os-1.6.2/Documentation/zDialog_Guides/dialog_constants_GUIDE.md +557 -0
  41. zolo_os-1.6.2/Documentation/zDialog_Guides/dialog_context_GUIDE.md +445 -0
  42. zolo_os-1.6.2/Documentation/zDialog_Guides/dialog_submit_GUIDE.md +562 -0
  43. zolo_os-1.6.2/Documentation/zDispatch_GUIDE.md +1123 -0
  44. zolo_os-1.6.2/Documentation/zDispatch_Guides/commands_GUIDE.md +498 -0
  45. zolo_os-1.6.2/Documentation/zDispatch_Guides/constants_GUIDE.md +548 -0
  46. zolo_os-1.6.2/Documentation/zDispatch_Guides/expansion_GUIDE.md +473 -0
  47. zolo_os-1.6.2/Documentation/zDispatch_Guides/handlers_GUIDE.md +480 -0
  48. zolo_os-1.6.2/Documentation/zDispatch_Guides/launcher_GUIDE.md +388 -0
  49. zolo_os-1.6.2/Documentation/zDispatch_Guides/modifiers_GUIDE.md +577 -0
  50. zolo_os-1.6.2/Documentation/zDispatch_Guides/resolvers_GUIDE.md +548 -0
  51. zolo_os-1.6.2/Documentation/zDisplay_GUIDE.md +1296 -0
  52. zolo_os-1.6.2/Documentation/zDisplay_Guides/advanced_GUIDE.md +488 -0
  53. zolo_os-1.6.2/Documentation/zDisplay_Guides/api_GUIDE.md +428 -0
  54. zolo_os-1.6.2/Documentation/zDisplay_Guides/basic_GUIDE.md +392 -0
  55. zolo_os-1.6.2/Documentation/zDisplay_Guides/compounds_GUIDE.md +391 -0
  56. zolo_os-1.6.2/Documentation/zDisplay_Guides/io_GUIDE.md +326 -0
  57. zolo_os-1.6.2/Documentation/zDisplay_Guides/system_GUIDE.md +434 -0
  58. zolo_os-1.6.2/Documentation/zDisplay_Guides/utils_GUIDE.md +414 -0
  59. zolo_os-1.6.2/Documentation/zFunc_GUIDE.md +530 -0
  60. zolo_os-1.6.2/Documentation/zFunc_Guides/arguments_GUIDE.md +532 -0
  61. zolo_os-1.6.2/Documentation/zFunc_Guides/builtins_GUIDE.md +431 -0
  62. zolo_os-1.6.2/Documentation/zFunc_Guides/execution_GUIDE.md +406 -0
  63. zolo_os-1.6.2/Documentation/zFunc_Guides/javascript_GUIDE.md +574 -0
  64. zolo_os-1.6.2/Documentation/zFunc_Guides/plugins_GUIDE.md +716 -0
  65. zolo_os-1.6.2/Documentation/zFunc_Guides/resolution_GUIDE.md +514 -0
  66. zolo_os-1.6.2/Documentation/zInstall_GUIDE.md +349 -0
  67. zolo_os-1.6.2/Documentation/zLoader_GUIDE.md +1103 -0
  68. zolo_os-1.6.2/Documentation/zLoader_Guides/base_GUIDE.md +215 -0
  69. zolo_os-1.6.2/Documentation/zLoader_Guides/cache_pinned_GUIDE.md +107 -0
  70. zolo_os-1.6.2/Documentation/zLoader_Guides/cache_plugin_GUIDE.md +108 -0
  71. zolo_os-1.6.2/Documentation/zLoader_Guides/cache_schema_GUIDE.md +107 -0
  72. zolo_os-1.6.2/Documentation/zLoader_Guides/cache_system_GUIDE.md +298 -0
  73. zolo_os-1.6.2/Documentation/zLoader_Guides/constants_GUIDE.md +333 -0
  74. zolo_os-1.6.2/Documentation/zLoader_Guides/io_GUIDE.md +288 -0
  75. zolo_os-1.6.2/Documentation/zLoader_Guides/orchestrator_GUIDE.md +333 -0
  76. zolo_os-1.6.2/Documentation/zLoader_Guides/utils_GUIDE.md +396 -0
  77. zolo_os-1.6.2/Documentation/zLoader_Guides/validator_GUIDE.md +105 -0
  78. zolo_os-1.6.2/Documentation/zNavigation_GUIDE.md +732 -0
  79. zolo_os-1.6.2/Documentation/zNavigation_Guides/breadcrumbs_GUIDE.md +245 -0
  80. zolo_os-1.6.2/Documentation/zNavigation_Guides/handlers_GUIDE.md +413 -0
  81. zolo_os-1.6.2/Documentation/zNavigation_Guides/linking_GUIDE.md +406 -0
  82. zolo_os-1.6.2/Documentation/zNavigation_Guides/menu_system_GUIDE.md +215 -0
  83. zolo_os-1.6.2/Documentation/zNavigation_Guides/navigation_state_GUIDE.md +348 -0
  84. zolo_os-1.6.2/Documentation/zNavigation_Guides/resolvers_GUIDE.md +421 -0
  85. zolo_os-1.6.2/Documentation/zOpen_GUIDE.md +895 -0
  86. zolo_os-1.6.2/Documentation/zOpen_Guides/constants_GUIDE.md +566 -0
  87. zolo_os-1.6.2/Documentation/zOpen_Guides/files_GUIDE.md +668 -0
  88. zolo_os-1.6.2/Documentation/zOpen_Guides/paths_GUIDE.md +415 -0
  89. zolo_os-1.6.2/Documentation/zOpen_Guides/urls_GUIDE.md +536 -0
  90. zolo_os-1.6.2/Documentation/zParser_GUIDE.md +1122 -0
  91. zolo_os-1.6.2/Documentation/zParser_Guides/commands_GUIDE.md +428 -0
  92. zolo_os-1.6.2/Documentation/zParser_Guides/file_GUIDE.md +289 -0
  93. zolo_os-1.6.2/Documentation/zParser_Guides/path_GUIDE.md +224 -0
  94. zolo_os-1.6.2/Documentation/zParser_Guides/plugin_GUIDE.md +362 -0
  95. zolo_os-1.6.2/Documentation/zParser_Guides/utils_GUIDE.md +515 -0
  96. zolo_os-1.6.2/Documentation/zParser_Guides/vafile_GUIDE.md +486 -0
  97. zolo_os-1.6.2/Documentation/zPhilosophy.md +140 -0
  98. zolo_os-1.6.2/Documentation/zServer_GUIDE.md +1087 -0
  99. zolo_os-1.6.2/Documentation/zShell_GUIDE.md +931 -0
  100. zolo_os-1.6.2/Documentation/zWalker_GUIDE.md +588 -0
  101. zolo_os-1.6.2/Documentation/zWizard_GUIDE.md +1227 -0
  102. zolo_os-1.6.2/Documentation/zWizard_Guides/conditions_GUIDE.md +448 -0
  103. zolo_os-1.6.2/Documentation/zWizard_Guides/data_GUIDE.md +524 -0
  104. zolo_os-1.6.2/Documentation/zWizard_Guides/dispatch_GUIDE.md +465 -0
  105. zolo_os-1.6.2/Documentation/zWizard_Guides/execution_GUIDE.md +556 -0
  106. zolo_os-1.6.2/Documentation/zWizard_Guides/filters_GUIDE.md +455 -0
  107. zolo_os-1.6.2/Documentation/zWizard_Guides/navigation_GUIDE.md +474 -0
  108. zolo_os-1.6.2/Documentation/zWizard_Guides/wizard_exceptions_GUIDE.md +385 -0
  109. zolo_os-1.6.2/Documentation/zWizard_Guides/wizard_hat_GUIDE.md +639 -0
  110. zolo_os-1.6.2/Documentation/zWizard_Guides/wizard_interpolation_GUIDE.md +475 -0
  111. zolo_os-1.6.2/Documentation/zWizard_Guides/wizard_rbac_GUIDE.md +558 -0
  112. zolo_os-1.6.2/Documentation/zWizard_Guides/wizard_transactions_GUIDE.md +610 -0
  113. zolo_os-1.6.2/MANIFEST.in +34 -0
  114. zolo_os-1.6.2/PKG-INFO +194 -0
  115. zolo_os-1.6.2/README.md +144 -0
  116. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/__init__.py +26 -0
  117. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig.py +310 -0
  118. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/__init__.py +169 -0
  119. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/config_constants.py +115 -0
  120. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/environment/__init__.py +2 -0
  121. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/environment/config_environment.py +244 -0
  122. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/environment/config_zenv.py +335 -0
  123. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/environment/environment_helpers.py +84 -0
  124. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/helpers/__init__.py +40 -0
  125. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/helpers/config_helpers.py +238 -0
  126. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/helpers/config_validator.py +386 -0
  127. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/__init__.py +14 -0
  128. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/app_logger.py +171 -0
  129. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/constants.py +59 -0
  130. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/framework_logger.py +119 -0
  131. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/logger_config.py +380 -0
  132. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/session_framework_logger.py +127 -0
  133. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/loggers/utils.py +165 -0
  134. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/__init__.py +2 -0
  135. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/config_machine.py +102 -0
  136. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/config_resource_limits.py +166 -0
  137. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/__init__.py +74 -0
  138. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/browser.py +176 -0
  139. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/hardware.py +443 -0
  140. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/ide.py +169 -0
  141. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/media/__init__.py +59 -0
  142. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/media/audio_player.py +220 -0
  143. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/media/image_viewer.py +226 -0
  144. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/media/video_player.py +221 -0
  145. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/media_apps.py +62 -0
  146. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/shared.py +62 -0
  147. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/machine/detectors/system.py +197 -0
  148. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/network/__init__.py +3 -0
  149. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/network/config_http_server.py +244 -0
  150. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/network/config_raven.py +64 -0
  151. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/network/config_websocket.py +259 -0
  152. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/__init__.py +3 -0
  153. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/_paths_config_files.py +132 -0
  154. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/_paths_constants.py +47 -0
  155. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/_paths_logging.py +37 -0
  156. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/_paths_os_dirs.py +107 -0
  157. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/_paths_workspace.py +224 -0
  158. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/config_paths.py +62 -0
  159. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/paths/config_storage_paths.py +82 -0
  160. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/persistence/__init__.py +1 -0
  161. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/persistence/config_persistence.py +626 -0
  162. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/session/__init__.py +1 -0
  163. zolo_os-1.6.2/core/L1_Foundation/a_zConfig/zConfig_modules/session/config_session.py +504 -0
  164. zolo_os-1.6.2/core/L1_Foundation/b_zComm/__init__.py +54 -0
  165. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm.py +661 -0
  166. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/__init__.py +73 -0
  167. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_constants.py +63 -0
  168. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_http.py +367 -0
  169. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_services.py +392 -0
  170. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_ssl.py +105 -0
  171. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_storage.py +456 -0
  172. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_utils.py +92 -0
  173. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_websocket.py +448 -0
  174. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_websocket_auth.py +253 -0
  175. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_websocket_events.py +176 -0
  176. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/comm_websocket_input.py +193 -0
  177. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/services/__init__.py +62 -0
  178. zolo_os-1.6.2/core/L1_Foundation/b_zComm/zComm_modules/services/postgresql_service.py +511 -0
  179. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/__init__.py +85 -0
  180. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/__init__.py +290 -0
  181. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/__init__.py +35 -0
  182. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_base.py +366 -0
  183. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_orchestrator.py +658 -0
  184. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_pinned.py +659 -0
  185. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_python_module.py +1094 -0
  186. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_schema.py +719 -0
  187. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_system.py +682 -0
  188. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/cache/cache_utils.py +297 -0
  189. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/loader_constants.py +376 -0
  190. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/loader_io.py +221 -0
  191. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/loader_modules/loader_validator.py +344 -0
  192. zolo_os-1.6.2/core/L1_Foundation/c_zLoader/zLoader.py +871 -0
  193. zolo_os-1.6.2/core/L2_Handling/d_zParser/__init__.py +171 -0
  194. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/__init__.py +275 -0
  195. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/__init__.py +36 -0
  196. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/command_router.py +183 -0
  197. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/command_utils.py +144 -0
  198. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/config_commands.py +216 -0
  199. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/data_commands.py +105 -0
  200. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/file_commands.py +213 -0
  201. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/function_commands.py +133 -0
  202. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/session_commands.py +138 -0
  203. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/system_commands.py +143 -0
  204. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/commands/ui_commands.py +193 -0
  205. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/__init__.py +50 -0
  206. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/file_parser.py +248 -0
  207. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/file_utils.py +103 -0
  208. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/__init__.py +26 -0
  209. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/expr_parser.py +92 -0
  210. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/format_detector.py +113 -0
  211. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/json_parser.py +96 -0
  212. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/yaml_parser.py +90 -0
  213. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/format_parsers/zlsp_parser.py +110 -0
  214. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/transformers/__init__.py +19 -0
  215. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/transformers/file_type_detector.py +124 -0
  216. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/file/transformers/rbac_transformer.py +145 -0
  217. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_commands.py +43 -0
  218. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_constants.py +144 -0
  219. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_file.py +113 -0
  220. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_functions.py +168 -0
  221. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_path.py +102 -0
  222. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_plugin.py +47 -0
  223. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/parser_utils.py +506 -0
  224. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/__init__.py +47 -0
  225. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/detection/__init__.py +26 -0
  226. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/detection/extension_finder.py +67 -0
  227. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/detection/file_validator.py +90 -0
  228. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/detection/zvafile_detector.py +70 -0
  229. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/extraction/__init__.py +29 -0
  230. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/extraction/filename_extractor.py +181 -0
  231. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/extraction/ui_mode_handler.py +78 -0
  232. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/file_identifier.py +179 -0
  233. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/path_decoder.py +167 -0
  234. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/resolvers/__init__.py +22 -0
  235. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/resolvers/path_builder.py +73 -0
  236. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/resolvers/symbol_resolver.py +105 -0
  237. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/path/resolvers/zmachine_resolver.py +147 -0
  238. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/plugin/__init__.py +49 -0
  239. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/plugin/plugin_args.py +329 -0
  240. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/plugin/plugin_detection.py +79 -0
  241. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/plugin/plugin_syntax.py +156 -0
  242. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/__init__.py +70 -0
  243. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/argument_utils.py +232 -0
  244. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/display_utils.py +156 -0
  245. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/error_handlers.py +180 -0
  246. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/file_constants.py +294 -0
  247. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/shared/parser_constants.py +210 -0
  248. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/__init__.py +412 -0
  249. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/ui/__init__.py +32 -0
  250. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/ui/ui_construct_validators.py +246 -0
  251. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/ui/ui_parser.py +178 -0
  252. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/ui/ui_validator.py +239 -0
  253. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/ui/ui_zblock_processor.py +298 -0
  254. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/vafile_config.py +224 -0
  255. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/vafile_generic.py +243 -0
  256. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/vafile_schema.py +347 -0
  257. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/vafile_server.py +242 -0
  258. zolo_os-1.6.2/core/L2_Handling/d_zParser/parser_modules/vafile/vafile_ui.py +36 -0
  259. zolo_os-1.6.2/core/L2_Handling/d_zParser/zParser.py +1094 -0
  260. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/__init__.py +51 -0
  261. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay.py +438 -0
  262. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/__init__.py +38 -0
  263. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/__init__.py +0 -0
  264. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/advanced_pagination.py +233 -0
  265. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/advanced_table.py +513 -0
  266. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/display_event_advanced.py +222 -0
  267. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/display_event_outputs.py +153 -0
  268. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/display_event_timebased.py +327 -0
  269. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/event_id_utils.py +45 -0
  270. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/__init__.py +18 -0
  271. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/block_extractor.py +314 -0
  272. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/html_processor.py +104 -0
  273. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/inline_transformer.py +230 -0
  274. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/markdown_parser.py +260 -0
  275. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/rich_text_renderer.py +272 -0
  276. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/semantic_renderers.py +426 -0
  277. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/markdown/syntax_highlighter.py +121 -0
  278. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/timebased_progress.py +395 -0
  279. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/timebased_spinner.py +249 -0
  280. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/timebased_swiper.py +397 -0
  281. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/advanced/timebased_utilities.py +296 -0
  282. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/__init__.py +41 -0
  283. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/delegate_data.py +194 -0
  284. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/delegate_outputs.py +186 -0
  285. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/delegate_primitives.py +191 -0
  286. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/delegate_signals.py +156 -0
  287. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/api/delegate_system.py +206 -0
  288. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/base_event_handler.py +160 -0
  289. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/__init__.py +0 -0
  290. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/display_basic_inputs.py +111 -0
  291. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/display_basic_outputs.py +577 -0
  292. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/inputs/__init__.py +12 -0
  293. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/inputs/boolean_input.py +141 -0
  294. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/__init__.py +41 -0
  295. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/code_renderer.py +123 -0
  296. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/content_transformers.py +164 -0
  297. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/field_renderer.py +153 -0
  298. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/header_renderer.py +232 -0
  299. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/icon_renderer.py +137 -0
  300. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/json_renderer.py +184 -0
  301. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/rendering_utilities.py +298 -0
  302. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/semantic_colors.py +45 -0
  303. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/basic/outputs/text_renderer.py +136 -0
  304. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/__init__.py +32 -0
  305. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/display_compounds_inputs.py +96 -0
  306. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/display_compounds_outputs.py +91 -0
  307. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/__init__.py +34 -0
  308. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/display_event_inputs.py +521 -0
  309. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/input_validators.py +120 -0
  310. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/link_handler.py +236 -0
  311. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/selection_collector.py +264 -0
  312. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/selection_renderer.py +116 -0
  313. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/inputs/slider_widget.py +235 -0
  314. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/outputs/__init__.py +21 -0
  315. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/outputs/display_event_data.py +379 -0
  316. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/outputs/display_event_links.py +332 -0
  317. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/compounds/outputs/display_event_media.py +631 -0
  318. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/delegates/__init__.py +14 -0
  319. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/delegates/delegate_outputs_signals.py +229 -0
  320. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/delegates/delegate_widgets_media.py +449 -0
  321. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/display_constants.py +438 -0
  322. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/display_delegates.py +242 -0
  323. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/display_events.py +121 -0
  324. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/display_routing.py +152 -0
  325. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/__init__.py +32 -0
  326. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/display_primitives.py +641 -0
  327. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/display_primitives_inputs.py +101 -0
  328. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/display_primitives_outputs.py +134 -0
  329. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/inputs/__init__.py +16 -0
  330. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/inputs/input_password.py +83 -0
  331. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/inputs/input_string.py +810 -0
  332. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/outputs/__init__.py +18 -0
  333. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/outputs/output_block.py +47 -0
  334. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/outputs/output_line.py +50 -0
  335. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/io/outputs/output_raw.py +52 -0
  336. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/sandbox/__init__.py +12 -0
  337. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/sandbox/terminal_executor.py +215 -0
  338. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/__init__.py +0 -0
  339. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/display_event_system.py +305 -0
  340. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/system_event_dashboard.py +502 -0
  341. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/system_event_declare.py +158 -0
  342. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/system_event_dialog.py +639 -0
  343. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/system_event_navigation.py +485 -0
  344. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/system/system_event_session.py +570 -0
  345. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/__init__.py +52 -0
  346. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/display_utilities.py +30 -0
  347. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/event_buffer.py +48 -0
  348. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/list_helpers.py +99 -0
  349. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/mode_helper.py +185 -0
  350. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/nested_accessor_wip.py +50 -0
  351. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/system_message_filter.py +77 -0
  352. zolo_os-1.6.2/core/L2_Handling/e_zDisplay/zDisplay_modules/utils/value_formatter.py +60 -0
  353. zolo_os-1.6.2/core/L2_Handling/f_zAuth/__init__.py +267 -0
  354. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth.py +165 -0
  355. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/__init__.py +279 -0
  356. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/actions/__init__.py +11 -0
  357. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/actions/action_login.py +411 -0
  358. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/actions/action_logout.py +203 -0
  359. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/__init__.py +44 -0
  360. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/delegate_application.py +156 -0
  361. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/delegate_context.py +109 -0
  362. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/delegate_password.py +83 -0
  363. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/delegate_rbac.py +191 -0
  364. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/api/delegate_session.py +285 -0
  365. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/auth_constants.py +278 -0
  366. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/auth_delegates.py +137 -0
  367. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/auth_helpers.py +169 -0
  368. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/__init__.py +11 -0
  369. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/__init__.py +108 -0
  370. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/app_authentication.py +140 -0
  371. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/context_manager.py +167 -0
  372. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/credential_manager.py +87 -0
  373. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/login_manager.py +168 -0
  374. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/logout_manager.py +217 -0
  375. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/authentication/remote_authentication.py +153 -0
  376. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/__init__.py +86 -0
  377. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/context_helpers.py +162 -0
  378. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/database_manager.py +103 -0
  379. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/permission_checker.py +147 -0
  380. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/permission_manager.py +130 -0
  381. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/logic/rbac/role_checker.py +179 -0
  382. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/__init__.py +29 -0
  383. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/decorators.py +101 -0
  384. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/session_database.py +194 -0
  385. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/session_persistence.py +469 -0
  386. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/session_store.py +333 -0
  387. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/persistence/token_generator.py +37 -0
  388. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/security/__init__.py +10 -0
  389. zolo_os-1.6.2/core/L2_Handling/f_zAuth/zAuth_modules/security/password_security.py +464 -0
  390. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/__init__.py +115 -0
  391. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/__init__.py +160 -0
  392. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/commands/__init__.py +21 -0
  393. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/commands/command_list.py +100 -0
  394. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/commands/command_string_parser.py +255 -0
  395. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/commands/command_wizard.py +209 -0
  396. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/commands/command_wizard_detector.py +132 -0
  397. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/dispatch_constants.py +386 -0
  398. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/dispatch_helpers.py +133 -0
  399. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/dispatch_launcher.py +532 -0
  400. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/dispatch_modifiers.py +264 -0
  401. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/expansion/__init__.py +24 -0
  402. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/expansion/expander_organizational.py +530 -0
  403. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/expansion/expander_plurals.py +127 -0
  404. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/expansion/shorthand_element_expanders.py +238 -0
  405. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/__init__.py +23 -0
  406. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_auth.py +292 -0
  407. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_crud.py +249 -0
  408. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_data.py +230 -0
  409. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_navigation.py +412 -0
  410. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_routing.py +153 -0
  411. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_subsystems.py +564 -0
  412. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/handlers/handler_wizard_data.py +240 -0
  413. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/modifiers/__init__.py +21 -0
  414. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/modifiers/modifier_bounce.py +204 -0
  415. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/modifiers/modifier_menu.py +239 -0
  416. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/modifiers/modifier_required.py +188 -0
  417. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/resolvers/__init__.py +19 -0
  418. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/resolvers/resolver_data.py +376 -0
  419. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/resolvers/resolver_ui.py +144 -0
  420. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/shorthand_expander.py +522 -0
  421. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/utils/__init__.py +24 -0
  422. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/dispatch_modules/utils/launcher_utils.py +141 -0
  423. zolo_os-1.6.2/core/L2_Handling/g_zDispatch/zDispatch.py +464 -0
  424. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/__init__.py +120 -0
  425. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/__init__.py +173 -0
  426. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/__init__.py +22 -0
  427. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/handler_breadcrumbs_ops.py +377 -0
  428. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/handler_history.py +243 -0
  429. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/handler_navbar.py +627 -0
  430. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/handler_panels.py +226 -0
  431. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/handlers/handler_zback.py +435 -0
  432. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/__init__.py +19 -0
  433. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/menu_search.py +268 -0
  434. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/navigation_menu_builder.py +548 -0
  435. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/navigation_menu_interaction.py +841 -0
  436. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/navigation_menu_renderer.py +506 -0
  437. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/menu/navigation_menu_system.py +659 -0
  438. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/navigation_breadcrumbs.py +612 -0
  439. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/navigation_constants.py +428 -0
  440. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/navigation_helpers.py +355 -0
  441. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/navigation_linking.py +862 -0
  442. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/navigation_state.py +594 -0
  443. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/resolvers/__init__.py +17 -0
  444. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/navigation_modules/resolvers/resolver_zlink.py +398 -0
  445. zolo_os-1.6.2/core/L2_Handling/h_zNavigation/zNavigation.py +790 -0
  446. zolo_os-1.6.2/core/L2_Handling/i_zFunc/__init__.py +8 -0
  447. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc.py +259 -0
  448. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/__init__.py +152 -0
  449. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/arg_processing/__init__.py +34 -0
  450. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/arg_processing/argument_processor.py +252 -0
  451. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/arg_processing/argument_splitter.py +75 -0
  452. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/arg_processing/context_injector.py +169 -0
  453. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/builtin_functions.py +110 -0
  454. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/exceptions.py +306 -0
  455. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/executors/__init__.py +31 -0
  456. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/executors/base_executor.py +240 -0
  457. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/executors/python_executor.py +200 -0
  458. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/func_args.py +386 -0
  459. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/func_constants.py +264 -0
  460. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/func_js_executor.py +300 -0
  461. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/func_resolver.py +297 -0
  462. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/plugin_executor.py +157 -0
  463. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/plugin_loader.py +201 -0
  464. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/plugin_resolver.py +156 -0
  465. zolo_os-1.6.2/core/L2_Handling/i_zFunc/zFunc_modules/protocols.py +220 -0
  466. zolo_os-1.6.2/core/L2_Handling/j_zDialog/__init__.py +87 -0
  467. zolo_os-1.6.2/core/L2_Handling/j_zDialog/dialog_modules/__init__.py +198 -0
  468. zolo_os-1.6.2/core/L2_Handling/j_zDialog/dialog_modules/dialog_constants.py +254 -0
  469. zolo_os-1.6.2/core/L2_Handling/j_zDialog/dialog_modules/dialog_context.py +395 -0
  470. zolo_os-1.6.2/core/L2_Handling/j_zDialog/dialog_modules/dialog_submit.py +597 -0
  471. zolo_os-1.6.2/core/L2_Handling/j_zDialog/zDialog.py +770 -0
  472. zolo_os-1.6.2/core/L2_Handling/k_zOpen/__init__.py +137 -0
  473. zolo_os-1.6.2/core/L2_Handling/k_zOpen/open_modules/__init__.py +106 -0
  474. zolo_os-1.6.2/core/L2_Handling/k_zOpen/open_modules/open_constants.py +326 -0
  475. zolo_os-1.6.2/core/L2_Handling/k_zOpen/open_modules/open_files.py +635 -0
  476. zolo_os-1.6.2/core/L2_Handling/k_zOpen/open_modules/open_paths.py +256 -0
  477. zolo_os-1.6.2/core/L2_Handling/k_zOpen/open_modules/open_urls.py +379 -0
  478. zolo_os-1.6.2/core/L2_Handling/k_zOpen/zOpen.py +714 -0
  479. zolo_os-1.6.2/core/L3_Abstraction/__init__.py +0 -0
  480. zolo_os-1.6.2/core/L3_Abstraction/l_zWizard/__init__.py +35 -0
  481. zolo_os-1.6.2/core/L3_Abstraction/l_zWizard/zWizard_modules/__init__.py +161 -0
  482. zolo_os-1.6.2/core/L3_Abstraction/l_zWizard/zWizard_modules/execution/__init__.py +17 -0
  483. zolo_os-1.6.2/core/L3_Abstraction/l_zWizard/zWizard_modules/managers/__init__.py +26 -0
  484. zolo_os-1.6.2/core/L3_Abstraction/m_zData/__init__.py +186 -0
  485. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData.py +379 -0
  486. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/__init__.py +87 -0
  487. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/connection_manager.py +167 -0
  488. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/lifecycle_manager.py +108 -0
  489. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/migration/__init__.py +16 -0
  490. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/migration/backend_migration.py +91 -0
  491. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/migration/migration_engine.py +211 -0
  492. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/migration/schema_discovery.py +254 -0
  493. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/orchestrator.py +319 -0
  494. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/request_handler.py +316 -0
  495. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/schema_manager.py +390 -0
  496. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/__init__.py +107 -0
  497. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/__init__.py +149 -0
  498. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/adapter_factory.py +387 -0
  499. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/adapter_registry.py +253 -0
  500. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/base_adapter.py +1157 -0
  501. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_adapter.py +262 -0
  502. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/__init__.py +136 -0
  503. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/constants.py +88 -0
  504. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/dataframe_utils.py +134 -0
  505. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/ddl_operations.py +189 -0
  506. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/dml_operations.py +542 -0
  507. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/file_operations.py +171 -0
  508. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/join_operations.py +403 -0
  509. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/order_operations.py +169 -0
  510. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/schema_operations.py +214 -0
  511. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/csv_helpers/where_filtering.py +376 -0
  512. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/postgresql_adapter.py +887 -0
  513. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/sql_adapter.py +1295 -0
  514. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/backends/sqlite_adapter.py +910 -0
  515. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/data_operations.py +960 -0
  516. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/migration_detection.py +301 -0
  517. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/migration_history.py +435 -0
  518. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/__init__.py +149 -0
  519. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/agg_aggregate.py +399 -0
  520. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/agg_set.py +217 -0
  521. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/agg_window.py +251 -0
  522. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_delete.py +319 -0
  523. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_helpers.py +58 -0
  524. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_insert.py +590 -0
  525. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_read.py +903 -0
  526. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_truncate.py +194 -0
  527. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_update.py +513 -0
  528. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/crud_upsert.py +381 -0
  529. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/ddl_create.py +267 -0
  530. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/ddl_drop.py +448 -0
  531. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/ddl_head.py +427 -0
  532. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/ddl_migrate.py +660 -0
  533. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/operations/helpers.py +1390 -0
  534. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/parsers/__init__.py +76 -0
  535. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/parsers/value_parser.py +231 -0
  536. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/parsers/where_parser.py +843 -0
  537. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/schema_diff.py +673 -0
  538. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/storage_quota.py +141 -0
  539. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validator.py +20 -0
  540. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/__init__.py +156 -0
  541. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/constants.py +224 -0
  542. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/core.py +609 -0
  543. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/format_validator.py +370 -0
  544. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/numeric_validator.py +73 -0
  545. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/pattern_validator.py +63 -0
  546. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/plugin_validator.py +175 -0
  547. zolo_os-1.6.2/core/L3_Abstraction/m_zData/zData_modules/shared/validators/string_validator.py +73 -0
  548. zolo_os-1.6.2/core/L3_Abstraction/n_zBifrost/__init__.py +26 -0
  549. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/__init__.py +254 -0
  550. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/__init__.py +291 -0
  551. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/__init__.py +238 -0
  552. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_auth.py +487 -0
  553. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_cd.py +478 -0
  554. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_comm.py +999 -0
  555. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_config.py +1335 -0
  556. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_config_persistence.py +143 -0
  557. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_data.py +768 -0
  558. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_export.py +158 -0
  559. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_func.py +715 -0
  560. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_help.py +564 -0
  561. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_load.py +1027 -0
  562. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_ls.py +618 -0
  563. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_open.py +400 -0
  564. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_session.py +649 -0
  565. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_shortcut.py +913 -0
  566. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_utils.py +54 -0
  567. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_walker.py +625 -0
  568. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_where.py +508 -0
  569. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/commands/shell_cmd_wizard_step.py +440 -0
  570. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/executor_constants.py +130 -0
  571. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/shell_executor.py +237 -0
  572. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/shell_help.py +354 -0
  573. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/shell_runner.py +826 -0
  574. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/wizard_canvas.py +329 -0
  575. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/shell_modules/zshell_constants.py +44 -0
  576. zolo_os-1.6.2/core/L3_Abstraction/o_zShell/zShell.py +82 -0
  577. zolo_os-1.6.2/core/L3_Abstraction/wizard_interface.py +50 -0
  578. zolo_os-1.6.2/core/L4_Orchestration/p_zWalker/__init__.py +217 -0
  579. zolo_os-1.6.2/core/L4_Orchestration/p_zWalker/zWalker.py +709 -0
  580. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/__init__.py +30 -0
  581. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer.py +203 -0
  582. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/__init__.py +19 -0
  583. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/__init__.py +0 -0
  584. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/cache_manager.py +322 -0
  585. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/config_manager.py +88 -0
  586. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/mount_manager.py +167 -0
  587. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/route_manager.py +178 -0
  588. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/core/schema_manager.py +120 -0
  589. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/lifecycle/__init__.py +0 -0
  590. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/lifecycle/dev_server_manager.py +203 -0
  591. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/lifecycle/gunicorn_manager.py +179 -0
  592. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/lifecycle/lifecycle_manager.py +316 -0
  593. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/lifecycle/wsgi_app.py +539 -0
  594. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/rendering/__init__.py +0 -0
  595. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/rendering/error_pages.py +244 -0
  596. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/rendering/form_utils.py +341 -0
  597. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/rendering/page_renderer.py +367 -0
  598. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/rendering/static_file_handler.py +308 -0
  599. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/__init__.py +0 -0
  600. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/handler.py +181 -0
  601. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/nav_html_builder.py +148 -0
  602. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/route_dispatcher.py +997 -0
  603. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/router.py +575 -0
  604. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/security_checks.py +61 -0
  605. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/routing/utils.py +163 -0
  606. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/utils/__init__.py +0 -0
  607. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/utils/http_cache_utils.py +235 -0
  608. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/utils/json_utils.py +372 -0
  609. zolo_os-1.6.2/core/L4_Orchestration/q_zServer/zServer_modules/utils/zserver_constants.py +115 -0
  610. zolo_os-1.6.2/core/L4_Orchestration/r_zRaven/__init__.py +15 -0
  611. zolo_os-1.6.2/core/L4_Orchestration/r_zRaven/zRaven.py +90 -0
  612. zolo_os-1.6.2/core/L4_Orchestration/r_zRaven/zRaven_modules/__init__.py +4 -0
  613. zolo_os-1.6.2/core/L4_Orchestration/r_zRaven/zRaven_modules/primitives/__init__.py +1 -0
  614. zolo_os-1.6.2/core/L4_Orchestration/r_zRaven/zRaven_modules/runner.py +251 -0
  615. zolo_os-1.6.2/core/__init__.py +269 -0
  616. zolo_os-1.6.2/core/engine.py +468 -0
  617. zolo_os-1.6.2/core/main.py +160 -0
  618. zolo_os-1.6.2/core/meta.py +21 -0
  619. zolo_os-1.6.2/core/version.py +34 -0
  620. zolo_os-1.6.2/core/zDesktop.py +65 -0
  621. zolo_os-1.6.2/core/zSys/Utils.py +127 -0
  622. zolo_os-1.6.2/core/zSys/__init__.py +55 -0
  623. zolo_os-1.6.2/core/zSys/accessibility/__init__.py +28 -0
  624. zolo_os-1.6.2/core/zSys/accessibility/emoji_descriptions.py +291 -0
  625. zolo_os-1.6.2/core/zSys/accessibility/icon_mapper.py +366 -0
  626. zolo_os-1.6.2/core/zSys/accessibility/test_emoji_descriptions.py +293 -0
  627. zolo_os-1.6.2/core/zSys/cli/__init__.py +30 -0
  628. zolo_os-1.6.2/core/zSys/cli/args/__init__.py +89 -0
  629. zolo_os-1.6.2/core/zSys/cli/args/agents_args.py +24 -0
  630. zolo_os-1.6.2/core/zSys/cli/args/config_args.py +33 -0
  631. zolo_os-1.6.2/core/zSys/cli/args/migrate_args.py +68 -0
  632. zolo_os-1.6.2/core/zSys/cli/args/patch_args.py +25 -0
  633. zolo_os-1.6.2/core/zSys/cli/args/scaffold_args.py +29 -0
  634. zolo_os-1.6.2/core/zSys/cli/args/shell_args.py +38 -0
  635. zolo_os-1.6.2/core/zSys/cli/args/uninstall_args.py +48 -0
  636. zolo_os-1.6.2/core/zSys/cli/args/ztests_args.py +38 -0
  637. zolo_os-1.6.2/core/zSys/cli/args/ztheme_args.py +33 -0
  638. zolo_os-1.6.2/core/zSys/cli/config_command.py +21 -0
  639. zolo_os-1.6.2/core/zSys/cli/info_command.py +24 -0
  640. zolo_os-1.6.2/core/zSys/cli/migrate_command.py +42 -0
  641. zolo_os-1.6.2/core/zSys/cli/patch_command.py +185 -0
  642. zolo_os-1.6.2/core/zSys/cli/route_command.py +113 -0
  643. zolo_os-1.6.2/core/zSys/cli/scaffold_command.py +64 -0
  644. zolo_os-1.6.2/core/zSys/cli/script_command.py +57 -0
  645. zolo_os-1.6.2/core/zSys/cli/shell_command.py +19 -0
  646. zolo_os-1.6.2/core/zSys/cli/special_files.py +43 -0
  647. zolo_os-1.6.2/core/zSys/cli/uninstall_command.py +29 -0
  648. zolo_os-1.6.2/core/zSys/cli/zspark_command.py +199 -0
  649. zolo_os-1.6.2/core/zSys/cli/ztests_command.py +50 -0
  650. zolo_os-1.6.2/core/zSys/cli/ztheme_command.py +54 -0
  651. zolo_os-1.6.2/core/zSys/errors/__init__.py +88 -0
  652. zolo_os-1.6.2/core/zSys/errors/exceptions.py +417 -0
  653. zolo_os-1.6.2/core/zSys/errors/traceback.py +332 -0
  654. zolo_os-1.6.2/core/zSys/errors/validation.py +20 -0
  655. zolo_os-1.6.2/core/zSys/formatting/__init__.py +16 -0
  656. zolo_os-1.6.2/core/zSys/formatting/colors.py +96 -0
  657. zolo_os-1.6.2/core/zSys/formatting/terminal.py +140 -0
  658. zolo_os-1.6.2/core/zSys/formatting/ztheme_to_ansi.py +160 -0
  659. zolo_os-1.6.2/core/zSys/install/__init__.py +42 -0
  660. zolo_os-1.6.2/core/zSys/install/detection.py +64 -0
  661. zolo_os-1.6.2/core/zSys/install/removal.py +344 -0
  662. zolo_os-1.6.2/core/zSys/logger/__init__.py +88 -0
  663. zolo_os-1.6.2/core/zSys/logger/bootstrap.py +245 -0
  664. zolo_os-1.6.2/core/zSys/logger/config.py +96 -0
  665. zolo_os-1.6.2/core/zSys/logger/console.py +74 -0
  666. zolo_os-1.6.2/core/zSys/logger/execution_context.py +17 -0
  667. zolo_os-1.6.2/core/zSys/logger/formats.py +202 -0
  668. zolo_os-1.6.2/core/zSys/logger/legacy_formats.py +10 -0
  669. zolo_os-1.6.2/core/zSys/logger/levels.py +20 -0
  670. zolo_os-1.6.2/core/zSys/shutdown/__init__.py +82 -0
  671. zolo_os-1.6.2/core/zSys/shutdown/cleanup.py +171 -0
  672. zolo_os-1.6.2/core/zSys/shutdown/shutdown_constants.py +112 -0
  673. zolo_os-1.6.2/core/zSys/shutdown/signals.py +59 -0
  674. zolo_os-1.6.2/core/zSys/syntax/__init__.py +12 -0
  675. zolo_os-1.6.2/core/zSys/syntax/generate_pygments_lexer.py +297 -0
  676. zolo_os-1.6.2/core/zSys/syntax/zolo_lexer.py +206 -0
  677. zolo_os-1.6.2/core/zos_plugin/__init__.py +73 -0
  678. zolo_os-1.6.2/pyproject.toml +128 -0
  679. zolo_os-1.6.2/setup.cfg +4 -0
  680. zolo_os-1.6.2/setup.py +194 -0
  681. zolo_os-1.6.2/zAgents/AGENTS.md +568 -0
  682. zolo_os-1.6.2/zAgents/__init__.py +7 -0
  683. zolo_os-1.6.2/zAgents/agents_cli.py +282 -0
  684. zolo_os-1.6.2/zAgents/builder.py +213 -0
  685. zolo_os-1.6.2/zAgents/generated/AGENTS.md +2024 -0
  686. zolo_os-1.6.2/zAgents/generated/CLAUDE.md +52 -0
  687. zolo_os-1.6.2/zAgents/generated/claude/CLAUDE.md +59 -0
  688. zolo_os-1.6.2/zAgents/generated/claude/zolo/data.md +365 -0
  689. zolo_os-1.6.2/zAgents/generated/claude/zolo/raven.md +376 -0
  690. zolo_os-1.6.2/zAgents/generated/claude/zolo/spark.md +60 -0
  691. zolo_os-1.6.2/zAgents/generated/claude/zolo/ui.md +1001 -0
  692. zolo_os-1.6.2/zAgents/generated/claude/zolo/zspark.md +155 -0
  693. zolo_os-1.6.2/zAgents/generated/cursor/zolo-core.mdc +5 -0
  694. zolo_os-1.6.2/zAgents/generated/cursor/zolo-data.mdc +370 -0
  695. zolo_os-1.6.2/zAgents/generated/cursor/zolo-raven.mdc +381 -0
  696. zolo_os-1.6.2/zAgents/generated/cursor/zolo-spark.mdc +65 -0
  697. zolo_os-1.6.2/zAgents/generated/cursor/zolo-ui.mdc +1006 -0
  698. zolo_os-1.6.2/zAgents/generated/cursor/zolo-workflow.mdc +56 -0
  699. zolo_os-1.6.2/zAgents/generated/cursor/zolo-zspark.mdc +160 -0
  700. zolo_os-1.6.2/zAgents/src/00_workflow.md +52 -0
  701. zolo_os-1.6.2/zAgents/src/01_core.md +3 -0
  702. zolo_os-1.6.2/zAgents/src/02_ui.md +1003 -0
  703. zolo_os-1.6.2/zAgents/src/03_data.md +367 -0
  704. zolo_os-1.6.2/zAgents/src/04_raven.md +378 -0
  705. zolo_os-1.6.2/zAgents/src/05_zspark.md +157 -0
  706. zolo_os-1.6.2/zAgents/src/06_spark.md +62 -0
  707. zolo_os-1.6.2/zRaven/__init__.py +6 -0
  708. zolo_os-1.6.2/zRaven/zraven.py +1149 -0
  709. zolo_os-1.6.2/zguard/__init__.py +2 -0
  710. zolo_os-1.6.2/zguard/bifrost/__init__.py +37 -0
  711. zolo_os-1.6.2/zguard/bifrost/zBifrost.cpython-312-darwin.so +0 -0
  712. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/__init__.py +0 -0
  713. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/auth.cpython-312-darwin.so +0 -0
  714. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/bifrost_constants.cpython-312-darwin.so +0 -0
  715. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/bridge_connection.cpython-312-darwin.so +0 -0
  716. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/cache.cpython-312-darwin.so +0 -0
  717. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/connection.cpython-312-darwin.so +0 -0
  718. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/__init__.py +37 -0
  719. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/base_event_handler.cpython-312-darwin.so +0 -0
  720. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_cache.cpython-312-darwin.so +0 -0
  721. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_client.cpython-312-darwin.so +0 -0
  722. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_discovery.cpython-312-darwin.so +0 -0
  723. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_dispatch.cpython-312-darwin.so +0 -0
  724. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_menu.cpython-312-darwin.so +0 -0
  725. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/events/bridge_event_table.cpython-312-darwin.so +0 -0
  726. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/message_handler.cpython-312-darwin.so +0 -0
  727. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/messages/__init__.py +23 -0
  728. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/messages/message_utils.cpython-312-darwin.so +0 -0
  729. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/messages/message_walker.cpython-312-darwin.so +0 -0
  730. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/messages/message_walker_support.cpython-312-darwin.so +0 -0
  731. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/monitoring.cpython-312-darwin.so +0 -0
  732. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/nav_html_builder.cpython-312-darwin.so +0 -0
  733. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/orchestrator.cpython-312-darwin.so +0 -0
  734. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/render/__init__.py +1 -0
  735. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/render/render_opcodes.cpython-312-darwin.so +0 -0
  736. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/render/zRender.cpython-312-darwin.so +0 -0
  737. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/server/__init__.py +21 -0
  738. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/server/broadcaster.cpython-312-darwin.so +0 -0
  739. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/server/client_handler.cpython-312-darwin.so +0 -0
  740. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/server/lifecycle.cpython-312-darwin.so +0 -0
  741. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/server/message_router.cpython-312-darwin.so +0 -0
  742. zolo_os-1.6.2/zguard/bifrost/zBifrost_modules/ws_server.cpython-312-darwin.so +0 -0
  743. zolo_os-1.6.2/zguard/wizard/__init__.py +27 -0
  744. zolo_os-1.6.2/zguard/wizard/zWizard.cpython-312-darwin.so +0 -0
  745. zolo_os-1.6.2/zguard/wizard/zWizard_modules/__init__.py +161 -0
  746. zolo_os-1.6.2/zguard/wizard/zWizard_modules/execution/__init__.py +17 -0
  747. zolo_os-1.6.2/zguard/wizard/zWizard_modules/execution/wizard_execution_base.cpython-312-darwin.so +0 -0
  748. zolo_os-1.6.2/zguard/wizard/zWizard_modules/execution/wizard_execution_chunked.cpython-312-darwin.so +0 -0
  749. zolo_os-1.6.2/zguard/wizard/zWizard_modules/execution/wizard_execution_sequential.cpython-312-darwin.so +0 -0
  750. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/__init__.py +26 -0
  751. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/wizard_conditions.cpython-312-darwin.so +0 -0
  752. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/wizard_data.cpython-312-darwin.so +0 -0
  753. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/wizard_dispatch.cpython-312-darwin.so +0 -0
  754. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/wizard_filters.cpython-312-darwin.so +0 -0
  755. zolo_os-1.6.2/zguard/wizard/zWizard_modules/managers/wizard_navigation.cpython-312-darwin.so +0 -0
  756. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_constants.cpython-312-darwin.so +0 -0
  757. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_examples.cpython-312-darwin.so +0 -0
  758. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_exceptions.cpython-312-darwin.so +0 -0
  759. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_hat.cpython-312-darwin.so +0 -0
  760. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_interpolation.cpython-312-darwin.so +0 -0
  761. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_rbac.cpython-312-darwin.so +0 -0
  762. zolo_os-1.6.2/zguard/wizard/zWizard_modules/wizard_transactions.cpython-312-darwin.so +0 -0
  763. zolo_os-1.6.2/zolo_os.egg-info/SOURCES.txt +760 -0
@@ -0,0 +1,1032 @@
1
+ **[← Back to e_zDisplay Guide](zDisplay_GUIDE.md) | [Home](../README.md) | [Next: g_zDispatch Guide →](zDispatch_GUIDE.md)**
2
+
3
+ ---
4
+
5
+ # f_zAuth
6
+
7
+ **f_zAuth** is the **third Layer 2 subsystem** in **zOS** (Layer 2: Handling) - providing authentication and authorization.
8
+ > Located at: `zOS/core/L2_Handling/f_zAuth/`
9
+ > See [**zArchitecture**](../README.md#the-zarchitecture) for full context.
10
+
11
+ It provides a **three-tier authentication model** with **bcrypt password security**, **persistent sessions**, and **context-aware RBAC** (Role-Based Access Control). All **Layer 2+ subsystems** can rely on **f_zAuth** for secure user management.
12
+
13
+ You get:
14
+
15
+ - **Three-tier authentication** (zSession, Application, Dual-mode)
16
+ - **Zero configuration** security with industry-standard bcrypt
17
+ - **Persistent sessions** with SQLite storage
18
+ - **Context-aware RBAC** with dynamic permissions
19
+ - **Multi-app support** (simultaneous authentication)
20
+ - **Remote authentication** via zComm
21
+ - **Declarative actions** (zLogin, zLogout)
22
+
23
+ ## Architecture Overview
24
+
25
+ **f_zAuth** is composed of specialized modules organized in a layered architecture:
26
+
27
+ | Module | Purpose | Guide |
28
+ |--------|---------|-------|
29
+ | **security** | bcrypt password hashing and verification | [security_GUIDE.md](zAuth_Guides/security_GUIDE.md) |
30
+ | **persistence** | SQLite session storage with 7-day expiry | [persistence_GUIDE.md](zAuth_Guides/persistence_GUIDE.md) |
31
+ | **authentication** | Three-tier auth logic (zSession, App, Dual) | [authentication_GUIDE.md](zAuth_Guides/authentication_GUIDE.md) |
32
+ | **rbac** | Context-aware role and permission management | [rbac_GUIDE.md](zAuth_Guides/rbac_GUIDE.md) |
33
+ | **actions** | Declarative login/logout handlers | [actions_GUIDE.md](zAuth_Guides/actions_GUIDE.md) |
34
+ | **delegates** | Public API facade (16 methods) | [delegates_GUIDE.md](zAuth_Guides/delegates_GUIDE.md) |
35
+
36
+ This guide provides a **facade overview** of f_zAuth. For deep dives into specific modules, see the guides in `zAuth_Guides/`.
37
+
38
+ ---
39
+
40
+ ## Three-Tier Authentication Model
41
+
42
+ f_zAuth implements a sophisticated three-tier authentication system that handles different authentication contexts:
43
+
44
+ ### Tier 1: zSession Authentication (Internal Users)
45
+
46
+ **Purpose**: Authenticate zOS/Zolo platform users for premium features, plugins, and cloud services.
47
+
48
+ **Use Cases**:
49
+ - zOS developer accessing premium features
50
+ - Plugin authentication and licensing
51
+ - Cloud service integration
52
+ - Cross-application identity
53
+
54
+ **Session Key**: `session["zAuth"]["zSession"]`
55
+
56
+ ### Tier 2: Application Authentication (External Users)
57
+
58
+ **Purpose**: Authenticate end-users of applications BUILT with zOS.
59
+
60
+ **Features**:
61
+ - Independent user database per application
62
+ - Multiple simultaneous app authentications
63
+ - App-specific credentials and sessions
64
+ - Isolated security contexts
65
+
66
+ **Session Key**: `session["zAuth"]["applications"][app_name]`
67
+
68
+ ### Tier 3: Dual-Mode Authentication (Both Contexts)
69
+
70
+ **Purpose**: Both zSession AND application authenticated simultaneously.
71
+
72
+ **Example**: Store owner analyzing their store as both:
73
+ - zOS user (platform access)
74
+ - Store user (application access)
75
+
76
+ **RBAC Behavior**: Uses OR logic - either context can grant access
77
+
78
+ **Session Key**: `session["zAuth"]["dual_mode"] = True`
79
+
80
+ ---
81
+
82
+ ## Initialization
83
+
84
+ When **zOS** loads the **f_zAuth** subsystem (Layer 2: Handling), it automatically:
85
+
86
+ **Layer 1 (Foundation):**
87
+ 1. **zConfig** - Configuration management
88
+ 2. **zComm** - Communication infrastructure
89
+ 3. **zLoader** - Dynamic module loading
90
+
91
+ **Layer 2 (Handling):**
92
+ 1. **d_zParser** - Command and file parsing
93
+ 2. **e_zDisplay** - Display and UI rendering
94
+ 3. **f_zAuth** - Authentication subsystem:
95
+ - Initializes four core modules:
96
+ - `PasswordSecurity` - bcrypt hashing with 12 rounds
97
+ - `SessionPersistence` - SQLite session management
98
+ - `Authentication` - Three-tier auth logic
99
+ - `RBAC` - Context-aware access control
100
+ - Defers database initialization until first use (lazy loading)
101
+ - Displays ready message via e_zDisplay
102
+ - Composes public API via delegate pattern (16 methods)
103
+
104
+ No setup required. Just import and use:
105
+
106
+ ```python
107
+ from zOS import zOS
108
+
109
+ # Initialize zOS (includes f_zAuth)
110
+ zos = zOS()
111
+
112
+ # f_zAuth is ready to use
113
+ zos.auth.login("user@zolo.com", "secure_password")
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Tutorials
119
+
120
+ **Learn by doing!**
121
+
122
+ The tutorials below are organized in a bottom-up fashion. Every tutorial has working demos you can run and modify.
123
+
124
+ **A Note on Learning zOS:**
125
+ Each tutorial (lvl1, lvl2, lvl3...) progressively introduces more complex features of **this subsystem**. The early tutorials start with familiar imperative patterns (think Django-style conventions) to meet you where you are as a developer.
126
+
127
+ As you progress through zOS's subsystems, you'll notice a gradual shift from imperative to declarative patterns. This intentional journey helps reshape your mental model from imperative to declarative thinking. Only when you reach **Layer 3 (Orchestration)** will you see subsystems used **fully declaratively** as intended in production.
128
+
129
+ Get the demos:
130
+
131
+ ```bash
132
+ # Clone only the Demos folder
133
+ git clone --depth 1 --filter=blob:none --sparse https://github.com/ZoloAi/zolo-zcli.git
134
+ cd zolo-zcli
135
+ git sparse-checkout set Demos
136
+ ```
137
+
138
+ > All f_zAuth demos are in: `Demos/Layer_2/zAuth_Demo/`
139
+
140
+ ---
141
+
142
+ # **f_zAuth - Level 1** (Basic Authentication)
143
+
144
+ ## **i. Password Security**
145
+
146
+ Secure password hashing with bcrypt:
147
+
148
+ ```python
149
+ from zOS import zOS
150
+
151
+ zos = zOS()
152
+
153
+ # Hash a password (12 rounds, ~0.3s)
154
+ hashed = zos.auth.hash_password("secure_password")
155
+ print(f"Hash: {hashed[:20]}...") # $2b$12$...
156
+
157
+ # Verify password
158
+ is_valid = zos.auth.verify_password("secure_password", hashed)
159
+ print(f"Valid: {is_valid}") # True
160
+
161
+ # Wrong password
162
+ is_valid = zos.auth.verify_password("wrong_password", hashed)
163
+ print(f"Valid: {is_valid}") # False
164
+ ```
165
+
166
+ **What happened?**
167
+ - bcrypt with 12 rounds (4,096 iterations)
168
+ - Random salt per hash (rainbow table resistant)
169
+ - Timing-safe verification (prevents timing attacks)
170
+ - ~0.3 seconds per operation (brute-force protection)
171
+
172
+ ---
173
+
174
+ ## **ii. zSession Authentication (Tier 1)**
175
+
176
+ Login as a zOS/Zolo platform user:
177
+
178
+ ```python
179
+ from zOS import zOS
180
+
181
+ zos = zOS()
182
+
183
+ # Login (zSession context)
184
+ result = zos.auth.login(
185
+ username="user@zolo.com",
186
+ password="secure_password",
187
+ persist=True # Save session to disk
188
+ )
189
+
190
+ if result["success"]:
191
+ print(f"Logged in as: {result['username']}")
192
+ print(f"Role: {result['role']}")
193
+ print(f"User ID: {result['user_id']}")
194
+
195
+ # Check authentication status
196
+ if zos.auth.is_authenticated():
197
+ print("User is authenticated!")
198
+
199
+ # Get current credentials
200
+ creds = zos.auth.get_credentials()
201
+ print(f"Username: {creds['username']}")
202
+ print(f"API Key: {creds['api_key']}")
203
+
204
+ # Logout
205
+ result = zos.auth.logout()
206
+ print(f"Logged out: {result['success']}")
207
+ ```
208
+
209
+ **What happened?**
210
+ - Authenticated against Zolo server (or local for testing)
211
+ - Session saved to SQLite database (7-day expiry)
212
+ - Credentials stored in `session["zAuth"]["zSession"]`
213
+ - Active context set to "zSession"
214
+
215
+ ---
216
+
217
+ ## **iii. Check Authentication Status**
218
+
219
+ Query current authentication state:
220
+
221
+ ```python
222
+ from zOS import zOS
223
+
224
+ zos = zOS()
225
+
226
+ # Get comprehensive status
227
+ status = zos.auth.status()
228
+
229
+ print(f"Authenticated: {status['is_authenticated']}")
230
+ print(f"Active Context: {status['active_context']}")
231
+
232
+ if status['zsession']:
233
+ print(f"zSession User: {status['zsession']['username']}")
234
+ print(f"Role: {status['zsession']['role']}")
235
+
236
+ if status['applications']:
237
+ print(f"Active Apps: {list(status['applications'].keys())}")
238
+ ```
239
+
240
+ ---
241
+
242
+ # **f_zAuth - Level 2** (Multi-Tier Authentication)
243
+
244
+ ## **i. Application Authentication (Tier 2)**
245
+
246
+ Authenticate external users of your zOS-built application:
247
+
248
+ ```python
249
+ from zOS import zOS
250
+
251
+ zos = zOS()
252
+
253
+ # Authenticate app user
254
+ config = {
255
+ "auth_endpoint": "https://mystore.com/api/auth",
256
+ "timeout": 10
257
+ }
258
+
259
+ result = zos.auth.authenticate_app_user(
260
+ app_name="my_store",
261
+ token="user_api_token_xyz",
262
+ config=config
263
+ )
264
+
265
+ if result["success"]:
266
+ print(f"App user authenticated: {result['username']}")
267
+ print(f"Store: {result['app_name']}")
268
+
269
+ # Get app user info
270
+ app_user = zos.auth.get_app_user("my_store")
271
+ print(f"Store user: {app_user['username']}")
272
+ print(f"Role: {app_user.get('role', 'user')}")
273
+ ```
274
+
275
+ **What happened?**
276
+ - Authenticated external app user (separate from zSession)
277
+ - Session stored in `session["zAuth"]["applications"]["my_store"]`
278
+ - Multi-app support: Can authenticate multiple apps simultaneously
279
+ - Independent credentials per application
280
+
281
+ ---
282
+
283
+ ## **ii. Multi-App Authentication**
284
+
285
+ Authenticate multiple applications simultaneously:
286
+
287
+ ```python
288
+ from zOS import zOS
289
+
290
+ zos = zOS()
291
+
292
+ # Authenticate user for multiple apps
293
+ apps = [
294
+ ("store_app", "token_store_xyz"),
295
+ ("blog_app", "token_blog_abc"),
296
+ ("forum_app", "token_forum_123")
297
+ ]
298
+
299
+ for app_name, token in apps:
300
+ result = zos.auth.authenticate_app_user(
301
+ app_name=app_name,
302
+ token=token
303
+ )
304
+ print(f"{app_name}: {result['success']}")
305
+
306
+ # Get status shows all active apps
307
+ status = zos.auth.status()
308
+ print(f"Active apps: {list(status['applications'].keys())}")
309
+
310
+ # Switch active app
311
+ zos.auth.switch_app("blog_app")
312
+ active_user = zos.auth.get_active_user()
313
+ print(f"Active: {active_user['username']} in {active_user['app_name']}")
314
+ ```
315
+
316
+ ---
317
+
318
+ ## **iii. Context Management**
319
+
320
+ Switch between authentication contexts:
321
+
322
+ ```python
323
+ from zOS import zOS
324
+
325
+ zos = zOS()
326
+
327
+ # Login as zOS user
328
+ zos.auth.login("dev@zolo.com", "password")
329
+
330
+ # Authenticate as app user
331
+ zos.auth.authenticate_app_user("my_app", "token")
332
+
333
+ # Set context to zSession
334
+ zos.auth.set_active_context("zSession")
335
+ user = zos.auth.get_active_user()
336
+ print(f"Active: {user['username']} (zSession)")
337
+
338
+ # Set context to application
339
+ zos.auth.set_active_context("application")
340
+ user = zos.auth.get_active_user()
341
+ print(f"Active: {user['username']} (my_app)")
342
+
343
+ # Set context to dual (both)
344
+ zos.auth.set_active_context("dual")
345
+ # Now RBAC checks use OR logic (either context grants access)
346
+ ```
347
+
348
+ **Available Contexts**:
349
+ - `"zSession"` - zOS/Zolo user context (Tier 1)
350
+ - `"application"` - Active app user context (Tier 2)
351
+ - `"dual"` - Both contexts active (Tier 3)
352
+
353
+ ---
354
+
355
+ # **f_zAuth - Level 3** (RBAC - Role-Based Access Control)
356
+
357
+ ## **i. Role Checks**
358
+
359
+ Check if user has required role(s):
360
+
361
+ ```python
362
+ from zOS import zOS
363
+
364
+ zos = zOS()
365
+
366
+ # Login with role
367
+ zos.auth.login("admin@zolo.com", "password") # Role: admin
368
+
369
+ # Check single role
370
+ if zos.auth.has_role("admin"):
371
+ print("User is admin!")
372
+
373
+ # Check multiple roles (OR logic)
374
+ if zos.auth.has_role(["admin", "moderator"]):
375
+ print("User is admin OR moderator")
376
+
377
+ # Common roles
378
+ roles = ["user", "admin", "moderator", "developer", "premium"]
379
+ ```
380
+
381
+ **Context-Aware Behavior**:
382
+ - `"zSession"` context: Checks zSession role
383
+ - `"application"` context: Checks active app user role
384
+ - `"dual"` context: Checks both (OR logic - either can grant)
385
+
386
+ ---
387
+
388
+ ## **ii. Permission Checks**
389
+
390
+ Check granular permissions:
391
+
392
+ ```python
393
+ from zOS import zOS
394
+
395
+ zos = zOS()
396
+
397
+ # Check permission
398
+ if zos.auth.has_permission("data.delete"):
399
+ print("User can delete data")
400
+
401
+ # Grant permission (requires user_id)
402
+ success = zos.auth.grant_permission(
403
+ user_id="zU_12345",
404
+ permission="content.publish",
405
+ granted_by="admin@zolo.com"
406
+ )
407
+
408
+ # Revoke permission
409
+ success = zos.auth.revoke_permission(
410
+ user_id="zU_12345",
411
+ permission="content.publish"
412
+ )
413
+
414
+ # Permission naming convention
415
+ permissions = [
416
+ "data.read",
417
+ "data.write",
418
+ "data.delete",
419
+ "content.create",
420
+ "content.publish",
421
+ "admin.users",
422
+ "admin.settings"
423
+ ]
424
+ ```
425
+
426
+ **Permission Storage**:
427
+ - Stored in SQLite database (shared with sessions)
428
+ - Persistent across restarts
429
+ - User-specific granular control
430
+ - Context-aware in dual mode
431
+
432
+ ---
433
+
434
+ ## **iii. RBAC with Multi-App**
435
+
436
+ RBAC works across all three authentication tiers:
437
+
438
+ ```python
439
+ from zOS import zOS
440
+
441
+ zos = zOS()
442
+
443
+ # Login as zOS user (admin)
444
+ zos.auth.login("admin@zolo.com", "password") # Role: admin
445
+
446
+ # Authenticate as app user (moderator)
447
+ zos.auth.authenticate_app_user(
448
+ app_name="forum",
449
+ token="token" # App returns role: moderator
450
+ )
451
+
452
+ # zSession context - checks zOS role
453
+ zos.auth.set_active_context("zSession")
454
+ print(zos.auth.has_role("admin")) # True (zOS role)
455
+ print(zos.auth.has_role("moderator")) # False
456
+
457
+ # Application context - checks app role
458
+ zos.auth.set_active_context("application")
459
+ print(zos.auth.has_role("admin")) # False
460
+ print(zos.auth.has_role("moderator")) # True (app role)
461
+
462
+ # Dual context - OR logic
463
+ zos.auth.set_active_context("dual")
464
+ print(zos.auth.has_role("admin")) # True (zOS grants)
465
+ print(zos.auth.has_role("moderator")) # True (app grants)
466
+ print(zos.auth.has_role(["admin", "moderator"])) # True (either)
467
+ ```
468
+
469
+ ---
470
+
471
+ # **f_zAuth - Level 4** (Session Persistence & Remote Auth)
472
+
473
+ ## **i. Persistent Sessions**
474
+
475
+ Sessions automatically persist to disk:
476
+
477
+ ```python
478
+ from zOS import zOS
479
+
480
+ # First run - login with persist=True
481
+ zos1 = zOS()
482
+ zos1.auth.login(
483
+ username="user@zolo.com",
484
+ password="password",
485
+ persist=True # Save to SQLite
486
+ )
487
+ print("Session saved to disk")
488
+
489
+ # Later run - session automatically restored
490
+ zos2 = zOS()
491
+ # Session loaded from SQLite on initialization
492
+
493
+ if zos2.auth.is_authenticated():
494
+ creds = zos2.auth.get_credentials()
495
+ print(f"Restored session: {creds['username']}")
496
+ print(f"API Key: {creds['api_key']}")
497
+ ```
498
+
499
+ **Session Details**:
500
+ - Stored in SQLite database (platform-specific location)
501
+ - 7-day expiration (configurable)
502
+ - Automatic cleanup of expired sessions
503
+ - Only zSession context persists (apps are transient)
504
+
505
+ ---
506
+
507
+ ## **ii. Remote Authentication**
508
+
509
+ Authenticate against remote Zolo server:
510
+
511
+ ```python
512
+ from zOS import zOS
513
+
514
+ zos = zOS()
515
+
516
+ # Remote auth (production)
517
+ result = zos.auth.login(
518
+ username="user@zolo.com",
519
+ password="password",
520
+ server_url="https://auth.zolo.com/api/login"
521
+ )
522
+
523
+ if result["success"]:
524
+ print(f"Authenticated remotely: {result['username']}")
525
+ print(f"API Key: {result['api_key']}")
526
+ ```
527
+
528
+ **What happened?**
529
+ - zComm makes HTTPS POST request to auth server
530
+ - Server validates credentials and returns user data
531
+ - Session stored locally with bcrypt hash
532
+ - API key stored for subsequent requests
533
+
534
+ ---
535
+
536
+ ## **iii. Logout Options**
537
+
538
+ Multiple logout behaviors:
539
+
540
+ ```python
541
+ from zOS import zOS
542
+
543
+ zos = zOS()
544
+ zos.auth.login("user@zolo.com", "password", persist=True)
545
+
546
+ # Logout zSession only (default)
547
+ result = zos.auth.logout()
548
+ # - Clears session["zAuth"]["zSession"]
549
+ # - App sessions remain active
550
+
551
+ # Logout specific app
552
+ result = zos.auth.logout(
553
+ context="application",
554
+ app_name="my_store"
555
+ )
556
+ # - Clears session["zAuth"]["applications"]["my_store"]
557
+
558
+ # Logout all contexts
559
+ result = zos.auth.logout(context="all")
560
+ # - Clears zSession and all app sessions
561
+
562
+ # Delete persistent session from disk
563
+ result = zos.auth.logout(delete_persistent=True)
564
+ # - Clears in-memory session
565
+ # - Deletes SQLite session record
566
+ ```
567
+
568
+ ---
569
+
570
+ # **f_zAuth - Level 5** (Declarative Actions & Integration)
571
+
572
+ ## **i. Built-in Actions**
573
+
574
+ f_zAuth provides declarative login/logout actions:
575
+
576
+ ```python
577
+ from zOS import zOS
578
+
579
+ zos = zOS()
580
+
581
+ # These actions are automatically registered
582
+ # Use with zDispatch, zBifrost, or zVaF
583
+
584
+ # Action: zLogin
585
+ action_zlogin = {
586
+ "action": "zLogin",
587
+ "username": "user@zolo.com",
588
+ "password": "password",
589
+ "persist": True,
590
+ "server_url": None # Optional
591
+ }
592
+
593
+ # Action: zLogout
594
+ action_zlogout = {
595
+ "action": "zLogout",
596
+ "context": "zSession", # or "application", "all"
597
+ "app_name": None, # Required if context="application"
598
+ "delete_persistent": False
599
+ }
600
+
601
+ # Dispatch actions
602
+ zos.dispatch.execute(action_zlogin)
603
+ zos.dispatch.execute(action_zlogout)
604
+ ```
605
+
606
+ **Integration Points**:
607
+ - **zDispatch**: Execute auth actions from action queues
608
+ - **zBifrost**: Trigger login/logout from UI interactions
609
+ - **zVaF**: Menu items with `require_auth`, `require_role`, `require_permission`
610
+
611
+ ---
612
+
613
+ ## **ii. zVaF Menu Protection**
614
+
615
+ Protect menu items with auth directives:
616
+
617
+ ```yaml
618
+ # menu_config.yaml
619
+ menu:
620
+ - id: home
621
+ label: Home
622
+ # Public - no auth required
623
+
624
+ - id: dashboard
625
+ label: Dashboard
626
+ require_auth: true
627
+ # Requires any authentication
628
+
629
+ - id: admin_panel
630
+ label: Admin Panel
631
+ require_role: admin
632
+ # Requires admin role
633
+
634
+ - id: delete_data
635
+ label: Delete Data
636
+ require_permission: data.delete
637
+ # Requires specific permission
638
+
639
+ - id: premium_features
640
+ label: Premium Features
641
+ require_role: [premium, admin]
642
+ # Requires premium OR admin role
643
+ ```
644
+
645
+ zWizard automatically checks auth requirements and hides/disables protected items.
646
+
647
+ ---
648
+
649
+ ## **iii. Integration with zOS Subsystems**
650
+
651
+ f_zAuth integrates seamlessly with other zOS subsystems:
652
+
653
+ ```python
654
+ from zOS import zOS
655
+
656
+ zos = zOS()
657
+
658
+ # Layer 1 Dependencies:
659
+ # - zConfig: Session structure and constants
660
+ # - SESSION_KEY_ZAUTH = "zAuth"
661
+ # - ZAUTH_KEY_ZSESSION = "zSession"
662
+ # - ZAUTH_KEY_APPLICATIONS = "applications"
663
+ # - All auth data stored in session["zAuth"]
664
+ #
665
+ # - zComm: Remote authentication
666
+ # - Uses zComm.http_post() for HTTPS API calls
667
+ # zos.auth.login("user", "pass", server_url="https://...")
668
+
669
+ # Layer 2 Sibling Dependencies:
670
+ # - e_zDisplay: All UI feedback
671
+ zos.auth.login("user", "pass")
672
+ # -> e_zDisplay.success("Logged in successfully")
673
+ # -> e_zDisplay.error("Invalid credentials")
674
+
675
+ # Layer 3+ Dependencies:
676
+ # - zData: Persistent storage
677
+ # - Sessions and permissions stored in SQLite via zData
678
+ # - Declarative operations (no raw SQL)
679
+ #
680
+ # - zWizard: Access control
681
+ # - Menu items protected by has_role() and has_permission()
682
+ # - Automatic integration via require_auth/role/permission
683
+ #
684
+ # - zBifrost: Web UI authentication
685
+ # - Login forms trigger zLogin action
686
+ # - Protected routes check is_authenticated()
687
+ ```
688
+
689
+ ---
690
+
691
+ ## API Reference
692
+
693
+ ### Password Security (2 methods)
694
+
695
+ ```python
696
+ # Hash password
697
+ hashed: str = zos.auth.hash_password(plain_password: str)
698
+
699
+ # Verify password
700
+ is_valid: bool = zos.auth.verify_password(
701
+ plain_password: str,
702
+ hashed_password: str
703
+ )
704
+ ```
705
+
706
+ ### zSession Authentication (5 methods)
707
+
708
+ ```python
709
+ # Login
710
+ result: Dict = zos.auth.login(
711
+ username: str,
712
+ password: str,
713
+ server_url: Optional[str] = None,
714
+ persist: bool = True
715
+ )
716
+
717
+ # Logout
718
+ result: Dict = zos.auth.logout(
719
+ context: str = "zSession",
720
+ app_name: Optional[str] = None,
721
+ delete_persistent: bool = False
722
+ )
723
+
724
+ # Get status
725
+ status: Dict = zos.auth.status()
726
+
727
+ # Check authentication
728
+ is_authed: bool = zos.auth.is_authenticated()
729
+
730
+ # Get credentials
731
+ creds: Optional[Dict] = zos.auth.get_credentials()
732
+ ```
733
+
734
+ ### Application Authentication (3 methods)
735
+
736
+ ```python
737
+ # Authenticate app user
738
+ result: Dict = zos.auth.authenticate_app_user(
739
+ app_name: str,
740
+ token: str,
741
+ config: Optional[Dict] = None
742
+ )
743
+
744
+ # Switch active app
745
+ success: bool = zos.auth.switch_app(app_name: str)
746
+
747
+ # Get app user
748
+ user: Optional[Dict] = zos.auth.get_app_user(app_name: str)
749
+ ```
750
+
751
+ ### Context Management (2 methods)
752
+
753
+ ```python
754
+ # Set active context
755
+ success: bool = zos.auth.set_active_context(
756
+ context: str # "zSession", "application", "dual"
757
+ )
758
+
759
+ # Get active user
760
+ user: Optional[Dict] = zos.auth.get_active_user()
761
+ ```
762
+
763
+ ### RBAC (4 methods)
764
+
765
+ ```python
766
+ # Check role
767
+ has_role: bool = zos.auth.has_role(
768
+ required_role: Union[str, List[str]]
769
+ )
770
+
771
+ # Check permission
772
+ has_perm: bool = zos.auth.has_permission(
773
+ required_permission: str
774
+ )
775
+
776
+ # Grant permission
777
+ success: bool = zos.auth.grant_permission(
778
+ user_id: str,
779
+ permission: str,
780
+ granted_by: str
781
+ )
782
+
783
+ # Revoke permission
784
+ success: bool = zos.auth.revoke_permission(
785
+ user_id: str,
786
+ permission: str
787
+ )
788
+ ```
789
+
790
+ ---
791
+
792
+ ## Module Guides
793
+
794
+ Deep dive into specific modules:
795
+
796
+ - **[security_GUIDE.md](zAuth_Guides/security_GUIDE.md)** - bcrypt password hashing, timing-safe verification, 72-byte limit handling
797
+ - **[persistence_GUIDE.md](zAuth_Guides/persistence_GUIDE.md)** - SQLite sessions, 7-day expiry, automatic cleanup, token generation
798
+ - **[authentication_GUIDE.md](zAuth_Guides/authentication_GUIDE.md)** - Three-tier model, multi-app support, remote auth, context switching
799
+ - **[rbac_GUIDE.md](zAuth_Guides/rbac_GUIDE.md)** - Context-aware roles, permissions, dual-mode OR logic, database management
800
+ - **[actions_GUIDE.md](zAuth_Guides/actions_GUIDE.md)** - Declarative zLogin/zLogout handlers for zDispatch integration
801
+ - **[delegates_GUIDE.md](zAuth_Guides/delegates_GUIDE.md)** - Public API composition, delegation pattern, facade architecture
802
+
803
+ ---
804
+
805
+ ## Best Practices
806
+
807
+ ### Security
808
+
809
+ 1. **Always use bcrypt for passwords**:
810
+ ```python
811
+ # Good
812
+ hashed = zos.auth.hash_password(user_input)
813
+
814
+ # Bad - never store plaintext
815
+ # password = user_input # DON'T DO THIS
816
+ ```
817
+
818
+ 2. **Never log sensitive data**:
819
+ ```python
820
+ # Good
821
+ logger.info(f"Login attempt for user: {username}")
822
+
823
+ # Bad
824
+ # logger.info(f"Login: {username} / {password}") # DON'T
825
+ ```
826
+
827
+ 3. **Use persistent sessions for better UX**:
828
+ ```python
829
+ # Recommended
830
+ zos.auth.login(username, password, persist=True)
831
+ ```
832
+
833
+ ### Multi-Tier Authentication
834
+
835
+ 1. **Use appropriate context for checks**:
836
+ ```python
837
+ # Check zOS user role
838
+ zos.auth.set_active_context("zSession")
839
+ if zos.auth.has_role("admin"):
840
+ # zOS admin actions
841
+
842
+ # Check app user role
843
+ zos.auth.set_active_context("application")
844
+ if zos.auth.has_role("moderator"):
845
+ # App-specific actions
846
+ ```
847
+
848
+ 2. **Use dual mode when both contexts matter**:
849
+ ```python
850
+ # Store owner analyzing their store
851
+ zos.auth.set_active_context("dual")
852
+ # Either zOS admin OR store owner can access
853
+ ```
854
+
855
+ 3. **Clean up on logout**:
856
+ ```python
857
+ # Full cleanup
858
+ zos.auth.logout(context="all", delete_persistent=True)
859
+ ```
860
+
861
+ ### RBAC
862
+
863
+ 1. **Use permissions for granular control**:
864
+ ```python
865
+ # Better than role checks for specific actions
866
+ if zos.auth.has_permission("data.delete"):
867
+ delete_data()
868
+ ```
869
+
870
+ 2. **Use consistent permission naming**:
871
+ ```python
872
+ # Convention: resource.action
873
+ permissions = [
874
+ "data.read",
875
+ "data.write",
876
+ "content.publish",
877
+ "admin.users"
878
+ ]
879
+ ```
880
+
881
+ 3. **Grant permissions explicitly**:
882
+ ```python
883
+ # Track who granted permissions
884
+ zos.auth.grant_permission(
885
+ user_id="zU_123",
886
+ permission="content.publish",
887
+ granted_by=admin_username
888
+ )
889
+ ```
890
+
891
+ ---
892
+
893
+ ## Thread Safety
894
+
895
+ **f_zAuth is NOT thread-safe by design**.
896
+
897
+ Each thread should use its own zOS instance:
898
+
899
+ ```python
900
+ import threading
901
+ from zOS import zOS
902
+
903
+ def thread_task():
904
+ # Create zOS instance per thread
905
+ zos = zOS()
906
+ zos.auth.login("user", "pass")
907
+ # Thread-safe within this instance
908
+
909
+ threads = [
910
+ threading.Thread(target=thread_task)
911
+ for _ in range(5)
912
+ ]
913
+
914
+ for t in threads:
915
+ t.start()
916
+ ```
917
+
918
+ **Why?** f_zAuth operates on `zos.session` dictionary, which is not thread-safe. Multi-app authentication within a SINGLE session is fully supported.
919
+
920
+ ---
921
+
922
+ ## Advanced Topics
923
+
924
+ ### Custom Session Duration
925
+
926
+ ```python
927
+ # Change session expiration (default: 7 days)
928
+ zos.auth.session_persistence.session_duration_days = 30
929
+ ```
930
+
931
+ ### Manual Session Management
932
+
933
+ ```python
934
+ # Load session manually
935
+ zos.auth.session_persistence.load_session()
936
+
937
+ # Save session manually
938
+ session_id = zos.auth.session_persistence.save_session(
939
+ username="user",
940
+ password_hash=hashed,
941
+ user_id="zU_123",
942
+ role="admin"
943
+ )
944
+
945
+ # Cleanup expired sessions
946
+ deleted = zos.auth.session_persistence.cleanup_expired()
947
+ print(f"Cleaned up {deleted} sessions")
948
+ ```
949
+
950
+ ### Database Access
951
+
952
+ ```python
953
+ # Access auth database directly (advanced)
954
+ zos.auth.session_persistence.ensure_sessions_db()
955
+
956
+ # Query via zData
957
+ results = zos.data.select(
958
+ db_label="auth",
959
+ table="sessions",
960
+ where={"username": "user@zolo.com"}
961
+ )
962
+ ```
963
+
964
+ ---
965
+
966
+ ## Troubleshooting
967
+
968
+ ### Common Issues
969
+
970
+ **1. Login fails with "Invalid credentials"**
971
+ ```python
972
+ # Check username/password
973
+ # Check server_url if using remote auth
974
+ # Check network connectivity (zComm)
975
+ result = zos.auth.login(username, password)
976
+ print(result) # Contains error details
977
+ ```
978
+
979
+ **2. Session not persisting across restarts**
980
+ ```python
981
+ # Ensure persist=True
982
+ zos.auth.login(username, password, persist=True)
983
+
984
+ # Check database initialization
985
+ zos.auth.session_persistence.ensure_sessions_db()
986
+ ```
987
+
988
+ **3. RBAC checks failing in dual mode**
989
+ ```python
990
+ # Verify active_context
991
+ status = zos.auth.status()
992
+ print(f"Context: {status['active_context']}")
993
+
994
+ # Ensure both contexts authenticated
995
+ print(f"zSession: {status['zsession']}")
996
+ print(f"Apps: {status['applications']}")
997
+ ```
998
+
999
+ **4. Permissions not working**
1000
+ ```python
1001
+ # Ensure permissions database initialized
1002
+ zos.auth.rbac.ensure_permissions_db()
1003
+
1004
+ # Check permission grants
1005
+ # (Query directly via zData)
1006
+ ```
1007
+
1008
+ ---
1009
+
1010
+ ## Performance Considerations
1011
+
1012
+ ### bcrypt Hash Time
1013
+
1014
+ - **Hash/verify**: ~0.3s per operation (12 rounds)
1015
+ - **By design**: Protects against brute-force attacks
1016
+ - **Recommendation**: Cache authentication results, don't hash repeatedly
1017
+
1018
+ ### Session Persistence
1019
+
1020
+ - **SQLite operations**: <10ms for read/write
1021
+ - **Session restore**: <50ms on startup
1022
+ - **Cleanup**: <100ms for typical databases
1023
+
1024
+ ### RBAC Checks
1025
+
1026
+ - **In-memory**: <1ms for role checks
1027
+ - **Database**: <10ms for permission checks
1028
+ - **Recommendation**: Cache permission checks if checking frequently
1029
+
1030
+ ---
1031
+
1032
+ **[← Back to e_zDisplay Guide](zDisplay_GUIDE.md) | [Home](../README.md) | [Next: g_zDispatch Guide →](zDispatch_GUIDE.md)**