-
Notifications
You must be signed in to change notification settings - Fork 2
Feat: Add configurable discovery #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4b45721
5a0d608
eef74a5
79c0e3c
ecc9685
fdb5852
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,31 @@ | ||
| # Changelog | ||
|
|
||
| ## v1.5.0 | ||
|
|
||
| ### Added | ||
| - Support for datamasque-python 1.2.2. | ||
| - `dm discover schema-results` handles matches with no label. | ||
| - `dm rulesets validate` and `dm libraries validate` print validation | ||
| errors for invalid YAML. | ||
| - Support for Configurable Discovery: | ||
| - `dm discover configs` — list, get, defaults, create, delete, validate, | ||
| and status for discovery configs (`database` or `file`). | ||
| - `dm discover libraries` — list, get, create, delete, validate, and status | ||
| for discovery config libraries (untyped; shared by both config types). | ||
| - `dm discover schema --config <name>` and `dm discover file | ||
| [--config <name>]` start discovery runs with or without a specific config. | ||
| - `dm discover config-snapshot <run-id>` downloads the discovery config a run | ||
| actually used. | ||
| - `dm rulesets status` and `dm libraries status` — show a stored ruleset's or | ||
| library's validation state and errors. | ||
| - `dm rulesets validate` and `dm discover configs validate` refuse YAML of | ||
| 60 KiB or larger, which the server validates asynchronously; create it and | ||
| poll `status` instead. | ||
| - Safe Data Preview: `dm discover schema-results` and `dm discover file-report` | ||
| include `safe_data_preview` in their `--json` output. | ||
| - `dm rulesets generate`, `dm connections update --password`, and the | ||
| deprecated `dm system import` no longer fail. | ||
|
Comment on lines
+26
to
+27
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit: Should we put this under a new ### Fixed heading instead of ### Added? |
||
|
|
||
| ## v1.4.0 | ||
|
|
||
| ### Added | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -148,7 +148,8 @@ dm rulesets create --name <n> --file rules.yaml --type file # Force a type | |||||
| dm rulesets delete <name> [--type file|database] # Delete a ruleset | ||||||
| dm rulesets generate --file request.json # Generate from schema | ||||||
| dm rulesets generate --file req.json -o out.yaml # Generate to file | ||||||
| dm rulesets validate --file rules.yaml # Validate against server | ||||||
| dm rulesets validate --file rules.yaml # Validate against server (YAML under 60 KiB) | ||||||
| dm rulesets status <name> # Validation status; poll after creating YAML of 60 KiB+ | ||||||
| dm rulesets export-bundle -o bundle.zip # Export rulesets + libraries + seeds | ||||||
| dm rulesets import-bundle --file bundle.zip # Import a previously exported bundle | ||||||
| dm rulesets import-bundle -f bundle.zip --overwrite-rulesets --overwrite-libraries # Replace existing entries | ||||||
|
|
@@ -164,6 +165,7 @@ dm libraries create --name <n> --file lib.yaml # Create/update from file | |||||
| dm libraries create --name <n> --file lib.yaml --namespace pii # With namespace | ||||||
| dm libraries delete <name> # Delete a library | ||||||
| dm libraries validate <name> # Re-validate against current server schema | ||||||
| dm libraries status <name> # Validation status; poll after creating YAML of 60 KiB+ | ||||||
| dm libraries usage <name> # Show rulesets using it | ||||||
| ``` | ||||||
|
|
||||||
|
|
@@ -216,11 +218,42 @@ dm users delete <username> # Delete a user | |||||
| ### Discovery | ||||||
|
|
||||||
| ```console | ||||||
| dm discover schema <connection> # Start a schema-discovery run | ||||||
| dm discover schema-results <run-id> # List schema-discovery results once the run finishes | ||||||
| dm discover sdd-report <run-id> # Sensitive data discovery report | ||||||
| dm discover db-report <run-id> # Database discovery CSV | ||||||
| dm discover file-report <run-id> # File discovery report | ||||||
| dm discover schema <connection> # Schema discovery (built-in keyword-driven) | ||||||
| dm discover schema <connection> --config <name> # Schema discovery from a saved database config | ||||||
| dm discover schema <connection> --json # {"id": <run-id>, "status": "queued"} | ||||||
| dm discover schema-results <run-id> # List schema-discovery results once the run finishes | ||||||
| dm discover file <connection> # File data discovery (built-in keyword-driven) | ||||||
| dm discover file <connection> --config <name> # File data discovery from a saved file config | ||||||
| dm discover file <connection> --json # {"id": <run-id>, "status": "queued"} | ||||||
| dm discover sdd-report <run-id> # Sensitive data discovery report | ||||||
| dm discover db-report <run-id> # Database discovery CSV | ||||||
| dm discover file-report <run-id> # File discovery report | ||||||
| dm discover config-snapshot <run-id> -o used.yaml # Download the discovery config a run actually used | ||||||
| ``` | ||||||
|
|
||||||
| #### Discovery configs | ||||||
|
|
||||||
| ```console | ||||||
| dm discover configs list [--type database|file] # List configs | ||||||
| dm discover configs get <name> [--type database] [--yaml] # Show details or raw YAML | ||||||
| dm discover configs defaults [--type database|file] -o cfg.yaml # Built-in default as a starting point | ||||||
| dm discover configs create --name <n> --type database -f cfg.yaml # Create/update from YAML | ||||||
| dm discover configs delete <name> [--type database] # Delete a config | ||||||
| dm discover configs validate -f cfg.yaml --type database # Validate against server (YAML under 60 KiB) | ||||||
| dm discover configs status <name> [--type database] # Validation status; poll after creating YAML of 60 KiB+ | ||||||
|
Comment on lines
+237
to
+243
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we be using |
||||||
| ``` | ||||||
|
|
||||||
| #### Discovery config libraries | ||||||
|
|
||||||
| Libraries are untyped — the same library can be imported by both database and file discovery configs. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| ```console | ||||||
| dm discover libraries list | ||||||
| dm discover libraries get <name> [--namespace org] [--yaml] | ||||||
| dm discover libraries create --name <n> --namespace org -f lib.yaml | ||||||
| dm discover libraries delete <name> [--namespace org] [--force] # --force if imported by configs | ||||||
| dm discover libraries validate -f lib.yaml | ||||||
| dm discover libraries status <name> [--namespace org] | ||||||
| ``` | ||||||
|
|
||||||
| ### Seeds | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,7 +12,7 @@ requires-python = ">=3.11" | |
| dependencies = [ | ||
| "typer>=0.15.0", | ||
| "tomli-w>=1.0.0", | ||
| "datamasque-python>=1.0.0,<2", | ||
| "datamasque-python>=1.2.2,<2", | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reminder before merging to bump this to the latest version and re-run |
||
| ] | ||
| classifiers = [ | ||
| "Development Status :: 4 - Beta", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would prefer not to say
untypedin the changelog - it's an implementation detail and the changelog should be about behaviour.If we need to say something we could say something like "discovery configs can be shared across both file and database discovery".