Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
History
=======

1.1.8 (unreleased)
------------------

* Added typed Safe Data Preview support:

* ``safe_data_preview`` on ``InDataDiscoveryConfig`` (via ``SafeDataPreviewOptions``) to configure or disable it.
* ``safe_data_preview`` on schema-discovery result columns and file-discovery locators, typed by ``kind``.

* Added ``row_count`` to ``TableConstraints`` in schema-discovery ``table_metadata``.

1.1.7 (2026-07-14)
------------------

Expand Down
62 changes: 62 additions & 0 deletions datamasque/client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,38 @@
RunInfo,
UnfinishedRun,
)
from datamasque.client.models.safe_data_preview import (
BooleanPreview,
BooleanStatistics,
ColumnKind,
ColumnPreview,
CommonStatistics,
FirstCharsStatistics,
LengthEntry,
LengthsStatistics,
MaskedFormEntry,
NumericBin,
NumericHistograms,
NumericPreview,
NumericStatistics,
NumericSummaries,
NumericTemporalDisclosureLevel,
PatternComposition,
PatternEntry,
PatternsStatistics,
SafeDataPreview,
SafeDataPreviewOptions,
StringDisclosureLevel,
StringPreview,
StringStatistics,
TemporalBin,
TemporalHistograms,
TemporalPreview,
TemporalStatistics,
TemporalSummaries,
UnsupportedPreview,
UnsupportedStatistics,
)
from datamasque.client.models.status import (
AsyncRulesetGenerationTaskStatus,
MaskingRunStatus,
Expand All @@ -131,6 +163,11 @@
"AsyncRulesetGenerationInProgressError",
"AsyncRulesetGenerationTaskStatus",
"AzureConnectionConfig",
"BooleanPreview",
"BooleanStatistics",
"ColumnKind",
"ColumnPreview",
"CommonStatistics",
"ConnectionConfig",
"ConnectionId",
"ConstraintColumns",
Expand Down Expand Up @@ -171,6 +208,7 @@
"FileId",
"FileOrContent",
"FileRulesetGenerationRequest",
"FirstCharsStatistics",
"ForeignKeyRef",
"GitSnapshot",
"HashColumnsTableConfig",
Expand All @@ -186,16 +224,28 @@
"InvalidLibraryError",
"InvalidRulesetError",
"JsonPath",
"LengthEntry",
"LengthsStatistics",
"LicenseInfo",
"Locator",
"MaskType",
"MaskedFormEntry",
"MaskingRunOptions",
"MaskingRunRequest",
"MaskingRunStatus",
"MongoConnectionConfig",
"MountedShareConnectionConfig",
"MssqlLinkedServerConnectionConfig",
"NumericBin",
"NumericHistograms",
"NumericPreview",
"NumericStatistics",
"NumericSummaries",
"NumericTemporalDisclosureLevel",
"OracleWalletFile",
"PatternComposition",
"PatternEntry",
"PatternsStatistics",
"ReferencingForeignKey",
"Ruleset",
"RulesetGenerationRequest",
Expand All @@ -213,6 +263,8 @@
"RunInfo",
"RunNotCancellableError",
"S3ConnectionConfig",
"SafeDataPreview",
"SafeDataPreviewOptions",
"SchemaDiscoveryColumn",
"SchemaDiscoveryFromConfigRequest",
"SchemaDiscoveryPage",
Expand All @@ -228,9 +280,19 @@
"SseConfig",
"SseSelection",
"SslZipFile",
"StringDisclosureLevel",
"StringPreview",
"StringStatistics",
"SwitchableLicenseMetadata",
"TableConstraints",
"TemporalBin",
"TemporalHistograms",
"TemporalPreview",
"TemporalStatistics",
"TemporalSummaries",
"UnfinishedRun",
"UnsupportedPreview",
"UnsupportedStatistics",
"User",
"UserId",
"UserRole",
Expand Down
8 changes: 8 additions & 0 deletions datamasque/client/models/discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
from datamasque.client.models.discovery_config import DiscoveryConfig, DiscoveryConfigId, unwrap_discovery_config_id
from datamasque.client.models.pagination import Page
from datamasque.client.models.runs import RunConnectionRef
from datamasque.client.models.safe_data_preview import (
SafeDataPreview,
SafeDataPreviewOptions,
)


class InDataDiscoveryRule(BaseModel):
Expand All @@ -32,6 +36,7 @@ class InDataDiscoveryConfig(BaseModel):
non_sensitive_rules: Optional[list[InDataDiscoveryRule]] = None
ignore_rules: Optional[list[InDataDiscoveryRule]] = None
force: Optional[bool] = None
safe_data_preview: Optional[SafeDataPreviewOptions] = None


class SchemaDiscoveryRequest(BaseModel):
Expand Down Expand Up @@ -294,6 +299,7 @@ class SchemaDiscoveryColumn(BaseModel):
unique_index_names: list[str]
referencing_foreign_keys: list[ReferencingForeignKey]
constraint: str # Primary or Unique, or empty string if column does not participate in a PK/UK
safe_data_preview: Optional[SafeDataPreview] = None


class SchemaDiscoveryResult(BaseModel):
Expand Down Expand Up @@ -324,6 +330,7 @@ class TableConstraints(BaseModel):
primary_keys: Optional[list[ConstraintColumns]] = None
unique_keys: Optional[list[ConstraintColumns]] = None
foreign_keys: Optional[list[ConstraintColumns]] = None
row_count: Optional[int] = None


class SchemaDiscoveryPage(Page[SchemaDiscoveryResult]):
Expand Down Expand Up @@ -356,6 +363,7 @@ class FileDiscoveryLocatorResult(BaseModel):
locator: Locator
matches: list[FileDiscoveryMatch]
data_types: list[str]
safe_data_preview: Optional[SafeDataPreview] = None


class FileDiscoveryFile(BaseModel):
Expand Down
Loading
Loading