datasecops-cli 0.5.3__tar.gz → 0.5.4__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.
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/CHANGELOG.md +7 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/PKG-INFO +1 -1
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/mcp-servers.json +2 -2
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/pyproject.toml +1 -1
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/server.py +7 -5
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/auto-tag.yml +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/publish-cli.yml +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/test.yml +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.gitignore +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/DEVELOPMENT.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/LICENSE +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/README.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/getting-started.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/git-operations.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/legacy.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/legacy_plan_of_action.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/mcp-server.md +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/setup.ps1 +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/setup.sh +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/config.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/main.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/configuration.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/development.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/downloads.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/git_operations.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/git_helpers.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/project_config.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/bootstrap_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/dbt_project_generator.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/dbt_runner.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/directory_scaffolder.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/download_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/git_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/linting_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/skill_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/snowflake_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/upstream_service.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/display.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/file_utils.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/mcp.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/yaml_utils.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/__main__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/connection.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/__init__.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_config.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_file_utils.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_main.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_models.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_version.py +0 -0
- {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_yaml_utils.py +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the DataSecOps CLI are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.5.4] - 2026-06-05
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **`get_linting_rules` returns `.sqlfluff` INI format** — the MCP tool now returns the rendered `.sqlfluff` config file content (INI format) instead of raw JSON, matching what `get_sqlfluff_config` returns and what SQLFluff actually consumes. Returns an empty string (not a prose message) when no config is found, so callers can reliably detect the empty case.
|
|
10
|
+
- **MCP server uses project `.venv`** — `mcp-servers.json` now points `command` to `${PROJECT_DIR}/.venv/${VENV_BIN:-bin}/datasecops-mcp`, defaulting to `bin` (Unix) with `VENV_BIN=Scripts` for Windows, making the config cross-platform.
|
|
11
|
+
|
|
5
12
|
## [0.5.3] - 2026-06-05
|
|
6
13
|
|
|
7
14
|
### Changed
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"datasecops-framework": {
|
|
4
4
|
"type": "stdio",
|
|
5
|
-
"command": "datasecops-mcp",
|
|
5
|
+
"command": "${PROJECT_DIR}/.venv/${VENV_BIN:-bin}/datasecops-mcp",
|
|
6
6
|
"args": ["--connection-name", "<CONNECTION>", "--app-database", "<APP_DB>"],
|
|
7
|
-
"description": "DataSecOps Framework governance rules, branching conventions, linting config, and project profiles from your Snowflake Native App"
|
|
7
|
+
"description": "DataSecOps Framework governance rules, branching conventions, linting config, and project profiles from your Snowflake Native App. Set VENV_BIN=Scripts on Windows."
|
|
8
8
|
},
|
|
9
9
|
"github": {
|
|
10
10
|
"type": "stdio",
|
|
@@ -64,16 +64,18 @@ def get_work_items_config() -> str:
|
|
|
64
64
|
def get_linting_rules() -> str:
|
|
65
65
|
"""Get the SQLFluff linting rules configured for this project.
|
|
66
66
|
|
|
67
|
-
Returns the
|
|
68
|
-
and enabled rule codes. Use this when writing or reviewing SQL to ensure
|
|
67
|
+
Returns the .sqlfluff INI config file content (dialect, indentation settings,
|
|
68
|
+
and enabled rule codes). Use this when writing or reviewing SQL to ensure
|
|
69
69
|
compliance with the team's standards.
|
|
70
|
+
|
|
71
|
+
Returns an empty string if no configuration is found in the native app.
|
|
70
72
|
"""
|
|
71
73
|
sf = get_snowflake_service()
|
|
72
|
-
raw = sf.
|
|
74
|
+
raw = sf.get_sqlfluff_config_file()
|
|
73
75
|
if not raw:
|
|
74
|
-
return "
|
|
76
|
+
return ""
|
|
75
77
|
|
|
76
|
-
return
|
|
78
|
+
return raw
|
|
77
79
|
|
|
78
80
|
|
|
79
81
|
@mcp.tool()
|
|
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
|
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/bootstrap_service.py
RENAMED
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/dbt_project_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/directory_scaffolder.py
RENAMED
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/download_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/linting_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/snowflake_service.py
RENAMED
|
File without changes
|
{datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/upstream_service.py
RENAMED
|
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
|