- Made
DiscoveryMatch.labeloptional (it is absent for non-sensitive/ignore matches). - Added the
finished_with_warningsstatus toAsyncRulesetGenerationTaskStatus. get_db_discovery_result_reportmay now returnbytes(a zip) when the server splits a large DB-discovery report, and ruleset generation from CSV now detects and forwards zip uploads.
- Added discovery configuration models and management APIs.
- Added schema-discovery and file-data-discovery APIs that take a saved discovery configuration
(
start_schema_discovery_run_from_config/start_file_data_discovery_run_from_config). Adoption is recommended; the older APIs that take individual options will be deprecated in a future release. - Corrected the file-data-discovery
include/skipfilter syntax and addedignore_rulessupport. - Added
InvalidDiscoveryConfigErrorandDiscoveryConfigNotFoundError, raised when a discovery run can't start due to an unusable or missing discovery config. - Added
get_discovery_run_config_snapshot_yamlto retrieve the discovery-config YAML that was effective at the start of a given discovery run. - Added
is_user_subscribedtoMaskingRunRequestto subscribe the requesting user to a run's email notifications. - Added
auto_pull/auto_pull_branchtoMaskingRunOptionsto refresh the run's ruleset from git before starting. - Added
validation_error(andvalidation_error_typefor rulesets) toRulesetandRulesetLibrary. - Exposed git provenance on
RulesetandRulesetLibraryas a nestedgitfield (GitSnapshot). - Read-only fields (
id,is_valid,validation_error, etc.) are no longer echoed back inRuleset/RulesetLibrarycreate/update request bodies. - Fixed
SslZipFileuploads to send the requireddatabase_type=mysqlform field. - Breaking:
delete_ruleset_by_name_if_existsnow requires aruleset_typeargument, since ruleset names are unique only per type.
- Renamed the
DatabaseType.sql_servermember toDatabaseType.mssqlto match the DataMasque server's wire value and the siblingmssql_linkedmember. The value is unchanged ("mssql").
- Added
informixtoDatabaseTypeenum. - Pool HTTP connections via a per-client
requests.Sessionso TCP/TLS connections are reused across calls. Note: a client is not thread-safe; construct one per worker. - Send a descriptive
User-Agentidentifying the SDK name, version, Python interpreter, and OS. - Only re-authenticate and replay on a
401for requests that actually sent a token (gate the retry onrequires_authorization).
- Added
databrickstoDatabaseTypeenum. - Removed
DatabricksDeltaS3ConnectionConfig.
- Added
DatabricksDeltaS3ConnectionConfigfor Databricks Delta tables stored in S3.
- Added
databricks_lakebasetoDatabaseTypeenum.
- First public open-source release.
- All request and response types are now pydantic v2 models.
- Added support for many new APIs.
- Added
DataMasqueIfmClientfor the in-flight masking (IFM) API. - Overhauled error handling and added new exception types.
- Certain request models now accept either a server-assigned ID or the corresponding object
(
ConnectionConfig,Ruleset) for entity-reference fields. - Added
token_sourcecallable-based authentication to bothDataMasqueInstanceConfigandDataMasqueIfmInstanceConfigas an alternative topassword. - Ruleset is now mandatory on masking run requests.
- Fixed file data discovery API to accept both JSON path and standard locators.
- Replaced the CSV-only
get_rulesets_generated_from_csvwithget_generated_rulesets, which handles all three async-ruleset-generation flows (CSV, column selection, file selection).
- Added
db2itoDatabaseTypeenum.
- Added
RULESET_LIBRARY_MANAGERuser role. - Fixed superuser role value (
admininstead of empty string). - Superusers can now be created via the users API.
- Fixed API field for user roles (
user_rolesinstead ofroles/is_superuser).
- Added
InvalidLibraryErrorexception type.
- Added support for ruleset libraries.
- Removed
too_bigfrom ruleset validation statuses (no longer used). - Migrated toolchain to
uvwithruff. - Added support for
validatingrun status.
- Added
delete_user_by_id_if_existsanddelete_user_by_username_if_exists.
- Added support for downloading files.
- Fixed positional argument call in
dmclient.py.
- Fixed
start_async_ruleset_generation_from_csvto use new file upload specification.
- Fixed issue with file uploads when request was retried after a 401 response.
- Added
get_run_reportandstart_schema_discovery_runendpoints.
- Updated
admin_installendpoint to support username parameter
- Added support for Redshift
- Added support for
engine_optionsin database connection config - Updated
rulesetendpoint to useupsertbehaviour - Updated Snowflake connection handling for encrypted connection strings
- Added support for
hash_columnsin ruleset generator requests.
- Added support for Azure Blob Storage as a Snowflake staging platform.
- Added support for specifying Snowflake staging platform.
- Added support for Snowflake keypair authentication.
- Made snowflake role field optional.
- Added support for Snowflake connections.
- Added support for asynchronous ruleset generation with
start_async_ruleset_generation. - Added support for CSV-based ruleset generation with
start_async_ruleset_generation_from_csvandget_rulesets_generated_from_csv.
- Added support for the
dynamo_default_sseconfiguration option on DynamoDB connections.
- Fixed the user creation API.
- Removed the
run_not_startedpseudo-status from theMaskingRunStatusenum. - Added support for the
data_encodingconnection parameter on MySQL and MariaDB.
- Added support for the
finished_with_warningsrun status.
- Added support for MSSQL Linked Server connections.
- Fixed
set_localitypassing in "locality" rather than "region".
- Add support for passing a filename or StringIO when uploading a license
- Add handling for HTTP 502 errors
- Add Ruleset model
- Fix numerous issues with the new Connection models
- Introduce a separate model for Dynamo connections
- Drastic simplification of the config models
- Add new features:
- file data discovery
- file ruleset generation
- locality
- seed file deletion
- list connections and delete connections
- user APIs
- Use v2 ruleset generation API
- Export RunID, remove RunFailureReason
- Run tests using Tox against Python 3.9 and above
- First release