dmint-cli 1.0.0__tar.gz → 1.0.2__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.
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/CHANGELOG.md +15 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/PKG-INFO +31 -5
- dmint_cli-1.0.0/src/dmint_cli.egg-info/PKG-INFO → dmint_cli-1.0.2/README.md +28 -28
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/pyproject.toml +3 -2
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/__main__.py +9 -0
- dmint_cli-1.0.2/src/dmint_cli/dashboard.py +27 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/version.py +4 -4
- dmint_cli-1.0.0/README.md → dmint_cli-1.0.2/src/dmint_cli.egg-info/PKG-INFO +54 -3
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli.egg-info/SOURCES.txt +1 -0
- dmint_cli-1.0.2/src/dmint_cli.egg-info/requires.txt +6 -0
- dmint_cli-1.0.0/src/dmint_cli.egg-info/requires.txt +0 -5
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/LICENSE +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/MANIFEST.in +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/setup.cfg +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/setup.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/__init__.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/api.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/compile_policy.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/create_mcp_policy.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/create_policy.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/errors.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/install_skill.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/io_utils.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/limits.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/mcp_auth.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/mcp_connections.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/mcp_credentials.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/mcp_oauth.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/prompts/__init__.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/prompts/policy_skill.md +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/skills/__init__.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/skills/dmint-policy-manager/SKILL.md +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli/verify_policy.py +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli.egg-info/dependency_links.txt +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli.egg-info/entry_points.txt +0 -0
- {dmint_cli-1.0.0 → dmint_cli-1.0.2}/src/dmint_cli.egg-info/top_level.txt +0 -0
|
@@ -5,6 +5,21 @@ All notable changes to `dmint-cli` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.2] - 2026-09-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Dashboard Command (`dmint dashboard`)**:
|
|
12
|
+
- Integrated local human approval dashboard launcher connecting to Core-owned SQLite.
|
|
13
|
+
- Added CLI options: `--db-path`, `--host`, `--port`, `--deployment-epoch`, `--authority-issuer`, `--approver-id`.
|
|
14
|
+
- Added runtime dependency on `dmint-dashboard>=1.0.0,<2.0.0`.
|
|
15
|
+
|
|
16
|
+
## [1.0.1] - 2026-09-16
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Bump patch version to work around PyPI filename reuse restriction on `dmint-cli-1.0.0`.
|
|
20
|
+
No functional or security changes from 1.0.0.
|
|
21
|
+
- Update dmint core dependency pin to `>=1.0.0,<2.0.0` following the dmint v1.0.0 release.
|
|
22
|
+
|
|
8
23
|
## [1.0.0] - 2026-09-16
|
|
9
24
|
|
|
10
25
|
### Security & Hardening
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dmint-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: CLI tooling for Dmint policy creation, compilation, and management
|
|
5
5
|
Author: Dmint Authors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -17,13 +17,14 @@ Classifier: Topic :: Software Development :: Compilers
|
|
|
17
17
|
Requires-Python: >=3.10
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: dmint<
|
|
20
|
+
Requires-Dist: dmint<2.0.0,>=1.0.0
|
|
21
21
|
Requires-Dist: mcp<3.0.0,>=2.2.0
|
|
22
|
+
Requires-Dist: dmint-dashboard<2.0.0,>=1.0.0
|
|
22
23
|
Provides-Extra: test
|
|
23
24
|
Requires-Dist: pytest>=8.0.0; extra == "test"
|
|
24
25
|
Dynamic: license-file
|
|
25
26
|
|
|
26
|
-
# dmint-cli (v1.0.
|
|
27
|
+
# dmint-cli (v1.0.2)
|
|
27
28
|
|
|
28
29
|
> **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
|
|
29
30
|
|
|
@@ -138,7 +139,7 @@ Verify your installation and version:
|
|
|
138
139
|
|
|
139
140
|
```bash
|
|
140
141
|
dmint --version
|
|
141
|
-
# dmint 1.0.
|
|
142
|
+
# dmint 1.0.2
|
|
142
143
|
```
|
|
143
144
|
|
|
144
145
|
### 3-Step Walkthrough
|
|
@@ -290,6 +291,31 @@ When run without `--dest`, `dmint install-skill` displays a numbered menu and al
|
|
|
290
291
|
|
|
291
292
|
---
|
|
292
293
|
|
|
294
|
+
### Human Approval Dashboard (`dashboard`)
|
|
295
|
+
|
|
296
|
+
Launch the local human approval web dashboard directly via the CLI:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# Launch dashboard pointing to Core-owned SQLite:
|
|
300
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3
|
|
301
|
+
|
|
302
|
+
# Custom bind host and port:
|
|
303
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --host 127.0.0.1 --port 8080
|
|
304
|
+
|
|
305
|
+
# With specific deployment epoch:
|
|
306
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --deployment-epoch prod-v1
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Available options:
|
|
310
|
+
- `--db-path`: Path to Core-owned SQLite database (required, or set `DMINT_DB_PATH`)
|
|
311
|
+
- `--host`: Bind host (default: `127.0.0.1`)
|
|
312
|
+
- `--port`: Bind port (default: `8080`)
|
|
313
|
+
- `--deployment-epoch`: Core deployment epoch (default: `default`)
|
|
314
|
+
- `--authority-issuer`: Issuer ID for the dashboard `LocalApprovalAuthority` (default: `dmint-dashboard`)
|
|
315
|
+
- `--approver-id`: Human subject ID recorded in Core when approving/rejecting (default: `dashboard-human`)
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
293
319
|
## 8. stdio MCP Transport
|
|
294
320
|
|
|
295
321
|
For local tool servers, `dmint-cli` connects over standard input/output (`stdio`):
|
|
@@ -322,7 +348,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
|
|
|
322
348
|
1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
|
|
323
349
|
2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
|
|
324
350
|
3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
|
|
325
|
-
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.
|
|
351
|
+
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
|
|
326
352
|
|
|
327
353
|
---
|
|
328
354
|
|
|
@@ -1,29 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Name: dmint-cli
|
|
3
|
-
Version: 1.0.0
|
|
4
|
-
Summary: CLI tooling for Dmint policy creation, compilation, and management
|
|
5
|
-
Author: Dmint Authors
|
|
6
|
-
License-Expression: Apache-2.0
|
|
7
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
8
|
-
Classifier: Environment :: Console
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Topic :: Security
|
|
16
|
-
Classifier: Topic :: Software Development :: Compilers
|
|
17
|
-
Requires-Python: >=3.10
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
License-File: LICENSE
|
|
20
|
-
Requires-Dist: dmint<0.2.0,>=0.1.0
|
|
21
|
-
Requires-Dist: mcp<3.0.0,>=2.2.0
|
|
22
|
-
Provides-Extra: test
|
|
23
|
-
Requires-Dist: pytest>=8.0.0; extra == "test"
|
|
24
|
-
Dynamic: license-file
|
|
25
|
-
|
|
26
|
-
# dmint-cli (v1.0.0)
|
|
1
|
+
# dmint-cli (v1.0.2)
|
|
27
2
|
|
|
28
3
|
> **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
|
|
29
4
|
|
|
@@ -138,7 +113,7 @@ Verify your installation and version:
|
|
|
138
113
|
|
|
139
114
|
```bash
|
|
140
115
|
dmint --version
|
|
141
|
-
# dmint 1.0.
|
|
116
|
+
# dmint 1.0.2
|
|
142
117
|
```
|
|
143
118
|
|
|
144
119
|
### 3-Step Walkthrough
|
|
@@ -290,6 +265,31 @@ When run without `--dest`, `dmint install-skill` displays a numbered menu and al
|
|
|
290
265
|
|
|
291
266
|
---
|
|
292
267
|
|
|
268
|
+
### Human Approval Dashboard (`dashboard`)
|
|
269
|
+
|
|
270
|
+
Launch the local human approval web dashboard directly via the CLI:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Launch dashboard pointing to Core-owned SQLite:
|
|
274
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3
|
|
275
|
+
|
|
276
|
+
# Custom bind host and port:
|
|
277
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --host 127.0.0.1 --port 8080
|
|
278
|
+
|
|
279
|
+
# With specific deployment epoch:
|
|
280
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --deployment-epoch prod-v1
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Available options:
|
|
284
|
+
- `--db-path`: Path to Core-owned SQLite database (required, or set `DMINT_DB_PATH`)
|
|
285
|
+
- `--host`: Bind host (default: `127.0.0.1`)
|
|
286
|
+
- `--port`: Bind port (default: `8080`)
|
|
287
|
+
- `--deployment-epoch`: Core deployment epoch (default: `default`)
|
|
288
|
+
- `--authority-issuer`: Issuer ID for the dashboard `LocalApprovalAuthority` (default: `dmint-dashboard`)
|
|
289
|
+
- `--approver-id`: Human subject ID recorded in Core when approving/rejecting (default: `dashboard-human`)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
293
|
## 8. stdio MCP Transport
|
|
294
294
|
|
|
295
295
|
For local tool servers, `dmint-cli` connects over standard input/output (`stdio`):
|
|
@@ -322,7 +322,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
|
|
|
322
322
|
1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
|
|
323
323
|
2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
|
|
324
324
|
3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
|
|
325
|
-
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.
|
|
325
|
+
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
|
|
326
326
|
|
|
327
327
|
---
|
|
328
328
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dmint-cli"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.2"
|
|
8
8
|
description = "CLI tooling for Dmint policy creation, compilation, and management"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -25,8 +25,9 @@ classifiers = [
|
|
|
25
25
|
"Topic :: Software Development :: Compilers",
|
|
26
26
|
]
|
|
27
27
|
dependencies = [
|
|
28
|
-
"dmint>=
|
|
28
|
+
"dmint>=1.0.0,<2.0.0",
|
|
29
29
|
"mcp>=2.2.0,<3.0.0",
|
|
30
|
+
"dmint-dashboard>=1.0.0,<2.0.0",
|
|
30
31
|
]
|
|
31
32
|
|
|
32
33
|
[project.optional-dependencies]
|
|
@@ -8,6 +8,7 @@ import sys
|
|
|
8
8
|
from dmint_cli.compile_policy import main_compile
|
|
9
9
|
from dmint_cli.create_mcp_policy import main_create_mcp
|
|
10
10
|
from dmint_cli.create_policy import main_create
|
|
11
|
+
from dmint_cli.dashboard import main_dashboard
|
|
11
12
|
from dmint_cli.install_skill import main_install_skill
|
|
12
13
|
from dmint_cli.verify_policy import main_verify
|
|
13
14
|
from dmint_cli.version import __version__
|
|
@@ -73,6 +74,7 @@ Recommended Workflow:
|
|
|
73
74
|
create-mcp-policy Specialized MCP workflow: live tool discovery + policy authoring + mcp_protection.json generation
|
|
74
75
|
verify-policy Deterministic offline validation of policy.json against Dmint schema and invariants (LLM-free)
|
|
75
76
|
install-skill Install Dmint AI coding agent skill into workspace (.agents/skills/) or global config
|
|
77
|
+
dashboard Launch the local human approval dashboard (connects to Core SQLite)
|
|
76
78
|
|
|
77
79
|
Compatibility Commands:
|
|
78
80
|
compile-policy [Compatibility] Legacy batch compilation of policy requirements (prefer 'create-policy')
|
|
@@ -108,6 +110,11 @@ Compatibility Commands:
|
|
|
108
110
|
help="Install Dmint AI coding agent skill into workspace (.agents/skills/) or global config",
|
|
109
111
|
add_help=False,
|
|
110
112
|
)
|
|
113
|
+
subparsers.add_parser(
|
|
114
|
+
"dashboard",
|
|
115
|
+
help="Launch the local human approval dashboard (connects to Core SQLite)",
|
|
116
|
+
add_help=False,
|
|
117
|
+
)
|
|
111
118
|
subparsers.add_parser(
|
|
112
119
|
"compile-policy",
|
|
113
120
|
help="[Compatibility] Legacy batch compilation of policy requirements (prefer 'create-policy')",
|
|
@@ -140,6 +147,8 @@ Compatibility Commands:
|
|
|
140
147
|
return main_compile(cmd_args)
|
|
141
148
|
elif cmd == "install-skill":
|
|
142
149
|
return main_install_skill(cmd_args)
|
|
150
|
+
elif cmd == "dashboard":
|
|
151
|
+
return main_dashboard(cmd_args)
|
|
143
152
|
else:
|
|
144
153
|
parser.print_help(file=sys.stderr)
|
|
145
154
|
return 2
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Dashboard launcher for dmint CLI."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def main_dashboard(args: list[str] | None = None) -> int:
|
|
9
|
+
"""Launch the Dmint local human approval dashboard."""
|
|
10
|
+
try:
|
|
11
|
+
from dmint_dashboard import main as dashboard_main
|
|
12
|
+
except ImportError as exc:
|
|
13
|
+
print(
|
|
14
|
+
f"Error: dmint-dashboard is required for this command: {exc}\n"
|
|
15
|
+
f"Install it with: pip install dmint-dashboard",
|
|
16
|
+
file=sys.stderr,
|
|
17
|
+
)
|
|
18
|
+
return 1
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
dashboard_main(argv=args, prog="dmint dashboard")
|
|
22
|
+
return 0
|
|
23
|
+
except SystemExit as exc:
|
|
24
|
+
return exc.code if isinstance(exc.code, int) else (0 if exc.code is None else 1)
|
|
25
|
+
except Exception as exc:
|
|
26
|
+
print(f"Error starting dashboard: {exc}", file=sys.stderr)
|
|
27
|
+
return 1
|
|
@@ -6,16 +6,16 @@ Single source of truth for package version, User-Agent strings, and client metad
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
# Canonical package version (single source of truth for runtime code)
|
|
9
|
-
__version__ = "1.0.
|
|
9
|
+
__version__ = "1.0.2"
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def get_user_agent(component: str | None = None) -> str:
|
|
13
13
|
"""Return the canonical User-Agent header string.
|
|
14
14
|
|
|
15
15
|
Examples:
|
|
16
|
-
get_user_agent() -> 'dmint-cli/1.0.
|
|
17
|
-
get_user_agent('oauth') -> 'dmint-oauth/1.0.
|
|
18
|
-
get_user_agent('policy-author') -> 'dmint-policy-author/1.0.
|
|
16
|
+
get_user_agent() -> 'dmint-cli/1.0.1'
|
|
17
|
+
get_user_agent('oauth') -> 'dmint-oauth/1.0.1'
|
|
18
|
+
get_user_agent('policy-author') -> 'dmint-policy-author/1.0.1'
|
|
19
19
|
"""
|
|
20
20
|
if component:
|
|
21
21
|
return f"dmint-{component}/{__version__}"
|
|
@@ -1,4 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dmint-cli
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: CLI tooling for Dmint policy creation, compilation, and management
|
|
5
|
+
Author: Dmint Authors
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
8
|
+
Classifier: Environment :: Console
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Topic :: Security
|
|
16
|
+
Classifier: Topic :: Software Development :: Compilers
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: dmint<2.0.0,>=1.0.0
|
|
21
|
+
Requires-Dist: mcp<3.0.0,>=2.2.0
|
|
22
|
+
Requires-Dist: dmint-dashboard<2.0.0,>=1.0.0
|
|
23
|
+
Provides-Extra: test
|
|
24
|
+
Requires-Dist: pytest>=8.0.0; extra == "test"
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# dmint-cli (v1.0.2)
|
|
2
28
|
|
|
3
29
|
> **Developer tooling for interactive discovery, authoring, compilation, and offline verification of Dmint security policies and MCP protection artifacts.**
|
|
4
30
|
|
|
@@ -113,7 +139,7 @@ Verify your installation and version:
|
|
|
113
139
|
|
|
114
140
|
```bash
|
|
115
141
|
dmint --version
|
|
116
|
-
# dmint 1.0.
|
|
142
|
+
# dmint 1.0.2
|
|
117
143
|
```
|
|
118
144
|
|
|
119
145
|
### 3-Step Walkthrough
|
|
@@ -265,6 +291,31 @@ When run without `--dest`, `dmint install-skill` displays a numbered menu and al
|
|
|
265
291
|
|
|
266
292
|
---
|
|
267
293
|
|
|
294
|
+
### Human Approval Dashboard (`dashboard`)
|
|
295
|
+
|
|
296
|
+
Launch the local human approval web dashboard directly via the CLI:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# Launch dashboard pointing to Core-owned SQLite:
|
|
300
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3
|
|
301
|
+
|
|
302
|
+
# Custom bind host and port:
|
|
303
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --host 127.0.0.1 --port 8080
|
|
304
|
+
|
|
305
|
+
# With specific deployment epoch:
|
|
306
|
+
dmint dashboard --db-path /path/to/approvals.sqlite3 --deployment-epoch prod-v1
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Available options:
|
|
310
|
+
- `--db-path`: Path to Core-owned SQLite database (required, or set `DMINT_DB_PATH`)
|
|
311
|
+
- `--host`: Bind host (default: `127.0.0.1`)
|
|
312
|
+
- `--port`: Bind port (default: `8080`)
|
|
313
|
+
- `--deployment-epoch`: Core deployment epoch (default: `default`)
|
|
314
|
+
- `--authority-issuer`: Issuer ID for the dashboard `LocalApprovalAuthority` (default: `dmint-dashboard`)
|
|
315
|
+
- `--approver-id`: Human subject ID recorded in Core when approving/rejecting (default: `dashboard-human`)
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
268
319
|
## 8. stdio MCP Transport
|
|
269
320
|
|
|
270
321
|
For local tool servers, `dmint-cli` connects over standard input/output (`stdio`):
|
|
@@ -297,7 +348,7 @@ When an MCP endpoint responds with `401 Unauthorized` or `403 Forbidden`:
|
|
|
297
348
|
1. **RFC 9728 PRM Discovery**: Looks for the `WWW-Authenticate` header and resolves Protected Resource Metadata (PRM) via `/.well-known/oauth-protected-resource`.
|
|
298
349
|
2. **RFC 8414 AS Discovery**: Resolves the OAuth 2.0 Authorization Server metadata via `/.well-known/oauth-authorization-server`.
|
|
299
350
|
3. **Issuer Validation**: Enforces RFC 9207 issuer matching to prevent authorization server mix-up attacks.
|
|
300
|
-
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.
|
|
351
|
+
4. **Dynamic Client Registration**: Performs RFC 7591 Dynamic Client Registration if the server supports it, advertising `client_name="dmint-cli"` and `software_version="1.0.2"`.
|
|
301
352
|
|
|
302
353
|
---
|
|
303
354
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|