open-edison 0.1.30__py3-none-any.whl → 0.1.34__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: open-edison
3
- Version: 0.1.30
3
+ Version: 0.1.34
4
4
  Summary: Open-source MCP security, aggregation, and monitoring. Single-user, self-hosted MCP proxy.
5
5
  Author-email: Hugo Berg <hugo@edison.watch>
6
6
  License-File: LICENSE
@@ -28,9 +28,9 @@ Description-Content-Type: text/markdown
28
28
 
29
29
  # OpenEdison 🔒⚡️
30
30
 
31
- > The secure MCP proxy gateway
31
+ > The Secure MCP Control Panel
32
32
 
33
- Connect AI to your data/software securely without risk of data exfiltration. Gain visibility, block threats, and get alerts on the data your agent is reading/writing. No more "approve fatigue" with the MCP tool-call approvals.
33
+ Connect AI to your data/software securely without risk of data exfiltration. Gain visibility, block threats, and get alerts on the data your agent is reading/writing.
34
34
 
35
35
  OpenEdison solves the [lethal trifecta problem](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/), which can cause agent hijacking & data exfiltration by malicious actors.
36
36
 
@@ -1,21 +1,21 @@
1
1
  src/__init__.py,sha256=QWeZdjAm2D2B0eWhd8m2-DPpWvIP26KcNJxwEoU1oEQ,254
2
2
  src/__main__.py,sha256=kQsaVyzRa_ESC57JpKDSQJAHExuXme0rM5beJsYxFeA,161
3
- src/cli.py,sha256=57XJH-Zd45HgxfILZlNWkHNNjuKKMSuer0l3Q0BgZ_k,10201
4
- src/config.py,sha256=LHLQWWWvPzdQfCEUCbCMqHpEOnXJhmPFmk9bSVGnUyY,9443
3
+ src/cli.py,sha256=Mz8nMlCHJk0Il8Kr6wB5iKPPMb3WpbBfU2PPLsnYicE,10235
4
+ src/config.py,sha256=CHrKta7WZbwhKy7FK9y1FEmhbg6VyI5mXhRJ0GHGM6s,10130
5
5
  src/events.py,sha256=rBH7rnaSWZ7GIC8zyBTwpcvIKWmKYCki-DNGgJhxPow,5001
6
6
  src/oauth_manager.py,sha256=qcQa5BDRZr4bjqiXNflCnrXOh9mo9JVjvP2Caseg2Uc,9943
7
7
  src/permissions.py,sha256=NGAnlG_z59HEiVA-k3cYvwmmiuHzxuNb5Tbd5umbL00,10483
8
- src/server.py,sha256=0sdBz7VLWy5moO1GtecljuXFK7AV6mg6UOi6At4MPEo,45166
9
- src/single_user_mcp.py,sha256=P-D6_B_l7fJ2OzMjVeg56OkzRkCsODqKpky4ecHRj6I,17356
8
+ src/server.py,sha256=DLs-ak35cyEDROctDjzI6-C_ymWe3RekETW0XA5ag_M,45650
9
+ src/single_user_mcp.py,sha256=rJrlqHcIubGkos_24ux5rb3OoKYDzvagCHghhfDeXTI,18535
10
10
  src/telemetry.py,sha256=-RZPIjpI53zbsKmp-63REeZ1JirWHV5WvpSRa2nqZEk,11321
11
- src/frontend_dist/index.html,sha256=skY5DFiRUpVBaVjXzqGkoDhHZM99qeuf08WrcEh-0EU,673
11
+ src/frontend_dist/index.html,sha256=s95FMkH8VLisvawLH7bZxbLzRUFvMhHkH6ZMzpVBngs,673
12
12
  src/frontend_dist/sw.js,sha256=rihX1es-vWwjmtnXyaksJjs2dio6MVAOTAWwQPeJUYw,2164
13
- src/frontend_dist/assets/index-DOR5YaNc.js,sha256=EhRRS_nAymGQDyv3GA4a7XuBVcNkIdckaKYLmruBZKk,254616
13
+ src/frontend_dist/assets/index-BUUcUfTt.js,sha256=awoyPI6u0v6ao2iarZdSkrSDUvyU8aNkMLqHMvgVgyY,257666
14
14
  src/frontend_dist/assets/index-o6_8mdM8.css,sha256=nwmX_6q55mB9463XN2JM8BdeihjkALpQK83Fc3_iGvE,15936
15
15
  src/middleware/data_access_tracker.py,sha256=bArBffWgYmvxOx9z_pgXQhogvnWQcc1m6WvEblDD4gw,15039
16
16
  src/middleware/session_tracking.py,sha256=5W1VH9HNqIZeX0HNxDEm41U4GY6SqKSXtApDEeZK2qo,23084
17
- open_edison-0.1.30.dist-info/METADATA,sha256=9AiZvDoQLKWeIF8G2if1YE7v9u9P0wT9-xungNjqGZI,12136
18
- open_edison-0.1.30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
19
- open_edison-0.1.30.dist-info/entry_points.txt,sha256=qNAkJcnoTXRhj8J--3PDmXz_TQKdB8H_0C9wiCtDIyA,72
20
- open_edison-0.1.30.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
- open_edison-0.1.30.dist-info/RECORD,,
17
+ open_edison-0.1.34.dist-info/METADATA,sha256=UkIWgEvTC1MzzM9xu2sTg4Ik2MVoG99pAE5W2UOa1d4,12077
18
+ open_edison-0.1.34.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
19
+ open_edison-0.1.34.dist-info/entry_points.txt,sha256=qNAkJcnoTXRhj8J--3PDmXz_TQKdB8H_0C9wiCtDIyA,72
20
+ open_edison-0.1.34.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
+ open_edison-0.1.34.dist-info/RECORD,,
src/cli.py CHANGED
@@ -17,7 +17,7 @@ from typing import Any, NoReturn, cast
17
17
 
18
18
  from loguru import logger as _log # type: ignore[reportMissingImports]
19
19
 
20
- from .config import Config, get_config_dir
20
+ from .config import Config, get_config_dir, get_config_json_path
21
21
  from .server import OpenEdisonProxy
22
22
 
23
23
  log: Any = _log
@@ -191,7 +191,7 @@ async def _run_server(args: Any) -> None:
191
191
  config_dir = get_config_dir()
192
192
 
193
193
  # Load config after setting env override
194
- cfg = Config(config_dir)
194
+ cfg = Config(get_config_json_path())
195
195
 
196
196
  host = getattr(args, "host", None) or cfg.server.host
197
197
  port = getattr(args, "port", None) or cfg.server.port
src/config.py CHANGED
@@ -252,7 +252,20 @@ class Config:
252
252
  }
253
253
 
254
254
  # Ensure directory exists
255
- config_path.parent.mkdir(parents=True, exist_ok=True)
255
+ try:
256
+ config_path.parent.mkdir(parents=True, exist_ok=True)
257
+ except FileExistsError as e:
258
+ # If the parent path exists as a file, not a directory, this will fail
259
+ if config_path.parent.is_file():
260
+ log.error(
261
+ f"Config directory path {config_path.parent} exists as a file, not a directory"
262
+ )
263
+ log.error("Please remove the file or specify a different config directory")
264
+ raise FileExistsError(
265
+ f"Config directory path {config_path.parent} exists as a file, not a directory"
266
+ ) from e
267
+ log.error(f"Failed to create config directory {config_path.parent}: {e}")
268
+ raise
256
269
  with open(config_path, "w") as f:
257
270
  json.dump(data, f, indent=2)
258
271