github Python analyzed a948d88

IQZZ020501/NexaFlow

github

“企业级AI原生协作平台核心架构:支持多租户隔离的向量知识库(RAG)、具备上下文感知的LLM Agent编排,以及基于MCP(模型上下文协议)的工作区级工具集成;后端采用FastAPI异步框架,前端基于Next.js 14构建高交互体验。

maintainer
IQZZ020501
licence
GPL-3.0
first seen
2026-08-07
last seen
2026-09-14
releases · 30d
2
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport streamable-http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit a948d88 · analyzer v33 · 2d ago

skills & prompt files 5

danger signals2

code evidence vv0.1.0-alpha.2 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 930

filesystem 51

  • fs IQZZ020501-NexaFlow-a948d88/backend/app/application/governance/service.py :5 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/application/knowledge/documents/service.py :9 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/application/knowledge/graph/build.py :10 from pathlib import PurePosixPath
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/application/knowledge/graph/service.py :4 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/application/workflows/uploads/service.py :5 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/artifacts/services.py :4 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/documents/parsing.py :6 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/documents/qa_import.py :4 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/documents/references.py :3 from pathlib import PurePosixPath
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/documents/service.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/tasks/runner.py :6 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/config/settings.py :3 from pathlib import Path
show 28 more
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/bases.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/documents.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/graph.py :2 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/repository.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/storage.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/db/repositories/knowledge/tasks.py :3 from pathlib import Path
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/storage/object_storage.py :1 import shutil
  • fs IQZZ020501-NexaFlow-a948d88/backend/app/infra/tools/mcp_stdio.py :5 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/agent_eval.py :13 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/coverage.py :9 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/dependency_matrix.py :16 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/worker.py :8 import shutil
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/agents/agents.py :9 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/agents/unit.py :739 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/architecture.py :26 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/infra_unit_coverage.py :23 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/mcp_transports.py :11 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/unit.py :40 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/knowledge/knowledge_api_coverage.py :20 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/knowledge/knowledge_domain_coverage.py :3980 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/knowledge/unit.py :1410 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/platform/system_governance.py :5 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/platform/workspaces.py :1508 original_rmtree = object_storage_module.shutil.rmtree
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/support/__init__.py :3 import shutil
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/support/mcp_test_server.py :7 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/tools/tools.py :13 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/workflows/unit.py :519 from pathlib import Path
  • fs (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/workflows/workflows.py :1489 from pathlib import Path

11 more not shown — this panel samples each group; the count above is the real total.

shell / exec 8

  • shell (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/coverage.py :5 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/dev.py :5 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/worker.py :12 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/mcp_transports.py :7 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/unit.py :39 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/sandbox/runner.py :18 import subprocess
  • shell (weak) IQZZ020501-NexaFlow-a948d88/sandbox/self_check.py :139 "import subprocess\n"
  • shell (weak) IQZZ020501-NexaFlow-a948d88/sandbox/tests.py :20 import subprocess

network 25

  • net IQZZ020501-NexaFlow-a948d88/backend/app/adapters/identity/enterprise.py :3 from urllib.parse import urlencode
  • net IQZZ020501-NexaFlow-a948d88/backend/app/adapters/llm/runtime.py :7 from urllib.error import HTTPError, URLError
  • net IQZZ020501-NexaFlow-a948d88/backend/app/adapters/mcp/client.py :6 import socket
  • net IQZZ020501-NexaFlow-a948d88/backend/app/api/v1/artifacts/routes.py :2 from urllib.parse import quote
  • net IQZZ020501-NexaFlow-a948d88/backend/app/api/v1/identity/enterprise.py :3 from urllib.parse import urlencode
  • net IQZZ020501-NexaFlow-a948d88/backend/app/application/models/registry.py :4 from urllib.parse import urlparse
  • net IQZZ020501-NexaFlow-a948d88/backend/app/domain/email/services.py :5 from urllib.parse import urlsplit
  • net IQZZ020501-NexaFlow-a948d88/backend/app/domain/knowledge/documents/references.py :5 from urllib.parse import unquote, urlsplit
  • net IQZZ020501-NexaFlow-a948d88/backend/app/infra/config/settings.py :4 from urllib.parse import urlsplit
  • net IQZZ020501-NexaFlow-a948d88/backend/app/ports/mcp.py :60 from urllib.parse import urlparse
  • net IQZZ020501-NexaFlow-a948d88/backend/app/schemas/email/smtp.py :3 from urllib.parse import urlsplit
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/agent_eval.py :15 from urllib.error import HTTPError, URLError
show 13 more
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/dev.py :4 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/worker.py :10 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/identity/enterprise_identity.py :5 from urllib.parse import parse_qs, urlsplit
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/infra_unit_coverage.py :27 from urllib.error import HTTPError, URLError
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/logger.py :9 from urllib.error import URLError
  • net (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/mcp_transports.py :6 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/egress.py :10 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/healthcheck.py :6 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/launcher.py :13 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/runner.py :24 from urllib.parse import urlsplit
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/self_check.py :8 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/server.py :10 import socket
  • net (weak) IQZZ020501-NexaFlow-a948d88/sandbox/tests.py :19 import socket

secrets 4

  • secrets IQZZ020501-NexaFlow-a948d88/backend/app/infra/config/settings.py :46 password=os.getenv("POSTGRES_PASSWORD", "nexaflow"),
  • secrets (weak) IQZZ020501-NexaFlow-a948d88/backend/scripts/agent_eval.py :269 token = os.environ.get("NEXAFLOW_EVAL_TOKEN", "").strip()
  • secrets (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/infra/infra_unit_coverage.py :2523 original = os.environ.get("SOME_KEY")
  • secrets (weak) IQZZ020501-NexaFlow-a948d88/backend/tests/support/mcp_test_server.py :62 os.environ.get("NEXAFLOW_TEST_MCP_CONFIG_SECRET")

database 222

  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/env.py :3 from sqlalchemy import engine_from_config, pool
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607040001_identity_workspace_foundation.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607040002_team_memberships.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607050001_audit_logs.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607050002_system_logs.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607050003_tenant_constraints.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607050004_knowledge_bases_resource_permissions.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060001_model_registry.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060002_workspace_team_descriptions.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060004_knowledge_documents.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060005_knowledge_model_settings.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060006_knowledge_document_pipeline.py :10 import sqlalchemy as sa
show 28 more
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060007_knowledge_task_progress_columns.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060008_knowledge_task_options.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060009_knowledge_document_meta.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202607060010_knowledge_task_lease.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608020011_knowledge_document_is_active.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608030001_agent_goal_runs.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608030002_agent_mcp_tools.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608040001_refresh_sessions.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608040002_drop_agent_run_citations.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608040004_agent_published.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608050002_model_provider_credentials.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608050003_knowledge_parent_chunks.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608050004_knowledge_attachments_assets.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608060001_knowledge_storage_cleanups.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608070001_agent_durable_executor.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608080001_mcp_transports.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608080002_mcp_stdio_inline_config.py :10 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608100001_agent_conversation_memory.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608100002_localize_default_agent_instructions.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608100003_agent_public_access.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608110001_private_resource_visibility.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608120001_agent_app_type.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608120002_workflow_foundation.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608120003_agent_published_snapshot.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608120004_agent_interaction_config.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608140001_workflow_form_interrupts.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608150001_knowledge_chunk_search_text.py :5 import sqlalchemy as sa
  • db IQZZ020501-NexaFlow-a948d88/backend/alembic/versions/202608150002_knowledge_document_references.py :5 import sqlalchemy as sa

182 more not shown — this panel samples each group; the count above is the real total.

declared dependencies 34

  • mcp@>=2.0.0,<3.0.0
  • alembic@>=1.18.5
  • anthropic@>=0.120.2,<0.121.0
  • boto3@>=1.43.63,<1.44.0
  • botocore@>=1.43.63,<1.44.0
  • celery@>=5.5.3
  • cryptography@>=49.0.0
  • fastapi@>=0.139.0
  • google-genai@>=2.16.0,<3.0.0
  • greenlet@>=3.5.3
  • httpcore2@>=2.5.0,<2.6.0
  • httpx2@>=2.5.0,<2.6.0
show 22 more
  • jinja2@>=3.1.6,<4.0.0
  • jsonschema@>=4.26.0,<5.0.0
  • langchain-anthropic@>=1.5.3,<1.6.0
  • langchain-aws@>=1.6.4,<1.7.0
  • langchain-core@>=1.5.3,<2.0.0
  • langchain-deepseek@>=1.1.0,<1.2.0
  • langchain-google-genai@>=4.3.2,<4.4.0
  • langchain-ollama@>=1.1.0,<1.2.0
  • langchain-openai@>=1.4.1,<1.5.0
  • langgraph@>=1.2.10,<2.0.0
  • markitdown@>=0.1.6
  • ollama@>=0.6.2,<0.7.0
  • openai@>=2.53.0,<3.0.0
  • psycopg@>=3.3.4
  • pwdlib@>=0.3.0
  • pyjwt@>=2.13.0
  • pypdf@>=6.14.2
  • python-multipart@>=0.0.20
  • qdrant-client@>=1.19.0,<1.20.0
  • sqlalchemy@>=2.0.51
  • uvicorn@>=0.50.0
  • openpyxl@>=3.1.5,<4.0.0