flurry-cli 0.0.3 → 0.0.5

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 +67 -12
  3. package/dist/cli.js +153 -68
  4. package/package.json +10 -9
  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
@@ -1,17 +1,15 @@
1
- # Flurry
2
-
3
- ![Flurry logo!](images/flurrylogo_small.jpg "Flurry logo")
1
+ <img src="https://flurrytest.com/flurrylogo.jpg" alt="Flurry logo" width="150"/><br/>
4
2
 
5
3
  A command-line interface for running Flurry API testing collections.
6
4
 
7
5
  ### Required Options
8
6
 
9
7
  - `--collection-id` - The collection ID to run
10
- - `--api-key` - Your API key for authentication
11
- - `--environment` - The environment name to use
8
+ - `--api-key` - Your API key for authentication (required unless `FLURRY_API_KEY` is set)
12
9
 
13
10
  ### Optional Options
14
11
 
12
+ - `--environment` - The environment name to use. If omitted, the CLI runs with a temporary empty environment.
15
13
  - `--run-flow-id` - Run a single flow by ID (runs entire collection if not specified)
16
14
  - `--verbose` - Set to true for detailed output (default: false)
17
15
  - `--fail-fast` - Stop immediately on first assertion failure (default: true). Set to false to continue running all tests
@@ -21,15 +19,72 @@ A command-line interface for running Flurry API testing collections.
21
19
 
22
20
  ### Run entire collection
23
21
  ```bash
24
- npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=development
22
+ npx flurry-cli@latest --collection-id=<COLLECTION_ID> --api-key=your-api-key --environment=staging
25
23
  ```
26
24
 
27
- ### Run specific flow with verbose output
25
+ ### Run specific flow
28
26
  ```bash
29
- npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=staging --run-flow-id=flow456 --verbose=true
27
+ npx flurry-cli@latest --collection-id=<COLLECTION_ID> --api-key=your-api-key --environment=staging --run-flow-id=flow456
30
28
  ```
31
29
 
32
- ### Run collection without fail-fast (continue on assertion failures)
33
- ```bash
34
- npx flurry-cli --collection-id=abc123 --api-key=your-api-key --environment=development --fail-fast=false
35
- ```
30
+ ## AWS Credentials
31
+
32
+ Flurry uses the AWS SDK for JavaScript (v3) to talk to AWS.
33
+
34
+ Flurry resolves AWS credentials in this order:
35
+
36
+ 1. **Environment credentials**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, optional `AWS_SESSION_TOKEN`
37
+ 2. **Shared config/credentials files**: `~/.aws/credentials` and `~/.aws/config` using `AWS_PROFILE` / `AWS_DEFAULT_PROFILE`
38
+ 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`)
39
+ 4. **Default AWS SDK provider chain** as a final fallback.
40
+
41
+ ### GitHub Actions / CI
42
+
43
+ In GitHub Actions you typically should **not** rely on AWS profiles. Prefer one of:
44
+
45
+ - **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.
46
+ - **Static secrets**: set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and optionally `AWS_SESSION_TOKEN`.
47
+
48
+ If you want to use AWS credentials obtained through logging in with the AWS CLI, ensure the runner has access to the appropriate `~/.aws/config`, set
49
+ `FLURRY_ENABLE_AWS_CLI_CREDENTIALS` to 1, and `AWS_PROFILE` to the profile used when loggin in.
50
+
51
+ ## Environment Variables
52
+
53
+ ### Flurry
54
+
55
+ - `FLURRY_API_KEY`
56
+ - Alternative to passing `--api-key`.
57
+
58
+ - `FLURRY_ENABLE_AWS_CLI_CREDENTIALS`
59
+ - When set to `true`, Flurry may use the AWS CLI fallback (`aws configure export-credentials ...`) if normal SDK credential resolution fails.
60
+ - Default is disabled to avoid unexpected subprocess execution in CI/locked-down environments.
61
+
62
+ ### AWS (standard)
63
+
64
+ Credentials selection:
65
+
66
+ - `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`
67
+ - Direct credentials. Highest priority. Recommended for CI.
68
+
69
+ - `AWS_PROFILE` / `AWS_DEFAULT_PROFILE`
70
+ - Selects a named profile in your AWS config/credentials files.
71
+
72
+ Files:
73
+
74
+ - `AWS_SHARED_CREDENTIALS_FILE`
75
+ - Overrides the default `~/.aws/credentials` path.
76
+
77
+ - `AWS_CONFIG_FILE`
78
+ - Overrides the default `~/.aws/config` path.
79
+
80
+ Config loading:
81
+
82
+ - `AWS_SDK_LOAD_CONFIG`
83
+ - When set to `1`, the AWS SDK reads `~/.aws/config` (needed for many config-driven profiles).
84
+ - Flurry sets this automatically to `1` when `AWS_PROFILE` is set.
85
+
86
+ Region:
87
+
88
+ - `AWS_REGION` / `AWS_DEFAULT_REGION`
89
+ - Used by the AWS SDK clients (SQS/Kinesis) and for some auth flows.
90
+ - If not set, Flurry falls back to `us-east-1`.