Skip to content

Commit 5731696

Browse files
authored
Fixed the issue that encryptionKey was lost during serialization (Azure#37410)
* To fix Azure#37251 * add test * update * update * Update changelog
1 parent 37543c4 commit 5731696

File tree

3 files changed

+119
-5
lines changed

3 files changed

+119
-5
lines changed

sdk/search/azure-search-documents/CHANGELOG.md

Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Release History
22

3-
## 11.6.0b5 (Unreleased)
3+
## 11.6.0b5 (2024-09-17)
44

55
### Features Added
66

77
- `SearchIndexClient`.`get_search_client` inherits the API version.
88

9-
### Breaking Changes
10-
119
### Bugs Fixed
1210

1311
- Fixed the issue that we missed ODATA header when using Entra ID auth.
12+
- Fixed the issue that `encryptionKey` was lost during serialization. #37251
1413

1514
### Other Changes
1615

@@ -32,6 +31,80 @@
3231
- `azure.search.documents.indexes.models.VectorSearchProfile.vectorizer` -> `azure.search.documents.indexes.models.VectorSearchProfile.vectorizer_name`
3332
- `azure.search.documents.indexes.models.VectorSearchVectorizer.name` -> `azure.search.documents.indexes.models.VectorSearchVectorizer.vectorizer_name`
3433

34+
## 11.5.1 (2024-07-30)
35+
36+
### Other Changes
37+
38+
- Improved type checks.
39+
40+
## 11.5.0 (2024-07-16)
41+
42+
### Breaking Changes
43+
44+
> These changes do not impact the API of stable versions such as 11.4.0.
45+
> Only code written against a beta version such as 11.6.0b4 may be affected.
46+
- Below models are renamed
47+
- `azure.search.documents.indexes.models.SearchIndexerIndexProjections` -> `azure.search.documents.indexes.models.SearchIndexerIndexProjection`
48+
- `azure.search.documents.indexes.models.LineEnding` -> `azure.search.documents.indexes.models.OrcLineEnding`
49+
- `azure.search.documents.indexes.models.ScalarQuantizationCompressionConfiguration` -> `azure.search.documents.indexes.models.ScalarQuantizationCompression`
50+
- `azure.search.documents.indexes.models.VectorSearchCompressionConfiguration` -> `azure.search.documents.indexes.models.VectorSearchCompression`
51+
- `azure.search.documents.indexes.models.VectorSearchCompressionTargetDataType` -> `azure.search.documents.indexes.models.VectorSearchCompressionTarget`
52+
53+
- Below models do not exist in this release
54+
- `azure.search.documents.models.QueryLanguage`
55+
- `azure.search.documents.models.QuerySpellerType`
56+
- `azure.search.documents.models.QueryDebugMode`
57+
- `azure.search.documents.models.HybridCountAndFacetMode`
58+
- `azure.search.documents.models.HybridSearch`
59+
- `azure.search.documents.models.SearchScoreThreshold`
60+
- `azure.search.documents.models.VectorSimilarityThreshold`
61+
- `azure.search.documents.models.VectorThreshold`
62+
- `azure.search.documents.models.VectorThresholdKind`
63+
- `azure.search.documents.models.VectorizableImageBinaryQuery`
64+
- `azure.search.documents.models.VectorizableImageUrlQuery`
65+
- `azure.search.documents.indexes.models.SearchAlias`
66+
- `azure.search.documents.indexes.models.AIServicesVisionParameters`
67+
- `azure.search.documents.indexes.models.AIServicesVisionVectorizer`
68+
- `azure.search.documents.indexes.models.AIStudioModelCatalogName`
69+
- `azure.search.documents.indexes.models.AzureMachineLearningParameters`
70+
- `azure.search.documents.indexes.models.AzureMachineLearningSkill`
71+
- `azure.search.documents.indexes.models.AzureMachineLearningVectorizer`
72+
- `azure.search.documents.indexes.models.CustomVectorizer`
73+
- `azure.search.documents.indexes.models.CustomNormalizer`
74+
- `azure.search.documents.indexes.models.DocumentKeysOrIds`
75+
- `azure.search.documents.indexes.models.IndexingMode`
76+
- `azure.search.documents.indexes.models.LexicalNormalizer`
77+
- `azure.search.documents.indexes.models.LexicalNormalizerName`
78+
- `azure.search.documents.indexes.models.NativeBlobSoftDeleteDeletionDetectionPolicy`
79+
- `azure.search.documents.indexes.models.SearchIndexerCache`
80+
- `azure.search.documents.indexes.models.SkillNames`
81+
- `azure.search.documents.indexes.models.VisionVectorizeSkill`
82+
83+
- SearchAlias operations do not exist in this release
84+
- `SearchIndexerClient.reset_documents` does not exist in this release
85+
- `SearchIndexerClient.reset_skills` does not exist in this release
86+
87+
- Below properties do not exist
88+
- `azure.search.documents.indexes.models.SearchIndexerDataSourceConnection.identity`
89+
- `azure.search.documents.indexes.models.SearchIndex.normalizers`
90+
- `azure.search.documents.indexes.models.SearchField.normalizer_name`
91+
92+
- Below parameters do not exist
93+
- `SearchClient.search.debug`
94+
- `SearchClient.search.hybrid_search`
95+
- `SearchClient.search.query_language`
96+
- `SearchClient.search.query_speller`
97+
- `SearchClient.search.semantic_fields`
98+
- `SearchIndexerClient.create_or_update_indexer.skip_indexer_reset_requirement_for_cache`
99+
- `SearchIndexerClient.create_or_update_data_source_connection.skip_indexer_reset_requirement_for_cache`
100+
- `SearchIndexerClient.create_or_update_skillset.skip_indexer_reset_requirement_for_cache`
101+
- `SearchIndexerClient.create_or_update_indexer.disable_cache_reprocessing_change_detection`
102+
- `SearchIndexerClient.create_or_update_skillset.disable_cache_reprocessing_change_detection`
103+
104+
### Other Changes
105+
106+
- Updated default API version to `2024-07-01`.
107+
35108
## 11.6.0b4 (2024-05-07)
36109

37110
### Features Added

sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,9 @@ def _to_generated(self):
11211121
data_change_detection_policy=self.data_change_detection_policy,
11221122
data_deletion_detection_policy=self.data_deletion_detection_policy,
11231123
e_tag=self.e_tag,
1124-
encryption_key=self.encryption_key,
1124+
encryption_key=(
1125+
self.encryption_key._to_generated() if self.encryption_key else None # pylint: disable=protected-access
1126+
),
11251127
identity=self.identity,
11261128
)
11271129

@@ -1141,7 +1143,13 @@ def _from_generated(cls, search_indexer_data_source) -> Optional[Self]:
11411143
data_change_detection_policy=search_indexer_data_source.data_change_detection_policy,
11421144
data_deletion_detection_policy=search_indexer_data_source.data_deletion_detection_policy,
11431145
e_tag=search_indexer_data_source.e_tag,
1144-
encryption_key=search_indexer_data_source.encryption_key,
1146+
encryption_key=(
1147+
SearchResourceEncryptionKey._from_generated( # pylint: disable=protected-access
1148+
search_indexer_data_source.encryption_key
1149+
)
1150+
if search_indexer_data_source.encryption_key
1151+
else None
1152+
),
11451153
identity=search_indexer_data_source.identity,
11461154
)
11471155

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# ------------------------------------
2+
# Copyright (c) Microsoft Corporation.
3+
# Licensed under the MIT License.
4+
# ------------------------------------
5+
6+
from azure.search.documents.indexes.models import (
7+
SearchIndexerDataContainer,
8+
SearchIndexerDataSourceConnection,
9+
SearchResourceEncryptionKey,
10+
)
11+
12+
13+
def test_encryption_key_serialization():
14+
from azure.search.documents.indexes._generated.models import (
15+
SearchResourceEncryptionKey as SearchResourceEncryptionKeyGen,
16+
)
17+
18+
container = SearchIndexerDataContainer(name="container_name")
19+
encryption_key = SearchResourceEncryptionKey(
20+
key_name="key",
21+
key_version="key_version",
22+
vault_uri="vault_uri",
23+
application_id="application_id",
24+
)
25+
data_source_connection = SearchIndexerDataSourceConnection(
26+
name="datasource-name",
27+
type="azureblob",
28+
connection_string="connection_string",
29+
container=container,
30+
encryption_key=encryption_key,
31+
)
32+
packed_data_source = data_source_connection._to_generated()
33+
assert isinstance(packed_data_source.encryption_key, SearchResourceEncryptionKeyGen)

0 commit comments

Comments
 (0)