Skip to content

Commit 723eac4

Browse files
committed
access key: ignore in matcher rather than replacing in cassette
1 parent 3469680 commit 723eac4

File tree

2 files changed

+35
-35
lines changed

2 files changed

+35
-35
lines changed

core/testdata/test-check-api-key-basic.cassette.yaml

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,44 @@ interactions:
1212
host: api.scaleway.com
1313
remote_addr: ""
1414
request_uri: ""
15-
body: '{"access_key":"SCW2DWFM69FT5GRJARV0", "secret_key":null, "description":"my prod API key", "created_at":"2025-07-29T18:35:44.750352Z", "updated_at":"2025-07-29T18:35:44.750352Z", "expires_at":"2026-07-29T18:35:44.583Z", "default_project_id":"19a4819b-24bf-4d44-969f-935ef0061b71", "editable":true, "deletable":true, "managed":false, "creation_ip":"51.159.46.153", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
15+
body: '{"access_key":"SCW2DWFM69FT5GRJARV0","secret_key":null,"description":"my prod API key","created_at":"2025-07-29T18:35:44.750352Z","updated_at":"2025-07-29T18:35:44.750352Z","expires_at":"2026-07-29T18:35:44.583Z","default_project_id":"19a4819b-24bf-4d44-969f-935ef0061b71","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.46.153","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
1616
form: {}
1717
headers:
1818
User-Agent:
1919
- scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; linux; amd64) cli-e2e-test
20-
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCWXXXXXXXXXXXXXXXXX
20+
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCW2DWFM69FT5GRJARV0
2121
method: GET
2222
response:
2323
proto: HTTP/2.0
2424
proto_major: 2
2525
proto_minor: 0
2626
transfer_encoding: []
2727
trailer: {}
28-
content_length: 412
28+
content_length: 401
2929
uncompressed: false
30-
body: '{"access_key":"SCW2DWFM69FT5GRJARV0", "secret_key":null, "description":"my prod API key", "created_at":"2025-07-29T18:35:44.750352Z", "updated_at":"2025-07-29T18:35:44.750352Z", "expires_at":"2026-07-29T18:35:44.583Z", "default_project_id":"19a4819b-24bf-4d44-969f-935ef0061b71", "editable":true, "deletable":true, "managed":false, "creation_ip":"51.159.46.153", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
30+
body: '{"access_key":"SCW2DWFM69FT5GRJARV0","secret_key":null,"description":"my prod API key","created_at":"2025-07-29T18:35:44.750352Z","updated_at":"2025-07-29T18:35:44.750352Z","expires_at":"2026-07-29T18:35:44.583Z","default_project_id":"19a4819b-24bf-4d44-969f-935ef0061b71","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.46.153","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
3131
headers:
3232
Content-Length:
33-
- "412"
33+
- "401"
3434
Content-Security-Policy:
3535
- default-src 'none'; frame-ancestors 'none'
3636
Content-Type:
3737
- application/json
3838
Date:
39-
- Thu, 07 Aug 2025 13:42:47 GMT
39+
- Tue, 12 Aug 2025 16:43:02 GMT
4040
Server:
41-
- Scaleway API Gateway (fr-par-3;edge02)
41+
- Scaleway API Gateway (fr-par-1;edge03)
4242
Strict-Transport-Security:
4343
- max-age=63072000
4444
X-Content-Type-Options:
4545
- nosniff
4646
X-Frame-Options:
4747
- DENY
4848
X-Request-Id:
49-
- 24b5e550-70fe-4efa-8fcc-6c470623e1d3
49+
- 15f679ca-1508-4748-8c4e-069bf6426da7
5050
status: 200 OK
5151
code: 200
52-
duration: 250.591893ms
52+
duration: 209.763373ms
5353
- id: 1
5454
request:
5555
proto: HTTP/1.1
@@ -61,7 +61,7 @@ interactions:
6161
host: api.scaleway.com
6262
remote_addr: ""
6363
request_uri: ""
64-
body: '{"access_key":"SCWKRVBK27JW6A8AYM6Y", "secret_key":"11111111-1111-1111-1111-111111111111", "description":"test-cli-TestCheckAPIKey", "created_at":"2025-08-07T13:42:47.083089Z", "updated_at":"2025-08-07T13:42:47.083089Z", "expires_at":"2025-08-07T14:42:47.020954Z", "default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552", "editable":true, "deletable":true, "managed":false, "creation_ip":"92.170.169.4", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
64+
body: '{"access_key":"SCWFF2WDKB95P8D78Y5Y","secret_key":"11111111-1111-1111-1111-111111111111","description":"test-cli-TestCheckAPIKey","created_at":"2025-08-12T16:43:02.293611Z","updated_at":"2025-08-12T16:43:02.293611Z","expires_at":"2025-08-12T17:43:02.157196Z","default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.73.9","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
6565
form: {}
6666
headers:
6767
Content-Type:
@@ -76,31 +76,31 @@ interactions:
7676
proto_minor: 0
7777
transfer_encoding: []
7878
trailer: {}
79-
content_length: 457
79+
content_length: 445
8080
uncompressed: false
81-
body: '{"access_key":"SCWKRVBK27JW6A8AYM6Y", "secret_key":"11111111-1111-1111-1111-111111111111", "description":"test-cli-TestCheckAPIKey", "created_at":"2025-08-07T13:42:47.083089Z", "updated_at":"2025-08-07T13:42:47.083089Z", "expires_at":"2025-08-07T14:42:47.020954Z", "default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552", "editable":true, "deletable":true, "managed":false, "creation_ip":"92.170.169.4", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
81+
body: '{"access_key":"SCWFF2WDKB95P8D78Y5Y","secret_key":"11111111-1111-1111-1111-111111111111","description":"test-cli-TestCheckAPIKey","created_at":"2025-08-12T16:43:02.293611Z","updated_at":"2025-08-12T16:43:02.293611Z","expires_at":"2025-08-12T17:43:02.157196Z","default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.73.9","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
8282
headers:
8383
Content-Length:
84-
- "457"
84+
- "445"
8585
Content-Security-Policy:
8686
- default-src 'none'; frame-ancestors 'none'
8787
Content-Type:
8888
- application/json
8989
Date:
90-
- Thu, 07 Aug 2025 13:42:47 GMT
90+
- Tue, 12 Aug 2025 16:43:02 GMT
9191
Server:
92-
- Scaleway API Gateway (fr-par-3;edge02)
92+
- Scaleway API Gateway (fr-par-1;edge03)
9393
Strict-Transport-Security:
9494
- max-age=63072000
9595
X-Content-Type-Options:
9696
- nosniff
9797
X-Frame-Options:
9898
- DENY
9999
X-Request-Id:
100-
- d63c5db0-f502-4fa0-b0d0-9cf73c4a4d86
100+
- f492dd3e-e41a-4abd-96a4-2203fadc9c47
101101
status: 200 OK
102102
code: 200
103-
duration: 86.259571ms
103+
duration: 165.475914ms
104104
- id: 2
105105
request:
106106
proto: HTTP/1.1
@@ -112,44 +112,44 @@ interactions:
112112
host: api.scaleway.com
113113
remote_addr: ""
114114
request_uri: ""
115-
body: '{"access_key":"SCWKRVBK27JW6A8AYM6Y", "secret_key":null, "description":"test-cli-TestCheckAPIKey", "created_at":"2025-08-07T13:42:47.083089Z", "updated_at":"2025-08-07T13:42:47.083089Z", "expires_at":"2025-08-07T14:42:47.020954Z", "default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552", "editable":true, "deletable":true, "managed":false, "creation_ip":"92.170.169.4", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
115+
body: '{"access_key":"SCWFF2WDKB95P8D78Y5Y","secret_key":null,"description":"test-cli-TestCheckAPIKey","created_at":"2025-08-12T16:43:02.293611Z","updated_at":"2025-08-12T16:43:02.293611Z","expires_at":"2025-08-12T17:43:02.157196Z","default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.73.9","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
116116
form: {}
117117
headers:
118118
User-Agent:
119119
- scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; linux; amd64) scaleway-cli/0.0.0+test
120-
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCWXXXXXXXXXXXXXXXXX
120+
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCWFF2WDKB95P8D78Y5Y
121121
method: GET
122122
response:
123123
proto: HTTP/2.0
124124
proto_major: 2
125125
proto_minor: 0
126126
transfer_encoding: []
127127
trailer: {}
128-
content_length: 423
128+
content_length: 411
129129
uncompressed: false
130-
body: '{"access_key":"SCWKRVBK27JW6A8AYM6Y", "secret_key":null, "description":"test-cli-TestCheckAPIKey", "created_at":"2025-08-07T13:42:47.083089Z", "updated_at":"2025-08-07T13:42:47.083089Z", "expires_at":"2025-08-07T14:42:47.020954Z", "default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552", "editable":true, "deletable":true, "managed":false, "creation_ip":"92.170.169.4", "user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
130+
body: '{"access_key":"SCWFF2WDKB95P8D78Y5Y","secret_key":null,"description":"test-cli-TestCheckAPIKey","created_at":"2025-08-12T16:43:02.293611Z","updated_at":"2025-08-12T16:43:02.293611Z","expires_at":"2025-08-12T17:43:02.157196Z","default_project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","editable":true,"deletable":true,"managed":false,"creation_ip":"51.159.73.9","user_id":"77e7fa85-f305-4ea2-afea-09571a039336"}'
131131
headers:
132132
Content-Length:
133-
- "423"
133+
- "411"
134134
Content-Security-Policy:
135135
- default-src 'none'; frame-ancestors 'none'
136136
Content-Type:
137137
- application/json
138138
Date:
139-
- Thu, 07 Aug 2025 13:42:47 GMT
139+
- Tue, 12 Aug 2025 16:43:02 GMT
140140
Server:
141-
- Scaleway API Gateway (fr-par-3;edge02)
141+
- Scaleway API Gateway (fr-par-1;edge03)
142142
Strict-Transport-Security:
143143
- max-age=63072000
144144
X-Content-Type-Options:
145145
- nosniff
146146
X-Frame-Options:
147147
- DENY
148148
X-Request-Id:
149-
- 3480e36b-cd93-4a29-8a74-10b8062c5da0
149+
- 0445bc26-dbc8-49a4-9415-070a57762ed5
150150
status: 200 OK
151151
code: 200
152-
duration: 53.637556ms
152+
duration: 46.380661ms
153153
- id: 3
154154
request:
155155
proto: HTTP/1.1
@@ -166,7 +166,7 @@ interactions:
166166
headers:
167167
User-Agent:
168168
- scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.1; linux; amd64) cli-e2e-test
169-
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCWXXXXXXXXXXXXXXXXX
169+
url: https://api.scaleway.com/iam/v1alpha1/api-keys/SCWFF2WDKB95P8D78Y5Y
170170
method: DELETE
171171
response:
172172
proto: HTTP/2.0
@@ -183,17 +183,17 @@ interactions:
183183
Content-Type:
184184
- application/json
185185
Date:
186-
- Thu, 07 Aug 2025 13:42:47 GMT
186+
- Tue, 12 Aug 2025 16:43:02 GMT
187187
Server:
188-
- Scaleway API Gateway (fr-par-3;edge02)
188+
- Scaleway API Gateway (fr-par-1;edge03)
189189
Strict-Transport-Security:
190190
- max-age=63072000
191191
X-Content-Type-Options:
192192
- nosniff
193193
X-Frame-Options:
194194
- DENY
195195
X-Request-Id:
196-
- dea17aab-1ff8-46dd-9470-14c2e8283e8d
196+
- 078cf58c-49f5-4df4-b013-b81141cbee8a
197197
status: 204 No Content
198198
code: 204
199-
duration: 70.680285ms
199+
duration: 69.571016ms

core/testing_recorder.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,13 @@ func cassetteRequestFilter(i *cassette.Interaction) error {
2020
delete(i.Request.Headers, "X-Auth-Token")
2121
orgIDRegex := regexp.MustCompile(`(.+)organization_id=[0-9a-f-]{36}(.+)`)
2222
tokenRegex := regexp.MustCompile(`^https://api\.scaleway\.com/account/v1/tokens/[0-9a-f-]{36}$`)
23-
accessKeyRegex := regexp.MustCompile(`(.+)?SCW[0-9A-Z]{17}(.+)?`)
2423

2524
i.Request.URL = orgIDRegex.ReplaceAllString(
2625
i.Request.URL,
2726
"${1}organization_id=11111111-1111-1111-1111-111111111111${2}")
2827
i.Request.URL = tokenRegex.ReplaceAllString(
2928
i.Request.URL,
3029
"api.scaleway.com/account/v1/tokens/11111111-1111-1111-1111-111111111111")
31-
i.Request.URL = accessKeyRegex.ReplaceAllString(
32-
i.Request.URL,
33-
"${1}SCWXXXXXXXXXXXXXXXXX${2}")
3430

3531
return nil
3632
}
@@ -69,6 +65,10 @@ func cassetteMatcher(r *http.Request, i cassette.Request) bool {
6965
r.URL.Path = regexp.MustCompile(`pack\.local/builder/[0-9a-f]{20}`).
7066
ReplaceAllString(r.URL.Path, "pack.local/builder/11111111111111111111")
7167

68+
r.URL.RawQuery = regexp.MustCompile(`(.+)?SCW[0-9A-Z]{17}(.+)?`).ReplaceAllString(
69+
r.URL.RawQuery,
70+
"${1}SCWXXXXXXXXXXXXXXXXX${2}")
71+
7272
// Read body
7373
if r.Body != nil && r.Body != http.NoBody {
7474
reqBody, err := io.ReadAll(r.Body)

0 commit comments

Comments
 (0)