kailash 0.3.2__tar.gz → 0.4.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.3.2/src/kailash.egg-info → kailash-0.4.0}/PKG-INFO +253 -20
- {kailash-0.3.2 → kailash-0.4.0}/README.md +248 -19
- {kailash-0.3.2 → kailash-0.4.0}/pyproject.toml +22 -1
- {kailash-0.3.2 → kailash-0.4.0}/setup.py +1 -1
- kailash-0.4.0/src/kailash/__init__.py +63 -0
- kailash-0.4.0/src/kailash/access_control/__init__.py +129 -0
- kailash-0.4.0/src/kailash/access_control/managers.py +461 -0
- kailash-0.4.0/src/kailash/access_control/rule_evaluators.py +467 -0
- kailash-0.4.0/src/kailash/access_control_abac.py +825 -0
- kailash-0.4.0/src/kailash/config/__init__.py +27 -0
- kailash-0.4.0/src/kailash/config/database_config.py +359 -0
- kailash-0.4.0/src/kailash/database/__init__.py +28 -0
- kailash-0.4.0/src/kailash/database/execution_pipeline.py +499 -0
- kailash-0.4.0/src/kailash/middleware/__init__.py +306 -0
- kailash-0.4.0/src/kailash/middleware/auth/__init__.py +33 -0
- kailash-0.4.0/src/kailash/middleware/auth/access_control.py +436 -0
- kailash-0.4.0/src/kailash/middleware/auth/auth_manager.py +422 -0
- kailash-0.4.0/src/kailash/middleware/auth/jwt_auth.py +477 -0
- kailash-0.4.0/src/kailash/middleware/auth/kailash_jwt_auth.py +616 -0
- kailash-0.4.0/src/kailash/middleware/communication/__init__.py +37 -0
- kailash-0.4.0/src/kailash/middleware/communication/ai_chat.py +989 -0
- kailash-0.4.0/src/kailash/middleware/communication/api_gateway.py +802 -0
- kailash-0.4.0/src/kailash/middleware/communication/events.py +470 -0
- kailash-0.4.0/src/kailash/middleware/communication/realtime.py +710 -0
- kailash-0.4.0/src/kailash/middleware/core/__init__.py +21 -0
- kailash-0.4.0/src/kailash/middleware/core/agent_ui.py +890 -0
- kailash-0.4.0/src/kailash/middleware/core/schema.py +643 -0
- kailash-0.4.0/src/kailash/middleware/core/workflows.py +396 -0
- kailash-0.4.0/src/kailash/middleware/database/__init__.py +63 -0
- kailash-0.4.0/src/kailash/middleware/database/base.py +113 -0
- kailash-0.4.0/src/kailash/middleware/database/base_models.py +525 -0
- kailash-0.4.0/src/kailash/middleware/database/enums.py +106 -0
- kailash-0.4.0/src/kailash/middleware/database/migrations.py +12 -0
- kailash-0.3.2/src/kailash/api/database.py → kailash-0.4.0/src/kailash/middleware/database/models.py +183 -291
- kailash-0.4.0/src/kailash/middleware/database/repositories.py +685 -0
- kailash-0.4.0/src/kailash/middleware/database/session_manager.py +19 -0
- kailash-0.4.0/src/kailash/middleware/mcp/__init__.py +38 -0
- kailash-0.4.0/src/kailash/middleware/mcp/client_integration.py +585 -0
- kailash-0.4.0/src/kailash/middleware/mcp/enhanced_server.py +576 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/__init__.py +25 -3
- kailash-0.4.0/src/kailash/nodes/admin/__init__.py +35 -0
- kailash-0.4.0/src/kailash/nodes/admin/audit_log.py +794 -0
- kailash-0.4.0/src/kailash/nodes/admin/permission_check.py +864 -0
- kailash-0.4.0/src/kailash/nodes/admin/role_management.py +823 -0
- kailash-0.4.0/src/kailash/nodes/admin/security_event.py +1519 -0
- kailash-0.4.0/src/kailash/nodes/admin/user_management.py +944 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/a2a.py +24 -7
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/ai_providers.py +1 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/embedding_generator.py +11 -11
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/intelligent_agent_orchestrator.py +99 -11
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/llm_agent.py +407 -2
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/self_organizing.py +85 -10
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/auth.py +287 -6
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/rest.py +151 -0
- kailash-0.4.0/src/kailash/nodes/auth/__init__.py +17 -0
- kailash-0.4.0/src/kailash/nodes/auth/directory_integration.py +1228 -0
- kailash-0.4.0/src/kailash/nodes/auth/enterprise_auth_provider.py +1328 -0
- kailash-0.4.0/src/kailash/nodes/auth/mfa.py +2338 -0
- kailash-0.4.0/src/kailash/nodes/auth/risk_assessment.py +872 -0
- kailash-0.4.0/src/kailash/nodes/auth/session_management.py +1093 -0
- kailash-0.4.0/src/kailash/nodes/auth/sso.py +1040 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/base.py +344 -13
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/base_cycle_aware.py +4 -2
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/base_with_acl.py +1 -1
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/code/python.py +283 -10
- kailash-0.4.0/src/kailash/nodes/compliance/__init__.py +9 -0
- kailash-0.4.0/src/kailash/nodes/compliance/data_retention.py +1888 -0
- kailash-0.4.0/src/kailash/nodes/compliance/gdpr.py +2004 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/__init__.py +22 -2
- kailash-0.4.0/src/kailash/nodes/data/async_connection.py +469 -0
- kailash-0.4.0/src/kailash/nodes/data/async_sql.py +757 -0
- kailash-0.4.0/src/kailash/nodes/data/async_vector.py +598 -0
- kailash-0.4.0/src/kailash/nodes/data/readers.py +1326 -0
- kailash-0.4.0/src/kailash/nodes/data/retrieval.py +537 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/sharepoint_graph.py +397 -21
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/sql.py +94 -5
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/streaming.py +68 -8
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/vector_db.py +54 -4
- kailash-0.4.0/src/kailash/nodes/enterprise/__init__.py +13 -0
- kailash-0.4.0/src/kailash/nodes/enterprise/batch_processor.py +741 -0
- kailash-0.4.0/src/kailash/nodes/enterprise/data_lineage.py +497 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/convergence.py +31 -9
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/operations.py +14 -3
- kailash-0.4.0/src/kailash/nodes/mixins/__init__.py +19 -0
- kailash-0.4.0/src/kailash/nodes/mixins/event_emitter.py +201 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/mixins/mcp.py +9 -4
- kailash-0.4.0/src/kailash/nodes/mixins/security.py +165 -0
- kailash-0.4.0/src/kailash/nodes/monitoring/__init__.py +7 -0
- kailash-0.4.0/src/kailash/nodes/monitoring/performance_benchmark.py +2497 -0
- kailash-0.4.0/src/kailash/nodes/rag/__init__.py +284 -0
- kailash-0.4.0/src/kailash/nodes/rag/advanced.py +1615 -0
- kailash-0.4.0/src/kailash/nodes/rag/agentic.py +773 -0
- kailash-0.4.0/src/kailash/nodes/rag/conversational.py +999 -0
- kailash-0.4.0/src/kailash/nodes/rag/evaluation.py +875 -0
- kailash-0.4.0/src/kailash/nodes/rag/federated.py +1188 -0
- kailash-0.4.0/src/kailash/nodes/rag/graph.py +721 -0
- kailash-0.4.0/src/kailash/nodes/rag/multimodal.py +671 -0
- kailash-0.4.0/src/kailash/nodes/rag/optimized.py +933 -0
- kailash-0.4.0/src/kailash/nodes/rag/privacy.py +1059 -0
- kailash-0.4.0/src/kailash/nodes/rag/query_processing.py +1335 -0
- kailash-0.4.0/src/kailash/nodes/rag/realtime.py +764 -0
- kailash-0.4.0/src/kailash/nodes/rag/registry.py +547 -0
- kailash-0.4.0/src/kailash/nodes/rag/router.py +837 -0
- kailash-0.4.0/src/kailash/nodes/rag/similarity.py +1854 -0
- kailash-0.4.0/src/kailash/nodes/rag/strategies.py +566 -0
- kailash-0.4.0/src/kailash/nodes/rag/workflows.py +575 -0
- kailash-0.4.0/src/kailash/nodes/security/__init__.py +19 -0
- kailash-0.4.0/src/kailash/nodes/security/abac_evaluator.py +1411 -0
- kailash-0.4.0/src/kailash/nodes/security/audit_log.py +91 -0
- kailash-0.4.0/src/kailash/nodes/security/behavior_analysis.py +1893 -0
- kailash-0.4.0/src/kailash/nodes/security/credential_manager.py +401 -0
- kailash-0.4.0/src/kailash/nodes/security/rotating_credentials.py +760 -0
- kailash-0.4.0/src/kailash/nodes/security/security_event.py +132 -0
- kailash-0.4.0/src/kailash/nodes/security/threat_detection.py +1103 -0
- kailash-0.4.0/src/kailash/nodes/testing/__init__.py +9 -0
- kailash-0.4.0/src/kailash/nodes/testing/credential_testing.py +499 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/transform/__init__.py +10 -2
- kailash-0.4.0/src/kailash/nodes/transform/chunkers.py +669 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/transform/processors.py +484 -14
- kailash-0.4.0/src/kailash/nodes/validation.py +321 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/access_controlled.py +1 -1
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/async_local.py +41 -7
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/docker.py +1 -1
- kailash-0.4.0/src/kailash/runtime/local.py +963 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/parallel.py +1 -1
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/parallel_cyclic.py +1 -1
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/testing.py +210 -2
- kailash-0.4.0/src/kailash/utils/migrations/__init__.py +25 -0
- kailash-0.4.0/src/kailash/utils/migrations/generator.py +433 -0
- kailash-0.4.0/src/kailash/utils/migrations/models.py +231 -0
- kailash-0.4.0/src/kailash/utils/migrations/runner.py +489 -0
- kailash-0.4.0/src/kailash/utils/secure_logging.py +342 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/__init__.py +16 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cyclic_runner.py +3 -4
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/graph.py +70 -2
- kailash-0.4.0/src/kailash/workflow/resilience.py +249 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/templates.py +726 -0
- {kailash-0.3.2 → kailash-0.4.0/src/kailash.egg-info}/PKG-INFO +253 -20
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash.egg-info/SOURCES.txt +94 -7
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash.egg-info/requires.txt +4 -0
- kailash-0.3.2/src/kailash/__init__.py +0 -31
- kailash-0.3.2/src/kailash/api/__init__.py +0 -17
- kailash-0.3.2/src/kailash/api/__main__.py +0 -6
- kailash-0.3.2/src/kailash/api/studio_secure.py +0 -893
- kailash-0.3.2/src/kailash/mcp/__main__.py +0 -13
- kailash-0.3.2/src/kailash/mcp/server_new.py +0 -336
- kailash-0.3.2/src/kailash/mcp/servers/__init__.py +0 -12
- kailash-0.3.2/src/kailash/nodes/data/readers.py +0 -559
- kailash-0.3.2/src/kailash/nodes/data/retrieval.py +0 -178
- kailash-0.3.2/src/kailash/nodes/mixins/__init__.py +0 -11
- kailash-0.3.2/src/kailash/nodes/transform/chunkers.py +0 -78
- kailash-0.3.2/src/kailash/runtime/local.py +0 -544
- {kailash-0.3.2 → kailash-0.4.0}/LICENSE +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/MANIFEST.in +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/setup.cfg +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/__main__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/access_control.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/auth.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/custom_nodes.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/custom_nodes_secure.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/gateway.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/mcp_integration.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/studio.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/api/workflow_api.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/cli/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/cli/commands.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/manifest.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/ai_registry_server.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/client.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/client_new.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/server.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/server_enhanced.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/servers/ai_registry.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/utils/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/utils/cache.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/utils/config.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/utils/formatters.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/mcp/utils/metrics.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/agents.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/iterative_llm_agent.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/ai/models.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/graphql.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/http.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/monitoring.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/rate_limiting.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/api/security.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/base_async.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/code/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/directory.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/event_generation.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/file_discovery.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/sources.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/data/writers.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/async_operations.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/loop.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/logic/workflow.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/mixins.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/nodes/transform/formatters.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/runtime/runner.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/sdk_exceptions.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/security.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/manager.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/metrics_collector.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/models.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/storage/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/storage/base.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/storage/database.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/tracking/storage/filesystem.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/utils/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/utils/export.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/utils/templates.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/visualization/__init__.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/visualization/api.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/visualization/dashboard.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/visualization/performance.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/visualization/reports.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/builder.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/convergence.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_analyzer.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_builder.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_config.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_debugger.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_exceptions.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_profiler.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/cycle_state.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/mermaid_visualizer.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/migration.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/mock_registry.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/runner.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/safety.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/state.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/validation.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash/workflow/visualization.py +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash.egg-info/dependency_links.txt +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash.egg-info/entry_points.txt +0 -0
- {kailash-0.3.2 → kailash-0.4.0}/src/kailash.egg-info/not-zip-safe +0 -0
- {kailash-0.3.2 → kailash-0.4.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.4.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
|
@@ -57,6 +57,10 @@ Requires-Dist: python-jose>=3.5.0
|
|
57
57
|
Requires-Dist: pytest-xdist>=3.6.0
|
58
58
|
Requires-Dist: pytest-timeout>=2.3.0
|
59
59
|
Requires-Dist: pytest-split>=0.9.0
|
60
|
+
Requires-Dist: asyncpg>=0.30.0
|
61
|
+
Requires-Dist: aiomysql>=0.2.0
|
62
|
+
Requires-Dist: twilio>=9.6.3
|
63
|
+
Requires-Dist: qrcode>=8.2
|
60
64
|
Provides-Extra: dev
|
61
65
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
62
66
|
Requires-Dist: pytest-cov>=3.0; extra == "dev"
|
@@ -76,8 +80,8 @@ Dynamic: requires-python
|
|
76
80
|
<a href="https://pepy.tech/project/kailash"><img src="https://static.pepy.tech/badge/kailash" alt="Downloads"></a>
|
77
81
|
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
|
78
82
|
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
|
79
|
-
<img src="https://img.shields.io/badge/tests-
|
80
|
-
<img src="https://img.shields.io/badge/
|
83
|
+
<img src="https://img.shields.io/badge/tests-127%20organized-brightgreen.svg" alt="Tests: 127 organized">
|
84
|
+
<img src="https://img.shields.io/badge/test%20structure-reorganized-blue.svg" alt="Test structure: reorganized">
|
81
85
|
</p>
|
82
86
|
|
83
87
|
<p align="center">
|
@@ -105,12 +109,71 @@ Dynamic: requires-python
|
|
105
109
|
- 🤖 **Self-Organizing Agents**: Autonomous agent pools with intelligent team formation and convergence detection
|
106
110
|
- 🧠 **Agent-to-Agent Communication**: Shared memory pools and intelligent caching for coordinated multi-agent systems
|
107
111
|
- 🔒 **Production Security**: Comprehensive security framework with path traversal prevention, code sandboxing, and audit logging
|
112
|
+
- 🛡️ **Admin Tool Framework**: Complete enterprise admin infrastructure with React UI, RBAC, audit logging, and LLM-based QA testing
|
108
113
|
- 🎨 **Visual Workflow Builder**: Kailash Workflow Studio - drag-and-drop interface for creating and managing workflows (coming soon)
|
109
114
|
- 🔁 **Cyclic Workflows (v0.2.0)**: Universal Hybrid Cyclic Graph Architecture with 30,000+ iterations/second performance
|
110
115
|
- 🛠️ **Developer Tools**: CycleAnalyzer, CycleDebugger, CycleProfiler for production-ready cyclic workflows
|
111
116
|
- 📈 **High Performance**: Optimized execution engine supporting 100,000+ iteration workflows
|
112
117
|
- 📁 **Complete Finance Workflow Library (v0.3.1)**: Production-ready financial workflows with AI analysis
|
113
118
|
- 💼 **Enterprise Workflow Patterns**: Credit risk, portfolio optimization, trading signals, fraud detection
|
119
|
+
- 🏭 **Session 067 Enhancements**: Business workflow templates, data lineage tracking, automatic credential rotation
|
120
|
+
- 🔄 **Zero-Downtime Operations**: Automatic credential rotation with enterprise notifications and audit trails
|
121
|
+
- 🌉 **Enterprise Middleware (v0.4.0)**: Production-ready middleware architecture with real-time agent-frontend communication, dynamic workflows, and AI chat integration
|
122
|
+
|
123
|
+
## 🏗️ Project Architecture
|
124
|
+
|
125
|
+
The Kailash project is organized into three distinct layers:
|
126
|
+
|
127
|
+
### Core Architecture (v0.4.0)
|
128
|
+
```
|
129
|
+
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
130
|
+
│ Frontend │ │ Middleware │ │ Kailash Core │
|
131
|
+
│ │ │ │ │ │
|
132
|
+
│ • React/Vue │◄───│ • Agent-UI │◄───│ • Workflows │
|
133
|
+
│ • JavaScript │ │ • Real-time │ │ • Nodes │
|
134
|
+
│ • Mobile Apps │ │ • API Gateway │ │ • Runtime │
|
135
|
+
│ │ │ • AI Chat │ │ • Security │
|
136
|
+
│ │ │ • WebSocket/SSE │ │ • Database │
|
137
|
+
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
138
|
+
```
|
139
|
+
|
140
|
+
```
|
141
|
+
kailash_python_sdk/
|
142
|
+
├── src/kailash/ # Core SDK - Framework and building blocks
|
143
|
+
├── apps/ # Applications - Production-ready solutions built with the SDK
|
144
|
+
└── studio/ # UI Layer - Frontend interfaces and visual tools
|
145
|
+
```
|
146
|
+
|
147
|
+
### Layer Overview
|
148
|
+
|
149
|
+
1. **SDK Layer** (`src/kailash/`) - The core framework providing:
|
150
|
+
- Nodes: Reusable computational units (100+ built-in)
|
151
|
+
- Workflows: DAG-based orchestration with cyclic support
|
152
|
+
- Runtime: Unified execution engine (async + enterprise)
|
153
|
+
- Middleware: Enterprise communication layer (NEW in v0.4.0)
|
154
|
+
- Security: RBAC/ABAC access control with audit logging
|
155
|
+
|
156
|
+
2. **Application Layer** (`apps/`) - Complete applications including:
|
157
|
+
- User Management System (Django++ capabilities)
|
158
|
+
- Future: Workflow Designer, Data Pipeline, API Gateway, etc.
|
159
|
+
|
160
|
+
3. **UI Layer** (`studio/`) - Modern React interfaces for:
|
161
|
+
- Admin dashboards
|
162
|
+
- Workflow visualization
|
163
|
+
- Application UIs
|
164
|
+
|
165
|
+
### Installation Options
|
166
|
+
|
167
|
+
```bash
|
168
|
+
# Core SDK only
|
169
|
+
pip install kailash
|
170
|
+
|
171
|
+
# SDK with User Management
|
172
|
+
pip install kailash[user-management]
|
173
|
+
|
174
|
+
# Everything
|
175
|
+
pip install kailash[all]
|
176
|
+
```
|
114
177
|
|
115
178
|
## 🎯 Who Is This For?
|
116
179
|
|
@@ -257,7 +320,7 @@ workflow.add_node("optimizer", PythonCodeNode.from_function(func=optimize_portfo
|
|
257
320
|
- Industry-specific solutions by vertical
|
258
321
|
- Enterprise integration patterns
|
259
322
|
- `essentials/` - Quick reference and cheatsheets
|
260
|
-
- `nodes/` - Comprehensive node catalog (
|
323
|
+
- `nodes/` - Comprehensive node catalog (93+ nodes including Session 067 enhancements)
|
261
324
|
- `patterns/` - Architectural patterns
|
262
325
|
|
263
326
|
### For SDK Contributors
|
@@ -282,8 +345,112 @@ workflow.add_node("optimizer", PythonCodeNode.from_function(func=optimize_portfo
|
|
282
345
|
- [Examples](examples/)
|
283
346
|
- [Release Notes](CHANGELOG.md)
|
284
347
|
|
348
|
+
## 🌉 Enterprise Middleware (v0.4.0)
|
349
|
+
|
350
|
+
### Production-Ready Communication Layer
|
351
|
+
|
352
|
+
The new middleware architecture provides enterprise-grade components for building production applications:
|
353
|
+
|
354
|
+
```python
|
355
|
+
from kailash.middleware import (
|
356
|
+
AgentUIMiddleware,
|
357
|
+
APIGateway,
|
358
|
+
create_gateway,
|
359
|
+
RealtimeMiddleware,
|
360
|
+
AIChatMiddleware
|
361
|
+
)
|
362
|
+
|
363
|
+
# Create enterprise middleware stack
|
364
|
+
agent_ui = AgentUIMiddleware(
|
365
|
+
max_sessions=1000,
|
366
|
+
session_timeout_minutes=60,
|
367
|
+
enable_persistence=True
|
368
|
+
)
|
369
|
+
|
370
|
+
# API Gateway with authentication
|
371
|
+
gateway = create_gateway(
|
372
|
+
title="My Production API",
|
373
|
+
cors_origins=["https://myapp.com"],
|
374
|
+
enable_docs=True
|
375
|
+
)
|
376
|
+
|
377
|
+
# Real-time communication
|
378
|
+
realtime = RealtimeMiddleware(agent_ui)
|
379
|
+
|
380
|
+
# AI chat integration
|
381
|
+
ai_chat = AIChatMiddleware(
|
382
|
+
agent_ui,
|
383
|
+
enable_vector_search=True,
|
384
|
+
llm_provider="ollama"
|
385
|
+
)
|
386
|
+
```
|
387
|
+
|
388
|
+
### Key Middleware Features
|
389
|
+
|
390
|
+
- **Dynamic Workflow Creation**: Create workflows from frontend configurations using `WorkflowBuilder.from_dict()`
|
391
|
+
- **Real-time Communication**: WebSocket and SSE support for live updates
|
392
|
+
- **Session Management**: Multi-tenant isolation with automatic cleanup
|
393
|
+
- **AI Chat Integration**: Natural language workflow generation with context awareness
|
394
|
+
- **Database Persistence**: Repository pattern with audit logging
|
395
|
+
- **JWT Authentication**: Enterprise security with RBAC/ABAC access control
|
396
|
+
- **Health Monitoring**: Built-in health checks and performance metrics
|
397
|
+
|
398
|
+
### Frontend Integration
|
399
|
+
|
400
|
+
```python
|
401
|
+
# Create session for frontend client
|
402
|
+
session_id = await agent_ui.create_session("user123")
|
403
|
+
|
404
|
+
# Dynamic workflow from frontend
|
405
|
+
workflow_config = {
|
406
|
+
"name": "data_pipeline",
|
407
|
+
"nodes": [...],
|
408
|
+
"connections": [...]
|
409
|
+
}
|
410
|
+
|
411
|
+
workflow_id = await agent_ui.create_dynamic_workflow(
|
412
|
+
session_id, workflow_config
|
413
|
+
)
|
414
|
+
|
415
|
+
# Execute with real-time updates
|
416
|
+
execution_id = await agent_ui.execute_workflow(
|
417
|
+
session_id, workflow_id, inputs={}
|
418
|
+
)
|
419
|
+
```
|
420
|
+
|
421
|
+
**Test Excellence**: 17/17 integration tests passing with 100% reliability for production deployment.
|
422
|
+
|
423
|
+
See [Middleware Integration Guide](sdk-users/developer/16-middleware-integration-guide.md) for complete documentation.
|
424
|
+
|
285
425
|
## 🔥 Advanced Features
|
286
426
|
|
427
|
+
### Unified Access Control (v0.3.3)
|
428
|
+
|
429
|
+
Single interface for all access control strategies:
|
430
|
+
|
431
|
+
```python
|
432
|
+
from kailash.access_control import AccessControlManager
|
433
|
+
|
434
|
+
# Choose your strategy
|
435
|
+
manager = AccessControlManager(strategy="abac") # or "rbac" or "hybrid"
|
436
|
+
|
437
|
+
# ABAC example with helper functions
|
438
|
+
from kailash.access_control import create_attribute_condition
|
439
|
+
|
440
|
+
condition = create_attribute_condition(
|
441
|
+
path="user.attributes.department",
|
442
|
+
operator="hierarchical_match",
|
443
|
+
value="finance"
|
444
|
+
)
|
445
|
+
|
446
|
+
# Database integration
|
447
|
+
db_node = AsyncSQLDatabaseNode(
|
448
|
+
name="financial_query",
|
449
|
+
query="SELECT * FROM sensitive_data",
|
450
|
+
access_control_manager=manager
|
451
|
+
)
|
452
|
+
```
|
453
|
+
|
287
454
|
### Cyclic Workflows (Enhanced in v0.2.2)
|
288
455
|
|
289
456
|
Build iterative workflows with the new CycleBuilder API:
|
@@ -346,14 +513,16 @@ api.run()
|
|
346
513
|
|
347
514
|
## 🏗️ Key Components
|
348
515
|
|
349
|
-
### Nodes (
|
516
|
+
### Nodes (85+ built-in)
|
350
517
|
|
351
|
-
- **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, DirectoryReaderNode
|
518
|
+
- **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, AsyncSQLDatabaseNode, DirectoryReaderNode
|
519
|
+
- **Admin**: UserManagementNode, RoleManagementNode, PermissionCheckNode, AuditLogNode, SecurityEventNode
|
352
520
|
- **Transform**: DataTransformer, DataFrameFilter, DataFrameJoiner
|
353
|
-
- **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode
|
354
|
-
- **API**: RESTClientNode, GraphQLNode, AuthNode
|
521
|
+
- **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode, MCPAgentNode
|
522
|
+
- **API**: RESTClientNode, GraphQLNode, AuthNode, HTTPRequestNode
|
355
523
|
- **Logic**: SwitchNode, MergeNode, ConvergenceCheckerNode
|
356
524
|
- **Code**: PythonCodeNode, WorkflowNode
|
525
|
+
- **Security**: EnhancedAccessControlManager (ABAC with 16 operators)
|
357
526
|
|
358
527
|
### Runtimes
|
359
528
|
|
@@ -443,23 +612,87 @@ ruff check .
|
|
443
612
|
python scripts/test-all-examples.py
|
444
613
|
```
|
445
614
|
|
615
|
+
## 🧪 Tests & Examples
|
616
|
+
|
617
|
+
### Comprehensive Test Suite
|
618
|
+
The SDK features a fully reorganized test suite with 127 tests organized by purpose:
|
619
|
+
|
620
|
+
```bash
|
621
|
+
# Run all tests
|
622
|
+
pytest
|
623
|
+
|
624
|
+
# Fast unit tests (92 tests)
|
625
|
+
pytest tests/unit/
|
626
|
+
|
627
|
+
# Integration tests (31 tests)
|
628
|
+
pytest tests/integration/
|
629
|
+
|
630
|
+
# End-to-end tests (4 tests)
|
631
|
+
pytest tests/e2e/
|
632
|
+
|
633
|
+
# Specific component tests
|
634
|
+
pytest tests/unit/nodes/ai/
|
635
|
+
```
|
636
|
+
|
637
|
+
**Test Structure:**
|
638
|
+
- **Unit Tests**: Fast, isolated component validation
|
639
|
+
- **Integration Tests**: Component interaction testing
|
640
|
+
- **E2E Tests**: Complete scenario validation
|
641
|
+
- **Unified Configuration**: Single `conftest.py` with 76+ fixtures
|
642
|
+
|
643
|
+
### Production Workflows & Examples
|
644
|
+
Clear separation of purpose for maximum value:
|
645
|
+
|
646
|
+
**Business Workflows** (`sdk-users/workflows/`):
|
647
|
+
```
|
648
|
+
sdk-users/workflows/
|
649
|
+
├── quickstart/ # 5-minute success stories
|
650
|
+
├── by-industry/ # Finance, healthcare, manufacturing
|
651
|
+
├── by-pattern/ # Data processing, AI/ML, API integration
|
652
|
+
├── integrations/ # Third-party platform connections
|
653
|
+
└── production-ready/ # Enterprise deployment patterns
|
654
|
+
```
|
655
|
+
|
656
|
+
**SDK Development** (`examples/`):
|
657
|
+
```
|
658
|
+
examples/
|
659
|
+
├── feature-validation/ # SDK component testing
|
660
|
+
├── test-harness/ # Development utilities
|
661
|
+
└── utils/ # Shared development tools
|
662
|
+
```
|
663
|
+
|
664
|
+
**Key Principles:**
|
665
|
+
- **Workflows**: Production business value, real-world solutions
|
666
|
+
- **Examples**: SDK development, feature validation
|
667
|
+
- **Tests**: Quality assurance, regression prevention
|
668
|
+
|
446
669
|
## 📈 Project Status
|
447
670
|
|
448
|
-
|
449
|
-
-
|
450
|
-
-
|
671
|
+
### ✅ v0.4.0 - Enterprise Middleware Architecture
|
672
|
+
- **Middleware Layer**: Complete refactor from monolithic to composable middleware
|
673
|
+
- **Real-time Communication**: WebSocket/SSE with comprehensive event streaming
|
674
|
+
- **AI Integration**: Built-in chat middleware with workflow generation
|
675
|
+
- **Test Excellence**: 799 tests passing (100% pass rate), organized structure
|
676
|
+
- **Gateway Integration**: Updated for middleware-based architecture
|
677
|
+
- **Performance**: Excluded slow tests from CI, builds complete in <2 minutes
|
678
|
+
|
679
|
+
### ✅ Previous Releases
|
680
|
+
- ✅ Core workflow engine with 100+ production-ready nodes
|
681
|
+
- ✅ Unified LocalRuntime (async + enterprise features)
|
451
682
|
- ✅ Export to container format
|
452
|
-
- ✅
|
453
|
-
- ✅
|
454
|
-
- ✅ Self-organizing agent systems
|
455
|
-
- ✅ Hierarchical RAG architecture
|
456
|
-
- ✅ REST API wrapper
|
683
|
+
- ✅ Reorganized test suite (unit/integration/e2e structure)
|
684
|
+
- ✅ Self-organizing agent systems and hierarchical RAG
|
457
685
|
- ✅ Cyclic workflow support with CycleBuilder API
|
458
|
-
- ✅ Production security framework
|
459
|
-
- ✅
|
460
|
-
-
|
461
|
-
-
|
686
|
+
- ✅ Production security framework with RBAC/ABAC/Hybrid
|
687
|
+
- ✅ Async database infrastructure with pgvector support
|
688
|
+
- ✅ Admin tool framework with React UI and QA testing
|
689
|
+
- ✅ Comprehensive workflow library (finance, enterprise patterns)
|
690
|
+
|
691
|
+
### 🚧 In Progress
|
692
|
+
- 🚧 Visual workflow builder (Studio UI)
|
693
|
+
- 🚧 Docker runtime integration
|
462
694
|
- 🚧 Cloud deployment tools
|
695
|
+
- 🚧 Advanced RAG toolkit validation
|
463
696
|
|
464
697
|
## 📄 License
|
465
698
|
|
@@ -6,8 +6,8 @@
|
|
6
6
|
<a href="https://pepy.tech/project/kailash"><img src="https://static.pepy.tech/badge/kailash" alt="Downloads"></a>
|
7
7
|
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
|
8
8
|
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
|
9
|
-
<img src="https://img.shields.io/badge/tests-
|
10
|
-
<img src="https://img.shields.io/badge/
|
9
|
+
<img src="https://img.shields.io/badge/tests-127%20organized-brightgreen.svg" alt="Tests: 127 organized">
|
10
|
+
<img src="https://img.shields.io/badge/test%20structure-reorganized-blue.svg" alt="Test structure: reorganized">
|
11
11
|
</p>
|
12
12
|
|
13
13
|
<p align="center">
|
@@ -35,12 +35,71 @@
|
|
35
35
|
- 🤖 **Self-Organizing Agents**: Autonomous agent pools with intelligent team formation and convergence detection
|
36
36
|
- 🧠 **Agent-to-Agent Communication**: Shared memory pools and intelligent caching for coordinated multi-agent systems
|
37
37
|
- 🔒 **Production Security**: Comprehensive security framework with path traversal prevention, code sandboxing, and audit logging
|
38
|
+
- 🛡️ **Admin Tool Framework**: Complete enterprise admin infrastructure with React UI, RBAC, audit logging, and LLM-based QA testing
|
38
39
|
- 🎨 **Visual Workflow Builder**: Kailash Workflow Studio - drag-and-drop interface for creating and managing workflows (coming soon)
|
39
40
|
- 🔁 **Cyclic Workflows (v0.2.0)**: Universal Hybrid Cyclic Graph Architecture with 30,000+ iterations/second performance
|
40
41
|
- 🛠️ **Developer Tools**: CycleAnalyzer, CycleDebugger, CycleProfiler for production-ready cyclic workflows
|
41
42
|
- 📈 **High Performance**: Optimized execution engine supporting 100,000+ iteration workflows
|
42
43
|
- 📁 **Complete Finance Workflow Library (v0.3.1)**: Production-ready financial workflows with AI analysis
|
43
44
|
- 💼 **Enterprise Workflow Patterns**: Credit risk, portfolio optimization, trading signals, fraud detection
|
45
|
+
- 🏭 **Session 067 Enhancements**: Business workflow templates, data lineage tracking, automatic credential rotation
|
46
|
+
- 🔄 **Zero-Downtime Operations**: Automatic credential rotation with enterprise notifications and audit trails
|
47
|
+
- 🌉 **Enterprise Middleware (v0.4.0)**: Production-ready middleware architecture with real-time agent-frontend communication, dynamic workflows, and AI chat integration
|
48
|
+
|
49
|
+
## 🏗️ Project Architecture
|
50
|
+
|
51
|
+
The Kailash project is organized into three distinct layers:
|
52
|
+
|
53
|
+
### Core Architecture (v0.4.0)
|
54
|
+
```
|
55
|
+
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
56
|
+
│ Frontend │ │ Middleware │ │ Kailash Core │
|
57
|
+
│ │ │ │ │ │
|
58
|
+
│ • React/Vue │◄───│ • Agent-UI │◄───│ • Workflows │
|
59
|
+
│ • JavaScript │ │ • Real-time │ │ • Nodes │
|
60
|
+
│ • Mobile Apps │ │ • API Gateway │ │ • Runtime │
|
61
|
+
│ │ │ • AI Chat │ │ • Security │
|
62
|
+
│ │ │ • WebSocket/SSE │ │ • Database │
|
63
|
+
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
64
|
+
```
|
65
|
+
|
66
|
+
```
|
67
|
+
kailash_python_sdk/
|
68
|
+
├── src/kailash/ # Core SDK - Framework and building blocks
|
69
|
+
├── apps/ # Applications - Production-ready solutions built with the SDK
|
70
|
+
└── studio/ # UI Layer - Frontend interfaces and visual tools
|
71
|
+
```
|
72
|
+
|
73
|
+
### Layer Overview
|
74
|
+
|
75
|
+
1. **SDK Layer** (`src/kailash/`) - The core framework providing:
|
76
|
+
- Nodes: Reusable computational units (100+ built-in)
|
77
|
+
- Workflows: DAG-based orchestration with cyclic support
|
78
|
+
- Runtime: Unified execution engine (async + enterprise)
|
79
|
+
- Middleware: Enterprise communication layer (NEW in v0.4.0)
|
80
|
+
- Security: RBAC/ABAC access control with audit logging
|
81
|
+
|
82
|
+
2. **Application Layer** (`apps/`) - Complete applications including:
|
83
|
+
- User Management System (Django++ capabilities)
|
84
|
+
- Future: Workflow Designer, Data Pipeline, API Gateway, etc.
|
85
|
+
|
86
|
+
3. **UI Layer** (`studio/`) - Modern React interfaces for:
|
87
|
+
- Admin dashboards
|
88
|
+
- Workflow visualization
|
89
|
+
- Application UIs
|
90
|
+
|
91
|
+
### Installation Options
|
92
|
+
|
93
|
+
```bash
|
94
|
+
# Core SDK only
|
95
|
+
pip install kailash
|
96
|
+
|
97
|
+
# SDK with User Management
|
98
|
+
pip install kailash[user-management]
|
99
|
+
|
100
|
+
# Everything
|
101
|
+
pip install kailash[all]
|
102
|
+
```
|
44
103
|
|
45
104
|
## 🎯 Who Is This For?
|
46
105
|
|
@@ -187,7 +246,7 @@ workflow.add_node("optimizer", PythonCodeNode.from_function(func=optimize_portfo
|
|
187
246
|
- Industry-specific solutions by vertical
|
188
247
|
- Enterprise integration patterns
|
189
248
|
- `essentials/` - Quick reference and cheatsheets
|
190
|
-
- `nodes/` - Comprehensive node catalog (
|
249
|
+
- `nodes/` - Comprehensive node catalog (93+ nodes including Session 067 enhancements)
|
191
250
|
- `patterns/` - Architectural patterns
|
192
251
|
|
193
252
|
### For SDK Contributors
|
@@ -212,8 +271,112 @@ workflow.add_node("optimizer", PythonCodeNode.from_function(func=optimize_portfo
|
|
212
271
|
- [Examples](examples/)
|
213
272
|
- [Release Notes](CHANGELOG.md)
|
214
273
|
|
274
|
+
## 🌉 Enterprise Middleware (v0.4.0)
|
275
|
+
|
276
|
+
### Production-Ready Communication Layer
|
277
|
+
|
278
|
+
The new middleware architecture provides enterprise-grade components for building production applications:
|
279
|
+
|
280
|
+
```python
|
281
|
+
from kailash.middleware import (
|
282
|
+
AgentUIMiddleware,
|
283
|
+
APIGateway,
|
284
|
+
create_gateway,
|
285
|
+
RealtimeMiddleware,
|
286
|
+
AIChatMiddleware
|
287
|
+
)
|
288
|
+
|
289
|
+
# Create enterprise middleware stack
|
290
|
+
agent_ui = AgentUIMiddleware(
|
291
|
+
max_sessions=1000,
|
292
|
+
session_timeout_minutes=60,
|
293
|
+
enable_persistence=True
|
294
|
+
)
|
295
|
+
|
296
|
+
# API Gateway with authentication
|
297
|
+
gateway = create_gateway(
|
298
|
+
title="My Production API",
|
299
|
+
cors_origins=["https://myapp.com"],
|
300
|
+
enable_docs=True
|
301
|
+
)
|
302
|
+
|
303
|
+
# Real-time communication
|
304
|
+
realtime = RealtimeMiddleware(agent_ui)
|
305
|
+
|
306
|
+
# AI chat integration
|
307
|
+
ai_chat = AIChatMiddleware(
|
308
|
+
agent_ui,
|
309
|
+
enable_vector_search=True,
|
310
|
+
llm_provider="ollama"
|
311
|
+
)
|
312
|
+
```
|
313
|
+
|
314
|
+
### Key Middleware Features
|
315
|
+
|
316
|
+
- **Dynamic Workflow Creation**: Create workflows from frontend configurations using `WorkflowBuilder.from_dict()`
|
317
|
+
- **Real-time Communication**: WebSocket and SSE support for live updates
|
318
|
+
- **Session Management**: Multi-tenant isolation with automatic cleanup
|
319
|
+
- **AI Chat Integration**: Natural language workflow generation with context awareness
|
320
|
+
- **Database Persistence**: Repository pattern with audit logging
|
321
|
+
- **JWT Authentication**: Enterprise security with RBAC/ABAC access control
|
322
|
+
- **Health Monitoring**: Built-in health checks and performance metrics
|
323
|
+
|
324
|
+
### Frontend Integration
|
325
|
+
|
326
|
+
```python
|
327
|
+
# Create session for frontend client
|
328
|
+
session_id = await agent_ui.create_session("user123")
|
329
|
+
|
330
|
+
# Dynamic workflow from frontend
|
331
|
+
workflow_config = {
|
332
|
+
"name": "data_pipeline",
|
333
|
+
"nodes": [...],
|
334
|
+
"connections": [...]
|
335
|
+
}
|
336
|
+
|
337
|
+
workflow_id = await agent_ui.create_dynamic_workflow(
|
338
|
+
session_id, workflow_config
|
339
|
+
)
|
340
|
+
|
341
|
+
# Execute with real-time updates
|
342
|
+
execution_id = await agent_ui.execute_workflow(
|
343
|
+
session_id, workflow_id, inputs={}
|
344
|
+
)
|
345
|
+
```
|
346
|
+
|
347
|
+
**Test Excellence**: 17/17 integration tests passing with 100% reliability for production deployment.
|
348
|
+
|
349
|
+
See [Middleware Integration Guide](sdk-users/developer/16-middleware-integration-guide.md) for complete documentation.
|
350
|
+
|
215
351
|
## 🔥 Advanced Features
|
216
352
|
|
353
|
+
### Unified Access Control (v0.3.3)
|
354
|
+
|
355
|
+
Single interface for all access control strategies:
|
356
|
+
|
357
|
+
```python
|
358
|
+
from kailash.access_control import AccessControlManager
|
359
|
+
|
360
|
+
# Choose your strategy
|
361
|
+
manager = AccessControlManager(strategy="abac") # or "rbac" or "hybrid"
|
362
|
+
|
363
|
+
# ABAC example with helper functions
|
364
|
+
from kailash.access_control import create_attribute_condition
|
365
|
+
|
366
|
+
condition = create_attribute_condition(
|
367
|
+
path="user.attributes.department",
|
368
|
+
operator="hierarchical_match",
|
369
|
+
value="finance"
|
370
|
+
)
|
371
|
+
|
372
|
+
# Database integration
|
373
|
+
db_node = AsyncSQLDatabaseNode(
|
374
|
+
name="financial_query",
|
375
|
+
query="SELECT * FROM sensitive_data",
|
376
|
+
access_control_manager=manager
|
377
|
+
)
|
378
|
+
```
|
379
|
+
|
217
380
|
### Cyclic Workflows (Enhanced in v0.2.2)
|
218
381
|
|
219
382
|
Build iterative workflows with the new CycleBuilder API:
|
@@ -276,14 +439,16 @@ api.run()
|
|
276
439
|
|
277
440
|
## 🏗️ Key Components
|
278
441
|
|
279
|
-
### Nodes (
|
442
|
+
### Nodes (85+ built-in)
|
280
443
|
|
281
|
-
- **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, DirectoryReaderNode
|
444
|
+
- **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, AsyncSQLDatabaseNode, DirectoryReaderNode
|
445
|
+
- **Admin**: UserManagementNode, RoleManagementNode, PermissionCheckNode, AuditLogNode, SecurityEventNode
|
282
446
|
- **Transform**: DataTransformer, DataFrameFilter, DataFrameJoiner
|
283
|
-
- **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode
|
284
|
-
- **API**: RESTClientNode, GraphQLNode, AuthNode
|
447
|
+
- **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode, MCPAgentNode
|
448
|
+
- **API**: RESTClientNode, GraphQLNode, AuthNode, HTTPRequestNode
|
285
449
|
- **Logic**: SwitchNode, MergeNode, ConvergenceCheckerNode
|
286
450
|
- **Code**: PythonCodeNode, WorkflowNode
|
451
|
+
- **Security**: EnhancedAccessControlManager (ABAC with 16 operators)
|
287
452
|
|
288
453
|
### Runtimes
|
289
454
|
|
@@ -373,23 +538,87 @@ ruff check .
|
|
373
538
|
python scripts/test-all-examples.py
|
374
539
|
```
|
375
540
|
|
541
|
+
## 🧪 Tests & Examples
|
542
|
+
|
543
|
+
### Comprehensive Test Suite
|
544
|
+
The SDK features a fully reorganized test suite with 127 tests organized by purpose:
|
545
|
+
|
546
|
+
```bash
|
547
|
+
# Run all tests
|
548
|
+
pytest
|
549
|
+
|
550
|
+
# Fast unit tests (92 tests)
|
551
|
+
pytest tests/unit/
|
552
|
+
|
553
|
+
# Integration tests (31 tests)
|
554
|
+
pytest tests/integration/
|
555
|
+
|
556
|
+
# End-to-end tests (4 tests)
|
557
|
+
pytest tests/e2e/
|
558
|
+
|
559
|
+
# Specific component tests
|
560
|
+
pytest tests/unit/nodes/ai/
|
561
|
+
```
|
562
|
+
|
563
|
+
**Test Structure:**
|
564
|
+
- **Unit Tests**: Fast, isolated component validation
|
565
|
+
- **Integration Tests**: Component interaction testing
|
566
|
+
- **E2E Tests**: Complete scenario validation
|
567
|
+
- **Unified Configuration**: Single `conftest.py` with 76+ fixtures
|
568
|
+
|
569
|
+
### Production Workflows & Examples
|
570
|
+
Clear separation of purpose for maximum value:
|
571
|
+
|
572
|
+
**Business Workflows** (`sdk-users/workflows/`):
|
573
|
+
```
|
574
|
+
sdk-users/workflows/
|
575
|
+
├── quickstart/ # 5-minute success stories
|
576
|
+
├── by-industry/ # Finance, healthcare, manufacturing
|
577
|
+
├── by-pattern/ # Data processing, AI/ML, API integration
|
578
|
+
├── integrations/ # Third-party platform connections
|
579
|
+
└── production-ready/ # Enterprise deployment patterns
|
580
|
+
```
|
581
|
+
|
582
|
+
**SDK Development** (`examples/`):
|
583
|
+
```
|
584
|
+
examples/
|
585
|
+
├── feature-validation/ # SDK component testing
|
586
|
+
├── test-harness/ # Development utilities
|
587
|
+
└── utils/ # Shared development tools
|
588
|
+
```
|
589
|
+
|
590
|
+
**Key Principles:**
|
591
|
+
- **Workflows**: Production business value, real-world solutions
|
592
|
+
- **Examples**: SDK development, feature validation
|
593
|
+
- **Tests**: Quality assurance, regression prevention
|
594
|
+
|
376
595
|
## 📈 Project Status
|
377
596
|
|
378
|
-
|
379
|
-
-
|
380
|
-
-
|
597
|
+
### ✅ v0.4.0 - Enterprise Middleware Architecture
|
598
|
+
- **Middleware Layer**: Complete refactor from monolithic to composable middleware
|
599
|
+
- **Real-time Communication**: WebSocket/SSE with comprehensive event streaming
|
600
|
+
- **AI Integration**: Built-in chat middleware with workflow generation
|
601
|
+
- **Test Excellence**: 799 tests passing (100% pass rate), organized structure
|
602
|
+
- **Gateway Integration**: Updated for middleware-based architecture
|
603
|
+
- **Performance**: Excluded slow tests from CI, builds complete in <2 minutes
|
604
|
+
|
605
|
+
### ✅ Previous Releases
|
606
|
+
- ✅ Core workflow engine with 100+ production-ready nodes
|
607
|
+
- ✅ Unified LocalRuntime (async + enterprise features)
|
381
608
|
- ✅ Export to container format
|
382
|
-
- ✅
|
383
|
-
- ✅
|
384
|
-
- ✅ Self-organizing agent systems
|
385
|
-
- ✅ Hierarchical RAG architecture
|
386
|
-
- ✅ REST API wrapper
|
609
|
+
- ✅ Reorganized test suite (unit/integration/e2e structure)
|
610
|
+
- ✅ Self-organizing agent systems and hierarchical RAG
|
387
611
|
- ✅ Cyclic workflow support with CycleBuilder API
|
388
|
-
- ✅ Production security framework
|
389
|
-
- ✅
|
390
|
-
-
|
391
|
-
-
|
612
|
+
- ✅ Production security framework with RBAC/ABAC/Hybrid
|
613
|
+
- ✅ Async database infrastructure with pgvector support
|
614
|
+
- ✅ Admin tool framework with React UI and QA testing
|
615
|
+
- ✅ Comprehensive workflow library (finance, enterprise patterns)
|
616
|
+
|
617
|
+
### 🚧 In Progress
|
618
|
+
- 🚧 Visual workflow builder (Studio UI)
|
619
|
+
- 🚧 Docker runtime integration
|
392
620
|
- 🚧 Cloud deployment tools
|
621
|
+
- 🚧 Advanced RAG toolkit validation
|
393
622
|
|
394
623
|
## 📄 License
|
395
624
|
|