kailash 0.4.1__tar.gz → 0.5.0__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 (241) hide show
  1. {kailash-0.4.1/src/kailash.egg-info → kailash-0.5.0}/PKG-INFO +6 -4
  2. {kailash-0.4.1 → kailash-0.5.0}/README.md +5 -3
  3. {kailash-0.4.1 → kailash-0.5.0}/pyproject.toml +2 -2
  4. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/__init__.py +3 -4
  5. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/__init__.py +4 -2
  6. kailash-0.5.0/src/kailash/middleware/auth/__init__.py +76 -0
  7. kailash-0.5.0/src/kailash/middleware/auth/exceptions.py +80 -0
  8. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/jwt_auth.py +265 -123
  9. kailash-0.5.0/src/kailash/middleware/auth/models.py +137 -0
  10. kailash-0.5.0/src/kailash/middleware/auth/utils.py +257 -0
  11. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/api_gateway.py +49 -7
  12. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/agent_ui.py +108 -1
  13. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/repositories.py +3 -1
  14. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/enhanced_server.py +2 -2
  15. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/audit_log.py +364 -6
  16. kailash-0.5.0/src/kailash/nodes/admin/user_management.py +1930 -0
  17. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/http.py +95 -71
  18. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base.py +281 -164
  19. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_async.py +30 -31
  20. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/code/python.py +18 -0
  21. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_sql.py +3 -22
  22. kailash-0.5.0/src/kailash/utils/resource_manager.py +420 -0
  23. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/builder.py +93 -10
  24. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cyclic_runner.py +4 -25
  25. {kailash-0.4.1 → kailash-0.5.0/src/kailash.egg-info}/PKG-INFO +6 -4
  26. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/SOURCES.txt +4 -1
  27. kailash-0.4.1/src/kailash/middleware/auth/__init__.py +0 -33
  28. kailash-0.4.1/src/kailash/middleware/auth/kailash_jwt_auth.py +0 -616
  29. kailash-0.4.1/src/kailash/nodes/admin/user_management.py +0 -944
  30. {kailash-0.4.1 → kailash-0.5.0}/LICENSE +0 -0
  31. {kailash-0.4.1 → kailash-0.5.0}/MANIFEST.in +0 -0
  32. {kailash-0.4.1 → kailash-0.5.0}/setup.cfg +0 -0
  33. {kailash-0.4.1 → kailash-0.5.0}/setup.py +0 -0
  34. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/__main__.py +0 -0
  35. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/__init__.py +0 -0
  36. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/managers.py +0 -0
  37. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/rule_evaluators.py +0 -0
  38. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control.py +0 -0
  39. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control_abac.py +0 -0
  40. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/auth.py +0 -0
  41. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/custom_nodes.py +0 -0
  42. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/custom_nodes_secure.py +0 -0
  43. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/gateway.py +0 -0
  44. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/mcp_integration.py +0 -0
  45. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/studio.py +0 -0
  46. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/workflow_api.py +0 -0
  47. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/cli/__init__.py +0 -0
  48. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/cli/commands.py +0 -0
  49. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/config/__init__.py +0 -0
  50. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/config/database_config.py +0 -0
  51. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/database/__init__.py +0 -0
  52. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/database/execution_pipeline.py +0 -0
  53. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/manifest.py +0 -0
  54. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/__init__.py +0 -0
  55. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/ai_registry_server.py +0 -0
  56. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/client.py +0 -0
  57. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/client_new.py +0 -0
  58. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/server.py +0 -0
  59. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/server_enhanced.py +0 -0
  60. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/servers/ai_registry.py +0 -0
  61. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/__init__.py +0 -0
  62. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/cache.py +0 -0
  63. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/config.py +0 -0
  64. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/formatters.py +0 -0
  65. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/metrics.py +0 -0
  66. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/access_control.py +0 -0
  67. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/auth_manager.py +0 -0
  68. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/__init__.py +0 -0
  69. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/ai_chat.py +0 -0
  70. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/events.py +0 -0
  71. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/realtime.py +0 -0
  72. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/__init__.py +0 -0
  73. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/schema.py +0 -0
  74. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/workflows.py +0 -0
  75. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/__init__.py +0 -0
  76. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/base.py +0 -0
  77. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/base_models.py +0 -0
  78. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/enums.py +0 -0
  79. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/migrations.py +0 -0
  80. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/models.py +0 -0
  81. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/session_manager.py +0 -0
  82. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/__init__.py +0 -0
  83. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/client_integration.py +0 -0
  84. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/__init__.py +0 -0
  85. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/__init__.py +0 -0
  86. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/permission_check.py +0 -0
  87. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/role_management.py +0 -0
  88. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/security_event.py +0 -0
  89. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/__init__.py +0 -0
  90. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/a2a.py +0 -0
  91. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/agents.py +0 -0
  92. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/ai_providers.py +0 -0
  93. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/embedding_generator.py +0 -0
  94. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/intelligent_agent_orchestrator.py +0 -0
  95. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/iterative_llm_agent.py +0 -0
  96. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/llm_agent.py +0 -0
  97. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/models.py +0 -0
  98. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/self_organizing.py +0 -0
  99. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/vision_utils.py +0 -0
  100. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/__init__.py +0 -0
  101. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/base.py +0 -0
  102. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/discord.py +0 -0
  103. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/__init__.py +0 -0
  104. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/auth.py +0 -0
  105. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/graphql.py +0 -0
  106. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/monitoring.py +0 -0
  107. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/rate_limiting.py +0 -0
  108. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/rest.py +0 -0
  109. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/security.py +0 -0
  110. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/__init__.py +0 -0
  111. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/directory_integration.py +0 -0
  112. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/enterprise_auth_provider.py +0 -0
  113. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/mfa.py +0 -0
  114. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/risk_assessment.py +0 -0
  115. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/session_management.py +0 -0
  116. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/sso.py +0 -0
  117. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_cycle_aware.py +0 -0
  118. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_with_acl.py +0 -0
  119. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/code/__init__.py +0 -0
  120. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/__init__.py +0 -0
  121. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/data_retention.py +0 -0
  122. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/gdpr.py +0 -0
  123. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/__init__.py +0 -0
  124. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_connection.py +0 -0
  125. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_vector.py +0 -0
  126. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/directory.py +0 -0
  127. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/event_generation.py +0 -0
  128. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/file_discovery.py +0 -0
  129. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/readers.py +0 -0
  130. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/retrieval.py +0 -0
  131. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sharepoint_graph.py +0 -0
  132. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sources.py +0 -0
  133. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sql.py +0 -0
  134. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/streaming.py +0 -0
  135. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/vector_db.py +0 -0
  136. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/writers.py +0 -0
  137. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/__init__.py +0 -0
  138. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/batch_processor.py +0 -0
  139. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/data_lineage.py +0 -0
  140. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/__init__.py +0 -0
  141. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/async_operations.py +0 -0
  142. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/convergence.py +0 -0
  143. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/loop.py +0 -0
  144. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/operations.py +0 -0
  145. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/workflow.py +0 -0
  146. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/__init__.py +0 -0
  147. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/event_emitter.py +0 -0
  148. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/mcp.py +0 -0
  149. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/security.py +0 -0
  150. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins.py +0 -0
  151. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/monitoring/__init__.py +0 -0
  152. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/monitoring/performance_benchmark.py +0 -0
  153. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/__init__.py +0 -0
  154. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/advanced.py +0 -0
  155. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/agentic.py +0 -0
  156. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/conversational.py +0 -0
  157. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/evaluation.py +0 -0
  158. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/federated.py +0 -0
  159. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/graph.py +0 -0
  160. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/multimodal.py +0 -0
  161. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/optimized.py +0 -0
  162. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/privacy.py +0 -0
  163. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/query_processing.py +0 -0
  164. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/realtime.py +0 -0
  165. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/registry.py +0 -0
  166. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/router.py +0 -0
  167. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/similarity.py +0 -0
  168. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/strategies.py +0 -0
  169. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/workflows.py +0 -0
  170. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/__init__.py +0 -0
  171. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/abac_evaluator.py +0 -0
  172. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/audit_log.py +0 -0
  173. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/behavior_analysis.py +0 -0
  174. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/credential_manager.py +0 -0
  175. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/rotating_credentials.py +0 -0
  176. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/security_event.py +0 -0
  177. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/threat_detection.py +0 -0
  178. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/testing/__init__.py +0 -0
  179. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/testing/credential_testing.py +0 -0
  180. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/__init__.py +0 -0
  181. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/chunkers.py +0 -0
  182. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/formatters.py +0 -0
  183. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/processors.py +0 -0
  184. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/validation.py +0 -0
  185. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/__init__.py +0 -0
  186. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/access_controlled.py +0 -0
  187. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/async_local.py +0 -0
  188. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/docker.py +0 -0
  189. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/local.py +0 -0
  190. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/parallel.py +0 -0
  191. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/parallel_cyclic.py +0 -0
  192. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/runner.py +0 -0
  193. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/testing.py +0 -0
  194. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/sdk_exceptions.py +0 -0
  195. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/security.py +0 -0
  196. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/__init__.py +0 -0
  197. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/manager.py +0 -0
  198. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/metrics_collector.py +0 -0
  199. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/models.py +0 -0
  200. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/__init__.py +0 -0
  201. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/base.py +0 -0
  202. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/database.py +0 -0
  203. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/filesystem.py +0 -0
  204. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/__init__.py +0 -0
  205. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/export.py +0 -0
  206. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/__init__.py +0 -0
  207. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/generator.py +0 -0
  208. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/models.py +0 -0
  209. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/runner.py +0 -0
  210. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/secure_logging.py +0 -0
  211. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/templates.py +0 -0
  212. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/__init__.py +0 -0
  213. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/api.py +0 -0
  214. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/dashboard.py +0 -0
  215. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/performance.py +0 -0
  216. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/reports.py +0 -0
  217. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/__init__.py +0 -0
  218. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/convergence.py +0 -0
  219. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_analyzer.py +0 -0
  220. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_builder.py +0 -0
  221. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_config.py +0 -0
  222. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_debugger.py +0 -0
  223. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_exceptions.py +0 -0
  224. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_profiler.py +0 -0
  225. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_state.py +0 -0
  226. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/graph.py +0 -0
  227. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/mermaid_visualizer.py +0 -0
  228. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/migration.py +0 -0
  229. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/mock_registry.py +0 -0
  230. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/resilience.py +0 -0
  231. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/runner.py +0 -0
  232. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/safety.py +0 -0
  233. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/state.py +0 -0
  234. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/templates.py +0 -0
  235. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/validation.py +0 -0
  236. {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/visualization.py +0 -0
  237. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/dependency_links.txt +0 -0
  238. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/entry_points.txt +0 -0
  239. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/not-zip-safe +0 -0
  240. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/requires.txt +0 -0
  241. {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kailash
3
- Version: 0.4.1
3
+ Version: 0.5.0
4
4
  Summary: Python SDK for the Kailash container-node architecture
5
5
  Home-page: https://github.com/integrum/kailash-python-sdk
6
6
  Author: Integrum
@@ -120,12 +120,13 @@ Dynamic: requires-python
120
120
  - 🏭 **Session 067 Enhancements**: Business workflow templates, data lineage tracking, automatic credential rotation
121
121
  - 🔄 **Zero-Downtime Operations**: Automatic credential rotation with enterprise notifications and audit trails
122
122
  - 🌉 **Enterprise Middleware (v0.4.0)**: Production-ready middleware architecture with real-time agent-frontend communication, dynamic workflows, and AI chat integration
123
+ - ⚡ **Performance Revolution (v0.5.0)**: 10-100x faster parameter resolution, clear async/sync separation, automatic resource management
123
124
 
124
125
  ## 🏗️ Project Architecture
125
126
 
126
127
  The Kailash project is organized into three distinct layers:
127
128
 
128
- ### Core Architecture (v0.4.0)
129
+ ### Core Architecture (v0.5.0)
129
130
  ```
130
131
  ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
131
132
  │ Frontend │ │ Middleware │ │ Kailash Core │
@@ -150,9 +151,10 @@ kailash_python_sdk/
150
151
  1. **SDK Layer** (`src/kailash/`) - The core framework providing:
151
152
  - Nodes: Reusable computational units (100+ built-in)
152
153
  - Workflows: DAG-based orchestration with cyclic support
153
- - Runtime: Unified execution engine (async + enterprise)
154
- - Middleware: Enterprise communication layer (NEW in v0.4.0)
154
+ - Runtime: Unified execution engine with optimized async/sync separation (v0.5.0)
155
+ - Middleware: Enterprise communication layer (v0.4.0)
155
156
  - Security: RBAC/ABAC access control with audit logging
157
+ - Performance: LRU parameter caching, automatic resource pooling (NEW in v0.5.0)
156
158
 
157
159
  2. **Application Layer** (`apps/`) - Complete applications including:
158
160
  - User Management System (Django++ capabilities)
@@ -46,12 +46,13 @@
46
46
  - 🏭 **Session 067 Enhancements**: Business workflow templates, data lineage tracking, automatic credential rotation
47
47
  - 🔄 **Zero-Downtime Operations**: Automatic credential rotation with enterprise notifications and audit trails
48
48
  - 🌉 **Enterprise Middleware (v0.4.0)**: Production-ready middleware architecture with real-time agent-frontend communication, dynamic workflows, and AI chat integration
49
+ - ⚡ **Performance Revolution (v0.5.0)**: 10-100x faster parameter resolution, clear async/sync separation, automatic resource management
49
50
 
50
51
  ## 🏗️ Project Architecture
51
52
 
52
53
  The Kailash project is organized into three distinct layers:
53
54
 
54
- ### Core Architecture (v0.4.0)
55
+ ### Core Architecture (v0.5.0)
55
56
  ```
56
57
  ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
57
58
  │ Frontend │ │ Middleware │ │ Kailash Core │
@@ -76,9 +77,10 @@ kailash_python_sdk/
76
77
  1. **SDK Layer** (`src/kailash/`) - The core framework providing:
77
78
  - Nodes: Reusable computational units (100+ built-in)
78
79
  - Workflows: DAG-based orchestration with cyclic support
79
- - Runtime: Unified execution engine (async + enterprise)
80
- - Middleware: Enterprise communication layer (NEW in v0.4.0)
80
+ - Runtime: Unified execution engine with optimized async/sync separation (v0.5.0)
81
+ - Middleware: Enterprise communication layer (v0.4.0)
81
82
  - Security: RBAC/ABAC access control with audit logging
83
+ - Performance: LRU parameter caching, automatic resource pooling (NEW in v0.5.0)
82
84
 
83
85
  2. **Application Layer** (`apps/`) - Complete applications including:
84
86
  - User Management System (Django++ capabilities)
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "kailash"
7
- version = "0.4.1"
7
+ version = "0.5.0"
8
8
  description = "Python SDK for the Kailash container-node architecture"
9
9
  authors = [
10
10
  {name = "Integrum", email = "info@integrum.com"}
11
11
  ]
12
12
  readme = "README.md"
13
- requires-python = ">=3.11"
13
+ requires-python = ">=3.12"
14
14
  classifiers = [
15
15
  "Development Status :: 3 - Alpha",
16
16
  "Intended Audience :: Developers",
@@ -3,9 +3,8 @@
3
3
  The Kailash SDK provides a comprehensive framework for creating nodes and workflows
4
4
  that align with container-node architecture while allowing rapid prototyping.
5
5
 
6
- New in v0.4.1: Production-ready Alert Nodes with Discord integration and
7
- AI Provider Vision Support. Rich Discord alerts with embeds, rate limiting,
8
- and universal vision capabilities across OpenAI, Anthropic, and Ollama providers.
6
+ New in v0.4.2: Bug fixes including circular import resolution and JWT implementation
7
+ consolidation. Improved changelog organization with individual release files.
9
8
  """
10
9
 
11
10
  from kailash.nodes.base import Node, NodeMetadata, NodeParameter
@@ -34,7 +33,7 @@ except ImportError:
34
33
  # For backward compatibility
35
34
  WorkflowGraph = Workflow
36
35
 
37
- __version__ = "0.4.1"
36
+ __version__ = "0.4.2"
38
37
 
39
38
  __all__ = [
40
39
  # Core workflow components
@@ -36,7 +36,7 @@ The middleware consists of these interconnected layers:
36
36
 
37
37
  **API Gateway Layer**:
38
38
  - RESTful API endpoints with OpenAPI documentation
39
- - JWT-based authentication using JWTConfigNode
39
+ - JWT-based authentication using JWTAuthManager
40
40
  - Request/response middleware with comprehensive logging
41
41
  - Dynamic schema generation for node discovery
42
42
 
@@ -181,9 +181,11 @@ Usage Examples
181
181
  >>> workflow_id = await agent_ui.create_dynamic_workflow(
182
182
  ... session_id, workflow_config
183
183
  ... )
184
- >>> execution_id = await agent_ui.execute_workflow(
184
+ >>> # Use execute() for consistency with runtime API (preferred)
185
+ >>> execution_id = await agent_ui.execute(
185
186
  ... session_id, workflow_id, inputs={}
186
187
  ... )
188
+ >>> # Note: execute_workflow() is deprecated and will be removed in v1.0.0
187
189
 
188
190
  Production Deployment
189
191
  --------------------
@@ -0,0 +1,76 @@
1
+ """
2
+ Enterprise Authentication and Authorization for Kailash Middleware
3
+
4
+ Provides comprehensive authentication, authorization, and tenant isolation
5
+ capabilities for the Kailash middleware layer.
6
+
7
+ Features:
8
+ - JWT-based authentication with refresh tokens
9
+ - Role-based access control (RBAC)
10
+ - Attribute-based access control (ABAC)
11
+ - Multi-tenant isolation
12
+ - API key authentication
13
+ - OAuth2/OIDC integration
14
+ - Session management
15
+ - Audit logging
16
+ """
17
+
18
+ from .exceptions import (
19
+ AuthenticationError,
20
+ InvalidTokenError,
21
+ PermissionDeniedError,
22
+ TokenBlacklistedError,
23
+ TokenExpiredError,
24
+ )
25
+
26
+ # Import without circular dependencies
27
+ from .jwt_auth import JWTAuthManager
28
+ from .models import AuthenticationResult, JWTConfig, TokenPair, TokenPayload, UserClaims
29
+ from .utils import generate_key_pair, generate_secret_key, parse_bearer_token
30
+
31
+ # Import other components (check for circular deps)
32
+ try:
33
+ from .access_control import (
34
+ MiddlewareAccessControlManager,
35
+ MiddlewareAuthenticationMiddleware,
36
+ )
37
+ from .auth_manager import AuthLevel, MiddlewareAuthManager
38
+
39
+ _has_access_control = True
40
+ except ImportError:
41
+ # These imports might fail due to circular dependencies with communication
42
+ _has_access_control = False
43
+
44
+ # KailashJWTAuthManager has been consolidated into JWTAuthManager
45
+ # For backward compatibility, use JWTAuthManager directly
46
+
47
+ __all__ = [
48
+ # Core authentication (always available)
49
+ "JWTAuthManager",
50
+ "JWTConfig",
51
+ "TokenPayload",
52
+ "TokenPair",
53
+ "UserClaims",
54
+ "AuthenticationResult",
55
+ # Exceptions
56
+ "AuthenticationError",
57
+ "TokenExpiredError",
58
+ "InvalidTokenError",
59
+ "TokenBlacklistedError",
60
+ "PermissionDeniedError",
61
+ # Utilities
62
+ "generate_secret_key",
63
+ "generate_key_pair",
64
+ "parse_bearer_token",
65
+ ]
66
+
67
+ # Add access control components if available
68
+ if _has_access_control:
69
+ __all__.extend(
70
+ [
71
+ "MiddlewareAuthManager",
72
+ "AuthLevel",
73
+ "MiddlewareAccessControlManager",
74
+ "MiddlewareAuthenticationMiddleware",
75
+ ]
76
+ )
@@ -0,0 +1,80 @@
1
+ """
2
+ Authentication Exceptions for Kailash Middleware
3
+
4
+ Provides exception classes for authentication errors without circular dependencies.
5
+ """
6
+
7
+
8
+ class AuthenticationError(Exception):
9
+ """Base exception for authentication errors."""
10
+
11
+ def __init__(self, message: str, error_code: str = None):
12
+ super().__init__(message)
13
+ self.error_code = error_code
14
+
15
+
16
+ class TokenExpiredError(AuthenticationError):
17
+ """Raised when a JWT token has expired."""
18
+
19
+ def __init__(self, message: str = "Token has expired"):
20
+ super().__init__(message, "TOKEN_EXPIRED")
21
+
22
+
23
+ class InvalidTokenError(AuthenticationError):
24
+ """Raised when a JWT token is invalid."""
25
+
26
+ def __init__(self, message: str = "Invalid token"):
27
+ super().__init__(message, "INVALID_TOKEN")
28
+
29
+
30
+ class TokenBlacklistedError(AuthenticationError):
31
+ """Raised when a JWT token has been blacklisted/revoked."""
32
+
33
+ def __init__(self, message: str = "Token has been revoked"):
34
+ super().__init__(message, "TOKEN_BLACKLISTED")
35
+
36
+
37
+ class KeyRotationError(AuthenticationError):
38
+ """Raised when key rotation fails."""
39
+
40
+ def __init__(self, message: str = "Key rotation failed"):
41
+ super().__init__(message, "KEY_ROTATION_ERROR")
42
+
43
+
44
+ class RefreshTokenError(AuthenticationError):
45
+ """Raised when refresh token operations fail."""
46
+
47
+ def __init__(self, message: str = "Refresh token error"):
48
+ super().__init__(message, "REFRESH_TOKEN_ERROR")
49
+
50
+
51
+ class PermissionDeniedError(AuthenticationError):
52
+ """Raised when user lacks required permissions."""
53
+
54
+ def __init__(
55
+ self, message: str = "Permission denied", required_permission: str = None
56
+ ):
57
+ super().__init__(message, "PERMISSION_DENIED")
58
+ self.required_permission = required_permission
59
+
60
+
61
+ class RateLimitError(AuthenticationError):
62
+ """Raised when authentication rate limit is exceeded."""
63
+
64
+ def __init__(self, message: str = "Rate limit exceeded", retry_after: int = None):
65
+ super().__init__(message, "RATE_LIMIT_EXCEEDED")
66
+ self.retry_after = retry_after
67
+
68
+
69
+ class InvalidCredentialsError(AuthenticationError):
70
+ """Raised when login credentials are invalid."""
71
+
72
+ def __init__(self, message: str = "Invalid credentials"):
73
+ super().__init__(message, "INVALID_CREDENTIALS")
74
+
75
+
76
+ class SessionExpiredError(AuthenticationError):
77
+ """Raised when a session has expired."""
78
+
79
+ def __init__(self, message: str = "Session has expired"):
80
+ super().__init__(message, "SESSION_EXPIRED")