github Python re-analysis due

dmux/minilake

github

Minilake is a free, local Databricks API emulator — a single-developer tool for testing databricks-sdk/Terraform code against real SQL, real Delta Lake, and real Job execution, without paying for cloud compute.

maintainer
dmux
license
MIT
first seen
2026-08-08
last seen
2026-09-05
releases · 30d
5
short id

Drift inferred · capture-to-capture

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

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

tools

  • cancel_run
  • cancel_statement
  • create_catalog
  • create_cluster
  • create_directory
  • create_job
  • create_schema
  • create_secret_scope
  • create_table
  • create_volume
  • create_warehouse
  • dbfs_delete
  • dbfs_list
  • dbfs_mkdirs
  • dbfs_put
  • dbfs_read
  • delete_catalog
  • delete_file
  • delete_job
  • delete_schema
  • delete_secret
  • delete_secret_scope
  • delete_table
  • delete_volume
  • delete_warehouse
  • delete_workspace_object
  • describe_catalog_tree
  • describe_table
  • download_file
  • get_catalog
  • get_cluster
  • get_job
  • get_run
  • get_run_output
  • get_statement
  • get_warehouse
  • get_workspace_file
  • get_workspace_status
  • health
  • list_catalogs
  • list_clusters
  • list_directory
  • list_jobs
  • list_runs
  • list_schemas
  • list_secret_scopes
  • list_secrets
  • list_services
  • list_tables
  • list_volumes
  • list_warehouses
  • list_workspace
  • make_workspace_dirs
  • put_secret
  • put_workspace_file
  • reset_state
  • run_job
  • run_python_script
  • run_sql
  • seed_table
  • setup_fixture
  • start_cluster
  • start_warehouse
  • stop_warehouse
  • table_exists
  • terminate_cluster
  • upload_file
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit fa44c67 · analyzer v33 · 1w ago

skills & prompt files 3

code evidence vv1.7.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 204

filesystem 19

  • fs dmux-minilake-fa44c67/src/minilake/admin.py :4 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/app.py :9 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/cli.py :110 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/config.py :2 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/docker_executor.py :19 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/duckdb_pool.py :5 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/notebook.py :18 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/persistence.py :10 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/services/dbfs.py :11 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/services/files.py :10 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/services/sql_statements.py :10 from pathlib import Path
  • fs dmux-minilake-fa44c67/src/minilake/services/unity_catalog.py :4 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/services/workspace.py :11 import shutil
  • fs dmux-minilake-fa44c67/src/minilake/tls.py :21 from pathlib import Path
  • fs (weak) dmux-minilake-fa44c67/tests/conftest.py :9 from pathlib import Path
  • fs (weak) dmux-minilake-fa44c67/tests/test_config.py :4 from pathlib import Path
  • fs (weak) dmux-minilake-fa44c67/tests/test_docker_executor.py :10 from pathlib import Path
  • fs (weak) dmux-minilake-fa44c67/tests/test_packaging.py :8 import pathlib
  • fs (weak) dmux-minilake-fa44c67/tests/test_persistence.py :14 import shutil

shell / exec 4

  • shell dmux-minilake-fa44c67/src/minilake/docker_executor.py :20 import subprocess
  • shell dmux-minilake-fa44c67/src/minilake/notebook.py :20 import subprocess
  • shell (weak) dmux-minilake-fa44c67/tests/conftest.py :6 import subprocess
  • shell (weak) dmux-minilake-fa44c67/tests/test_persistence.py :16 import subprocess

network 14

  • net dmux-minilake-fa44c67/src/minilake/mcp/client.py :3 Requests are routed through the app's own ASGI stack (`httpx.ASGITransport`) rather than
  • net dmux-minilake-fa44c67/src/minilake/notebook.py :19 import socket
  • net (weak) dmux-minilake-fa44c67/tests/conftest.py :8 import urllib.request
  • net (weak) dmux-minilake-fa44c67/tests/error_handling/test_400_bad_request.py :16 import requests
  • net (weak) dmux-minilake-fa44c67/tests/error_handling/test_501_not_implemented.py :9 import urllib.request
  • net (weak) dmux-minilake-fa44c67/tests/mcp_server/conftest.py :13 import httpx
  • net (weak) dmux-minilake-fa44c67/tests/test_admin.py :3 import urllib.request
  • net (weak) dmux-minilake-fa44c67/tests/test_golden_path.py :300 import urllib.request
  • net (weak) dmux-minilake-fa44c67/tests/test_notebook.py :10 import urllib.error
  • net (weak) dmux-minilake-fa44c67/tests/test_persistence.py :15 import socket
  • net (weak) dmux-minilake-fa44c67/tests/test_sql_statements.py :8 import requests
  • net (weak) dmux-minilake-fa44c67/tests/test_ui_assets.py :11 import requests
  • net (weak) dmux-minilake-fa44c67/tests/unity_catalog/test_spark_catalog_protocol.py :17 import requests
  • net (weak) dmux-minilake-fa44c67/tests/unity_catalog/test_tables.py :98 import requests

secrets 2

  • secrets (weak) dmux-minilake-fa44c67/tests/test_docker_executor.py :57 script.write_text("import os\nprint('SECRET=' + os.environ.get('MY_SECRET', 'MISSING'))\n")
  • secrets (weak) dmux-minilake-fa44c67/tests/test_jobs.py :366 b"import os\nprint('MY_API_KEY=' + os.environ.get('MY_API_KEY', 'MISSING'))\n",

tool registrations 67

  • health dmux-minilake-fa44c67/src/minilake/mcp/tools/admin.py :11
  • list_services dmux-minilake-fa44c67/src/minilake/mcp/tools/admin.py :16
  • reset_state dmux-minilake-fa44c67/src/minilake/mcp/tools/admin.py :25
  • create_cluster dmux-minilake-fa44c67/src/minilake/mcp/tools/clusters.py :21
  • list_clusters dmux-minilake-fa44c67/src/minilake/mcp/tools/clusters.py :43
  • get_cluster dmux-minilake-fa44c67/src/minilake/mcp/tools/clusters.py :48
  • start_cluster dmux-minilake-fa44c67/src/minilake/mcp/tools/clusters.py :53
  • terminate_cluster dmux-minilake-fa44c67/src/minilake/mcp/tools/clusters.py :58
  • describe_catalog_tree dmux-minilake-fa44c67/src/minilake/mcp/tools/composite.py :19
  • seed_table dmux-minilake-fa44c67/src/minilake/mcp/tools/composite.py :58
  • setup_fixture dmux-minilake-fa44c67/src/minilake/mcp/tools/composite.py :126
  • dbfs_put dmux-minilake-fa44c67/src/minilake/mcp/tools/dbfs.py :12
  • dbfs_read dmux-minilake-fa44c67/src/minilake/mcp/tools/dbfs.py :28
  • dbfs_list dmux-minilake-fa44c67/src/minilake/mcp/tools/dbfs.py :39
  • dbfs_delete dmux-minilake-fa44c67/src/minilake/mcp/tools/dbfs.py :44
  • dbfs_mkdirs dmux-minilake-fa44c67/src/minilake/mcp/tools/dbfs.py :49
  • upload_file dmux-minilake-fa44c67/src/minilake/mcp/tools/files.py :11
  • download_file dmux-minilake-fa44c67/src/minilake/mcp/tools/files.py :26
  • delete_file dmux-minilake-fa44c67/src/minilake/mcp/tools/files.py :32
  • list_directory dmux-minilake-fa44c67/src/minilake/mcp/tools/files.py :38
  • create_directory dmux-minilake-fa44c67/src/minilake/mcp/tools/files.py :43
  • create_job dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :32
  • list_jobs dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :49
  • get_job dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :54
  • delete_job dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :59
  • run_job dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :64
  • get_run dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :84
  • get_run_output dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :89
  • list_runs dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :94
  • cancel_run dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :99
  • run_python_script dmux-minilake-fa44c67/src/minilake/mcp/tools/jobs.py :108
  • create_secret_scope dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :11
  • list_secret_scopes dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :16
  • delete_secret_scope dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :21
  • put_secret dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :26
  • list_secrets dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :37
  • delete_secret dmux-minilake-fa44c67/src/minilake/mcp/tools/secrets.py :42
  • run_sql dmux-minilake-fa44c67/src/minilake/mcp/tools/sql.py :32
  • get_statement dmux-minilake-fa44c67/src/minilake/mcp/tools/sql.py :80
  • cancel_statement dmux-minilake-fa44c67/src/minilake/mcp/tools/sql.py :85
  • create_catalog dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :13
  • list_catalogs dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :20
  • get_catalog dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :25
  • delete_catalog dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :30
  • create_schema dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :37
  • list_schemas dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :45
  • delete_schema dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :50
  • create_table dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :57
  • list_tables dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :100
  • describe_table dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :108
  • table_exists dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :120
  • delete_table dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :125
  • create_volume dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :132
  • list_volumes dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :152
  • delete_volume dmux-minilake-fa44c67/src/minilake/mcp/tools/unity_catalog.py :160
  • create_warehouse dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :11
  • list_warehouses dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :21
  • get_warehouse dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :26
  • start_warehouse dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :31
  • stop_warehouse dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :40
  • delete_warehouse dmux-minilake-fa44c67/src/minilake/mcp/tools/warehouses.py :45
  • put_workspace_file dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :12
  • get_workspace_file dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :37
  • list_workspace dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :48
  • get_workspace_status dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :53
  • make_workspace_dirs dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :58
  • delete_workspace_object dmux-minilake-fa44c67/src/minilake/mcp/tools/workspace.py :63

declared dependencies 14

  • mcp@>=1.29,<2
  • fastapi@>=0.115
  • uvicorn@>=0.30
  • pydantic@>=2.11
  • pydantic-settings@>=2.3
  • duckdb@>=1.0
  • python-multipart@>=0.0.9
  • aiofiles@>=24.1
  • docker@>=7.1
  • pyarrow@>=14.0
  • cryptography@>=42.0
  • pytz@>=2024.1
  • jupyterlab@>=4.2,<5
  • databricks-sdk@>=0.40

perm:untrusted 1

  • untrusted (weak) dmux-minilake-fa44c67/tests/test_ui_assets.py :49 index = requests.get(f"{ui_base}/ui/", timeout=10).text

transport_posture 2

  • network-listening, binds all interfaces, no auth detected dmux-minilake-fa44c67/src/minilake/__init__.py :7 run_server(app, host="0.0.0.0", port=8000, ssl=False)
  • network-listening, binds all interfaces, no auth detected dmux-minilake-fa44c67/src/minilake/cli.py :170 run_server(app, host="0.0.0.0", port=8000, ssl=False)