az2aws 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +15 -0
- package/issue/issues.md +729 -0
- package/lib/login.js +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.3](https://github.com/kuma0128/az2aws/compare/v1.1.2...v1.1.3) (2026-01-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* snapcraft deploy flow ([#65](https://github.com/kuma0128/az2aws/issues/65)) ([a4a41d7](https://github.com/kuma0128/az2aws/commit/a4a41d79c3142762f3d593796c8bf31b558bb8fe))
|
|
9
|
+
|
|
10
|
+
## [1.1.2](https://github.com/kuma0128/az2aws/compare/v1.1.1...v1.1.2) (2026-01-19)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* snapcraft deploy flow ([#61](https://github.com/kuma0128/az2aws/issues/61)) ([48cff62](https://github.com/kuma0128/az2aws/commit/48cff6225ef79050137ad815f1dd5bacb4f9131f))
|
|
16
|
+
* Unreachable code in account selection logic ([#63](https://github.com/kuma0128/az2aws/issues/63)) ([eb1f0de](https://github.com/kuma0128/az2aws/commit/eb1f0de464ad5d991c82d2982abf9b0ffd9a7b49))
|
|
17
|
+
|
|
3
18
|
## [1.1.1](https://github.com/kuma0128/az2aws/compare/v1.1.0...v1.1.1) (2026-01-19)
|
|
4
19
|
|
|
5
20
|
|
package/issue/issues.md
ADDED
|
@@ -0,0 +1,729 @@
|
|
|
1
|
+
# GitHub Issues
|
|
2
|
+
|
|
3
|
+
## Bug Reports (Internal Code Issues)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Issue #26: `--no-verify-ssl` and proxy settings conflict
|
|
8
|
+
|
|
9
|
+
**Labels:** `bug`, `priority: high`
|
|
10
|
+
|
|
11
|
+
**Description:**
|
|
12
|
+
When `awsNoVerifySsl` is `true`, the proxy settings are overwritten. In corporate environments that require both, it's not possible to disable SSL verification while using a proxy.
|
|
13
|
+
|
|
14
|
+
**Location:** `src/login.ts:1034-1056`
|
|
15
|
+
|
|
16
|
+
**Current Code:**
|
|
17
|
+
```typescript
|
|
18
|
+
if (process.env.https_proxy) {
|
|
19
|
+
stsOptions = {
|
|
20
|
+
...stsOptions,
|
|
21
|
+
requestHandler: new NodeHttpHandler({
|
|
22
|
+
httpsAgent: proxy(process.env.https_proxy),
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (awsNoVerifySsl) {
|
|
28
|
+
// This overwrites the proxy settings
|
|
29
|
+
stsOptions = {
|
|
30
|
+
...stsOptions,
|
|
31
|
+
requestHandler: new NodeHttpHandler({
|
|
32
|
+
httpsAgent: new Agent({
|
|
33
|
+
rejectUnauthorized: false,
|
|
34
|
+
}),
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Proposed Fix:**
|
|
41
|
+
```typescript
|
|
42
|
+
if (process.env.https_proxy) {
|
|
43
|
+
const proxyAgent = proxy(process.env.https_proxy);
|
|
44
|
+
if (awsNoVerifySsl) {
|
|
45
|
+
proxyAgent.options.rejectUnauthorized = false;
|
|
46
|
+
console.warn("WARNING: SSL certificate verification is disabled...");
|
|
47
|
+
}
|
|
48
|
+
stsOptions = {
|
|
49
|
+
...stsOptions,
|
|
50
|
+
requestHandler: new NodeHttpHandler({
|
|
51
|
+
httpsAgent: proxyAgent,
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
} else if (awsNoVerifySsl) {
|
|
55
|
+
console.warn("WARNING: SSL certificate verification is disabled...");
|
|
56
|
+
stsOptions = {
|
|
57
|
+
...stsOptions,
|
|
58
|
+
requestHandler: new NodeHttpHandler({
|
|
59
|
+
httpsAgent: new Agent({
|
|
60
|
+
rejectUnauthorized: false,
|
|
61
|
+
}),
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### Issue #27: Unreachable code in account selection logic
|
|
70
|
+
|
|
71
|
+
**Labels:** `bug`, `priority: medium`
|
|
72
|
+
|
|
73
|
+
**Description:**
|
|
74
|
+
The `accounts` array is always initialized with 2 elements, so the following conditional branches are never executed:
|
|
75
|
+
|
|
76
|
+
**Location:** `src/login.ts:160-164`
|
|
77
|
+
|
|
78
|
+
**Current Code:**
|
|
79
|
+
```typescript
|
|
80
|
+
const accounts = [
|
|
81
|
+
{ message: aadTileMessage, selector: "#aadTileTitle" },
|
|
82
|
+
{ message: msaTileMessage, selector: "#msaTileTitle" },
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
let account;
|
|
86
|
+
if (accounts.length === 0) { // Always false
|
|
87
|
+
throw new CLIError("No accounts found on account selection screen.");
|
|
88
|
+
} else if (accounts.length === 1) { // Always false
|
|
89
|
+
account = accounts[0];
|
|
90
|
+
} else {
|
|
91
|
+
// Always enters here
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Proposed Fix:**
|
|
96
|
+
Filter based on whether tiles actually exist:
|
|
97
|
+
```typescript
|
|
98
|
+
const accounts = [
|
|
99
|
+
aadTile ? { message: aadTileMessage, selector: "#aadTileTitle" } : null,
|
|
100
|
+
msaTile ? { message: msaTileMessage, selector: "#msaTileTitle" } : null,
|
|
101
|
+
].filter((a): a is { message: string; selector: string } => a !== null);
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Issue #28: Character encoding issue in SAML decoding
|
|
107
|
+
|
|
108
|
+
**Labels:** `bug`, `priority: medium`
|
|
109
|
+
|
|
110
|
+
**Description:**
|
|
111
|
+
ASCII encoding is used for SAML response decoding, but SAML responses may contain UTF-8 characters (e.g., usernames with Japanese characters).
|
|
112
|
+
|
|
113
|
+
**Location:** `src/login.ts:905`
|
|
114
|
+
|
|
115
|
+
**Current Code:**
|
|
116
|
+
```typescript
|
|
117
|
+
const samlText = Buffer.from(assertion, "base64").toString("ascii");
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Proposed Fix:**
|
|
121
|
+
```typescript
|
|
122
|
+
const samlText = Buffer.from(assertion, "base64").toString("utf8");
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Issue #29: Potential NaN from parseInt
|
|
128
|
+
|
|
129
|
+
**Labels:** `bug`, `priority: medium`
|
|
130
|
+
|
|
131
|
+
**Description:**
|
|
132
|
+
If `defaultDurationHours` is `undefined` or an empty string, `parseInt` returns `NaN`.
|
|
133
|
+
|
|
134
|
+
**Location:** `src/login.ts:954`
|
|
135
|
+
|
|
136
|
+
**Current Code:**
|
|
137
|
+
```typescript
|
|
138
|
+
let durationHours = parseInt(defaultDurationHours, 10);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Proposed Fix:**
|
|
142
|
+
```typescript
|
|
143
|
+
let durationHours = parseInt(defaultDurationHours, 10) || 1;
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Issue #30: Process does not exit on non-CLI errors
|
|
149
|
+
|
|
150
|
+
**Labels:** `bug`, `priority: low`
|
|
151
|
+
|
|
152
|
+
**Description:**
|
|
153
|
+
When a non-CLI error occurs, the process does not exit.
|
|
154
|
+
|
|
155
|
+
**Location:** `src/index.ts:103-110`
|
|
156
|
+
|
|
157
|
+
**Current Code:**
|
|
158
|
+
```typescript
|
|
159
|
+
.catch((err: Error) => {
|
|
160
|
+
if (err.name === "CLIError") {
|
|
161
|
+
console.error(err.message);
|
|
162
|
+
process.exit(2);
|
|
163
|
+
} else {
|
|
164
|
+
console.log(err); // process.exit() is not called
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Proposed Fix:**
|
|
170
|
+
```typescript
|
|
171
|
+
.catch((err: Error) => {
|
|
172
|
+
if (err.name === "CLIError") {
|
|
173
|
+
console.error(err.message);
|
|
174
|
+
process.exit(2);
|
|
175
|
+
} else {
|
|
176
|
+
console.error(err);
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Issue #31: CLI option description is inaccurate
|
|
185
|
+
|
|
186
|
+
**Labels:** `documentation`, `priority: low`
|
|
187
|
+
|
|
188
|
+
**Description:**
|
|
189
|
+
The `--no-verify-ssl` option description says "no effect if behind proxy", but in reality it overwrites the proxy settings (see Issue #26).
|
|
190
|
+
|
|
191
|
+
**Location:** `src/index.ts:41-43`
|
|
192
|
+
|
|
193
|
+
**Current Code:**
|
|
194
|
+
```typescript
|
|
195
|
+
.option(
|
|
196
|
+
"--no-verify-ssl",
|
|
197
|
+
"Disable SSL Peer Verification for connections to AWS (no effect if behind proxy)"
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Proposed Fix:**
|
|
202
|
+
After fixing Issue #26, update the description to be accurate.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Feature Requests (from upstream PRs)
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### Issue #32: Add `http_proxy` environment variable support
|
|
211
|
+
|
|
212
|
+
**Labels:** `enhancement`, `priority: high`
|
|
213
|
+
|
|
214
|
+
**Description:**
|
|
215
|
+
Currently only `https_proxy` is referenced. Add support for `http_proxy` environment variable as well.
|
|
216
|
+
|
|
217
|
+
**Reference:** [aws-azure-login#313](https://github.com/aws-azure-login/aws-azure-login/pull/313)
|
|
218
|
+
|
|
219
|
+
**Location:** `src/login.ts:715, 1034`
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### Issue #33: Update deprecated packages
|
|
224
|
+
|
|
225
|
+
**Labels:** `dependencies`, `priority: high`
|
|
226
|
+
|
|
227
|
+
**Description:**
|
|
228
|
+
Some packages should be updated to newer versions:
|
|
229
|
+
|
|
230
|
+
| Package | Current | Recommended |
|
|
231
|
+
|---------|---------|-------------|
|
|
232
|
+
| uuid | 8.3.2 | 9.0.1+ |
|
|
233
|
+
| mkdirp | 1.0.4 | 2.1.6+ |
|
|
234
|
+
| cheerio | ^1.0.0-rc.10 | ^1.0.0-rc.12+ |
|
|
235
|
+
|
|
236
|
+
**Reference:** [aws-azure-login#359](https://github.com/aws-azure-login/aws-azure-login/pull/359), [aws-azure-login#341](https://github.com/aws-azure-login/aws-azure-login/pull/341)
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### Issue #34: Support TOTP auto-generation from secret
|
|
241
|
+
|
|
242
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
243
|
+
|
|
244
|
+
**Description:**
|
|
245
|
+
Add support for reading TOTP secret from `AZURE_DEFAULT_TFA_SECRET` environment variable and auto-generating MFA codes.
|
|
246
|
+
|
|
247
|
+
**Use Case:**
|
|
248
|
+
```bash
|
|
249
|
+
AZURE_DEFAULT_TFA_SECRET=XXX AZURE_DEFAULT_PASSWORD=XXX az2aws --no-prompt
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
This enables fully automated authentication in CI/CD environments.
|
|
253
|
+
|
|
254
|
+
**Reference:** [aws-azure-login#201](https://github.com/aws-azure-login/aws-azure-login/pull/201)
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### Issue #35: Support AWS CLI credential_process
|
|
259
|
+
|
|
260
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
261
|
+
|
|
262
|
+
**Description:**
|
|
263
|
+
Add `--credential-process` option to output credentials in JSON format for use with AWS CLI's external credential process.
|
|
264
|
+
|
|
265
|
+
**Use Case:**
|
|
266
|
+
```ini
|
|
267
|
+
[profile myprofile]
|
|
268
|
+
credential_process=az2aws --no-prompt --credential-process
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Output Format:**
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"Version": 1,
|
|
275
|
+
"AccessKeyId": "...",
|
|
276
|
+
"SecretAccessKey": "...",
|
|
277
|
+
"SessionToken": "...",
|
|
278
|
+
"Expiration": "..."
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Reference:** [aws-azure-login#279](https://github.com/aws-azure-login/aws-azure-login/pull/279)
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
### Issue #36: Add Puppeteer SSL certificate verification disable flag
|
|
287
|
+
|
|
288
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
289
|
+
|
|
290
|
+
**Description:**
|
|
291
|
+
Add option to disable SSL verification in Puppeteer for environments where HTTPS proxies use self-signed certificates.
|
|
292
|
+
|
|
293
|
+
Current `--no-verify-ssl` only affects AWS STS connections, not Puppeteer (browser) SSL verification.
|
|
294
|
+
|
|
295
|
+
**Proposed Option:** `--no-verify-ssl-browser` or `--ignore-certificate-errors`
|
|
296
|
+
|
|
297
|
+
**Reference:** [aws-azure-login#172](https://github.com/aws-azure-login/aws-azure-login/pull/172)
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
### Issue #37: Add incognito mode support
|
|
302
|
+
|
|
303
|
+
**Labels:** `enhancement`, `priority: low`
|
|
304
|
+
|
|
305
|
+
**Description:**
|
|
306
|
+
Add `--incognito` option to launch browser in incognito mode.
|
|
307
|
+
|
|
308
|
+
**Use Case:**
|
|
309
|
+
Some organizations want to avoid automatically using SSO credentials.
|
|
310
|
+
|
|
311
|
+
**Reference:** [aws-azure-login#284](https://github.com/aws-azure-login/aws-azure-login/pull/284)
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Known Issues from Upstream (aws-azure-login)
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
### Issue #38: "Unable to recognize page state!" error
|
|
320
|
+
|
|
321
|
+
**Labels:** `bug`, `priority: high`
|
|
322
|
+
|
|
323
|
+
**Description:**
|
|
324
|
+
When attempting to log in via CLI mode, an "Unable to recognize page state!" error occurs. GUI mode works fine.
|
|
325
|
+
|
|
326
|
+
**Cause:**
|
|
327
|
+
- Azure login page changes have broken existing selectors
|
|
328
|
+
- Additional authentication screens appear due to organizational device compliance requirements
|
|
329
|
+
|
|
330
|
+
**Impact:**
|
|
331
|
+
The `states` array selectors may not be compatible with the latest Azure AD login pages.
|
|
332
|
+
|
|
333
|
+
**Proposed Solution:**
|
|
334
|
+
- Consider implementing a mechanism to regularly update selectors
|
|
335
|
+
- Add new page states as needed
|
|
336
|
+
|
|
337
|
+
**Reference:** [aws-azure-login#327](https://github.com/aws-azure-login/aws-azure-login/issues/327)
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### Issue #39: Device compliance error
|
|
342
|
+
|
|
343
|
+
**Labels:** `bug`, `priority: high`
|
|
344
|
+
|
|
345
|
+
**Description:**
|
|
346
|
+
After MFA authentication, a "Device UnSecured Or Non-Compliant" error is displayed.
|
|
347
|
+
|
|
348
|
+
**Cause:**
|
|
349
|
+
The Chromium browser launched by Puppeteer cannot satisfy organizational device compliance policies.
|
|
350
|
+
|
|
351
|
+
**Impact:**
|
|
352
|
+
May not be usable in environments with strict corporate security policies.
|
|
353
|
+
|
|
354
|
+
**Proposed Solution:**
|
|
355
|
+
- Recommend using `--mode=gui`
|
|
356
|
+
- Clearly document custom Chromium path configuration options
|
|
357
|
+
|
|
358
|
+
**Reference:** [aws-azure-login#336](https://github.com/aws-azure-login/aws-azure-login/issues/336)
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
### Issue #40: Slow credential file writing
|
|
363
|
+
|
|
364
|
+
**Labels:** `bug`, `priority: medium`
|
|
365
|
+
|
|
366
|
+
**Description:**
|
|
367
|
+
On macOS, writing credentials to file can take up to 60 seconds.
|
|
368
|
+
|
|
369
|
+
**Impact:**
|
|
370
|
+
The same issue may occur in az2aws (uses the same `ini` package).
|
|
371
|
+
|
|
372
|
+
**Investigation Items:**
|
|
373
|
+
- Check performance of `awsConfig._saveAsync()`
|
|
374
|
+
- Verify no issues with filesystem synchronous writes
|
|
375
|
+
|
|
376
|
+
**Reference:** [aws-azure-login#358](https://github.com/aws-azure-login/aws-azure-login/issues/358)
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
### Issue #41: Support multiple role ARNs
|
|
381
|
+
|
|
382
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
383
|
+
|
|
384
|
+
**Description:**
|
|
385
|
+
Allow specifying multiple roles in `azure_default_role_arn` as comma-separated values, selecting the first available role from left to right.
|
|
386
|
+
|
|
387
|
+
**Use Case:**
|
|
388
|
+
- When sharing configuration files within a team
|
|
389
|
+
- When available roles differ by team member
|
|
390
|
+
|
|
391
|
+
**Current Status:**
|
|
392
|
+
az2aws only supports a single role ARN.
|
|
393
|
+
|
|
394
|
+
**Reference:** [aws-azure-login#330](https://github.com/aws-azure-login/aws-azure-login/issues/330)
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
### Issue #42: Support Microsoft Authenticator passkey
|
|
399
|
+
|
|
400
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
401
|
+
|
|
402
|
+
**Description:**
|
|
403
|
+
Support passkey authentication via Microsoft Authenticator app in GUI mode.
|
|
404
|
+
|
|
405
|
+
**Current Status:**
|
|
406
|
+
Passkey authentication via Bluetooth may not work due to Puppeteer limitations.
|
|
407
|
+
|
|
408
|
+
**Reference:** [aws-azure-login#354](https://github.com/aws-azure-login/aws-azure-login/issues/354)
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## Additional Feature Requests (from upstream PRs)
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
### Issue #43: Fix https_proxy configuration bug
|
|
417
|
+
|
|
418
|
+
**Labels:** `bug`, `priority: high`
|
|
419
|
+
|
|
420
|
+
**Description:**
|
|
421
|
+
In environments where internet access is only possible through a proxy behind a firewall, the `https_proxy` environment variable is not configured correctly.
|
|
422
|
+
|
|
423
|
+
**Impact:**
|
|
424
|
+
Issue occurred between v3.6.1 and v3.6.2.
|
|
425
|
+
|
|
426
|
+
**Related:**
|
|
427
|
+
May be related to Issue #26 (--no-verify-ssl and proxy settings conflict).
|
|
428
|
+
|
|
429
|
+
**Reference:** [aws-azure-login#349](https://github.com/aws-azure-login/aws-azure-login/pull/349)
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
### Issue #44: Pass 2FA verification code via environment variable
|
|
434
|
+
|
|
435
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
436
|
+
|
|
437
|
+
**Description:**
|
|
438
|
+
Allow passing 2FA verification code via `AZURE_VERIFICATION_CODE` environment variable.
|
|
439
|
+
|
|
440
|
+
**Use Case:**
|
|
441
|
+
```bash
|
|
442
|
+
export AZURE_VERIFICATION_CODE=$(oathtool --totp --base32 $SECRET)
|
|
443
|
+
az2aws --no-prompt
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
**Required Changes:**
|
|
447
|
+
- Check environment variable in TFA code input handler
|
|
448
|
+
- Add `--print` flag (output credentials to stdout, don't write to file)
|
|
449
|
+
|
|
450
|
+
**Benefits:**
|
|
451
|
+
- Enables full automation from scripts
|
|
452
|
+
- Easier to use in CI/CD environments
|
|
453
|
+
|
|
454
|
+
**Reference:** [aws-azure-login#262](https://github.com/aws-azure-login/aws-azure-login/pull/262)
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
### Issue #45: Add Chromium executable path option
|
|
459
|
+
|
|
460
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
461
|
+
|
|
462
|
+
**Description:**
|
|
463
|
+
Add option to specify custom Chrome/Chromium executable path.
|
|
464
|
+
|
|
465
|
+
**Background:**
|
|
466
|
+
Some organizations prohibit running the default Chromium executable.
|
|
467
|
+
|
|
468
|
+
**Current Status:**
|
|
469
|
+
Custom path can be specified via `CHROME_BIN` environment variable (`paths.chromeBin`).
|
|
470
|
+
|
|
471
|
+
**Proposed Changes:**
|
|
472
|
+
- Verify current implementation works
|
|
473
|
+
- Consider adding `--chromium-executable` CLI option
|
|
474
|
+
|
|
475
|
+
**Reference:** [aws-azure-login#303](https://github.com/aws-azure-login/aws-azure-login/pull/303)
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
### Issue #46: Add environment variables for existing Chrome profile
|
|
480
|
+
|
|
481
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
482
|
+
|
|
483
|
+
**Description:**
|
|
484
|
+
Add environment variables to use existing Chrome profiles.
|
|
485
|
+
|
|
486
|
+
**Current Status:**
|
|
487
|
+
Can be configured via `paths.userDataDir` and `paths.profileDir`.
|
|
488
|
+
|
|
489
|
+
**Proposed Changes:**
|
|
490
|
+
- Document environment variable names and configuration methods
|
|
491
|
+
- Review PR implementation if needed
|
|
492
|
+
|
|
493
|
+
**Reference:** [aws-azure-login#352](https://github.com/aws-azure-login/aws-azure-login/pull/352)
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
### Issue #47: Support empty profile execution
|
|
498
|
+
|
|
499
|
+
**Labels:** `enhancement`, `priority: high`
|
|
500
|
+
|
|
501
|
+
**Description:**
|
|
502
|
+
Allow execution when profile is empty or not set, as long as `tenant_id` and `app_id` are set via environment variables.
|
|
503
|
+
|
|
504
|
+
**Benefits:**
|
|
505
|
+
- More flexible configuration options
|
|
506
|
+
- Easier configuration in CI/CD environments
|
|
507
|
+
- Enables fully environment variable-based configuration with `--no-prompt`
|
|
508
|
+
|
|
509
|
+
**Required Changes:**
|
|
510
|
+
- Modify `_loadProfileAsync` logic
|
|
511
|
+
- Add execution path using only environment variables
|
|
512
|
+
|
|
513
|
+
**Reference:** [aws-azure-login#203](https://github.com/aws-azure-login/aws-azure-login/pull/203)
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
### Issue #48: Support custom assertionConsumerServiceURL
|
|
518
|
+
|
|
519
|
+
**Labels:** `enhancement`, `priority: high`
|
|
520
|
+
|
|
521
|
+
**Description:**
|
|
522
|
+
Allow customizing the Assertion Consumer Service (ACS) URL in SAML requests.
|
|
523
|
+
|
|
524
|
+
**Background:**
|
|
525
|
+
Some organizations require redirect destinations different from standard AWS SAML endpoints.
|
|
526
|
+
|
|
527
|
+
**Required Changes:**
|
|
528
|
+
- Add `assertion_consumer_service_url` option to profile settings
|
|
529
|
+
- Support via environment variable
|
|
530
|
+
- Use custom URL in `_createLoginUrlAsync`
|
|
531
|
+
|
|
532
|
+
**Current Status:**
|
|
533
|
+
Only supports `AWS_SAML_ENDPOINT`, `AWS_GOV_SAML_ENDPOINT`, `AWS_CN_SAML_ENDPOINT`.
|
|
534
|
+
|
|
535
|
+
**Reference:** [aws-azure-login#200](https://github.com/aws-azure-login/aws-azure-login/pull/200)
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
### Issue #49: Add shell script hooks
|
|
540
|
+
|
|
541
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
542
|
+
|
|
543
|
+
**Description:**
|
|
544
|
+
Add hook functionality to get authentication input from shell scripts.
|
|
545
|
+
|
|
546
|
+
**Script Types:**
|
|
547
|
+
| Script | Default Path | Purpose |
|
|
548
|
+
|--------|--------------|---------|
|
|
549
|
+
| Username | `~/.aws/.aws-azure-login.username.sh` | Get username |
|
|
550
|
+
| Password | `~/.aws/.aws-azure-login.password.sh` | Get password |
|
|
551
|
+
| MFA | `~/.aws/.aws-azure-login.static-challenge.sh` | Get MFA code |
|
|
552
|
+
|
|
553
|
+
**Requirements:**
|
|
554
|
+
- Script must exit with code 0
|
|
555
|
+
- Result returned via stdout
|
|
556
|
+
|
|
557
|
+
**Use Cases:**
|
|
558
|
+
- Integration with password managers (1Password, Bitwarden, etc.)
|
|
559
|
+
- Custom authentication flow implementation
|
|
560
|
+
- Secure credential management
|
|
561
|
+
|
|
562
|
+
**Reference:** [aws-azure-login#145](https://github.com/aws-azure-login/aws-azure-login/pull/145)
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
### Issue #50: Create GitHub Action
|
|
567
|
+
|
|
568
|
+
**Labels:** `enhancement`, `priority: medium`
|
|
569
|
+
|
|
570
|
+
**Description:**
|
|
571
|
+
Make az2aws available as a GitHub Action.
|
|
572
|
+
|
|
573
|
+
**Supported Inputs:**
|
|
574
|
+
- Tenant ID
|
|
575
|
+
- App ID
|
|
576
|
+
- Username / Password
|
|
577
|
+
- TFA secret
|
|
578
|
+
- Role ARN
|
|
579
|
+
- Session duration
|
|
580
|
+
|
|
581
|
+
**Use Case:**
|
|
582
|
+
```yaml
|
|
583
|
+
- name: Azure Login for AWS
|
|
584
|
+
uses: az2aws/az2aws-action@v1
|
|
585
|
+
with:
|
|
586
|
+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
587
|
+
app-id: ${{ secrets.AZURE_APP_ID }}
|
|
588
|
+
username: ${{ secrets.AZURE_USERNAME }}
|
|
589
|
+
password: ${{ secrets.AZURE_PASSWORD }}
|
|
590
|
+
tfa-secret: ${{ secrets.AZURE_TFA_SECRET }}
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
**Proposed:** Create in a separate repository.
|
|
594
|
+
|
|
595
|
+
**Reference:** [aws-azure-login#204](https://github.com/aws-azure-login/aws-azure-login/pull/204)
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
### Issue #51: Add troubleshooting warnings for GovCloud
|
|
600
|
+
|
|
601
|
+
**Labels:** `enhancement`, `priority: low`
|
|
602
|
+
|
|
603
|
+
**Description:**
|
|
604
|
+
Add warnings about default region for GovCloud users.
|
|
605
|
+
|
|
606
|
+
**Background:**
|
|
607
|
+
Users are not aware of the default region in AWS settings, causing issues in GovCloud environments.
|
|
608
|
+
|
|
609
|
+
**Required Changes:**
|
|
610
|
+
- Explicitly display the region being used
|
|
611
|
+
- Add warning messages about region configuration
|
|
612
|
+
|
|
613
|
+
**Reference:** [aws-azure-login#188](https://github.com/aws-azure-login/aws-azure-login/pull/188)
|
|
614
|
+
|
|
615
|
+
---
|
|
616
|
+
|
|
617
|
+
### Issue #52: Improve Dockerfile
|
|
618
|
+
|
|
619
|
+
**Labels:** `enhancement`, `priority: low`
|
|
620
|
+
|
|
621
|
+
**Description:**
|
|
622
|
+
Optimize Docker image:
|
|
623
|
+
- Multi-stage builds for smaller image size
|
|
624
|
+
- Consolidate apt-get commands
|
|
625
|
+
- Use `--no-install-recommends` flag
|
|
626
|
+
|
|
627
|
+
**Reference:** [aws-azure-login#361](https://github.com/aws-azure-login/aws-azure-login/pull/361)
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
### Issue #53: Update GitHub Actions dependencies
|
|
632
|
+
|
|
633
|
+
**Labels:** `dependencies`, `priority: low`
|
|
634
|
+
|
|
635
|
+
**Description:**
|
|
636
|
+
Update workflow dependencies via dependabot.
|
|
637
|
+
|
|
638
|
+
**Reference:** [aws-azure-login#347](https://github.com/aws-azure-login/aws-azure-login/pull/347)
|
|
639
|
+
|
|
640
|
+
---
|
|
641
|
+
|
|
642
|
+
### Issue #54: Fix snapcraft.yaml plugin configuration
|
|
643
|
+
|
|
644
|
+
**Labels:** `bug`, `build`
|
|
645
|
+
|
|
646
|
+
**Description:**
|
|
647
|
+
The snapcraft.yaml is using the deprecated `nodejs` plugin configuration. Snapcraft has transitioned to the `npm` plugin for Node.js projects.
|
|
648
|
+
|
|
649
|
+
**Location:** `snapcraft.yaml:13-17`
|
|
650
|
+
|
|
651
|
+
**Current Code (broken):**
|
|
652
|
+
```yaml
|
|
653
|
+
parts:
|
|
654
|
+
az2aws:
|
|
655
|
+
plugin: nodejs
|
|
656
|
+
nodejs-version: "24"
|
|
657
|
+
nodejs-package-manager: yarn
|
|
658
|
+
source: .
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
**Fixed Code:**
|
|
662
|
+
```yaml
|
|
663
|
+
parts:
|
|
664
|
+
az2aws:
|
|
665
|
+
plugin: npm
|
|
666
|
+
npm-include-node: true
|
|
667
|
+
npm-node-version: "24"
|
|
668
|
+
source: .
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
**Changes:**
|
|
672
|
+
- Changed `plugin` from `nodejs` to `npm`
|
|
673
|
+
- Replaced `nodejs-version` with `npm-node-version`
|
|
674
|
+
- Replaced `nodejs-package-manager: yarn` with `npm-include-node: true`
|
|
675
|
+
|
|
676
|
+
**Impact:**
|
|
677
|
+
Without this fix, the snap package cannot be built correctly using the current snapcraft toolchain.
|
|
678
|
+
|
|
679
|
+
---
|
|
680
|
+
|
|
681
|
+
### Issue #55: Refactor README installation section by method instead of platform
|
|
682
|
+
|
|
683
|
+
**Labels:** `documentation`, `enhancement`
|
|
684
|
+
**Status:** Resolved (implemented in README installation section)
|
|
685
|
+
|
|
686
|
+
**Description:**
|
|
687
|
+
This issue tracked refactoring the README installation section, which was previously organized by platform (Windows, Linux, Docker, Snap) and caused duplication and made it harder to find the preferred installation method. The README has been updated to organize installation by method instead.
|
|
688
|
+
|
|
689
|
+
**Changes:**
|
|
690
|
+
- Reorganized structure from platform-based to method-based
|
|
691
|
+
- Added mise as the recommended installation method
|
|
692
|
+
- Consolidated Linux and Windows specific notes as subsections under npm
|
|
693
|
+
- Simplified overall documentation
|
|
694
|
+
|
|
695
|
+
**New Structure:**
|
|
696
|
+
```
|
|
697
|
+
## Installation
|
|
698
|
+
### mise (Recommended)
|
|
699
|
+
### npm
|
|
700
|
+
- Linux Notes
|
|
701
|
+
- Windows Notes
|
|
702
|
+
### Docker
|
|
703
|
+
### Snap
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
**Benefits:**
|
|
707
|
+
- Cleaner, less redundant documentation
|
|
708
|
+
- mise provides the simplest cross-platform installation experience
|
|
709
|
+
- Users can quickly find their preferred installation method
|
|
710
|
+
- Platform-specific notes are only shown where relevant (npm section)
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
714
|
+
### [RESOLVED] Issue #56: Create issues.md to track project issues
|
|
715
|
+
|
|
716
|
+
**Labels:** `documentation`
|
|
717
|
+
|
|
718
|
+
**Description:**
|
|
719
|
+
Created an issues documentation file (`issue/issues.md`) to track and document all known bugs, feature requests, and enhancements for the project.
|
|
720
|
+
|
|
721
|
+
**Tasks:**
|
|
722
|
+
- Document all known issues with descriptions and proposed fixes
|
|
723
|
+
- Maintain issue numbering consistent with GitHub issues
|
|
724
|
+
- Keep the list updated as issues are resolved or new ones are discovered
|
|
725
|
+
|
|
726
|
+
**Benefits:**
|
|
727
|
+
- Centralized documentation of all project issues
|
|
728
|
+
- Easier onboarding for new contributors
|
|
729
|
+
- Clear tracking of issue status and priorities
|
package/lib/login.js
CHANGED
|
@@ -119,9 +119,9 @@ const states = [
|
|
|
119
119
|
// eslint-disable-next-line
|
|
120
120
|
(m) => { var _a; return (_a = m === null || m === void 0 ? void 0 : m.textContent) !== null && _a !== void 0 ? _a : ""; }, msaTile);
|
|
121
121
|
const accounts = [
|
|
122
|
-
{ message: aadTileMessage, selector: "#aadTileTitle" },
|
|
123
|
-
{ message: msaTileMessage, selector: "#msaTileTitle" },
|
|
124
|
-
];
|
|
122
|
+
aadTile ? { message: aadTileMessage, selector: "#aadTileTitle" } : null,
|
|
123
|
+
msaTile ? { message: msaTileMessage, selector: "#msaTileTitle" } : null,
|
|
124
|
+
].filter((a) => a !== null);
|
|
125
125
|
let account;
|
|
126
126
|
if (accounts.length === 0) {
|
|
127
127
|
throw new CLIError_1.CLIError("No accounts found on account selection screen.");
|