flurry-cli 0.0.2 → 0.0.4

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.
Files changed (5) hide show
  1. package/LICENCE.md +17 -8
  2. package/README.md +80 -2
  3. package/dist/cli.js +153 -68
  4. package/package.json +11 -10
  5. package/.env +0 -6
package/LICENCE.md CHANGED
@@ -19,30 +19,39 @@ This software includes the following third-party components. Each component is l
19
19
  ### 1. @aws-sdk/client-kinesis
20
20
  - **License**: Apache License, Version 2.0
21
21
  - **Copyright**: (c) 2025 Amazon.com, Inc. or its affiliates
22
- - **Details**: For the full license text, see the `LICENSE-APACHE` file included in this distribution or visit [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
22
+ - **Details**: For the full license text, see [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
23
23
 
24
24
  ### 2. @aws-sdk/client-sqs
25
25
  - **License**: Apache License, Version 2.0
26
26
  - **Copyright**: (c) 2025 Amazon.com, Inc. or its affiliates
27
- - **Details**: For the full license text, see the `LICENSE-APACHE` file included in this distribution or visit [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
27
+ - **Details**: For the full license text, see [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
28
28
 
29
- ### 3. @aws-sdk/node-http-handler
29
+ ### 3. @aws-sdk/credential-providers
30
30
  - **License**: Apache License, Version 2.0
31
31
  - **Copyright**: (c) 2025 Amazon.com, Inc. or its affiliates
32
- - **Details**: For the full license text, see the `LICENSE-APACHE` file included in this distribution or visit [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
32
+ - **Details**: For the full license text, see [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
33
33
 
34
- ### 4. chalk
34
+ ### 4. @aws-sdk/node-http-handler
35
+ - **License**: Apache License, Version 2.0
36
+ - **Copyright**: (c) 2025 Amazon.com, Inc. or its affiliates
37
+ - **Details**: For the full license text, see [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
38
+
39
+ ### 5. chalk
35
40
  - **License**: MIT License
36
41
  - **Copyright**: (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
42
+ - **Details**: For the full license text, see [https://opensource.org/license/mit/](https://opensource.org/license/mit/).
37
43
 
38
- ### 5. lodash
44
+ ### 6. lodash
39
45
  - **License**: MIT License
40
46
  - **Copyright**: (c) JS Foundation and other contributors
47
+ - **Details**: For the full license text, see [https://opensource.org/license/mit/](https://opensource.org/license/mit/).
41
48
 
42
- ### 6. node-random-name
49
+ ### 7. node-random-name
43
50
  - **License**: MIT License
44
51
  - **Copyright**: (c) 2013-2016 Thomas McDonald
52
+ - **Details**: For the full license text, see [https://opensource.org/license/mit/](https://opensource.org/license/mit/).
45
53
 
46
- ### 7. zod
54
+ ### 8. zod
47
55
  - **License**: MIT License
48
56
  - **Copyright**: (c) 2020 Colin McDonnell
57
+ - **Details**: For the full license text, see [https://opensource.org/license/mit/](https://opensource.org/license/mit/).
package/README.md CHANGED
@@ -7,11 +7,11 @@ A command-line interface for running Flurry API testing collections.
7
7
  ### Required Options
8
8
 
9
9
  - `--collection-id` - The collection ID to run
10
- - `--api-key` - Your API key for authentication
11
- - `--environment` - The environment name to use
10
+ - `--api-key` - Your API key for authentication (required unless `FLURRY_API_KEY` is set)
12
11
 
13
12
  ### Optional Options
14
13
 
14
+ - `--environment` - The environment name to use. If omitted, the CLI runs with a temporary empty environment.
15
15
  - `--run-flow-id` - Run a single flow by ID (runs entire collection if not specified)
16
16
  - `--verbose` - Set to true for detailed output (default: false)
17
17
  - `--fail-fast` - Stop immediately on first assertion failure (default: true). Set to false to continue running all tests
@@ -21,6 +21,11 @@ A command-line interface for running Flurry API testing collections.
21
21
 
22
22
  ### Run entire collection
23
23
  ```bash
24
+ npx flurry-cli --collection-id=abc123 --api-key=your-api-key
25
+ ```
26
+
27
+ ### Run entire collection (with explicit environment)
28
+ ```bash
24
29
  npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=development
25
30
  ```
26
31
 
@@ -33,3 +38,76 @@ npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=stagi
33
38
  ```bash
34
39
  npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=development --fail-fast=false
35
40
  ```
41
+
42
+ ## AWS Credentials
43
+
44
+ Flurry uses the AWS SDK for JavaScript (v3) to talk to AWS. The AWS SDK resolves credentials differently than the AWS CLI.
45
+
46
+ In particular, some AWS CLI authentication flows cache credentials in a way the JS SDK cannot read directly (your case showed `access_key` type `login` via `aws configure list`). When that happens, Flurry falls back to asking the AWS CLI to export concrete credentials.
47
+
48
+ ### Resolution Order
49
+
50
+ Flurry resolves credentials in this order:
51
+
52
+ 1. **Environment credentials** (best for CI): `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, optional `AWS_SESSION_TOKEN`
53
+ 2. **Shared config/credentials files**: `~/.aws/credentials` and `~/.aws/config` using `AWS_PROFILE` / `AWS_DEFAULT_PROFILE`
54
+ 3. **AWS CLI fallback** (for AWS CLI “login” caches): runs `aws configure export-credentials --profile <profile> --format process` (only if `FLURRY_ENABLE_AWS_CLI_CREDENTIALS=true`)
55
+ 4. **Default AWS SDK provider chain** as a final fallback
56
+
57
+ ### GitHub Actions / CI
58
+
59
+ In GitHub Actions you typically should **not** rely on AWS profiles. Prefer one of:
60
+
61
+ - **OIDC / Web Identity** (recommended): use `aws-actions/configure-aws-credentials` to set `AWS_ROLE_ARN` + `AWS_WEB_IDENTITY_TOKEN_FILE` (and region). The AWS SDK picks these up without needing profiles.
62
+ - **Static secrets**: set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and optionally `AWS_SESSION_TOKEN`.
63
+
64
+ If you do choose to use profiles in CI, ensure the runner has access to the appropriate `~/.aws/config` and `~/.aws/credentials` (or set `AWS_SHARED_CREDENTIALS_FILE` / `AWS_CONFIG_FILE`).
65
+
66
+ ## Environment Variables
67
+
68
+ ### Flurry
69
+
70
+ - `FLURRY_API_KEY`
71
+ - Alternative to passing `--api-key`.
72
+
73
+ - `FLURRY_ENABLE_AWS_CLI_CREDENTIALS`
74
+ - When set to `true`, Flurry may use the AWS CLI fallback (`aws configure export-credentials ...`) if normal SDK credential resolution fails.
75
+ - Default is disabled to avoid unexpected subprocess execution in CI/locked-down environments.
76
+
77
+ ### AWS (standard)
78
+
79
+ Credentials selection:
80
+
81
+ - `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`
82
+ - Direct credentials. Highest priority. Recommended for CI.
83
+
84
+ - `AWS_PROFILE` / `AWS_DEFAULT_PROFILE`
85
+ - Selects a named profile in your AWS config/credentials files.
86
+
87
+ Files:
88
+
89
+ - `AWS_SHARED_CREDENTIALS_FILE`
90
+ - Overrides the default `~/.aws/credentials` path.
91
+
92
+ - `AWS_CONFIG_FILE`
93
+ - Overrides the default `~/.aws/config` path.
94
+
95
+ Config loading:
96
+
97
+ - `AWS_SDK_LOAD_CONFIG`
98
+ - When set to `1`, the AWS SDK reads `~/.aws/config` (needed for many config-driven profiles).
99
+ - Flurry sets this automatically to `1` when `AWS_PROFILE` is set.
100
+
101
+ Region:
102
+
103
+ - `AWS_REGION` / `AWS_DEFAULT_REGION`
104
+ - Used by the AWS SDK clients (SQS/Kinesis) and for some auth flows.
105
+ - If not set, Flurry falls back to `us-east-1`.
106
+
107
+ Web identity (OIDC) / role assumption (common in CI):
108
+
109
+ - `AWS_ROLE_ARN`, `AWS_WEB_IDENTITY_TOKEN_FILE`
110
+ - Used for GitHub Actions OIDC / IRSA-style auth.
111
+
112
+ - `AWS_ROLE_SESSION_NAME`
113
+ - Optional session name for assumed roles.