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.
- {kailash-0.4.1/src/kailash.egg-info → kailash-0.5.0}/PKG-INFO +6 -4
- {kailash-0.4.1 → kailash-0.5.0}/README.md +5 -3
- {kailash-0.4.1 → kailash-0.5.0}/pyproject.toml +2 -2
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/__init__.py +3 -4
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/__init__.py +4 -2
- kailash-0.5.0/src/kailash/middleware/auth/__init__.py +76 -0
- kailash-0.5.0/src/kailash/middleware/auth/exceptions.py +80 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/jwt_auth.py +265 -123
- kailash-0.5.0/src/kailash/middleware/auth/models.py +137 -0
- kailash-0.5.0/src/kailash/middleware/auth/utils.py +257 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/api_gateway.py +49 -7
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/agent_ui.py +108 -1
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/repositories.py +3 -1
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/enhanced_server.py +2 -2
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/audit_log.py +364 -6
- kailash-0.5.0/src/kailash/nodes/admin/user_management.py +1930 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/http.py +95 -71
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base.py +281 -164
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_async.py +30 -31
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/code/python.py +18 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_sql.py +3 -22
- kailash-0.5.0/src/kailash/utils/resource_manager.py +420 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/builder.py +93 -10
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cyclic_runner.py +4 -25
- {kailash-0.4.1 → kailash-0.5.0/src/kailash.egg-info}/PKG-INFO +6 -4
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/SOURCES.txt +4 -1
- kailash-0.4.1/src/kailash/middleware/auth/__init__.py +0 -33
- kailash-0.4.1/src/kailash/middleware/auth/kailash_jwt_auth.py +0 -616
- kailash-0.4.1/src/kailash/nodes/admin/user_management.py +0 -944
- {kailash-0.4.1 → kailash-0.5.0}/LICENSE +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/MANIFEST.in +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/setup.cfg +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/setup.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/__main__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/managers.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control/rule_evaluators.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/access_control_abac.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/auth.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/custom_nodes.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/custom_nodes_secure.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/gateway.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/mcp_integration.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/studio.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/api/workflow_api.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/cli/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/cli/commands.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/config/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/config/database_config.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/database/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/database/execution_pipeline.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/manifest.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/ai_registry_server.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/client.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/client_new.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/server.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/server_enhanced.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/servers/ai_registry.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/cache.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/config.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/formatters.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/mcp/utils/metrics.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/access_control.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/auth/auth_manager.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/ai_chat.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/events.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/communication/realtime.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/schema.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/core/workflows.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/base.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/base_models.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/enums.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/migrations.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/models.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/database/session_manager.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/middleware/mcp/client_integration.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/permission_check.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/role_management.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/admin/security_event.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/a2a.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/agents.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/ai_providers.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/embedding_generator.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/intelligent_agent_orchestrator.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/iterative_llm_agent.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/llm_agent.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/models.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/self_organizing.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/ai/vision_utils.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/base.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/alerts/discord.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/auth.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/graphql.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/monitoring.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/rate_limiting.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/rest.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/api/security.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/directory_integration.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/enterprise_auth_provider.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/mfa.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/risk_assessment.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/session_management.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/auth/sso.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_cycle_aware.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/base_with_acl.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/code/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/data_retention.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/compliance/gdpr.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_connection.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/async_vector.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/directory.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/event_generation.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/file_discovery.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/readers.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/retrieval.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sharepoint_graph.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sources.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/sql.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/streaming.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/vector_db.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/data/writers.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/batch_processor.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/enterprise/data_lineage.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/async_operations.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/convergence.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/loop.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/operations.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/logic/workflow.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/event_emitter.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/mcp.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins/security.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/mixins.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/monitoring/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/monitoring/performance_benchmark.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/advanced.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/agentic.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/conversational.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/evaluation.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/federated.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/graph.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/multimodal.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/optimized.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/privacy.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/query_processing.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/realtime.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/registry.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/router.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/similarity.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/strategies.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/rag/workflows.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/abac_evaluator.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/audit_log.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/behavior_analysis.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/credential_manager.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/rotating_credentials.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/security_event.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/security/threat_detection.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/testing/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/testing/credential_testing.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/chunkers.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/formatters.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/transform/processors.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/nodes/validation.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/access_controlled.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/async_local.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/docker.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/local.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/parallel.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/parallel_cyclic.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/runner.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/runtime/testing.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/sdk_exceptions.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/security.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/manager.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/metrics_collector.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/models.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/base.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/database.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/tracking/storage/filesystem.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/export.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/generator.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/models.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/migrations/runner.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/secure_logging.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/utils/templates.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/api.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/dashboard.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/performance.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/visualization/reports.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/__init__.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/convergence.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_analyzer.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_builder.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_config.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_debugger.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_exceptions.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_profiler.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/cycle_state.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/graph.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/mermaid_visualizer.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/migration.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/mock_registry.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/resilience.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/runner.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/safety.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/state.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/templates.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/validation.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash/workflow/visualization.py +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/dependency_links.txt +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/entry_points.txt +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/not-zip-safe +0 -0
- {kailash-0.4.1 → kailash-0.5.0}/src/kailash.egg-info/requires.txt +0 -0
- {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.
|
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.
|
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
|
154
|
-
- Middleware: Enterprise communication layer (
|
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.
|
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
|
80
|
-
- Middleware: Enterprise communication layer (
|
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.
|
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.
|
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.
|
7
|
-
|
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.
|
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
|
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
|
-
>>>
|
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")
|