“企业级AI原生协作平台核心架构:支持多租户隔离的向量知识库(RAG)、具备上下文感知的LLM Agent编排,以及基于MCP(模型上下文协议)的工作区级工具集成;后端采用FastAPI异步框架,前端基于Next.js 14构建高交互体验。
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport streamable-http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
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
- agent-rules IQZZ020501-NexaFlow-a948d88/AGENTS.md
- skill IQZZ020501-NexaFlow-a948d88/sandbox/skills/documents/SKILL.md
- skill IQZZ020501-NexaFlow-a948d88/sandbox/skills/pdf/SKILL.md
- skill IQZZ020501-NexaFlow-a948d88/sandbox/skills/pptx/SKILL.md
- skill IQZZ020501-NexaFlow-a948d88/sandbox/skills/spreadsheets/SKILL.md
danger signals2
- dynamic code execution __import__() IQZZ020501-NexaFlow-a948d88/backend/tests/infra/infra_unit_coverage.py :448
embeddings = __import__( - suspicious endpoint 8.8.8.8 IQZZ020501-NexaFlow-a948d88/backend/tests/agents/unit.py :2646
asyncio.run(validate_mcp_destination("http://8.8.8.8/mcp", False))
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