Skip to content

Commit d16d3b5

Browse files
committed
Merge branch 'main' of https://github.com/IBM/secrets-manager-python-sdk into prerelease
# Conflicts: # examples/test_secrets_manager_v2_examples.py # ibm_secrets_manager_sdk/secrets_manager_v2.py # test/integration/test_secrets_manager_v2.py # test/unit/test_secrets_manager_v2.py
2 parents e85cb89 + d08a279 commit d16d3b5

16 files changed

Lines changed: 10383 additions & 17378 deletions

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 1.0.26
2+
current_version = 2.1.0
33
commit = True
44
message = Update version {current_version} -> {new_version}
55

.github/workflows/create-release.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: setup nodejs
1919
uses: actions/setup-node@v3
2020
with:
21-
node-version: '16'
21+
node-version: '18'
2222

2323
- name: release using semantic-release
2424
env:
@@ -29,10 +29,11 @@ jobs:
2929
GIT_COMMITTER_EMAIL: secrets.automation.dev@il.ibm.com
3030
run: |
3131
sudo apt-get update
32-
sudo apt-get install python
32+
sudo apt-get install python3
3333
pip install --user bumpversion
3434
npm install @semantic-release/changelog
3535
npm install @semantic-release/exec
3636
npm install @semantic-release/git
3737
npm install @semantic-release/github
38+
npm install @semantic-release/release-notes-generator -D
3839
npx semantic-release

.github/workflows/publish.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ jobs:
2828
--outdir dist/
2929
.
3030
- name: Publish distribution to PyPI
31-
uses: pypa/gh-action-pypi-publish@release/v1
31+
uses: pypa/gh-action-pypi-publish@v1.8.4
3232
with:
3333
password: ${{ secrets.PYPI_API_TOKEN }}

.releaserc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
["@semantic-release/commit-analyzer", {
66
"preset": "angular",
77
"releaseRules": [
8-
{"type": "release","release": "patch"}
8+
{"type": "release","release": "patch"},
9+
{"type": "major","release": "major"},
10+
{"type": "minor","release": "minor"},
11+
{"type": "patch","release": "patch"}
912
]}],
1013
"@semantic-release/release-notes-generator",
1114
"@semantic-release/changelog",

CHANGELOG.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
## [1.0.26](https://github.com/IBM/secrets-manager-python-sdk/compare/v1.0.25...v1.0.26) (2022-12-05)
1+
# [2.1.0](https://github.com/IBM/secrets-manager-python-sdk/compare/v2.0.0...v2.1.0) (2023-09-19)
22

3-
## [1.0.25](https://github.com/IBM/secrets-manager-python-sdk/compare/v1.0.24...v1.0.25) (2022-11-30)
3+
# [2.0.0](https://github.com/IBM/secrets-manager-python-sdk/compare/v1.0.26...v2.0.0) (2023-04-17)
44

5-
## [1.0.24](https://github.com/IBM/secrets-manager-python-sdk/compare/v1.0.23...v1.0.24) (2022-11-30)
65

7-
## [1.0.23](https://github.com/IBM/secrets-manager-python-sdk/compare/v1.0.22...v1.0.23) (2022-11-29)
6+
### Features
87

8+
* new SM v2 API release ([d44e987](https://github.com/IBM/secrets-manager-python-sdk/commit/d44e98718143fc6d8c5f27cd1d148586f94ba029))
9+
* new SM v2 API release ([1b553dd](https://github.com/IBM/secrets-manager-python-sdk/commit/1b553dd266287962de302de3558ceb072cd1137f))
910

10-
### Bug Fixes
1111

12-
* new workflow ([2e7f2af](https://github.com/IBM/secrets-manager-python-sdk/commit/2e7f2af1a31f44e04408dd25f6a91421659155ae))
13-
* new workflow ([6375f21](https://github.com/IBM/secrets-manager-python-sdk/commit/6375f2187a1894cd535a3a461e45888b75a501a3))
14-
* revert to admin token ([790c6f5](https://github.com/IBM/secrets-manager-python-sdk/commit/790c6f5ed0b6a32087fb7e1c13fc030ffc5cd48f))
15-
* test adding token ([cc3f2bc](https://github.com/IBM/secrets-manager-python-sdk/commit/cc3f2bc58b325b5c4196ad52073a4df89ac20360))
16-
* test new token permissions ([5ea4eb3](https://github.com/IBM/secrets-manager-python-sdk/commit/5ea4eb39c57233cd9b936e52fba8b679136fdb3b))
17-
* test new token permissions ([68c8faa](https://github.com/IBM/secrets-manager-python-sdk/commit/68c8faaf360b003c2ce4113de3cdac99c46c8f96))
18-
* testing workflow ([21f1176](https://github.com/IBM/secrets-manager-python-sdk/commit/21f117679ca4692aa65a268e39c3db7c5cd151e6))
12+
### BREAKING CHANGES
13+
14+
* new v2 API.
15+
16+
Signed-off-by: yuval-shlomo-dekel <yuval.shlomo.dekel@ibm.com>
17+
* new v2 API.
18+
19+
Signed-off-by: yuval-shlomo-dekel <yuval.shlomo.dekel@ibm.com>

README.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# IBM Cloud Secrets Manager Python SDK
22

3-
A Python client library to interact with
4-
the [IBM Cloud® Secrets Manager APIs](https://cloud.ibm.com/apidocs/secrets-manager).
3+
A Python client library to interact with the [IBM Cloud® Secrets Manager APIs](https://cloud.ibm.com/apidocs/secrets-manager).
54

65
<details>
76
<summary>Table of Contents</summary>
@@ -25,7 +24,7 @@ services:
2524

2625
| Service name | Imported class name |
2726
|------------------------------------------------------------------|----------------------|
28-
| [Secrets Manager](https://cloud.ibm.com/apidocs/secrets-manager) | SecretsManagerV1 |
27+
| [Secrets Manager](https://cloud.ibm.com/apidocs/secrets-manager) | SecretsManagerV2 |
2928

3029
## Prerequisites
3130

@@ -67,7 +66,7 @@ authenticators from `ibm_cloud_sdk_core.authenticators`.
6766
```python
6867
from ibm_cloud_sdk_core.authenticators.iam_authenticator import IAMAuthenticator
6968

70-
secretsManager = SecretsManagerV1(
69+
secretsManager = SecretsManagerV2(
7170
authenticator=IAMAuthenticator(apikey='<IBM_CLOUD_API_KEY>')
7271
)
7372
```
@@ -90,31 +89,39 @@ Here's an example `secrets_manager.py` file:
9089

9190
```python
9291
from ibm_cloud_sdk_core.authenticators.iam_authenticator import IAMAuthenticator
93-
from ibm_secrets_manager_sdk.secrets_manager_v1 import *
92+
from ibm_secrets_manager_sdk.secrets_manager_v2 import *
9493

95-
secretsManager = SecretsManagerV1(
94+
secretsManager = SecretsManagerV2(
9695
authenticator=IAMAuthenticator(apikey='<IBM_CLOUD_API_KEY>')
9796
)
9897

9998
secretsManager.set_service_url('<SERVICE_URL>')
10099

101100
# create arbitrary secret
101+
secret_prototype_model = {
102+
'custom_metadata': {'metadata_custom_key':'metadata_custom_value'},
103+
'description': 'Description of my arbitrary secret.',
104+
'expiration_date': '2030-10-05T11:49:42Z',
105+
'labels': ['dev', 'us-south'],
106+
'name': 'example-arbitrary-secret',
107+
'secret_group_id': 'default',
108+
'secret_type': 'arbitrary',
109+
'payload': 'secret-data',
110+
'version_custom_metadata': {'custom_version_key':'custom_version_value'},
111+
}
112+
102113
response = secretsManager.create_secret(
103-
'arbitrary',
104-
{'collection_type': 'application/vnd.ibm.secrets-manager.secret+json', 'collection_total': 1},
105-
[{'name': 'example-arbitrary-secret', 'description': 'Extended description for this secret.',
106-
'payload': 'secret-data'}]
114+
secret_prototype=secret_prototype_model,
107115
)
108116

109-
secretId = response.result['resources'][0]['id']
117+
secretId = response.result['id']
110118

111119
# get arbitrary secret
112120
response = secretsManager.get_secret(
113-
'arbitrary',
114-
secretId
121+
id=secretId
115122
)
116123

117-
secretPayload = response.result['resources'][0]['secret_data']['payload']
124+
secretPayload = response.result['payload']
118125
print('The arbitrary secret payload is: ' + secretPayload)
119126

120127
```
@@ -145,6 +152,4 @@ For general contribution guidelines, see [CONTRIBUTING](CONTRIBUTING.md).
145152

146153
## License
147154

148-
This SDK project is released under the Apache 2.0 license. The license's full text can be found in [LICENSE](LICENSE).
149-
150-
dummy_PR #1
155+
This SDK project is released under the Apache 2.0 license. The license's full text can be found in [LICENSE](LICENSE).

examples/test_secrets_manager_v2_examples.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def test_create_secret_group_example(self):
9898
create_secret_group request example
9999
"""
100100
try:
101+
global secret_group_id_for_get_secret_group_link
101102
print('\ncreate_secret_group() result:')
102103
# begin-create_secret_group
103104

@@ -110,7 +111,6 @@ def test_create_secret_group_example(self):
110111

111112
# end-create_secret_group
112113

113-
global secret_group_id_for_get_secret_group_link
114114
secret_group_id_for_get_secret_group_link = secret_group['id']
115115
except ApiException as e:
116116
pytest.fail(str(e))
@@ -121,19 +121,21 @@ def test_create_secret_example(self):
121121
create_secret request example
122122
"""
123123
try:
124+
global secret_id_for_get_secret_link
125+
global secret_id_for_get_secret_version_link
124126
print('\ncreate_secret() result:')
125127
# begin-create_secret
126128

127129
secret_prototype_model = {
128-
'custom_metadata': {'metadata_custom_key': 'metadata_custom_value'},
130+
'custom_metadata': {'metadata_custom_key':'metadata_custom_value'},
129131
'description': 'Description of my arbitrary secret.',
130132
'expiration_date': '2030-10-05T11:49:42Z',
131133
'labels': ['dev', 'us-south'],
132134
'name': 'example-arbitrary-secret',
133135
'secret_group_id': 'default',
134136
'secret_type': 'arbitrary',
135137
'payload': 'secret-data',
136-
'version_custom_metadata': {'custom_version_key': 'custom_version_value'},
138+
'version_custom_metadata': {'custom_version_key':'custom_version_value'},
137139
}
138140

139141
response = secrets_manager_service.create_secret(
@@ -145,9 +147,7 @@ def test_create_secret_example(self):
145147

146148
# end-create_secret
147149

148-
global secret_id_for_get_secret_link
149150
secret_id_for_get_secret_link = secret['id']
150-
global secret_id_for_get_secret_version_link
151151
secret_id_for_get_secret_version_link = secret['id']
152152
except ApiException as e:
153153
pytest.fail(str(e))
@@ -158,14 +158,15 @@ def test_update_secret_metadata_example(self):
158158
update_secret_metadata request example
159159
"""
160160
try:
161+
global secret_name_link
161162
print('\nupdate_secret_metadata() result:')
162163
# begin-update_secret_metadata
163164

164165
secret_metadata_patch_model = {
165166
'name': 'updated-arbitrary-secret-name-example',
166167
'description': 'updated Arbitrary Secret description',
167168
'labels': ['dev', 'us-south'],
168-
'custom_metadata': {'metadata_custom_key': 'metadata_custom_value'},
169+
'custom_metadata': {'metadata_custom_key':'metadata_custom_value'},
169170
}
170171

171172
response = secrets_manager_service.update_secret_metadata(
@@ -178,7 +179,6 @@ def test_update_secret_metadata_example(self):
178179

179180
# end-update_secret_metadata
180181

181-
global secret_name_link
182182
secret_name_link = secret_metadata['name']
183183
except ApiException as e:
184184
pytest.fail(str(e))
@@ -189,6 +189,13 @@ def test_list_secret_versions_example(self):
189189
list_secret_versions request example
190190
"""
191191
try:
192+
global secret_version_id_for_get_secret_version_link
193+
global secret_id_for_create_secret_version_link
194+
global secret_version_id_for_get_secret_version_metadata_link
195+
global secret_version_id_for_update_secret_version_metadata_link
196+
global secret_id_for_create_secret_version_locks_link
197+
global secret_version_id_for_create_secret_version_locks_link
198+
global secret_version_id_for_delete_secret_version_locks_link
192199
print('\nlist_secret_versions() result:')
193200
# begin-list_secret_versions
194201

@@ -201,19 +208,12 @@ def test_list_secret_versions_example(self):
201208

202209
# end-list_secret_versions
203210

204-
global secret_version_id_for_get_secret_version_link
205211
secret_version_id_for_get_secret_version_link = secret_version_metadata_collection['versions'][0]['id']
206-
global secret_id_for_create_secret_version_link
207212
secret_id_for_create_secret_version_link = secret_version_metadata_collection['versions'][0]['secret_id']
208-
global secret_version_id_for_get_secret_version_metadata_link
209213
secret_version_id_for_get_secret_version_metadata_link = secret_version_metadata_collection['versions'][0]['id']
210-
global secret_version_id_for_update_secret_version_metadata_link
211214
secret_version_id_for_update_secret_version_metadata_link = secret_version_metadata_collection['versions'][0]['id']
212-
global secret_id_for_create_secret_version_locks_link
213215
secret_id_for_create_secret_version_locks_link = secret_version_metadata_collection['versions'][0]['secret_id']
214-
global secret_version_id_for_create_secret_version_locks_link
215216
secret_version_id_for_create_secret_version_locks_link = secret_version_metadata_collection['versions'][0]['id']
216-
global secret_version_id_for_delete_secret_version_locks_link
217217
secret_version_id_for_delete_secret_version_locks_link = secret_version_metadata_collection['versions'][0]['id']
218218
except ApiException as e:
219219
pytest.fail(str(e))
@@ -224,13 +224,16 @@ def test_create_secret_locks_bulk_example(self):
224224
create_secret_locks_bulk request example
225225
"""
226226
try:
227+
global secret_id_for_list_secret_locks_link
228+
global secret_id_for_list_secret_version_locks_link
229+
global secret_version_id_for_list_secret_version_locks_link
227230
print('\ncreate_secret_locks_bulk() result:')
228231
# begin-create_secret_locks_bulk
229232

230233
secret_lock_prototype_model = {
231234
'name': 'lock-example-1',
232235
'description': 'lock for consumer 1',
233-
'attributes': {'key': 'value'},
236+
'attributes': {'key':'value'},
234237
}
235238

236239
response = secrets_manager_service.create_secret_locks_bulk(
@@ -243,11 +246,8 @@ def test_create_secret_locks_bulk_example(self):
243246

244247
# end-create_secret_locks_bulk
245248

246-
global secret_id_for_list_secret_locks_link
247249
secret_id_for_list_secret_locks_link = secret_locks['secret_id']
248-
global secret_id_for_list_secret_version_locks_link
249250
secret_id_for_list_secret_version_locks_link = secret_locks['secret_id']
250-
global secret_version_id_for_list_secret_version_locks_link
251251
secret_version_id_for_list_secret_version_locks_link = secret_locks['versions'][0]['version_id']
252252
except ApiException as e:
253253
pytest.fail(str(e))
@@ -258,6 +258,7 @@ def test_create_configuration_example(self):
258258
create_configuration request example
259259
"""
260260
try:
261+
global configuration_name_for_get_configuration_link
261262
print('\ncreate_configuration() result:')
262263
# begin-create_configuration
263264

@@ -292,7 +293,6 @@ def test_create_configuration_example(self):
292293

293294
# end-create_configuration
294295

295-
global configuration_name_for_get_configuration_link
296296
configuration_name_for_get_configuration_link = configuration['name']
297297
except ApiException as e:
298298
pytest.fail(str(e))
@@ -492,8 +492,8 @@ def test_create_secret_version_example(self):
492492

493493
secret_version_prototype_model = {
494494
'payload': 'updated secret credentials',
495-
'custom_metadata': {'metadata_custom_key': 'metadata_custom_value'},
496-
'version_custom_metadata': {'custom_version_key': 'custom_version_value'},
495+
'custom_metadata': {'metadata_custom_key':'metadata_custom_value'},
496+
'version_custom_metadata': {'custom_version_key':'custom_version_value'},
497497
}
498498

499499
response = secrets_manager_service.create_secret_version(
@@ -673,7 +673,7 @@ def test_create_secret_version_locks_bulk_example(self):
673673
secret_lock_prototype_model = {
674674
'name': 'lock-example-1',
675675
'description': 'lock for consumer 1',
676-
'attributes': {'key': 'value'},
676+
'attributes': {'key':'value'},
677677
}
678678

679679
response = secrets_manager_service.create_secret_version_locks_bulk(

0 commit comments

Comments
 (0)