mirror of
https://github.com/Infisical/infisical.git
synced 2025-03-24 00:15:26 +00:00
Compare commits
43 Commits
add-gitlea
...
infisical-
Author | SHA1 | Date | |
---|---|---|---|
d9057216b5 | |||
6aab90590f | |||
f7466d4855 | |||
ea2565ed35 | |||
4586656b85 | |||
e4953398df | |||
7722231656 | |||
845a476974 | |||
fc19a17f4b | |||
0890b1912f | |||
82ecc2d7dc | |||
460bdbb91c | |||
446a63a917 | |||
d67cb7b507 | |||
9f40266f5c | |||
8af8a1d3d5 | |||
631423fbc8 | |||
4383779377 | |||
20294ee233 | |||
c5a924e935 | |||
429bfd27b2 | |||
c99c873d78 | |||
092a6911ce | |||
a9b642e618 | |||
919ddf5de2 | |||
89a89af4e6 | |||
960063e61a | |||
abf4eaf6db | |||
739f97f5c9 | |||
faed5c1821 | |||
c95598aaa6 | |||
e791684f4d | |||
d32c5fb869 | |||
abbf1918dc | |||
876d0119d3 | |||
6d70dc437e | |||
174e22a2bc | |||
f4815641d8 | |||
5b95c255ec | |||
3123f6fc1f | |||
a913cd97a4 | |||
7aa5ef844c | |||
fd9387a25e |
1
.github/workflows/release_build.yml
vendored
1
.github/workflows/release_build.yml
vendored
@ -46,6 +46,7 @@ jobs:
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GO_RELEASER_GITHUB_TOKEN }}
|
||||
POSTHOG_API_KEY_FOR_CLI: ${{ secrets.POSTHOG_API_KEY_FOR_CLI }}
|
||||
FURY_TOKEN: ${{ secrets.FURYPUSHTOKEN }}
|
||||
AUR_KEY: ${{ secrets.AUR_KEY }}
|
||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||
|
@ -18,7 +18,9 @@ monorepo:
|
||||
builds:
|
||||
- id: darwin-build
|
||||
binary: infisical
|
||||
ldflags: -X github.com/Infisical/infisical-merge/packages/util.CLI_VERSION={{ .Version }}
|
||||
ldflags:
|
||||
- -X github.com/Infisical/infisical-merge/packages/util.CLI_VERSION={{ .Version }}
|
||||
- -X github.com/Infisical/infisical-merge/packages/telemetry.POSTHOG_API_KEY_FOR_CLI={{ .Env.POSTHOG_API_KEY_FOR_CLI }}
|
||||
flags:
|
||||
- -trimpath
|
||||
env:
|
||||
@ -36,7 +38,9 @@ builds:
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
binary: infisical
|
||||
ldflags: -X github.com/Infisical/infisical-merge/packages/util.CLI_VERSION={{ .Version }}
|
||||
ldflags:
|
||||
- -X github.com/Infisical/infisical-merge/packages/util.CLI_VERSION={{ .Version }}
|
||||
- -X github.com/Infisical/infisical-merge/packages/telemetry.POSTHOG_API_KEY_FOR_CLI={{ .Env.POSTHOG_API_KEY_FOR_CLI }}
|
||||
flags:
|
||||
- -trimpath
|
||||
goos:
|
||||
|
24
README.md
24
README.md
@ -89,6 +89,30 @@ git clone https://github.com/Infisical/infisical && cd infisical && copy .env.ex
|
||||
|
||||
Create an account at `http://localhost:80`
|
||||
|
||||
### Scan and prevent secret leaks
|
||||
On top managing secrets with Infisical, you can also scan for over 140+ secret types in your files, directories and git repositories.
|
||||
|
||||
To scan your full git history, run:
|
||||
|
||||
```
|
||||
infisical scan --verbose
|
||||
```
|
||||
|
||||
To scan your uncommitted git changes, run:
|
||||
|
||||
```
|
||||
infisical scan git-changes --verbose
|
||||
```
|
||||
|
||||
You can also scan your uncommited but staged changes by running the command below. This command can also be used as a pre-commit hook to prevent secret leak.
|
||||
|
||||
```
|
||||
infisical scan git-changes --staged --verbose
|
||||
```
|
||||
|
||||
Lean about Infisical's code scanning feature [here](https://infisical.com/docs/cli/scanning-overview)
|
||||
|
||||
|
||||
## Open-source vs. paid
|
||||
|
||||
This repo available under the [MIT expat license](https://github.com/Infisical/infisical/blob/main/LICENSE), with the exception of the `ee` directory which will contain premium enterprise features requiring a Infisical license in the future.
|
||||
|
442
backend/package-lock.json
generated
442
backend/package-lock.json
generated
@ -9,16 +9,16 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.312.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.319.0",
|
||||
"@godaddy/terminus": "^4.12.0",
|
||||
"@octokit/rest": "^19.0.5",
|
||||
"@sentry/node": "^7.41.0",
|
||||
"@sentry/node": "^7.49.0",
|
||||
"@sentry/tracing": "^7.48.0",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/libsodium-wrappers": "^0.7.10",
|
||||
"argon2": "^0.30.3",
|
||||
"await-to-js": "^3.0.0",
|
||||
"aws-sdk": "^2.1360.0",
|
||||
"aws-sdk": "^2.1364.0",
|
||||
"axios": "^1.3.5",
|
||||
"axios-retry": "^3.4.0",
|
||||
"bcrypt": "^5.1.0",
|
||||
@ -234,15 +234,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager": {
|
||||
"version": "3.312.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.312.0.tgz",
|
||||
"integrity": "sha512-8MhjP8xXU9pWnWi43YvsU/EIj9R4ABUo+XpNsxHkR9KTsG2QR/0h/xjQO9hqZOukZYW8DwdwLRxH81FsDTLYEQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.319.0.tgz",
|
||||
"integrity": "sha512-3YPzBvr/hRlH3MbivWYGdvY4EMLwBVAE93gZjfIrkjvpufd/OKX5OoO8Q0EhOkfnc2VIw0DMT2x6ERtgXuVc4Q==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.312.0",
|
||||
"@aws-sdk/client-sts": "3.319.0",
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.319.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.310.0",
|
||||
"@aws-sdk/hash-node": "3.310.0",
|
||||
"@aws-sdk/invalid-dependency": "3.310.0",
|
||||
@ -255,19 +255,19 @@
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-signing": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -292,9 +292,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.310.0.tgz",
|
||||
"integrity": "sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.319.0.tgz",
|
||||
"integrity": "sha512-g46KgAjRiYBS8Oi85DPwSAQpt+Hgmw/YFgGVwZqMfTL70KNJwLFKRa5D9UocQd7t7OjPRdKF7g0Gp5peyAK9dw==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -310,19 +310,19 @@
|
||||
"@aws-sdk/middleware-retry": "3.310.0",
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -334,9 +334,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.310.0.tgz",
|
||||
"integrity": "sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.319.0.tgz",
|
||||
"integrity": "sha512-GJBgT/tephRZY3oTbDBMv+G9taoqKUIvGPn+7shmzz2P1SerutsRSfKfDXV+VptPNRoGmjjCLPmWjMFYbFKILQ==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -352,19 +352,19 @@
|
||||
"@aws-sdk/middleware-retry": "3.310.0",
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -376,14 +376,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sts": {
|
||||
"version": "3.312.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.312.0.tgz",
|
||||
"integrity": "sha512-t0U7vRvWaMjrzBUo6tPrHe6HE97Blqx+b4GOjFbcbLtzxLlcRfhnWJik0Lp8hJtVqzNoN5mL4OeYgK7CRpL/Sw==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.319.0.tgz",
|
||||
"integrity": "sha512-PRGGKCSKtyM3x629J9j4DMsH1cQT8UGW+R67u9Q5HrMK05gfjpmg+X1DQ3pgve4D8MI4R/Cm3NkYl2eUTbQHQg==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.319.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.310.0",
|
||||
"@aws-sdk/hash-node": "3.310.0",
|
||||
"@aws-sdk/invalid-dependency": "3.310.0",
|
||||
@ -397,19 +397,19 @@
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-signing": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -464,14 +464,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.310.0.tgz",
|
||||
"integrity": "sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.319.0.tgz",
|
||||
"integrity": "sha512-pzx388Fw1KlSgmIMUyRY8DJVYM3aXpwzjprD4RiQVPJeAI+t7oQmEvd2FiUZEuHDjWXcuonxgU+dk7i7HUk/HQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
"@aws-sdk/credential-provider-process": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.319.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.310.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
@ -483,15 +483,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-node": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.310.0.tgz",
|
||||
"integrity": "sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.319.0.tgz",
|
||||
"integrity": "sha512-DS4a0Rdd7ZtMshoeE+zuSgbC05YBcdzd0h89u/eX+1Yqx+HCjeb8WXkbXsz0Mwx8q9TE04aS8f6Bw9J4x4mO5g==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.310.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.319.0",
|
||||
"@aws-sdk/credential-provider-process": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.319.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.310.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
@ -517,14 +517,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.310.0.tgz",
|
||||
"integrity": "sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.319.0.tgz",
|
||||
"integrity": "sha512-gAUnWH41lxkIbANXu+Rz5zS0Iavjjmpf3C56vAMT7oaYZ3Cg/Ys5l2SwAucQGOCA2DdS2hDiSI8E+Yhr4F5toA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": "3.310.0",
|
||||
"@aws-sdk/client-sso": "3.319.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
"@aws-sdk/token-providers": "3.310.0",
|
||||
"@aws-sdk/token-providers": "3.319.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"tslib": "^2.5.0"
|
||||
},
|
||||
@ -727,13 +727,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz",
|
||||
"integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.319.0.tgz",
|
||||
"integrity": "sha512-ytaLx2dlR5AdMSne6FuDCISVg8hjyKj+cHU20b2CRA/E/z+XXrLrssp4JrCgizRKPPUep0psMIa22Zd6osTT5Q==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"tslib": "^2.5.0"
|
||||
},
|
||||
"engines": {
|
||||
@ -856,9 +856,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/smithy-client": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.310.0.tgz",
|
||||
"integrity": "sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.316.0.tgz",
|
||||
"integrity": "sha512-6YXOKbRnXeS8r8RWzuL6JMBolDYM5Wa4fD/VY6x/wK78i2xErHOvqzHgyyeLI1MMw4uqyd4wRNJNWC9TMPduXw==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -869,11 +869,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/token-providers": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.310.0.tgz",
|
||||
"integrity": "sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.319.0.tgz",
|
||||
"integrity": "sha512-5utg6VL6Pl0uiLUn8ZJPYYxzCb9VRPsgJmGXktRUwq0YlTJ6ABcaxTXwZcC++sjh/qyCQDK5PPLNU5kIBttHMQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso-oidc": "3.310.0",
|
||||
"@aws-sdk/client-sso-oidc": "3.319.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -959,9 +959,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-defaults-mode-browser": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.310.0.tgz",
|
||||
"integrity": "sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.316.0.tgz",
|
||||
"integrity": "sha512-6FSqLhYmaihtH2n1s4b2rlLW0ABU8N6VZIfzLfe2ING4PF0MzfaMMhnTFUHVXfKCVGoR8yP6iyFTRCyHGVEL1w==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -973,9 +973,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-defaults-mode-node": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.310.0.tgz",
|
||||
"integrity": "sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.316.0.tgz",
|
||||
"integrity": "sha512-dkYy10hdjPSScXXvnjGpZpnJxllkb6ICHgLMwZ4JczLHhPM12T/4PQ758YN8HS+muiYDGX1Bl2z1jd/bMcewBQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
@ -989,9 +989,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-endpoints": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz",
|
||||
"integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.319.0.tgz",
|
||||
"integrity": "sha512-3I64UMoYA2e2++oOUJXRcFtYLpLylnZFRltWfPo1B3dLlf+MIWat9djT+mMus+hW1ntLsvAIVu1hLVePJC0gvw==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"tslib": "^2.5.0"
|
||||
@ -3654,13 +3654,13 @@
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"node_modules/@sentry-internal/tracing": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.47.0.tgz",
|
||||
"integrity": "sha512-udpHnCzF8DQsWf0gQwd0XFGp6Y8MOiwnl8vGt2ohqZGS3m1+IxoRLXsSkD8qmvN6KKDnwbaAvYnK0z0L+AW95g==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.49.0.tgz",
|
||||
"integrity": "sha512-ESh3+ZneQk/3HESTUmIPNrW5GVPu/HrRJU+eAJJto74vm+6vP7zDn2YV2gJ1w18O/37nc7W/bVCgZJlhZ3cwew==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.47.0",
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/core": "7.49.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -3668,12 +3668,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/tracing/node_modules/@sentry/core": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz",
|
||||
"integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.49.0.tgz",
|
||||
"integrity": "sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -3681,19 +3681,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/tracing/node_modules/@sentry/types": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz",
|
||||
"integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.49.0.tgz",
|
||||
"integrity": "sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/tracing/node_modules/@sentry/utils": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz",
|
||||
"integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.49.0.tgz",
|
||||
"integrity": "sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -3724,14 +3724,14 @@
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@sentry/node": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.47.0.tgz",
|
||||
"integrity": "sha512-LTg2r5EV9yh4GLYDF+ViSltR9LLj/pcvk8YhANJcMO3Fp//xh8njcdU0FC2yNthUREawYDzAsVzLyCYJfV0H1A==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.49.0.tgz",
|
||||
"integrity": "sha512-KLIrqcbKk4yR3g8fjl87Eyv4M9j4YI6b7sqVAZYj3FrX3mC6JQyGdlDfUpSKy604n1iAdr6OuUp5f9x7jPJaeQ==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/tracing": "7.47.0",
|
||||
"@sentry/core": "7.47.0",
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry-internal/tracing": "7.49.0",
|
||||
"@sentry/core": "7.49.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"cookie": "^0.4.1",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"lru_map": "^0.3.3",
|
||||
@ -3742,12 +3742,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/core": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz",
|
||||
"integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.49.0.tgz",
|
||||
"integrity": "sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -3755,19 +3755,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/types": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz",
|
||||
"integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.49.0.tgz",
|
||||
"integrity": "sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/utils": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz",
|
||||
"integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.49.0.tgz",
|
||||
"integrity": "sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -4824,9 +4824,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/aws-sdk": {
|
||||
"version": "2.1360.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1360.0.tgz",
|
||||
"integrity": "sha512-wW1CviH1s6bl5+wO+KM7aSc3yy6cQPJT85Fd4rQgrn0uwfjg9fx7KJ0FRhv+eU4DabkRjcSMlKo1IGhARmT6Tw==",
|
||||
"version": "2.1364.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1364.0.tgz",
|
||||
"integrity": "sha512-PFoq9Rnu0DVi07wZ/SjKlrJDwso8AxE5q/ufLdNtINZPaSkB92OqKYVdlfQ4srsH2ala2NCrg8gFX98SCmqW3w==",
|
||||
"dependencies": {
|
||||
"buffer": "4.9.2",
|
||||
"events": "1.1.1",
|
||||
@ -13398,15 +13398,15 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-secrets-manager": {
|
||||
"version": "3.312.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.312.0.tgz",
|
||||
"integrity": "sha512-8MhjP8xXU9pWnWi43YvsU/EIj9R4ABUo+XpNsxHkR9KTsG2QR/0h/xjQO9hqZOukZYW8DwdwLRxH81FsDTLYEQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.319.0.tgz",
|
||||
"integrity": "sha512-3YPzBvr/hRlH3MbivWYGdvY4EMLwBVAE93gZjfIrkjvpufd/OKX5OoO8Q0EhOkfnc2VIw0DMT2x6ERtgXuVc4Q==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.312.0",
|
||||
"@aws-sdk/client-sts": "3.319.0",
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.319.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.310.0",
|
||||
"@aws-sdk/hash-node": "3.310.0",
|
||||
"@aws-sdk/invalid-dependency": "3.310.0",
|
||||
@ -13419,19 +13419,19 @@
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-signing": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -13450,9 +13450,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.310.0.tgz",
|
||||
"integrity": "sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.319.0.tgz",
|
||||
"integrity": "sha512-g46KgAjRiYBS8Oi85DPwSAQpt+Hgmw/YFgGVwZqMfTL70KNJwLFKRa5D9UocQd7t7OjPRdKF7g0Gp5peyAK9dw==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -13468,19 +13468,19 @@
|
||||
"@aws-sdk/middleware-retry": "3.310.0",
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -13489,9 +13489,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.310.0.tgz",
|
||||
"integrity": "sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.319.0.tgz",
|
||||
"integrity": "sha512-GJBgT/tephRZY3oTbDBMv+G9taoqKUIvGPn+7shmzz2P1SerutsRSfKfDXV+VptPNRoGmjjCLPmWjMFYbFKILQ==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -13507,19 +13507,19 @@
|
||||
"@aws-sdk/middleware-retry": "3.310.0",
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -13528,14 +13528,14 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.312.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.312.0.tgz",
|
||||
"integrity": "sha512-t0U7vRvWaMjrzBUo6tPrHe6HE97Blqx+b4GOjFbcbLtzxLlcRfhnWJik0Lp8hJtVqzNoN5mL4OeYgK7CRpL/Sw==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.319.0.tgz",
|
||||
"integrity": "sha512-PRGGKCSKtyM3x629J9j4DMsH1cQT8UGW+R67u9Q5HrMK05gfjpmg+X1DQ3pgve4D8MI4R/Cm3NkYl2eUTbQHQg==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.310.0",
|
||||
"@aws-sdk/credential-provider-node": "3.319.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.310.0",
|
||||
"@aws-sdk/hash-node": "3.310.0",
|
||||
"@aws-sdk/invalid-dependency": "3.310.0",
|
||||
@ -13549,19 +13549,19 @@
|
||||
"@aws-sdk/middleware-serde": "3.310.0",
|
||||
"@aws-sdk/middleware-signing": "3.310.0",
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.310.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.319.0",
|
||||
"@aws-sdk/node-config-provider": "3.310.0",
|
||||
"@aws-sdk/node-http-handler": "3.310.0",
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.310.0",
|
||||
"@aws-sdk/smithy-client": "3.316.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/url-parser": "3.310.0",
|
||||
"@aws-sdk/util-base64": "3.310.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.310.0",
|
||||
"@aws-sdk/util-body-length-node": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.316.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.316.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"@aws-sdk/util-retry": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.310.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.310.0",
|
||||
@ -13604,14 +13604,14 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.310.0.tgz",
|
||||
"integrity": "sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.319.0.tgz",
|
||||
"integrity": "sha512-pzx388Fw1KlSgmIMUyRY8DJVYM3aXpwzjprD4RiQVPJeAI+t7oQmEvd2FiUZEuHDjWXcuonxgU+dk7i7HUk/HQ==",
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
"@aws-sdk/credential-provider-process": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.319.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.310.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
@ -13620,15 +13620,15 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.310.0.tgz",
|
||||
"integrity": "sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.319.0.tgz",
|
||||
"integrity": "sha512-DS4a0Rdd7ZtMshoeE+zuSgbC05YBcdzd0h89u/eX+1Yqx+HCjeb8WXkbXsz0Mwx8q9TE04aS8f6Bw9J4x4mO5g==",
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.310.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.319.0",
|
||||
"@aws-sdk/credential-provider-process": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.310.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.319.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.310.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
@ -13648,14 +13648,14 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.310.0.tgz",
|
||||
"integrity": "sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.319.0.tgz",
|
||||
"integrity": "sha512-gAUnWH41lxkIbANXu+Rz5zS0Iavjjmpf3C56vAMT7oaYZ3Cg/Ys5l2SwAucQGOCA2DdS2hDiSI8E+Yhr4F5toA==",
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso": "3.310.0",
|
||||
"@aws-sdk/client-sso": "3.319.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
"@aws-sdk/token-providers": "3.310.0",
|
||||
"@aws-sdk/token-providers": "3.319.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"tslib": "^2.5.0"
|
||||
}
|
||||
@ -13816,13 +13816,13 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz",
|
||||
"integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.319.0.tgz",
|
||||
"integrity": "sha512-ytaLx2dlR5AdMSne6FuDCISVg8hjyKj+cHU20b2CRA/E/z+XXrLrssp4JrCgizRKPPUep0psMIa22Zd6osTT5Q==",
|
||||
"requires": {
|
||||
"@aws-sdk/protocol-http": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.310.0",
|
||||
"@aws-sdk/util-endpoints": "3.319.0",
|
||||
"tslib": "^2.5.0"
|
||||
}
|
||||
},
|
||||
@ -13915,9 +13915,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/smithy-client": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.310.0.tgz",
|
||||
"integrity": "sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.316.0.tgz",
|
||||
"integrity": "sha512-6YXOKbRnXeS8r8RWzuL6JMBolDYM5Wa4fD/VY6x/wK78i2xErHOvqzHgyyeLI1MMw4uqyd4wRNJNWC9TMPduXw==",
|
||||
"requires": {
|
||||
"@aws-sdk/middleware-stack": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -13925,11 +13925,11 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/token-providers": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.310.0.tgz",
|
||||
"integrity": "sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.319.0.tgz",
|
||||
"integrity": "sha512-5utg6VL6Pl0uiLUn8ZJPYYxzCb9VRPsgJmGXktRUwq0YlTJ6ABcaxTXwZcC++sjh/qyCQDK5PPLNU5kIBttHMQ==",
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso-oidc": "3.310.0",
|
||||
"@aws-sdk/client-sso-oidc": "3.319.0",
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -13997,9 +13997,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-defaults-mode-browser": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.310.0.tgz",
|
||||
"integrity": "sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.316.0.tgz",
|
||||
"integrity": "sha512-6FSqLhYmaihtH2n1s4b2rlLW0ABU8N6VZIfzLfe2ING4PF0MzfaMMhnTFUHVXfKCVGoR8yP6iyFTRCyHGVEL1w==",
|
||||
"requires": {
|
||||
"@aws-sdk/property-provider": "3.310.0",
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
@ -14008,9 +14008,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-defaults-mode-node": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.310.0.tgz",
|
||||
"integrity": "sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA==",
|
||||
"version": "3.316.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.316.0.tgz",
|
||||
"integrity": "sha512-dkYy10hdjPSScXXvnjGpZpnJxllkb6ICHgLMwZ4JczLHhPM12T/4PQ758YN8HS+muiYDGX1Bl2z1jd/bMcewBQ==",
|
||||
"requires": {
|
||||
"@aws-sdk/config-resolver": "3.310.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.310.0",
|
||||
@ -14021,9 +14021,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/util-endpoints": {
|
||||
"version": "3.310.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz",
|
||||
"integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==",
|
||||
"version": "3.319.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.319.0.tgz",
|
||||
"integrity": "sha512-3I64UMoYA2e2++oOUJXRcFtYLpLylnZFRltWfPo1B3dLlf+MIWat9djT+mMus+hW1ntLsvAIVu1hLVePJC0gvw==",
|
||||
"requires": {
|
||||
"@aws-sdk/types": "3.310.0",
|
||||
"tslib": "^2.5.0"
|
||||
@ -16063,37 +16063,37 @@
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"@sentry-internal/tracing": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.47.0.tgz",
|
||||
"integrity": "sha512-udpHnCzF8DQsWf0gQwd0XFGp6Y8MOiwnl8vGt2ohqZGS3m1+IxoRLXsSkD8qmvN6KKDnwbaAvYnK0z0L+AW95g==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.49.0.tgz",
|
||||
"integrity": "sha512-ESh3+ZneQk/3HESTUmIPNrW5GVPu/HrRJU+eAJJto74vm+6vP7zDn2YV2gJ1w18O/37nc7W/bVCgZJlhZ3cwew==",
|
||||
"requires": {
|
||||
"@sentry/core": "7.47.0",
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/core": "7.49.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/core": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz",
|
||||
"integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.49.0.tgz",
|
||||
"integrity": "sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz",
|
||||
"integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA=="
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.49.0.tgz",
|
||||
"integrity": "sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz",
|
||||
"integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.49.0.tgz",
|
||||
"integrity": "sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
@ -16122,14 +16122,14 @@
|
||||
}
|
||||
},
|
||||
"@sentry/node": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.47.0.tgz",
|
||||
"integrity": "sha512-LTg2r5EV9yh4GLYDF+ViSltR9LLj/pcvk8YhANJcMO3Fp//xh8njcdU0FC2yNthUREawYDzAsVzLyCYJfV0H1A==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.49.0.tgz",
|
||||
"integrity": "sha512-KLIrqcbKk4yR3g8fjl87Eyv4M9j4YI6b7sqVAZYj3FrX3mC6JQyGdlDfUpSKy604n1iAdr6OuUp5f9x7jPJaeQ==",
|
||||
"requires": {
|
||||
"@sentry-internal/tracing": "7.47.0",
|
||||
"@sentry/core": "7.47.0",
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry-internal/tracing": "7.49.0",
|
||||
"@sentry/core": "7.49.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"cookie": "^0.4.1",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"lru_map": "^0.3.3",
|
||||
@ -16137,26 +16137,26 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/core": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.47.0.tgz",
|
||||
"integrity": "sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.49.0.tgz",
|
||||
"integrity": "sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/utils": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"@sentry/utils": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.47.0.tgz",
|
||||
"integrity": "sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA=="
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.49.0.tgz",
|
||||
"integrity": "sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "7.47.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.47.0.tgz",
|
||||
"integrity": "sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==",
|
||||
"version": "7.49.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.49.0.tgz",
|
||||
"integrity": "sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.47.0",
|
||||
"@sentry/types": "7.49.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
@ -16973,9 +16973,9 @@
|
||||
"integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g=="
|
||||
},
|
||||
"aws-sdk": {
|
||||
"version": "2.1360.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1360.0.tgz",
|
||||
"integrity": "sha512-wW1CviH1s6bl5+wO+KM7aSc3yy6cQPJT85Fd4rQgrn0uwfjg9fx7KJ0FRhv+eU4DabkRjcSMlKo1IGhARmT6Tw==",
|
||||
"version": "2.1364.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1364.0.tgz",
|
||||
"integrity": "sha512-PFoq9Rnu0DVi07wZ/SjKlrJDwso8AxE5q/ufLdNtINZPaSkB92OqKYVdlfQ4srsH2ala2NCrg8gFX98SCmqW3w==",
|
||||
"requires": {
|
||||
"buffer": "4.9.2",
|
||||
"events": "1.1.1",
|
||||
|
@ -1,15 +1,15 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.312.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.319.0",
|
||||
"@godaddy/terminus": "^4.12.0",
|
||||
"@octokit/rest": "^19.0.5",
|
||||
"@sentry/node": "^7.41.0",
|
||||
"@sentry/node": "^7.49.0",
|
||||
"@sentry/tracing": "^7.48.0",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/libsodium-wrappers": "^0.7.10",
|
||||
"argon2": "^0.30.3",
|
||||
"await-to-js": "^3.0.0",
|
||||
"aws-sdk": "^2.1360.0",
|
||||
"aws-sdk": "^2.1364.0",
|
||||
"axios": "^1.3.5",
|
||||
"axios-retry": "^3.4.0",
|
||||
"bcrypt": "^5.1.0",
|
||||
|
@ -19,7 +19,8 @@ export const getOrganizations = async (req: Request, res: Response) => {
|
||||
try {
|
||||
organizations = (
|
||||
await MembershipOrg.find({
|
||||
user: req.user._id
|
||||
user: req.user._id,
|
||||
status: ACCEPTED
|
||||
}).populate('organization')
|
||||
).map((m) => m.organization);
|
||||
} catch (err) {
|
||||
|
@ -1554,8 +1554,14 @@ const syncSecretsGitLab = async ({
|
||||
accessToken: string;
|
||||
}) => {
|
||||
try {
|
||||
interface GitLabSecret {
|
||||
key: string;
|
||||
value: string;
|
||||
environment_scope: string;
|
||||
}
|
||||
|
||||
// get secrets from gitlab
|
||||
const getSecretsRes = (
|
||||
const getSecretsRes: GitLabSecret[] = (
|
||||
await request.get(
|
||||
`${INTEGRATION_GITLAB_API_URL}/v4/projects/${integration?.appId}/variables`,
|
||||
{
|
||||
@ -1565,7 +1571,11 @@ const syncSecretsGitLab = async ({
|
||||
},
|
||||
}
|
||||
)
|
||||
).data;
|
||||
)
|
||||
.data
|
||||
.filter((secret: GitLabSecret) =>
|
||||
secret.environment_scope === integration.targetEnvironment
|
||||
);
|
||||
|
||||
for await (const key of Object.keys(secrets)) {
|
||||
const existingSecret = getSecretsRes.find((s: any) => s.key == key);
|
||||
@ -1578,7 +1588,7 @@ const syncSecretsGitLab = async ({
|
||||
protected: false,
|
||||
masked: false,
|
||||
raw: false,
|
||||
environment_scope:'*'
|
||||
environment_scope: integration.targetEnvironment
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
@ -1589,21 +1599,23 @@ const syncSecretsGitLab = async ({
|
||||
}
|
||||
)
|
||||
} else {
|
||||
// udpate secret
|
||||
await request.put(
|
||||
`${INTEGRATION_GITLAB_API_URL}/v4/projects/${integration?.appId}/variables/${existingSecret.key}`,
|
||||
{
|
||||
...existingSecret,
|
||||
value: secrets[existingSecret.key]
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
"Authorization": `Bearer ${accessToken}`,
|
||||
"Content-Type": "application/json",
|
||||
"Accept-Encoding": "application/json",
|
||||
// update secret
|
||||
if (secrets[key] !== existingSecret.value) {
|
||||
await request.put(
|
||||
`${INTEGRATION_GITLAB_API_URL}/v4/projects/${integration?.appId}/variables/${existingSecret.key}?filter[environment_scope]=${integration.targetEnvironment}`,
|
||||
{
|
||||
...existingSecret,
|
||||
value: secrets[existingSecret.key]
|
||||
},
|
||||
}
|
||||
)
|
||||
{
|
||||
headers: {
|
||||
"Authorization": `Bearer ${accessToken}`,
|
||||
"Content-Type": "application/json",
|
||||
"Accept-Encoding": "application/json",
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1611,7 +1623,7 @@ const syncSecretsGitLab = async ({
|
||||
for await (const sec of getSecretsRes) {
|
||||
if (!(sec.key in secrets)) {
|
||||
await request.delete(
|
||||
`${INTEGRATION_GITLAB_API_URL}/v4/projects/${integration?.appId}/variables/${sec.key}`,
|
||||
`${INTEGRATION_GITLAB_API_URL}/v4/projects/${integration?.appId}/variables/${sec.key}?filter[environment_scope]=${integration.targetEnvironment}`,
|
||||
{
|
||||
headers: {
|
||||
"Authorization": `Bearer ${accessToken}`,
|
||||
@ -1620,7 +1632,7 @@ const syncSecretsGitLab = async ({
|
||||
);
|
||||
}
|
||||
}
|
||||
}catch (err) {
|
||||
} catch (err) {
|
||||
Sentry.setUser(null);
|
||||
Sentry.captureException(err);
|
||||
throw new Error("Failed to sync secrets to GitLab");
|
||||
|
@ -28,6 +28,7 @@ require (
|
||||
github.com/chzyer/readline v1.5.1 // indirect
|
||||
github.com/danieljoos/wincred v1.1.2 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/denisbrodbeck/machineid v1.0.1 // indirect
|
||||
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||
github.com/go-openapi/errors v0.20.2 // indirect
|
||||
@ -47,11 +48,13 @@ require (
|
||||
github.com/oklog/ulid v1.3.1 // indirect
|
||||
github.com/pelletier/go-toml v1.9.3 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/posthog/posthog-go v0.0.0-20221221115252-24dfed35d71a // indirect
|
||||
github.com/rivo/uniseg v0.2.0 // indirect
|
||||
github.com/spf13/afero v1.6.0 // indirect
|
||||
github.com/spf13/cast v1.3.1 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/subosito/gotenv v1.2.0 // indirect
|
||||
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect
|
||||
go.mongodb.org/mongo-driver v1.10.0 // indirect
|
||||
golang.org/x/net v0.7.0 // indirect
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
|
10
cli/go.sum
10
cli/go.sum
@ -69,6 +69,7 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
|
||||
@ -76,6 +77,8 @@ github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnG
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ=
|
||||
github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI=
|
||||
github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM=
|
||||
github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
@ -286,6 +289,8 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||
github.com/posthog/posthog-go v0.0.0-20221221115252-24dfed35d71a h1:Ey0XWvrg6u6hyIn1Kd/jCCmL+bMv9El81tvuGBbxZGg=
|
||||
github.com/posthog/posthog-go v0.0.0-20221221115252-24dfed35d71a/go.mod h1:oa2sAs9tGai3VldabTV0eWejt/O4/OOD7azP8GaikqU=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
@ -295,9 +300,11 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
||||
github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
|
||||
github.com/rs/zerolog v1.26.1 h1:/ihwxqH+4z8UxyI70wM1z9yCvkWcfz/a3mj48k/Zngc=
|
||||
github.com/rs/zerolog v1.26.1/go.mod h1:/wSSJWX7lVrsOwlbyTRSOJvqRlc+WjWlfes+CiJ+tmc=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
||||
@ -330,9 +337,12 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
|
||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||
github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
|
||||
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
|
||||
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c h1:3lbZUMbMiGUW/LMkfsEABsc5zNT9+b1CvsJx47JzJ8g=
|
||||
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM=
|
||||
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
|
||||
"github.com/Infisical/infisical-merge/packages/models"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -95,6 +96,8 @@ var exportCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
fmt.Print(output)
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:export", posthog.NewProperties().Set("secretsCount", len(secrets)).Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/manifoldco/promptui"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -78,6 +79,9 @@ var initCmd = &cobra.Command{
|
||||
if err != nil {
|
||||
util.HandleError(err)
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:init", posthog.NewProperties().Set("version", util.CLI_VERSION))
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@ import (
|
||||
"github.com/fatih/color"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/manifoldco/promptui"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
"golang.org/x/crypto/argon2"
|
||||
@ -275,6 +276,7 @@ var loginCmd = &cobra.Command{
|
||||
plainBold.Println("\nQuick links")
|
||||
fmt.Println("- Learn to inject secrets into your application at https://infisical.com/docs/cli/usage")
|
||||
fmt.Println("- Stuck? Join our slack for quick support https://infisical.com/slack")
|
||||
Telemetry.CaptureEvent("cli-command:login", posthog.NewProperties().Set("infisical-backend", config.INFISICAL_URL).Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"os"
|
||||
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@ -37,6 +38,7 @@ var resetCmd = &cobra.Command{
|
||||
util.DeleteBackupSecrets()
|
||||
|
||||
util.PrintSuccessMessage("Reset successful")
|
||||
Telemetry.CaptureEvent("cli-command:reset", posthog.NewProperties().Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -12,9 +12,12 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/Infisical/infisical-merge/packages/config"
|
||||
"github.com/Infisical/infisical-merge/packages/telemetry"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
)
|
||||
|
||||
var Telemetry *telemetry.Telemetry
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "infisical",
|
||||
Short: "Infisical CLI is used to inject environment variables into any process",
|
||||
@ -35,6 +38,7 @@ func Execute() {
|
||||
func init() {
|
||||
cobra.OnInitialize(initLog)
|
||||
rootCmd.PersistentFlags().StringP("log-level", "l", "info", "log level (trace, debug, info, warn, error, fatal)")
|
||||
rootCmd.PersistentFlags().Bool("telemetry", true, "Infisical collects non-sensitive telemetry data to enhance features and improve user experience. Participation is voluntary")
|
||||
rootCmd.PersistentFlags().StringVar(&config.INFISICAL_URL, "domain", util.INFISICAL_DEFAULT_API_URL, "Point the CLI to your own backend [can also set via environment variable name: INFISICAL_API_URL]")
|
||||
rootCmd.PersistentPreRun = func(cmd *cobra.Command, args []string) {
|
||||
if !util.IsRunningInDocker() {
|
||||
@ -49,6 +53,9 @@ func init() {
|
||||
config.INFISICAL_URL = envInfisicalBackendUrl
|
||||
}
|
||||
}
|
||||
|
||||
isTelemetryOn, _ := rootCmd.PersistentFlags().GetBool("telemetry")
|
||||
Telemetry = telemetry.NewTelemetry(isTelemetryOn)
|
||||
}
|
||||
|
||||
func initLog() {
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
"github.com/Infisical/infisical-merge/packages/models"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/fatih/color"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -125,6 +126,8 @@ var runCmd = &cobra.Command{
|
||||
|
||||
log.Debug().Msgf("injecting the following environment variables into shell: %v", env)
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:run", posthog.NewProperties().Set("secretsCount", len(secrets)).Set("environment", environmentName).Set("isUsingServiceToken", infisicalToken != "").Set("single-command", strings.Join(args, " ")).Set("multi-command", cmd.Flag("command").Value.String()).Set("version", util.CLI_VERSION))
|
||||
|
||||
if cmd.Flags().Changed("command") {
|
||||
command := cmd.Flag("command").Value.String()
|
||||
|
||||
|
@ -30,7 +30,9 @@ import (
|
||||
|
||||
"github.com/Infisical/infisical-merge/config"
|
||||
"github.com/Infisical/infisical-merge/detect"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/Infisical/infisical-merge/report"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
@ -270,6 +272,8 @@ var scanCmd = &cobra.Command{
|
||||
}
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:scan", posthog.NewProperties().Set("risks", len(findings)).Set("version", util.CLI_VERSION))
|
||||
|
||||
// write report if desired
|
||||
reportPath, _ := cmd.Flags().GetString("report-path")
|
||||
ext, _ := cmd.Flags().GetString("report-format")
|
||||
@ -375,6 +379,8 @@ var scanGitChangesCmd = &cobra.Command{
|
||||
log.Info().Msg("no leaks found")
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:scan git-changes", posthog.NewProperties().Set("risks", len(findings)).Set("version", util.CLI_VERSION))
|
||||
|
||||
reportPath, _ := cmd.Flags().GetString("report-path")
|
||||
ext, _ := cmd.Flags().GetString("report-format")
|
||||
if reportPath != "" {
|
||||
|
@ -19,6 +19,7 @@ import (
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/Infisical/infisical-merge/packages/visualize"
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -63,6 +64,7 @@ var secretsCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
visualize.PrintAllSecretDetails(secrets)
|
||||
Telemetry.CaptureEvent("cli-command:secrets", posthog.NewProperties().Set("secretCount", len(secrets)).Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
@ -266,6 +268,8 @@ var secretsSetCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
visualize.Table(headers, rows)
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:secrets set", posthog.NewProperties().Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
@ -333,6 +337,7 @@ var secretsDeleteCmd = &cobra.Command{
|
||||
|
||||
fmt.Printf("secret name(s) [%v] have been deleted from your project \n", strings.Join(args, ", "))
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:secrets delete", posthog.NewProperties().Set("secretCount", len(secrets)).Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
@ -377,6 +382,7 @@ func getSecretsByNames(cmd *cobra.Command, args []string) {
|
||||
}
|
||||
|
||||
visualize.PrintAllSecretDetails(requestedSecrets)
|
||||
Telemetry.CaptureEvent("cli-command:secrets get", posthog.NewProperties().Set("secretCount", len(secrets)).Set("version", util.CLI_VERSION))
|
||||
}
|
||||
|
||||
func generateExampleEnv(cmd *cobra.Command, args []string) {
|
||||
@ -565,6 +571,8 @@ func generateExampleEnv(cmd *cobra.Command, args []string) {
|
||||
fmt.Println(strings.Join(dashedList, ""))
|
||||
}
|
||||
fmt.Println(strings.Join(fullyGeneratedDocuments, ""))
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:generate-example-env", posthog.NewProperties().Set("secretCount", len(secrets)).Set("version", util.CLI_VERSION))
|
||||
}
|
||||
|
||||
func CenterString(s string, numStars int) string {
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"github.com/Infisical/infisical-merge/packages/models"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/manifoldco/promptui"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@ -78,6 +79,8 @@ var switchCmd = &cobra.Command{
|
||||
if err != nil {
|
||||
util.HandleError(err, "")
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:user switch", posthog.NewProperties().Set("numberOfLoggedInProfiles", len(loggedInProfiles)).Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
@ -174,7 +177,7 @@ var domainCmd = &cobra.Command{
|
||||
if err != nil {
|
||||
util.HandleError(err, "")
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:user domain", posthog.NewProperties().Set("version", util.CLI_VERSION))
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/99designs/keyring"
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/posthog/posthog-go"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@ -48,6 +49,8 @@ var vaultSetCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
fmt.Printf("\nSuccessfully, switched vault backend from [%s] to [%s]. Please login in again to store your login details in the new vault with [infisical login]", currentVaultBackend, wantedVaultTypeName)
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:vault set", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("wantedVault", wantedVaultTypeName).Set("version", util.CLI_VERSION))
|
||||
} else {
|
||||
log.Error().Msgf("The requested vault type [%s] is not available on this system. Only the following vault backends are available for you system: %s", wantedVaultTypeName, keyring.AvailableBackends())
|
||||
}
|
||||
@ -76,6 +79,8 @@ func printAvailableVaultBackends() {
|
||||
log.Error().Msgf("printAvailableVaultBackends: unable to print the available vault backend because of error [err=%s]", err)
|
||||
}
|
||||
|
||||
Telemetry.CaptureEvent("cli-command:vault", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("version", util.CLI_VERSION))
|
||||
|
||||
fmt.Printf("\n\nYou are currently using [%s] vault to store your login credentials", string(currentVaultBackend))
|
||||
}
|
||||
|
||||
|
69
cli/packages/telemetry/telemetry.go
Normal file
69
cli/packages/telemetry/telemetry.go
Normal file
@ -0,0 +1,69 @@
|
||||
package telemetry
|
||||
|
||||
import (
|
||||
"github.com/Infisical/infisical-merge/packages/util"
|
||||
"github.com/denisbrodbeck/machineid"
|
||||
"github.com/posthog/posthog-go"
|
||||
)
|
||||
|
||||
var POSTHOG_API_KEY_FOR_CLI string
|
||||
|
||||
type Telemetry struct {
|
||||
isEnabled bool
|
||||
posthogClient posthog.Client
|
||||
}
|
||||
|
||||
func NewTelemetry(telemetryIsEnabled bool) *Telemetry {
|
||||
if POSTHOG_API_KEY_FOR_CLI != "" {
|
||||
client, _ := posthog.NewWithConfig(
|
||||
POSTHOG_API_KEY_FOR_CLI,
|
||||
posthog.Config{},
|
||||
)
|
||||
|
||||
return &Telemetry{isEnabled: telemetryIsEnabled, posthogClient: client}
|
||||
} else {
|
||||
return &Telemetry{isEnabled: false}
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Telemetry) CaptureEvent(eventName string, properties posthog.Properties) {
|
||||
userIdentity, err := t.GetDistinctId()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if t.isEnabled {
|
||||
t.posthogClient.Enqueue(posthog.Capture{
|
||||
DistinctId: userIdentity,
|
||||
Event: eventName,
|
||||
Properties: properties,
|
||||
})
|
||||
|
||||
defer t.posthogClient.Close()
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Telemetry) GetDistinctId() (string, error) {
|
||||
var distinctId string
|
||||
var outputErr error
|
||||
|
||||
machineId, err := machineid.ID()
|
||||
if err != nil {
|
||||
outputErr = err
|
||||
}
|
||||
|
||||
infisicalConfig, err := util.GetConfigFile()
|
||||
if err != nil {
|
||||
outputErr = err
|
||||
}
|
||||
|
||||
if infisicalConfig.LoggedInUserEmail != "" {
|
||||
distinctId = infisicalConfig.LoggedInUserEmail
|
||||
} else if machineId != "" {
|
||||
distinctId = "anonymous_cli_" + machineId
|
||||
} else {
|
||||
distinctId = ""
|
||||
}
|
||||
|
||||
return distinctId, outputErr
|
||||
}
|
@ -49,7 +49,6 @@ services:
|
||||
volumes:
|
||||
- ./frontend/src:/app/src/ # mounted whole src to avoid missing reload on new files
|
||||
- ./frontend/public:/app/public
|
||||
- ./frontend/next-i18next.config.js:/app/next-i18next.config.js
|
||||
env_file: .env
|
||||
environment:
|
||||
- NEXT_PUBLIC_ENV=development
|
||||
|
104
docs/cli/commands/scan-git-changes.mdx
Normal file
104
docs/cli/commands/scan-git-changes.mdx
Normal file
@ -0,0 +1,104 @@
|
||||
---
|
||||
title: "scan git-changes"
|
||||
description: "Scan for secrets in your uncommitted code"
|
||||
---
|
||||
|
||||
```bash
|
||||
infisical scan git-changes
|
||||
|
||||
# Display the full secret findings
|
||||
infisical scan git-changes --verbose
|
||||
```
|
||||
|
||||
## Description
|
||||
Scanning for secrets before you commit your changes is great way to prevent leaks. Infisical makes this easy with the sub command `git-changes`.
|
||||
|
||||
The `git-changes` scans for uncommitted changes in a Git repository, and is especially designed for use on developer machines, aligning with the ['shift left'](https://cloud.google.com/architecture/devops/devops-tech-shifting-left-on-security) security approach.
|
||||
When `git-changes` is run on a Git repository, Infisical parses the output from a `git diff` command.
|
||||
|
||||
To scan changes in commits that have been staged via `git add`, you can add the `--staged` flag to the sub command. This flag is particularly useful when using Infisical CLI as a pre-commit tool.
|
||||
|
||||
### Flags
|
||||
<Accordion title="--staged">
|
||||
**Description**
|
||||
|
||||
detect secrets in a --staged state
|
||||
|
||||
Default value: `false`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--log-opts">
|
||||
**Description**
|
||||
|
||||
git log options
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--baseline-path">
|
||||
Short hand: `-b`
|
||||
|
||||
**Description**
|
||||
|
||||
path to baseline with issues that can be ignored
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--config">
|
||||
Short hand: `-c`
|
||||
|
||||
**Description**
|
||||
|
||||
config file path
|
||||
|
||||
order of precedence:
|
||||
1. --config flag
|
||||
2. env var INFISICAL_SCAN_CONFIG
|
||||
3. (--source/-s)/.infisical-scan.toml
|
||||
If none of the three options are used, then Infisical will use the default config
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--exit-code">
|
||||
**Description**
|
||||
|
||||
exit code when leaks have been encountered (default 1)
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--max-target-megabytes">
|
||||
**Description**
|
||||
|
||||
files larger than this will be skipped
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--no-color">
|
||||
**Description**
|
||||
|
||||
turn off color for verbose output
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--redact">
|
||||
**Description**
|
||||
|
||||
redact secrets from logs and stdout
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--report-format">
|
||||
**Description**
|
||||
|
||||
output format (json, csv, sarif) (default "json")
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--report-path">
|
||||
**Description**
|
||||
|
||||
report file
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--source">
|
||||
**Description**
|
||||
|
||||
path to source (default ".")
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--verbose">
|
||||
**Description**
|
||||
|
||||
show verbose output from scan
|
||||
</Accordion>
|
126
docs/cli/commands/scan.mdx
Normal file
126
docs/cli/commands/scan.mdx
Normal file
@ -0,0 +1,126 @@
|
||||
---
|
||||
title: "scan"
|
||||
description: "Scan git history, directories, and files for secrets"
|
||||
---
|
||||
|
||||
```bash
|
||||
infisical scan
|
||||
|
||||
# Display the full secret findings
|
||||
infisical scan --verbose
|
||||
```
|
||||
|
||||
## Description
|
||||
The `infisical scan` command serves to scan repositories, directories, and files. It's compatible with both individual developer machines and Continuous Integration (CI) environments.
|
||||
|
||||
When you run `infisical scan` on a Git repository, Infisical will parses the output of a `git log -p` command. This command generates [patches](https://stackoverflow.com/questions/8279602/what-is-a-patch-in-git-version-control) that Infisical uses to identify secrets in your code.
|
||||
You can configure the range of commits that `git log` will cover using the `--log-opts` flag.
|
||||
Any options you can use with `git log -p` are valid for `--log-opts`.
|
||||
|
||||
For instance, to instruct Infisical to scan a specific range of commits, use the following command: `infisical scan --log-opts="--all commitA..commitB"`. For more details, refer to the [Git log documentation](https://git-scm.com/docs/git-log).
|
||||
|
||||
To scan individual files and directories, use the `--no-git` flag.
|
||||
|
||||
### Flags
|
||||
<Accordion title="--log-opts">
|
||||
**Description**
|
||||
|
||||
git log options
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--no-git">
|
||||
**Description**
|
||||
|
||||
treat git repo as a regular directory and scan those files, --log-opts has no effect on the scan when --no-git is set
|
||||
|
||||
Default value: `false`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--pipe">
|
||||
Short hand: `-b`
|
||||
|
||||
**Description**
|
||||
|
||||
scan input from stdin, ex: `cat some_file | infisical scan --pipe`
|
||||
|
||||
Default value: `false`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--follow-symlinks">
|
||||
Short hand: `-b`
|
||||
|
||||
**Description**
|
||||
scan files that are symlinks to other files
|
||||
|
||||
Default value: `false`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--baseline-path">
|
||||
Short hand: `-b`
|
||||
|
||||
**Description**
|
||||
|
||||
path to baseline with issues that can be ignored
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--config">
|
||||
Short hand: `-c`
|
||||
|
||||
**Description**
|
||||
|
||||
config file path
|
||||
|
||||
order of precedence:
|
||||
1. --config flag
|
||||
2. env var INFISICAL_SCAN_CONFIG
|
||||
3. (--source/-s)/.infisical-scan.toml
|
||||
If none of the three options are used, then Infisical will use the default config
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--exit-code">
|
||||
**Description**
|
||||
|
||||
exit code when leaks have been encountered (default 1)
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--max-target-megabytes">
|
||||
**Description**
|
||||
|
||||
files larger than this will be skipped
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--no-color">
|
||||
**Description**
|
||||
|
||||
turn off color for verbose output
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--redact">
|
||||
**Description**
|
||||
|
||||
redact secrets from logs and stdout
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--report-format">
|
||||
**Description**
|
||||
|
||||
output format (json, csv, sarif) (default "json")
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--report-path">
|
||||
**Description**
|
||||
|
||||
report file
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--source">
|
||||
**Description**
|
||||
|
||||
path to source (default ".")
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="--verbose">
|
||||
**Description**
|
||||
|
||||
show verbose output from scan
|
||||
</Accordion>
|
220
docs/cli/scanning-overview.mdx
Normal file
220
docs/cli/scanning-overview.mdx
Normal file
@ -0,0 +1,220 @@
|
||||
---
|
||||
title: 'Secret scanning'
|
||||
description: "Scan and prevent secret leaks in your code base"
|
||||
---
|
||||
|
||||
Building upon its core functionality of fetching and injecting secrets into your applications, Infisical now takes a significant step forward in bolstering your code security.
|
||||
We've enhanced our CLI tool to include a powerful scanning feature, capable of identifying more than 140 different types of secret leaks in your codebase.
|
||||
In addition to scanning for past leaks, this new addition also actively aids in preventing future leaks.
|
||||
|
||||
# Scanning
|
||||
<Tabs>
|
||||
<Tab title="Scanning files, directories and or git history">
|
||||
```bash
|
||||
infisical scan
|
||||
|
||||
# Display the full secret findings
|
||||
infisical scan --verbose
|
||||
```
|
||||
|
||||
The `infisical scan` command serves to scan repositories, directories, and files. It's compatible with both individual developer machines and Continuous Integration (CI) environments.
|
||||
|
||||
When you run `infisical scan` on a Git repository, Infisical will parses the output of a `git log -p` command. This command generates [patches](https://stackoverflow.com/questions/8279602/what-is-a-patch-in-git-version-control) that Infisical uses to identify secrets in your code.
|
||||
You can configure the range of commits that `git log` will cover using the `--log-opts` flag.
|
||||
Any options you can use with `git log -p` are valid for `--log-opts`.
|
||||
|
||||
For instance, to instruct Infisical to scan a specific range of commits, use the following command: `infisical scan --log-opts="--all commitA..commitB"`. For more details, refer to the [Git log documentation](https://git-scm.com/docs/git-log).
|
||||
|
||||
To scan individual files and directories, use the `--no-git` flag.
|
||||
|
||||
**View [full details for this command](./commands/scan)**
|
||||
</Tab>
|
||||
<Tab title="Scanning uncommitted files ">
|
||||
```bash
|
||||
infisical scan git-changes
|
||||
|
||||
# Display the full secret findings
|
||||
infisical git-changes --verbose
|
||||
```
|
||||
|
||||
Scanning for secrets before you commit your changes is great way to prevent leaks. Infisical makes this easy with the sub command `git-changes`.
|
||||
|
||||
The `git-changes` scans for uncommitted changes in a Git repository, and is especially designed for use on developer machines, aligning with the ['shift left'](https://cloud.google.com/architecture/devops/devops-tech-shifting-left-on-security) security approach.
|
||||
When `git-changes` is run on a Git repository, Infisical parses the output from a `git diff` command.
|
||||
|
||||
To scan changes in commits that have been staged via `git add`, you can add the `--staged` flag to the sub command. This flag is particularly useful when using Infisical CLI as a pre-commit tool.
|
||||
|
||||
**View [full details for this command](./commands/scan-git-changes)**
|
||||
|
||||
<Info>
|
||||
`git-changes` command is only for Git repositories; using it on files or directories will result in an error.
|
||||
</Info>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
#
|
||||
#
|
||||
# Creating a baseline
|
||||
|
||||
When scanning large repositories or repositories with a long history, it can be helpful to use a baseline.
|
||||
|
||||
A baseline allows Infisical to ignore any old findings that are already present in the baseline findings. You can create a infisical scan report by running `infisical scan` with the `--report-path` flag.
|
||||
|
||||
To create a Infisical scan report and save it in a file called leaks-report.json, use the following command:
|
||||
|
||||
```
|
||||
infisical scan --report-path leaks-report.json
|
||||
```
|
||||
|
||||
Once a baseline is created, you can apply it when running the `infisical scan` command again. Use the following command:
|
||||
|
||||
```
|
||||
infisical scan --baseline-path leaks-report.json --report-path findings.json
|
||||
```
|
||||
|
||||
After running the `scan` command with the `--baseline-path` flag, the report output in findings.json will only contain new issues.
|
||||
|
||||
#
|
||||
#
|
||||
# Configuration file
|
||||
|
||||
To customize the scan, such as specifying your own rules or establishing exceptions for certain files or paths that should not be flagged as risks, you can define these specifications in the configuration file.
|
||||
|
||||
<Accordion title="Example custom configuration file">
|
||||
```toml infisical-scan.toml
|
||||
# Title for the configuration file
|
||||
title = "Some title"
|
||||
|
||||
|
||||
# This configuration is the foundation that can be expanded. If there are any overlapping rules
|
||||
# between this base and the expanded configuration, the rules in this base will take priority.
|
||||
# Another aspect of extending configurations is the ability to link multiple files, up to a depth of 2.
|
||||
# "Allowlist" arrays get appended and may have repeated elements.
|
||||
# "useDefault" and "path" cannot be used simultaneously. Please choose one.
|
||||
[extend]
|
||||
# useDefault will extend the base configuration with the default config:
|
||||
# https://raw.githubusercontent.com/Infisical/infisical/main/cli/config/infisical-scan.toml
|
||||
useDefault = true
|
||||
# or you can supply a path to a configuration. Path is relative to where infisical cli
|
||||
# was invoked, not the location of the base config.
|
||||
path = "common_config.toml"
|
||||
|
||||
# An array of tables that contain information that define instructions
|
||||
# on how to detect secrets
|
||||
[[rules]]
|
||||
|
||||
# Unique identifier for this rule
|
||||
id = "some-identifier-for-rule"
|
||||
|
||||
# Short human readable description of the rule.
|
||||
description = "awesome rule 1"
|
||||
|
||||
# Golang regular expression used to detect secrets. Note Golang's regex engine
|
||||
# does not support lookaheads.
|
||||
regex = '''one-go-style-regex-for-this-rule'''
|
||||
|
||||
# Golang regular expression used to match paths. This can be used as a standalone rule or it can be used
|
||||
# in conjunction with a valid `regex` entry.
|
||||
path = '''a-file-path-regex'''
|
||||
|
||||
# Array of strings used for metadata and reporting purposes.
|
||||
tags = ["tag","another tag"]
|
||||
|
||||
# A regex match may have many groups, this allows you to specify the group that should be used as (which group the secret is contained in)
|
||||
# its entropy checked if `entropy` is set.
|
||||
secretGroup = 3
|
||||
|
||||
# Float representing the minimum shannon entropy a regex group must have to be considered a secret.
|
||||
# Shannon entropy measures how random a data is. Since secrets are usually composed of many random characters, they typically have high entropy
|
||||
entropy = 3.5
|
||||
|
||||
# Keywords are used for pre-regex check filtering.
|
||||
# If rule has keywords but the text fragment being scanned doesn't have at least one of it's keywords, it will be skipped for processing further.
|
||||
# Ideally these values should either be part of the idenitifer or unique strings specific to the rule's regex
|
||||
# (introduced in v8.6.0)
|
||||
keywords = [
|
||||
"auth",
|
||||
"password",
|
||||
"token",
|
||||
]
|
||||
|
||||
# You can include an allowlist table for a single rule to reduce false positives or ignore commits
|
||||
# with known/rotated secrets
|
||||
[rules.allowlist]
|
||||
description = "ignore commit A"
|
||||
commits = [ "commit-A", "commit-B"]
|
||||
paths = [
|
||||
'''go\.mod''',
|
||||
'''go\.sum'''
|
||||
]
|
||||
# note: (rule) regexTarget defaults to check the _Secret_ in the finding.
|
||||
# if regexTarget is not specified then _Secret_ will be used.
|
||||
# Acceptable values for regexTarget are "match" and "line"
|
||||
regexTarget = "match"
|
||||
regexes = [
|
||||
'''process''',
|
||||
'''getenv''',
|
||||
]
|
||||
# note: stopwords targets the extracted secret, not the entire regex match
|
||||
# if the extracted secret is found in the stopwords list, the finding will be skipped (i.e not included in report)
|
||||
stopwords = [
|
||||
'''client''',
|
||||
'''endpoint''',
|
||||
]
|
||||
|
||||
|
||||
# This is a global allowlist which has a higher order of precedence than rule-specific allowlists.
|
||||
# If a commit listed in the `commits` field below is encountered then that commit will be skipped and no
|
||||
# secrets will be detected for said commit. The same logic applies for regexes and paths.
|
||||
[allowlist]
|
||||
description = "global allow list"
|
||||
commits = [ "commit-A", "commit-B", "commit-C"]
|
||||
paths = [
|
||||
'''gitleaks\.toml''',
|
||||
'''(.*?)(jpg|gif|doc)'''
|
||||
]
|
||||
|
||||
# note: (global) regexTarget defaults to check the _Secret_ in the finding.
|
||||
# if regexTarget is not specified then _Secret_ will be used.
|
||||
# Acceptable values for regexTarget are "match" and "line"
|
||||
regexTarget = "match"
|
||||
|
||||
regexes = [
|
||||
'''219-09-9999''',
|
||||
'''078-05-1120''',
|
||||
'''(9[0-9]{2}|666)-\d{2}-\d{4}''',
|
||||
]
|
||||
# note: stopwords targets the extracted secret, not the entire regex match
|
||||
# if the extracted secret is found in the stopwords list, the finding will be skipped (i.e not included in report)
|
||||
stopwords = [
|
||||
'''client''',
|
||||
'''endpoint''',
|
||||
]
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
#
|
||||
#
|
||||
# Ignoring Known Secrets
|
||||
If you're intentionally committing a test secret that `infisical scan` might flag, you can instruct Infisical to overlook that secret with the methods listed below.
|
||||
|
||||
### infisical-scan:ignore
|
||||
|
||||
To ignore a secret contained in line of code, simply add `infisical-scan:ignore ` at the end of the line as comment in the given programming.
|
||||
|
||||
```js example.js
|
||||
function helloWorld() {
|
||||
console.log("8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ"); // infisical-scan:ignore
|
||||
}
|
||||
```
|
||||
|
||||
### .infisicalignore
|
||||
An alternative method to exclude specific findings involves creating a .infisicalignore file at your repository's root.
|
||||
You can then add the fingerprints of the findings you wish to exclude. The Infisical scan report provides a unique Fingerprint for each secret found.
|
||||
By incorporating these Fingerprints into the .infisicalignore file, Infisical will skip the corresponding secret findings in subsequent scans.
|
||||
|
||||
```.ignore .infisicalignore
|
||||
bea0ff6e05a4de73a5db625d4ae181a015b50855:frontend/components/utilities/attemptLogin.js:stripe-access-token:147
|
||||
bea0ff6e05a4de73a5db625d4ae181a015b50855:backend/src/json/integrations.json:generic-api-key:5
|
||||
1961b92340e5d2613acae528b886c842427ce5d0:frontend/components/utilities/attemptLogin.js:stripe-access-token:148
|
||||
```
|
@ -34,10 +34,29 @@ infisical init
|
||||
|
||||
## Inject environment variables
|
||||
|
||||
```bash
|
||||
# inject environment variables into app
|
||||
infisical run -- [your application start command]
|
||||
```
|
||||
<Accordion title="Injecting environment variables directly" defaultOpen="true">
|
||||
```bash
|
||||
# inject environment variables into app
|
||||
infisical run -- [your application start command]
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Injecting environment variables in custom aliases">
|
||||
Custom aliases can utilize secrets from Infisical. Suppose there is a custom alias `yd` in `custom.sh` that runs `yarn dev` and needs the secrets provided by Infisical.
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
yd() {
|
||||
yarn dev
|
||||
}
|
||||
```
|
||||
|
||||
To make the secrets available from Infisical to `yd`, you can run the following command:
|
||||
|
||||
```bash
|
||||
infisical run --command="source custom.sh && yd"
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
View all available options for `run` command [here](./commands/run)
|
||||
|
||||
|
@ -79,6 +79,13 @@ Start syncing environment variables with [Infisical Cloud](https://app.infisical
|
||||
>
|
||||
Explore integrations for Next.js, Express, Django, and more
|
||||
</Card>
|
||||
<Card
|
||||
href="/cli/scanning-overview"
|
||||
title="Secret scanning"
|
||||
color="#0285c7"
|
||||
>
|
||||
Scan and prevent 140+ secret type leaks in your codebase
|
||||
</Card>
|
||||
<Card
|
||||
href="https://calendly.com/team-infisical/infisical-demo"
|
||||
title="Contact Us"
|
||||
|
@ -140,7 +140,7 @@
|
||||
"cli/overview",
|
||||
"cli/usage",
|
||||
{
|
||||
"group": "Commands",
|
||||
"group": "Core commands",
|
||||
"pages": [
|
||||
"cli/commands/login",
|
||||
"cli/commands/init",
|
||||
@ -149,9 +149,17 @@
|
||||
"cli/commands/export",
|
||||
"cli/commands/vault",
|
||||
"cli/commands/user",
|
||||
"cli/commands/reset"
|
||||
"cli/commands/reset",
|
||||
{
|
||||
"group": "infisical scan",
|
||||
"pages": [
|
||||
"cli/commands/scan",
|
||||
"cli/commands/scan-git-changes"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"cli/scanning-overview",
|
||||
"cli/project-config",
|
||||
"cli/faq"
|
||||
]
|
||||
|
30
frontend/package-lock.json
generated
30
frontend/package-lock.json
generated
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "npm-proj-1682714485428-0.1455767275640205qNcC1I",
|
||||
"name": "npm-proj-1684411062139-0.5362546945149991xa7WAK",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
@ -45,7 +45,7 @@
|
||||
"cookies": "^0.8.0",
|
||||
"cva": "npm:class-variance-authority@^0.4.0",
|
||||
"framer-motion": "^6.2.3",
|
||||
"fs": "^0.0.1-security",
|
||||
"fs": "^0.0.2",
|
||||
"gray-matter": "^4.0.3",
|
||||
"http-proxy": "^1.18.1",
|
||||
"i18next": "^22.4.15",
|
||||
@ -57,7 +57,7 @@
|
||||
"lottie-react": "^2.4.0",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.4",
|
||||
"posthog-js": "^1.39.4",
|
||||
"posthog-js": "^1.54.0",
|
||||
"query-string": "^7.1.3",
|
||||
"react": "^17.0.2",
|
||||
"react-beautiful-dnd": "^13.1.1",
|
||||
@ -12767,9 +12767,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.2.tgz",
|
||||
"integrity": "sha512-YAiVokMCrSIFZiroB1oz51hPiPRVcUtSa4x2U5RYXyhS9VAPdiFigKbPTnOSq7XY8wd3FIVPYmXpo5lMzFmxgg=="
|
||||
},
|
||||
"node_modules/fs-constants": {
|
||||
"version": "1.0.0",
|
||||
@ -17460,9 +17460,9 @@
|
||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
||||
},
|
||||
"node_modules/posthog-js": {
|
||||
"version": "1.53.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.53.4.tgz",
|
||||
"integrity": "sha512-aaQ9S+/eDuBl2XTuU/lMyMtX7eeNAQ/+53O0O+I05FwX7e5NDN1nVqlnkMP0pfZlFcnsPaVqm8N3HoYj+b7Eow==",
|
||||
"version": "1.54.0",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.54.0.tgz",
|
||||
"integrity": "sha512-5kT9zvmBrCshFkWqOrYxk13Y/2j7vtV0sF3XmQa5QDD0bVM1KGU4blyZySBt8SAcO1z3WsKvG4bFGxS7TPqjjw==",
|
||||
"dependencies": {
|
||||
"fflate": "^0.4.1",
|
||||
"rrweb-snapshot": "^1.1.14"
|
||||
@ -31436,9 +31436,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.2.tgz",
|
||||
"integrity": "sha512-YAiVokMCrSIFZiroB1oz51hPiPRVcUtSa4x2U5RYXyhS9VAPdiFigKbPTnOSq7XY8wd3FIVPYmXpo5lMzFmxgg=="
|
||||
},
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
@ -34822,9 +34822,9 @@
|
||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
||||
},
|
||||
"posthog-js": {
|
||||
"version": "1.53.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.53.4.tgz",
|
||||
"integrity": "sha512-aaQ9S+/eDuBl2XTuU/lMyMtX7eeNAQ/+53O0O+I05FwX7e5NDN1nVqlnkMP0pfZlFcnsPaVqm8N3HoYj+b7Eow==",
|
||||
"version": "1.54.0",
|
||||
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.54.0.tgz",
|
||||
"integrity": "sha512-5kT9zvmBrCshFkWqOrYxk13Y/2j7vtV0sF3XmQa5QDD0bVM1KGU4blyZySBt8SAcO1z3WsKvG4bFGxS7TPqjjw==",
|
||||
"requires": {
|
||||
"fflate": "^0.4.1",
|
||||
"rrweb-snapshot": "^1.1.14"
|
||||
|
@ -52,7 +52,7 @@
|
||||
"cookies": "^0.8.0",
|
||||
"cva": "npm:class-variance-authority@^0.4.0",
|
||||
"framer-motion": "^6.2.3",
|
||||
"fs": "^0.0.1-security",
|
||||
"fs": "^0.0.2",
|
||||
"gray-matter": "^4.0.3",
|
||||
"http-proxy": "^1.18.1",
|
||||
"i18next": "^22.4.15",
|
||||
@ -64,7 +64,7 @@
|
||||
"lottie-react": "^2.4.0",
|
||||
"markdown-it": "^13.0.1",
|
||||
"next": "^12.3.4",
|
||||
"posthog-js": "^1.39.4",
|
||||
"posthog-js": "^1.54.0",
|
||||
"query-string": "^7.1.3",
|
||||
"react": "^17.0.2",
|
||||
"react-beautiful-dnd": "^13.1.1",
|
||||
|
@ -17,8 +17,8 @@
|
||||
"starter": {
|
||||
"name": "Starter",
|
||||
"price-explanation": "up to 5 team members",
|
||||
"text": "Manage any project with 5 members for free!",
|
||||
"subtext": "$5 per member/month afterwards."
|
||||
"text": "Manage up to 3 project with up to 5 team members for free!",
|
||||
"subtext": ""
|
||||
},
|
||||
"professional": {
|
||||
"name": "Professional",
|
||||
|
@ -285,7 +285,7 @@ const ProjectUsersTable = ({ userData, changeData, myUser, filter }: Props) => {
|
||||
>
|
||||
<Select
|
||||
className="w-16 bg-mineshaft-700"
|
||||
dropdownContainerClassName="bg-mineshaft-700"
|
||||
dropdownContainerClassName="bg-mineshaft-800 border border-mineshaft-600 text-bunker-200"
|
||||
position="item-aligned"
|
||||
// open={isOpen}
|
||||
onValueChange={(val) =>
|
||||
|
@ -20,8 +20,8 @@ interface Props {
|
||||
export default function Plan({ plan }: Props) {
|
||||
return (
|
||||
<div
|
||||
className={`relative flex flex-col justify-between border-2 min-w-fit w-96 rounded-lg h-68 mr-4 bg-mineshaft-800 ${
|
||||
plan.name !== 'Starter' && plan.current === true ? 'border-primary' : 'border-chicago-700'
|
||||
className={`relative flex flex-col justify-between border min-w-fit w-96 rounded-lg h-68 mr-4 bg-mineshaft-800 ${
|
||||
plan.name !== 'Starter' && plan.current === true ? 'border-2 border-primary' : 'border-mineshaft-600'
|
||||
}
|
||||
`}
|
||||
>
|
||||
@ -41,13 +41,13 @@ export default function Plan({ plan }: Props) {
|
||||
<>
|
||||
{plan.buttonTextMain === 'Schedule a Demo' ? (
|
||||
<a href="/scheduledemo" target='_blank rel="noopener"'>
|
||||
<div className="relative z-10 mx-5 mt-3 mb-4 py-2 px-4 border border-1 border-gray-600 hover:text-black hover:border-primary text-gray-400 font-semibold hover:bg-primary bg-bunker duration-200 cursor-pointer rounded-md flex w-max">
|
||||
<div className="relative z-10 mx-5 mt-3 mb-4 py-2 px-4 border border-1 border-mineshaft-600 hover:text-black hover:border-primary text-gray-400 font-semibold hover:bg-primary bg-bunker duration-200 cursor-pointer rounded-md flex w-max">
|
||||
{plan.buttonTextMain}
|
||||
</div>
|
||||
</a>
|
||||
) : (
|
||||
<div
|
||||
className={`relative z-10 mx-5 mt-3 mb-4 py-2 px-4 border border-1 border-gray-600 text-gray-400 font-semibold ${
|
||||
className={`relative z-10 mx-5 mt-3 mb-4 py-2 px-4 border border-1 border-mineshaft-600 text-gray-400 font-semibold ${
|
||||
plan.buttonTextMain === 'Downgrade'
|
||||
? 'hover:bg-red hover:text-white hover:border-red'
|
||||
: 'hover:bg-primary hover:text-black hover:border-primary'
|
||||
@ -74,7 +74,7 @@ export default function Plan({ plan }: Props) {
|
||||
) : (
|
||||
<div
|
||||
className={`h-8 w-full rounded-b-md flex justify-center items-center z-10 ${
|
||||
plan.name !== 'Starter' && plan.current === true ? 'bg-primary' : 'bg-chicago-700'
|
||||
plan.name !== 'Starter' && plan.current === true ? 'bg-primary' : 'bg-mineshaft-400'
|
||||
}`}
|
||||
>
|
||||
<p className="text-xs text-black font-semibold">CURRENT PLAN</p>
|
||||
|
@ -191,6 +191,17 @@ const IntegrationTile = ({
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
case 'gitlab':
|
||||
return (
|
||||
<div>
|
||||
<div className="mb-2 text-xs font-semibold text-gray-400">ENVIRONMENT</div>
|
||||
<ListBox
|
||||
data={null}
|
||||
isSelected={integration.targetEnvironment}
|
||||
onChange={setIntegrationTargetEnvironment}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
default:
|
||||
return <div />;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ const buttonVariants = cva(
|
||||
{
|
||||
variants: {
|
||||
colorSchema: {
|
||||
primary: ['bg-primary', 'text-black', 'border-primary bg-opacity-80 hover:bg-opacity-100'],
|
||||
primary: ['bg-primary', 'text-black', 'border-primary bg-opacity-90 hover:bg-opacity-100'],
|
||||
secondary: ['bg-mineshaft', 'text-gray-300', 'border-mineshaft hover:bg-opacity-80'],
|
||||
danger: ['bg-red', 'text-white', 'border-red hover:bg-opacity-90'],
|
||||
gray: ['bg-bunker-500', 'text-bunker-200']
|
||||
@ -40,7 +40,7 @@ const buttonVariants = cva(
|
||||
},
|
||||
isDisabled: {
|
||||
true: 'bg-mineshaft-700 border border-mineshaft-600 text-white opacity-50 cursor-not-allowed',
|
||||
false: 'border border-primary-400'
|
||||
false: 'border'
|
||||
},
|
||||
isFullWidth: {
|
||||
true: 'w-full',
|
||||
@ -111,7 +111,7 @@ const buttonVariants = cva(
|
||||
{
|
||||
colorSchema: 'secondary',
|
||||
variant: 'plain',
|
||||
className: 'text-mineshaft-300'
|
||||
className: 'text-mineshaft-300 hover:text-mineshaft-200 border-none'
|
||||
},
|
||||
{
|
||||
colorSchema: 'danger',
|
||||
|
@ -18,7 +18,7 @@ export const UpgradePlanModal = ({ text, isOpen, onOpenChange }: Props): JSX.Ele
|
||||
href={`/settings/billing/${localStorage.getItem('projectData.id') as string}`}
|
||||
key="upgrade-plan"
|
||||
>
|
||||
<Button className="mr-4">Upgrade Plan</Button>
|
||||
<Button className="mr-4 ml-2">Upgrade Plan</Button>
|
||||
</Link>,
|
||||
<ModalClose asChild key="upgrade-plan-cancel">
|
||||
<Button colorSchema="secondary" variant="plain">
|
||||
@ -27,8 +27,8 @@ export const UpgradePlanModal = ({ text, isOpen, onOpenChange }: Props): JSX.Ele
|
||||
</ModalClose>
|
||||
]}
|
||||
>
|
||||
<p className="mb-4 text-bunker-300">{text}</p>
|
||||
<p className="font-medium text-bunker-300">
|
||||
<p className="mb-2 text-bunker-300">{text}</p>
|
||||
<p className="text-bunker-300">
|
||||
Upgrade and get access to this, as well as to other powerful enhancements.
|
||||
</p>
|
||||
</ModalContent>
|
||||
|
@ -30,7 +30,7 @@ interface Mapping {
|
||||
}
|
||||
|
||||
const plansDev: Mapping = {
|
||||
starter: 'prod_Mb4ATFT5QAHoPM',
|
||||
starter: 'prod_Nt6kPvYsVBuzVH',
|
||||
team: 'prod_NEpD2WMXUS2eDn',
|
||||
professional: 'prod_Mb4CetZ2jE7jdl',
|
||||
enterprise: 'licence_key_required'
|
||||
|
@ -5,7 +5,7 @@ import { apiRequest } from '@app/config/request';
|
||||
import { UploadWsKeyDTO, UserWsKeyPair } from './types';
|
||||
|
||||
const encKeyKeys = {
|
||||
getUserWorkspaceKey: (workspaceID: string) => ['worksapce-key-pair', { workspaceID }] as const
|
||||
getUserWorkspaceKey: (workspaceID: string) => ['workspace-key-pair', { workspaceID }] as const
|
||||
};
|
||||
|
||||
const fetchUserWsKey = async (workspaceID: string) => {
|
||||
|
@ -28,9 +28,11 @@ import {
|
||||
Modal,
|
||||
ModalContent,
|
||||
Select,
|
||||
SelectItem
|
||||
SelectItem,
|
||||
UpgradePlanModal
|
||||
} from '@app/components/v2';
|
||||
import { useOrganization, useUser, useWorkspace } from '@app/context';
|
||||
import { plans } from '@app/const';
|
||||
import { useOrganization, useSubscription, useUser, useWorkspace } from '@app/context';
|
||||
import { usePopUp } from '@app/hooks';
|
||||
import { fetchOrgUsers, useAddUserToWs, useCreateWorkspace, useUploadWsKey } from '@app/hooks/api';
|
||||
import getOrganizations from '@app/pages/api/organization/getOrgs';
|
||||
@ -57,13 +59,18 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
const { workspaces, currentWorkspace } = useWorkspace();
|
||||
const { currentOrg } = useOrganization();
|
||||
const { user } = useUser();
|
||||
const { subscriptionPlan } = useSubscription();
|
||||
const host = window.location.origin;
|
||||
const isAddingProjectsAllowed =
|
||||
subscriptionPlan !== plans.starter || (subscriptionPlan === plans.starter && workspaces.length < 3) || host !== 'https://app.infisical.com';
|
||||
|
||||
const createWs = useCreateWorkspace();
|
||||
const uploadWsKey = useUploadWsKey();
|
||||
const addWsUser = useAddUserToWs();
|
||||
|
||||
const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([
|
||||
'addNewWs'
|
||||
'addNewWs',
|
||||
'upgradePlan'
|
||||
] as const);
|
||||
const {
|
||||
control,
|
||||
@ -241,7 +248,7 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
<aside className="w-full border-r border-mineshaft-600 bg-gradient-to-tr from-mineshaft-700 via-mineshaft-800 to-mineshaft-900 md:w-60">
|
||||
<nav className="items-between flex h-full flex-col justify-between">
|
||||
<div>
|
||||
{currentWorkspace ? (
|
||||
{currentWorkspace && router.asPath !== "/noprojects" ? (
|
||||
<div className="mt-3 mb-4 w-full p-4">
|
||||
<p className="ml-1.5 mb-1 text-xs font-semibold uppercase text-gray-400">
|
||||
Project
|
||||
@ -274,7 +281,13 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
colorSchema="primary"
|
||||
variant="outline_bg"
|
||||
size="sm"
|
||||
onClick={() => handlePopUpOpen('addNewWs')}
|
||||
onClick={() => {
|
||||
if (isAddingProjectsAllowed) {
|
||||
handlePopUpOpen('addNewWs')
|
||||
} else {
|
||||
handlePopUpOpen('upgradePlan');
|
||||
}
|
||||
}}
|
||||
leftIcon={<FontAwesomeIcon icon={faPlus} />}
|
||||
>
|
||||
Add Project
|
||||
@ -285,17 +298,25 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
) : (
|
||||
<div className="mt-3 mb-4 w-full p-4">
|
||||
<Button
|
||||
className="w-full bg-mineshaft-500 py-2 text-bunker-200 hover:bg-primary/90 hover:text-black"
|
||||
color="mineshaft"
|
||||
className="border-mineshaft-500"
|
||||
colorSchema="primary"
|
||||
variant="outline_bg"
|
||||
size="sm"
|
||||
onClick={() => handlePopUpOpen('addNewWs')}
|
||||
isFullWidth
|
||||
onClick={() => {
|
||||
if (isAddingProjectsAllowed) {
|
||||
handlePopUpOpen('addNewWs')
|
||||
} else {
|
||||
handlePopUpOpen('upgradePlan');
|
||||
}
|
||||
}}
|
||||
leftIcon={<FontAwesomeIcon icon={faPlus} />}
|
||||
>
|
||||
Add Project
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
<div className={`${currentWorkspace ? 'block' : 'hidden'}`}>
|
||||
<div className={`${currentWorkspace && router.asPath !== "/noprojects" ? 'block' : 'hidden'}`}>
|
||||
<Menu>
|
||||
<Link href={`/dashboard/${currentWorkspace?._id}`} passHref>
|
||||
<a>
|
||||
@ -464,6 +485,11 @@ export const AppLayout = ({ children }: LayoutProps) => {
|
||||
</form>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
<UpgradePlanModal
|
||||
isOpen={popUp.upgradePlan.isOpen}
|
||||
onOpenChange={(isOpen) => handlePopUpToggle('upgradePlan', isOpen)}
|
||||
text="You have exceeded the number of projects allowed on the free plan."
|
||||
/>
|
||||
<main className="flex-1 overflow-y-auto overflow-x-hidden bg-bunker-800 dark:[color-scheme:dark]">
|
||||
{children}
|
||||
</main>
|
||||
|
@ -2,7 +2,15 @@ import { useEffect, useState } from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import queryString from 'query-string';
|
||||
|
||||
import { Button, Card, CardTitle, FormControl, Select, SelectItem } from '../../../components/v2';
|
||||
import {
|
||||
Button,
|
||||
Card,
|
||||
CardTitle,
|
||||
FormControl,
|
||||
Input,
|
||||
Select,
|
||||
SelectItem
|
||||
} from '../../../components/v2';
|
||||
import {
|
||||
useGetIntegrationAuthApps,
|
||||
useGetIntegrationAuthById,
|
||||
@ -37,6 +45,7 @@ export default function GitLabCreateIntegrationPage() {
|
||||
const [targetEntity, setTargetEntity] = useState(gitLabEntities[0].value);
|
||||
const [selectedSourceEnvironment, setSelectedSourceEnvironment] = useState('');
|
||||
const [targetAppId, setTargetAppId] = useState('');
|
||||
const [targetEnvironment, setTargetEnvironment] = useState('');
|
||||
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
|
||||
@ -86,7 +95,7 @@ export default function GitLabCreateIntegrationPage() {
|
||||
)?.name ?? null,
|
||||
appId: targetAppId,
|
||||
sourceEnvironment: selectedSourceEnvironment,
|
||||
targetEnvironment: null,
|
||||
targetEnvironment: targetEnvironment === '' ? '*' : targetEnvironment,
|
||||
targetEnvironmentId: null,
|
||||
targetService: null,
|
||||
targetServiceId: null,
|
||||
@ -189,6 +198,15 @@ export default function GitLabCreateIntegrationPage() {
|
||||
)}
|
||||
</Select>
|
||||
</FormControl>
|
||||
<FormControl
|
||||
label="GitLab Environment Scope (Optional)"
|
||||
>
|
||||
<Input
|
||||
placeholder="*"
|
||||
value={targetEnvironment}
|
||||
onChange={(e) => setTargetEnvironment(e.target.value)}
|
||||
/>
|
||||
</FormControl>
|
||||
<Button
|
||||
onClick={handleButtonClick}
|
||||
color="mineshaft"
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { useEffect } from 'react';
|
||||
import Head from 'next/head';
|
||||
import Image from 'next/image';
|
||||
import { useRouter } from 'next/router';
|
||||
|
||||
@ -27,10 +28,15 @@ export default function NoProjects() {
|
||||
|
||||
return (
|
||||
<div className="mr-auto flex h-full w-11/12 flex-col items-center justify-center text-center text-lg text-gray-300">
|
||||
<Head>
|
||||
<title>No Projects | Infisical</title>
|
||||
<link rel="icon" href="/infisical.ico" />
|
||||
<meta property="og:image" content="/images/message.png" />
|
||||
</Head>
|
||||
<div className="mb-6 mt-16 mr-16">
|
||||
<Image src="/images/dragon-cant-find.svg" height={270} width={436} alt="google logo" />
|
||||
</div>
|
||||
<div className="mb-8 rounded-md bg-bunker-500 px-4 py-6 text-bunker-300 shadow-xl">
|
||||
<div className="mb-8 rounded-md bg-mineshaft-900 border border-mineshaft-700 px-4 py-6 text-bunker-300 shadow-xl">
|
||||
<div className="max-w-md">
|
||||
You are not part of any projects in this organization yet. When you are, they will appear
|
||||
here.
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Head from 'next/head';
|
||||
import { plans as plansConstant } from 'public/data/frequentConstants';
|
||||
|
||||
import Plan from '@app/components/billing/Plan';
|
||||
import NavHeader from '@app/components/navigation/NavHeader';
|
||||
import { plans as plansConstant } from '@app/const';
|
||||
|
||||
import getOrganizationSubscriptions from '../../api/organization/GetOrgSubscription';
|
||||
import getOrganizationUsers from '../../api/organization/GetOrgUsers';
|
||||
@ -32,7 +32,7 @@ export default function SettingsBilling() {
|
||||
name: 'Team',
|
||||
price: '$8',
|
||||
priceExplanation: t('billing.professional.price-explanation')!,
|
||||
text: 'For teams that want to improve their efficiency and security.',
|
||||
text: 'Unlimited members, up to 10 projects. Additional developer experience features.',
|
||||
buttonTextMain: t('billing.upgrade')!,
|
||||
buttonTextSecondary: t('billing.learn-more')!,
|
||||
current: currentPlan === plansConstant.team
|
||||
|
@ -505,7 +505,7 @@ export const DashboardPage = ({ envFromTop }: { envFromTop: string }) => {
|
||||
<IconButton
|
||||
ariaLabel="recovery"
|
||||
variant="outline_bg"
|
||||
onClick={() => setIsSecretValueHidden.toggle()}
|
||||
onClick={() => handlePopUpOpen('secretSnapshots')}
|
||||
>
|
||||
<FontAwesomeIcon icon={faCodeCommit} />
|
||||
</IconButton>
|
||||
@ -530,7 +530,15 @@ export const DashboardPage = ({ envFromTop }: { envFromTop: string }) => {
|
||||
<IconButton
|
||||
ariaLabel="recovery"
|
||||
variant="outline_bg"
|
||||
onClick={() => setIsSecretValueHidden.toggle()}
|
||||
onClick={() => {
|
||||
if (secretContainer.current) {
|
||||
secretContainer.current.scroll({
|
||||
top: 0,
|
||||
behavior: 'smooth'
|
||||
});
|
||||
}
|
||||
prepend(DEFAULT_SECRET_VALUE, { shouldFocus: false });
|
||||
}}
|
||||
>
|
||||
<FontAwesomeIcon icon={faPlus} />
|
||||
</IconButton>
|
||||
|
@ -184,6 +184,7 @@ export const OrgMembersTable = ({
|
||||
defaultValue={role}
|
||||
isDisabled={userId === user?._id}
|
||||
className="w-40 bg-mineshaft-600"
|
||||
dropdownContainerClassName="border border-mineshaft-600 bg-mineshaft-800"
|
||||
onValueChange={(selectedRole) =>
|
||||
onRoleChange(orgMembershipId, selectedRole)
|
||||
}
|
||||
@ -196,7 +197,7 @@ export const OrgMembersTable = ({
|
||||
</Select>
|
||||
)}
|
||||
{((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured) && (
|
||||
<Button className='w-40' colorSchema="secondary" onClick={() => onInviteMember(email)}>
|
||||
<Button className='w-40' colorSchema="primary" variant="outline_bg" onClick={() => onInviteMember(email)}>
|
||||
Resend Invite
|
||||
</Button>
|
||||
)}
|
||||
@ -218,8 +219,10 @@ export const OrgMembersTable = ({
|
||||
))
|
||||
) : (
|
||||
<div className='flex flex-row'>
|
||||
<Tag colorSchema="red">This user isn't part of any projects yet</Tag>
|
||||
{router.query.id !== 'undefined' && <button
|
||||
{((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured)
|
||||
? <Tag colorSchema="red">This user hasn't accepted the invite yet</Tag>
|
||||
: <Tag colorSchema="red">This user isn't part of any projects yet</Tag>}
|
||||
{router.query.id !== 'undefined' && !((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured) && <button
|
||||
type="button"
|
||||
onClick={() => router.push(`/users/${router.query.id}`)}
|
||||
className='text-sm bg-mineshaft w-max px-1.5 py-0.5 hover:bg-primary duration-200 hover:text-black cursor-pointer rounded-sm'
|
||||
|
@ -335,15 +335,11 @@ export const OrgServiceAccountsTable = () => {
|
||||
);
|
||||
})
|
||||
)}
|
||||
{!isServiceAccountsLoading && filteredServiceAccounts?.length === 0 && (
|
||||
<Tr>
|
||||
<Td colSpan={4} className="text-center">
|
||||
<EmptyState title="No service accounts found" icon={faServer} />
|
||||
</Td>
|
||||
</Tr>
|
||||
)}
|
||||
</TBody>
|
||||
</Table>
|
||||
{!isServiceAccountsLoading && filteredServiceAccounts?.length === 0 && (
|
||||
<EmptyState title="No service accounts found" icon={faServer} />
|
||||
)}
|
||||
</TableContainer>
|
||||
<Modal
|
||||
isOpen={popUp?.addServiceAccount?.isOpen}
|
||||
|
@ -11,7 +11,7 @@ export const ProjectIndexSecretsSection = ({
|
||||
onEnableBlindIndices
|
||||
}: Props) => {
|
||||
return (
|
||||
<div className="rounded-md bg-white/5 p-6">
|
||||
<div className="rounded-md bg-white/5 p-6 my-2">
|
||||
<p className="mb-4 text-xl font-semibold">Blind Indices</p>
|
||||
<p className="mb-4 text-sm text-gray-400">
|
||||
Your project, created before the introduction of blind indexing, contains unindexed secrets. To access individual secrets by name through the SDK and public API, please enable blind indexing.
|
||||
|
Reference in New Issue
Block a user