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.
Files changed (56) hide show
  1. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/CHANGELOG.md +7 -0
  2. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/PKG-INFO +1 -1
  3. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/mcp-servers.json +2 -2
  4. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/pyproject.toml +1 -1
  5. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/server.py +7 -5
  6. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/auto-tag.yml +0 -0
  7. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/publish-cli.yml +0 -0
  8. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.github/workflows/test.yml +0 -0
  9. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/.gitignore +0 -0
  10. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/DEVELOPMENT.md +0 -0
  11. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/LICENSE +0 -0
  12. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/README.md +0 -0
  13. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/getting-started.md +0 -0
  14. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/git-operations.md +0 -0
  15. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/legacy.md +0 -0
  16. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/legacy_plan_of_action.md +0 -0
  17. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/docs/mcp-server.md +0 -0
  18. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/setup.ps1 +0 -0
  19. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/setup.sh +0 -0
  20. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/__init__.py +0 -0
  21. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/config.py +0 -0
  22. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/main.py +0 -0
  23. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/__init__.py +0 -0
  24. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/configuration.py +0 -0
  25. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/development.py +0 -0
  26. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/downloads.py +0 -0
  27. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/menus/git_operations.py +0 -0
  28. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/__init__.py +0 -0
  29. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/git_helpers.py +0 -0
  30. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/models/project_config.py +0 -0
  31. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/__init__.py +0 -0
  32. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/bootstrap_service.py +0 -0
  33. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/dbt_project_generator.py +0 -0
  34. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/dbt_runner.py +0 -0
  35. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/directory_scaffolder.py +0 -0
  36. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/download_service.py +0 -0
  37. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/git_service.py +0 -0
  38. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/linting_service.py +0 -0
  39. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/skill_service.py +0 -0
  40. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/snowflake_service.py +0 -0
  41. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/services/upstream_service.py +0 -0
  42. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/__init__.py +0 -0
  43. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/display.py +0 -0
  44. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/file_utils.py +0 -0
  45. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/mcp.py +0 -0
  46. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_cli/utilities/yaml_utils.py +0 -0
  47. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/__init__.py +0 -0
  48. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/__main__.py +0 -0
  49. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/src/datasecops_mcp/connection.py +0 -0
  50. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/__init__.py +0 -0
  51. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_config.py +0 -0
  52. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_file_utils.py +0 -0
  53. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_main.py +0 -0
  54. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_models.py +0 -0
  55. {datasecops_cli-0.5.3 → datasecops_cli-0.5.4}/tests/test_version.py +0 -0
  56. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datasecops-cli
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: DataSecOps Framework CLI for Snowflake Native App
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -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",
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "datasecops-cli"
7
- version = "0.5.3"
7
+ version = "0.5.4"
8
8
  description = "DataSecOps Framework CLI for Snowflake Native App"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -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 active SQL linting rules including dialect, indentation settings,
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.get_framework_config("SQLFLUFF_RULES")
74
+ raw = sf.get_sqlfluff_config_file()
73
75
  if not raw:
74
- return "No SQLFluff rules found in native app"
76
+ return ""
75
77
 
76
- return json.dumps(raw, indent=2)
78
+ return raw
77
79
 
78
80
 
79
81
  @mcp.tool()
File without changes
File without changes
File without changes
File without changes