mirror of
https://github.com/Infisical/infisical.git
synced 2025-04-13 01:49:57 +00:00
Compare commits
2 Commits
aws-dynami
...
update-rea
Author | SHA1 | Date | |
---|---|---|---|
d83220cdc3 | |||
8aa44ba103 |
86
README.md
86
README.md
@ -25,7 +25,7 @@
|
||||
<img src="https://img.shields.io/github/commit-activity/m/infisical/infisical" alt="git commit activity" />
|
||||
</a>
|
||||
<a href="https://cloudsmith.io/~infisical/repos/">
|
||||
<img src="https://img.shields.io/badge/Downloads-55.7k-orange" alt="Cloudsmith downloads" />
|
||||
<img src="https://img.shields.io/badge/Downloads-45.7k-orange" alt="Cloudsmith downloads" />
|
||||
</a>
|
||||
<a href="https://join.slack.com/t/infisical-users/shared_invite/zt-1kdbk07ro-RtoyEt_9E~fyzGo_xQYP6g">
|
||||
<img src="https://img.shields.io/badge/chat-on%20Slack-blueviolet" alt="Slack community channel" />
|
||||
@ -52,30 +52,92 @@
|
||||
- **[User-Friendly Dashboard](https://infisical.com/docs/getting-started/dashboard/project)** to manage your team's secrets and configs within projects
|
||||
- **[Language-Agnostic CLI](https://infisical.com/docs/cli/overview)** that pulls and injects esecrets and configs into your local workflow
|
||||
- **[Complete control over your data](https://infisical.com/docs/self-hosting/overview)** - host it yourself on any infrastructure
|
||||
- **Navigate Multiple Environments** per project (e.g. development, staging, production, etc.)
|
||||
- **Personal overrides** for secrets and configs
|
||||
- **[Integrations](https://infisical.com/docs/integrations/overview)** with CI/CD and production infrastructure
|
||||
- **[Infisical API](https://infisical.com/docs/api-reference/overview/introduction)** - manage secrets via HTTPS requests to the platform
|
||||
- **[Secret Versioning](https://infisical.com/docs/getting-started/dashboard/versioning)** to view the change history for any secret
|
||||
- **[Audit Logs](https://infisical.com/docs/getting-started/dashboard/audit-logs)** to record every action taken in a project
|
||||
- **[Point-in-time Secrets Recovery](https://infisical.com/docs/getting-started/dashboard/pit-recovery)** for rolling back to any snapshot of your secrets
|
||||
- **Role-based Access Controls** per environment
|
||||
- **2FA** (more options coming soon)
|
||||
- **Smart Security Alerts**
|
||||
- 🔜 **1-Click Deploy** to AWS
|
||||
- 🔜 **Dynamic Secrets**
|
||||
- 🔜 **Automatic Secret Rotation**
|
||||
- 🔜 **Slack & MS Teams** integrations
|
||||
|
||||
And more.
|
||||
## 🚀 Quick start: Inject secrets into your application
|
||||
There are several methods for integrating Infisical secrets into your application. You can sync secrets to third-party services using integrations like AWS Secrets Manager, GCP, Render, and others. Additionally, you can use Infisical SDKs to retrieve secrets directly via code. For Kubernetes users, utilize the secrets operator for seamless integration. Lastly, our CLI allows you to inject secrets directly into your application as environment variables.
|
||||
|
||||
## 🚀 Get started
|
||||
## Install Infisical CLI
|
||||
|
||||
To quickly get started, visit our [get started guide](https://infisical.com/docs/getting-started/introduction).
|
||||
#### MacOs
|
||||
Use [brew](https://brew.sh/) package manager
|
||||
|
||||
<p>
|
||||
```bash
|
||||
brew install infisical/get-cli/infisical
|
||||
```
|
||||
|
||||
#### Windows
|
||||
Use [Scoop](https://scoop.sh/) package manager
|
||||
|
||||
```bash
|
||||
scoop bucket add org https://github.com/Infisical/scoop-infisical.git
|
||||
```
|
||||
|
||||
```bash
|
||||
scoop install infisical
|
||||
```
|
||||
|
||||
#### Debian/Ubuntu
|
||||
```bash
|
||||
curl -1sLf \
|
||||
'https://dl.cloudsmith.io/public/infisical/infisical-cli/setup.deb.sh' \
|
||||
| sudo -E bash
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get install -y infisical
|
||||
```
|
||||
|
||||
Install CLI on [other platforms](https://infisical.com/docs/cli/overview)
|
||||
|
||||
### Authenticate
|
||||
After installing the CLI on your system, you'll need to authenticate with your Infisical credentials. If you're developing locally, you can log in directly using infisical login.
|
||||
However, if you're in a non-development environment, you can authenticate using a [service token](https://infisical.com/docs/getting-started/dashboard/token).
|
||||
|
||||
|
||||
### Inject secrets into your application process
|
||||
To feed secrets from Infisical into your application process, you can start your appliciaon with Infisical CLI. By starting your application with the Infisical CLI, the secrets are injected into your application process as environment variables, enabling your application to access them from the environment.
|
||||
|
||||
```bash
|
||||
## Inject secrets into a single command ##
|
||||
infisical run -- [your application start command]
|
||||
|
||||
# Example
|
||||
infisical run -- npm run start
|
||||
|
||||
## Inject secrets into multiple commands ##
|
||||
infisical run [options] --command [string command]
|
||||
|
||||
# Example
|
||||
infisical run [options] --command "npm run bootstrap && npm run dev start; other-bash-command"
|
||||
```
|
||||
|
||||
View all available commands for Infisical CLI [here](https://infisical.com/docs/cli/commands/run)
|
||||
|
||||
## Self host Infisical
|
||||
To meet various compliance requirements, you may want to self-host Infisical instead of using Infisical Cloud.
|
||||
Self-hosted Infisical allows you to maintain your sensitive information within your own infrastructure and network, ensuring complete control over your data.
|
||||
|
||||
### One click EC2 deployment
|
||||
|
||||
<img src="https://mintlify.s3-us-west-1.amazonaws.com/infisical/images/deploy-aws-button.png" height=80 />
|
||||
|
||||
### Kubernetes Helm deployment
|
||||
|
||||
|
||||
<!-- To quickly get started, visit our [get started guide](https://infisical.com/docs/getting-started/introduction). -->
|
||||
|
||||
<!-- <p>
|
||||
<a href="https://infisical.com/docs/self-hosting/overview" target="_blank"><img src="https://user-images.githubusercontent.com/78047717/218910609-18a75846-51a9-420a-a9a9-5958ac9c5505.png" height=150 /> </a>
|
||||
<a href="https://app.infisical.com/signup" target="_blank"><img src="https://user-images.githubusercontent.com/78047717/218910520-b36a607f-af66-4a06-af10-6a2191ab02de.png" height=150></a>
|
||||
</p>
|
||||
</p> -->
|
||||
|
||||
## 🔥 What's cool about this?
|
||||
|
||||
|
726
backend/package-lock.json
generated
726
backend/package-lock.json
generated
@ -9,15 +9,15 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.281.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.267.0",
|
||||
"@godaddy/terminus": "^4.11.2",
|
||||
"@octokit/rest": "^19.0.5",
|
||||
"@sentry/node": "^7.40.0",
|
||||
"@sentry/tracing": "^7.39.0",
|
||||
"@sentry/node": "^7.14.0",
|
||||
"@sentry/tracing": "^7.19.0",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/libsodium-wrappers": "^0.7.10",
|
||||
"await-to-js": "^3.0.0",
|
||||
"aws-sdk": "^2.1348.0",
|
||||
"aws-sdk": "^2.1311.0",
|
||||
"axios": "^1.1.3",
|
||||
"axios-retry": "^3.4.0",
|
||||
"bcrypt": "^5.1.0",
|
||||
@ -38,15 +38,15 @@
|
||||
"jsrp": "^0.2.4",
|
||||
"libsodium-wrappers": "^0.7.10",
|
||||
"lodash": "^4.17.21",
|
||||
"mongoose": "^6.10.1",
|
||||
"mongoose": "^6.7.2",
|
||||
"nodemailer": "^6.8.0",
|
||||
"posthog-node": "^2.5.4",
|
||||
"posthog-node": "^2.2.2",
|
||||
"query-string": "^7.1.3",
|
||||
"request-ip": "^3.3.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"stripe": "^10.7.0",
|
||||
"swagger-autogen": "^2.22.0",
|
||||
"swagger-ui-express": "^4.6.2",
|
||||
"swagger-ui-express": "^4.6.0",
|
||||
"tweetnacl": "^1.0.3",
|
||||
"tweetnacl-util": "^0.15.1",
|
||||
"typescript": "^4.9.3",
|
||||
@ -232,15 +232,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.281.0.tgz",
|
||||
"integrity": "sha512-vL+LygNDoCja/47pFwSnI3tCWfy5SGHlz6C1whcszmfl81gXyuHNlAK8RXVRiKhnD11zmCsHJhZyYSfTz5RErQ==",
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.279.0.tgz",
|
||||
"integrity": "sha512-1cEXfqDUiS44DSXueb4QhHKa1K9WVWP/FqxYUB11xV0p5jElX88JVHyNPK/XsVbh9S6nS/MGPBIDbVA2y/mt5g==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.281.0",
|
||||
"@aws-sdk/client-sts": "3.279.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/credential-provider-node": "3.281.0",
|
||||
"@aws-sdk/credential-provider-node": "3.279.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
@ -277,211 +277,10 @@
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.281.0.tgz",
|
||||
"integrity": "sha512-3RvO5zClQhu37w9VMLoHPGk58S3y8Spb7XX8rW51bm5TUglYQskQ0X2VLEUW/7ZGx/peokHws9Z9+w5yGq5sdA==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.281.0.tgz",
|
||||
"integrity": "sha512-P6zf9pDuxApVoCYStAg7L8BU9AcWI8PxfLSX4r2WnmcQropxzPJ3op1j9nvbwwBDMFWephijVY4AVp8MqPcPyg==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sts": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.281.0.tgz",
|
||||
"integrity": "sha512-w8QomyhCVEArRcXgOkjbofiS/PLEKWRAyYBovjMS1cGhns2ZYJXFgHNgr3VGE54TghUc5dR1CqKuBKKM4ThrgA==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/credential-provider-node": "3.281.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-sdk-sts": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-signing": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"fast-xml-parser": "4.1.2",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.281.0.tgz",
|
||||
"integrity": "sha512-H99nhMhHImQKgNhHKYc6usTS6UK8KzCcVGpILLVTuP97YlrYAMFAVstA3Xk6mZ28JAbHVXvI6vJjkMNOzCSKCA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
"@aws-sdk/credential-provider-process": "3.272.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.281.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.272.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-node": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.281.0.tgz",
|
||||
"integrity": "sha512-jhddd+lJp8G8hBJ+6glmXjfWJT3nxiE1aliH3fBC4RR3D+1kRXc99Xg6mbUb8bm+GrVZ4gzfiqSgg+ByKjd7xA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.281.0",
|
||||
"@aws-sdk/credential-provider-process": "3.272.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.281.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.272.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.281.0.tgz",
|
||||
"integrity": "sha512-IqJnpXuLpJYoSCf/Rt66/CPVTjfkam3z9+ZvlQJV+VbK+vGj276qEtTmSN3XPZZgF1XbWptvkzIWDszLhHiZmg==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": "3.281.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/token-providers": "3.281.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/token-providers": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.281.0.tgz",
|
||||
"integrity": "sha512-36Vg/F6Edm7qdjcTeNVON+sK2edgHhmhTtAEjWcuUk5AX/Et+Ate/A2N8HD3nxwlAcgidfnBC9SHYJatbhcEnQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso-oidc": "3.281.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-sso": {
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.279.0.tgz",
|
||||
"integrity": "sha512-599Y5wOrkpjD6p0BTs0X4+Ge9O7jlAPJ2ttI9lfhT2/UEZyqoJHajJs1pMJV75oeZklPOBi8G9jnZcMVJgRpvQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -524,7 +323,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.279.0.tgz",
|
||||
"integrity": "sha512-tC9xKGo3z/HQbJDMvaUrnBSSRX7sOX2YUA2OpJ3T1TTfylLTO70OKjg1G4OMFNiPpJsHonwD7Iud+rnMnUKI0g==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -567,7 +365,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.279.0.tgz",
|
||||
"integrity": "sha512-y/cI5Gg5WWqmSSDQftCT26wOLu0HSuPY1u6Q4Q97FBIfRC3hYztjYdUDHuTu6qPPT+tdsnWOUy2tr3qamVSQ4g==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -672,7 +469,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.279.0.tgz",
|
||||
"integrity": "sha512-FCpr3/khMTb2pWLMC138wU7HzcpkrjejrBNfCJSUu7Emxm039UMLjT2JObnRKxidKlz58oYBRayVIbBYRWREcg==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
@ -692,7 +488,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.279.0.tgz",
|
||||
"integrity": "sha512-7D8ETopCt3H+x2BEPMEhzc4dcNtSK7umnRdgfiTGRjcQSVPh5Whq/tDIAtNj2D+PmLgu3e+Hk7jrXkaMCDlxMw==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
@ -727,7 +522,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.279.0.tgz",
|
||||
"integrity": "sha512-u8ZHz9Sv7sAv2vllyzcdgcO1pC5pa2UuoYKfz9J8hqLHc8VJYtYQ6WJvi4GoA55VDPk87pyVYz9t6ATntsukaw==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": "3.279.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
@ -1111,7 +905,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.279.0.tgz",
|
||||
"integrity": "sha512-bsUlZSizTXZ8Pehdatcioi8VphxYn7fRjo5L083peOvBjoL+9WSGyP74PLrFLNwA35QxddwOqgnpQZoE1heuPQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso-oidc": "3.279.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
@ -2988,14 +2781,32 @@
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"node_modules/@sentry/node": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.40.0.tgz",
|
||||
"integrity": "sha512-S2pcLBUsCg3+WYlyQbXKPey3H1yaZPt9fpJTPAoabbidYXweBAbtFjSCRwPFwCQMzWusWxlYEwWRT77C07pHVg==",
|
||||
"node_modules/@sentry/core": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.38.0.tgz",
|
||||
"integrity": "sha512-+hXh/SO3Ie6WC2b+wi01xLhyVREdkRXS5QBmCiv3z2ks2HvYXp7PoKSXJvNKiwCP+pBD+enOnM1YEzM2yEy5yw==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.40.0",
|
||||
"@sentry/types": "7.40.0",
|
||||
"@sentry/utils": "7.40.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/core/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@sentry/node": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.38.0.tgz",
|
||||
"integrity": "sha512-jNIN6NZvgzn/oms8RQzffjX8Z0LQDTN6N28nnhzqGCvnfmS1QtTt0FlU+pTuFXZNNSjfGy4XMXMYvLlbvhm2bg==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.38.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"cookie": "^0.4.1",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"lru_map": "^0.3.3",
|
||||
@ -3005,85 +2816,19 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/core": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.40.0.tgz",
|
||||
"integrity": "sha512-OPAobQG0GTY++r5LWUcOA1lS+2TY2Lmw/i5s4kL9WbY+f08dbLNEGNBObY7/V98OL4f7OG+nWaPFybgM7kqUTQ==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.40.0",
|
||||
"@sentry/utils": "7.40.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/types": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.40.0.tgz",
|
||||
"integrity": "sha512-dIbqBenbmDx1F8pvfC11C88J83ecwumUhV+YOIxcmVd1fmlPF2hXWZ01+NTkTDkCu341sJx4wPQogByFy8FwGA==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/@sentry/utils": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.40.0.tgz",
|
||||
"integrity": "sha512-ZdCbTpAXPiVVfvNJVftnDhsctOui71MDUhVIdLkgg4Cuic+WHGPRmmZ+H6uZdp7vRaeB+Uvnn5+t2iSAVo/mAA==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.40.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/node/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@sentry/tracing": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.39.0.tgz",
|
||||
"integrity": "sha512-bSRdUMzp/n54J+Qf4hHC4WVvdv4vZEv3NEbNNsnIZNAhnVAq6QB9VzsGRJZ12PqxJU3StDuqLiZFVOmGxETCkQ==",
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.38.0.tgz",
|
||||
"integrity": "sha512-ejXJp8oOT64MVtBzqdECUUaNzKbpu25St8Klub1i4Sm7xO+ZjDQDI4TIHvWojZvtkwQ3F4jcsCclc8KuyJunyQ==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.39.0",
|
||||
"@sentry/types": "7.39.0",
|
||||
"@sentry/utils": "7.39.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/core": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.39.0.tgz",
|
||||
"integrity": "sha512-45WJIcWWCQnZ8zhHtcrkJjQ4YydmzMWY4pmRuBG7Qp+zrCT6ISoyODcjY+SCHFdvXkiYFi8+bFZa1qG3YQnnYw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.39.0",
|
||||
"@sentry/utils": "7.39.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/types": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.39.0.tgz",
|
||||
"integrity": "sha512-5Y83Y8O3dT5zT2jTKEIPMcpn5lUm05KRMaCXuw0sRsv4r9TbBUKeqiSU1LjowT8rB/XNy8m7DHav8+NmogPaJw==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/utils": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.39.0.tgz",
|
||||
"integrity": "sha512-/ZxlPgm1mGgmuMckCTc9iyqDuFTEYNEoMB53IjVFz8ann+37OiWB7Py/QV1rEEsv3xKrGbA8thhRhV9E1sjTlQ==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.39.0",
|
||||
"@sentry/core": "7.38.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
@ -3095,6 +2840,31 @@
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@sentry/types": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.38.0.tgz",
|
||||
"integrity": "sha512-NKOALR6pNUMzUrsk2m+dkPrO8uGNvNh1LD0BCPswKNjC2qHo1h1mDGCgBmF9+EWyii8ZoACTIsxvsda+MBf97Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/utils": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.38.0.tgz",
|
||||
"integrity": "sha512-MgbI3YmYuyyhUtvcXkgGBqjOW+nuLLNGUdWCK+C4kObf8VbLt3dSE/7SEMT6TSHLYQmxs2BxFgx5Agn97m68kQ==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/utils/node_modules/tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@sinclair/typebox": {
|
||||
"version": "0.25.24",
|
||||
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
|
||||
@ -4071,9 +3841,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/aws-sdk": {
|
||||
"version": "2.1348.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1348.0.tgz",
|
||||
"integrity": "sha512-nyqAuSsrvXdDcumC8/a3XGn7Zd7u2ucroz9ZwvNkMC+V6L7pRxnNKzSZDgKw+vCfjrpHFyCsXyribqfNUpolDA==",
|
||||
"version": "2.1323.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1323.0.tgz",
|
||||
"integrity": "sha512-GoLwk2SuG9A6eWgc1mGmm548dklheDmkeptHRw2RhCvq2GZqlc4AzStFUjUURy4O4NQmd2ZiQIoeseue4RwurA==",
|
||||
"dependencies": {
|
||||
"buffer": "4.9.2",
|
||||
"events": "1.1.1",
|
||||
@ -7624,9 +7394,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose": {
|
||||
"version": "6.10.1",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.1.tgz",
|
||||
"integrity": "sha512-QBXX27XXCEIi1zqimTBjlZsFFg2YzK9uQfuAIqG1AyIEeyKiiCaobD0Tst2ULwiX4PRB53VLRQvAqyu5TwvOZg==",
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.0.tgz",
|
||||
"integrity": "sha512-0zrKDEnmNscYyAyN94smo2LlJ63gaezKHpHM+KQ+6EiAgAnah5Kt3hQSYzOTQX/63YNdT1oJXiLlB5LqTdcjUw==",
|
||||
"dependencies": {
|
||||
"bson": "^4.7.0",
|
||||
"kareem": "2.5.1",
|
||||
@ -7637,7 +7407,7 @@
|
||||
"sift": "16.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@ -10730,9 +10500,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/posthog-node": {
|
||||
"version": "2.5.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-2.5.4.tgz",
|
||||
"integrity": "sha512-CdywlVh0CZU05/3MrBc0qY/zsLdU2X9XSz/yL1qMRhbyZhD8lrnuGlI69G2cpzZtli6S/nu64wcmULz/mFFA5w==",
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-2.5.3.tgz",
|
||||
"integrity": "sha512-kDmBjQHguPrh/rUTKmB0+Hj7C3fq2t+/fcfQkDBGz0f0fEF2WxV5yyxRmd2IF/hFmHxMrGLDkEVjKr78B+judg==",
|
||||
"dependencies": {
|
||||
"axios": "^0.27.0"
|
||||
},
|
||||
@ -11713,9 +11483,9 @@
|
||||
"integrity": "sha512-4J4XekQG0ol4/TyUzMfksrWsMTbw/7JYlT+SFaX7H0xamd1OeuVlUSb/Cbq4qdDx1lc+uLZQW7u2mlImcE8c+w=="
|
||||
},
|
||||
"node_modules/swagger-ui-express": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.2.tgz",
|
||||
"integrity": "sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==",
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.1.tgz",
|
||||
"integrity": "sha512-Pss7YNFKNdq66XKNjRe4IRXKKYNx/LvOSml9TdrZ8/78UpxUHIp9JoXpXWA5Z4L+SCmX63DZ9IPlQ8nnRuncvA==",
|
||||
"dependencies": {
|
||||
"swagger-ui-dist": ">=4.11.0"
|
||||
},
|
||||
@ -12620,15 +12390,15 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-secrets-manager": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.281.0.tgz",
|
||||
"integrity": "sha512-vL+LygNDoCja/47pFwSnI3tCWfy5SGHlz6C1whcszmfl81gXyuHNlAK8RXVRiKhnD11zmCsHJhZyYSfTz5RErQ==",
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.279.0.tgz",
|
||||
"integrity": "sha512-1cEXfqDUiS44DSXueb4QhHKa1K9WVWP/FqxYUB11xV0p5jElX88JVHyNPK/XsVbh9S6nS/MGPBIDbVA2y/mt5g==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.281.0",
|
||||
"@aws-sdk/client-sts": "3.279.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/credential-provider-node": "3.281.0",
|
||||
"@aws-sdk/credential-provider-node": "3.279.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
@ -12660,194 +12430,12 @@
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"tslib": "^2.3.1",
|
||||
"uuid": "^8.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.281.0.tgz",
|
||||
"integrity": "sha512-3RvO5zClQhu37w9VMLoHPGk58S3y8Spb7XX8rW51bm5TUglYQskQ0X2VLEUW/7ZGx/peokHws9Z9+w5yGq5sdA==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.281.0.tgz",
|
||||
"integrity": "sha512-P6zf9pDuxApVoCYStAg7L8BU9AcWI8PxfLSX4r2WnmcQropxzPJ3op1j9nvbwwBDMFWephijVY4AVp8MqPcPyg==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.281.0.tgz",
|
||||
"integrity": "sha512-w8QomyhCVEArRcXgOkjbofiS/PLEKWRAyYBovjMS1cGhns2ZYJXFgHNgr3VGE54TghUc5dR1CqKuBKKM4ThrgA==",
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/config-resolver": "3.272.0",
|
||||
"@aws-sdk/credential-provider-node": "3.281.0",
|
||||
"@aws-sdk/fetch-http-handler": "3.272.0",
|
||||
"@aws-sdk/hash-node": "3.272.0",
|
||||
"@aws-sdk/invalid-dependency": "3.272.0",
|
||||
"@aws-sdk/middleware-content-length": "3.272.0",
|
||||
"@aws-sdk/middleware-endpoint": "3.272.0",
|
||||
"@aws-sdk/middleware-host-header": "3.278.0",
|
||||
"@aws-sdk/middleware-logger": "3.272.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.272.0",
|
||||
"@aws-sdk/middleware-retry": "3.272.0",
|
||||
"@aws-sdk/middleware-sdk-sts": "3.272.0",
|
||||
"@aws-sdk/middleware-serde": "3.272.0",
|
||||
"@aws-sdk/middleware-signing": "3.272.0",
|
||||
"@aws-sdk/middleware-stack": "3.272.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.272.0",
|
||||
"@aws-sdk/node-config-provider": "3.272.0",
|
||||
"@aws-sdk/node-http-handler": "3.272.0",
|
||||
"@aws-sdk/protocol-http": "3.272.0",
|
||||
"@aws-sdk/smithy-client": "3.279.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"@aws-sdk/url-parser": "3.272.0",
|
||||
"@aws-sdk/util-base64": "3.208.0",
|
||||
"@aws-sdk/util-body-length-browser": "3.188.0",
|
||||
"@aws-sdk/util-body-length-node": "3.208.0",
|
||||
"@aws-sdk/util-defaults-mode-browser": "3.279.0",
|
||||
"@aws-sdk/util-defaults-mode-node": "3.279.0",
|
||||
"@aws-sdk/util-endpoints": "3.272.0",
|
||||
"@aws-sdk/util-retry": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.272.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.272.0",
|
||||
"@aws-sdk/util-utf8": "3.254.0",
|
||||
"fast-xml-parser": "4.1.2",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.281.0.tgz",
|
||||
"integrity": "sha512-H99nhMhHImQKgNhHKYc6usTS6UK8KzCcVGpILLVTuP97YlrYAMFAVstA3Xk6mZ28JAbHVXvI6vJjkMNOzCSKCA==",
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
"@aws-sdk/credential-provider-process": "3.272.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.281.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.272.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.281.0.tgz",
|
||||
"integrity": "sha512-jhddd+lJp8G8hBJ+6glmXjfWJT3nxiE1aliH3fBC4RR3D+1kRXc99Xg6mbUb8bm+GrVZ4gzfiqSgg+ByKjd7xA==",
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.281.0",
|
||||
"@aws-sdk/credential-provider-process": "3.272.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.281.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.272.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.281.0.tgz",
|
||||
"integrity": "sha512-IqJnpXuLpJYoSCf/Rt66/CPVTjfkam3z9+ZvlQJV+VbK+vGj276qEtTmSN3XPZZgF1XbWptvkzIWDszLhHiZmg==",
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso": "3.281.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/token-providers": "3.281.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@aws-sdk/token-providers": {
|
||||
"version": "3.281.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.281.0.tgz",
|
||||
"integrity": "sha512-36Vg/F6Edm7qdjcTeNVON+sK2edgHhmhTtAEjWcuUk5AX/Et+Ate/A2N8HD3nxwlAcgidfnBC9SHYJatbhcEnQ==",
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso-oidc": "3.281.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
"@aws-sdk/shared-ini-file-loader": "3.272.0",
|
||||
"@aws-sdk/types": "3.272.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.279.0.tgz",
|
||||
"integrity": "sha512-599Y5wOrkpjD6p0BTs0X4+Ge9O7jlAPJ2ttI9lfhT2/UEZyqoJHajJs1pMJV75oeZklPOBi8G9jnZcMVJgRpvQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -12887,7 +12475,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.279.0.tgz",
|
||||
"integrity": "sha512-tC9xKGo3z/HQbJDMvaUrnBSSRX7sOX2YUA2OpJ3T1TTfylLTO70OKjg1G4OMFNiPpJsHonwD7Iud+rnMnUKI0g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -12927,7 +12514,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.279.0.tgz",
|
||||
"integrity": "sha512-y/cI5Gg5WWqmSSDQftCT26wOLu0HSuPY1u6Q4Q97FBIfRC3hYztjYdUDHuTu6qPPT+tdsnWOUy2tr3qamVSQ4g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
@ -13017,7 +12603,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.279.0.tgz",
|
||||
"integrity": "sha512-FCpr3/khMTb2pWLMC138wU7HzcpkrjejrBNfCJSUu7Emxm039UMLjT2JObnRKxidKlz58oYBRayVIbBYRWREcg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
@ -13034,7 +12619,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.279.0.tgz",
|
||||
"integrity": "sha512-7D8ETopCt3H+x2BEPMEhzc4dcNtSK7umnRdgfiTGRjcQSVPh5Whq/tDIAtNj2D+PmLgu3e+Hk7jrXkaMCDlxMw==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-sdk/credential-provider-env": "3.272.0",
|
||||
"@aws-sdk/credential-provider-imds": "3.272.0",
|
||||
@ -13063,7 +12647,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.279.0.tgz",
|
||||
"integrity": "sha512-u8ZHz9Sv7sAv2vllyzcdgcO1pC5pa2UuoYKfz9J8hqLHc8VJYtYQ6WJvi4GoA55VDPk87pyVYz9t6ATntsukaw==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso": "3.279.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
@ -13369,7 +12952,6 @@
|
||||
"version": "3.279.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.279.0.tgz",
|
||||
"integrity": "sha512-bsUlZSizTXZ8Pehdatcioi8VphxYn7fRjo5L083peOvBjoL+9WSGyP74PLrFLNwA35QxddwOqgnpQZoE1heuPQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@aws-sdk/client-sso-oidc": "3.279.0",
|
||||
"@aws-sdk/property-provider": "3.272.0",
|
||||
@ -14761,44 +14343,37 @@
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"@sentry/node": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.40.0.tgz",
|
||||
"integrity": "sha512-S2pcLBUsCg3+WYlyQbXKPey3H1yaZPt9fpJTPAoabbidYXweBAbtFjSCRwPFwCQMzWusWxlYEwWRT77C07pHVg==",
|
||||
"@sentry/core": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.38.0.tgz",
|
||||
"integrity": "sha512-+hXh/SO3Ie6WC2b+wi01xLhyVREdkRXS5QBmCiv3z2ks2HvYXp7PoKSXJvNKiwCP+pBD+enOnM1YEzM2yEy5yw==",
|
||||
"requires": {
|
||||
"@sentry/core": "7.40.0",
|
||||
"@sentry/types": "7.40.0",
|
||||
"@sentry/utils": "7.40.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@sentry/node": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.38.0.tgz",
|
||||
"integrity": "sha512-jNIN6NZvgzn/oms8RQzffjX8Z0LQDTN6N28nnhzqGCvnfmS1QtTt0FlU+pTuFXZNNSjfGy4XMXMYvLlbvhm2bg==",
|
||||
"requires": {
|
||||
"@sentry/core": "7.38.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"cookie": "^0.4.1",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"lru_map": "^0.3.3",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/core": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.40.0.tgz",
|
||||
"integrity": "sha512-OPAobQG0GTY++r5LWUcOA1lS+2TY2Lmw/i5s4kL9WbY+f08dbLNEGNBObY7/V98OL4f7OG+nWaPFybgM7kqUTQ==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.40.0",
|
||||
"@sentry/utils": "7.40.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.40.0.tgz",
|
||||
"integrity": "sha512-dIbqBenbmDx1F8pvfC11C88J83ecwumUhV+YOIxcmVd1fmlPF2hXWZ01+NTkTDkCu341sJx4wPQogByFy8FwGA=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "7.40.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.40.0.tgz",
|
||||
"integrity": "sha512-ZdCbTpAXPiVVfvNJVftnDhsctOui71MDUhVIdLkgg4Cuic+WHGPRmmZ+H6uZdp7vRaeB+Uvnn5+t2iSAVo/mAA==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.40.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
@ -14807,40 +14382,37 @@
|
||||
}
|
||||
},
|
||||
"@sentry/tracing": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.39.0.tgz",
|
||||
"integrity": "sha512-bSRdUMzp/n54J+Qf4hHC4WVvdv4vZEv3NEbNNsnIZNAhnVAq6QB9VzsGRJZ12PqxJU3StDuqLiZFVOmGxETCkQ==",
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.38.0.tgz",
|
||||
"integrity": "sha512-ejXJp8oOT64MVtBzqdECUUaNzKbpu25St8Klub1i4Sm7xO+ZjDQDI4TIHvWojZvtkwQ3F4jcsCclc8KuyJunyQ==",
|
||||
"requires": {
|
||||
"@sentry/core": "7.39.0",
|
||||
"@sentry/types": "7.39.0",
|
||||
"@sentry/utils": "7.39.0",
|
||||
"@sentry/core": "7.38.0",
|
||||
"@sentry/types": "7.38.0",
|
||||
"@sentry/utils": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.38.0.tgz",
|
||||
"integrity": "sha512-NKOALR6pNUMzUrsk2m+dkPrO8uGNvNh1LD0BCPswKNjC2qHo1h1mDGCgBmF9+EWyii8ZoACTIsxvsda+MBf97Q=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "7.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.38.0.tgz",
|
||||
"integrity": "sha512-MgbI3YmYuyyhUtvcXkgGBqjOW+nuLLNGUdWCK+C4kObf8VbLt3dSE/7SEMT6TSHLYQmxs2BxFgx5Agn97m68kQ==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.38.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/core": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.39.0.tgz",
|
||||
"integrity": "sha512-45WJIcWWCQnZ8zhHtcrkJjQ4YydmzMWY4pmRuBG7Qp+zrCT6ISoyODcjY+SCHFdvXkiYFi8+bFZa1qG3YQnnYw==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.39.0",
|
||||
"@sentry/utils": "7.39.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.39.0.tgz",
|
||||
"integrity": "sha512-5Y83Y8O3dT5zT2jTKEIPMcpn5lUm05KRMaCXuw0sRsv4r9TbBUKeqiSU1LjowT8rB/XNy8m7DHav8+NmogPaJw=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "7.39.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.39.0.tgz",
|
||||
"integrity": "sha512-/ZxlPgm1mGgmuMckCTc9iyqDuFTEYNEoMB53IjVFz8ann+37OiWB7Py/QV1rEEsv3xKrGbA8thhRhV9E1sjTlQ==",
|
||||
"requires": {
|
||||
"@sentry/types": "7.39.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
@ -15597,9 +15169,9 @@
|
||||
"integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g=="
|
||||
},
|
||||
"aws-sdk": {
|
||||
"version": "2.1348.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1348.0.tgz",
|
||||
"integrity": "sha512-nyqAuSsrvXdDcumC8/a3XGn7Zd7u2ucroz9ZwvNkMC+V6L7pRxnNKzSZDgKw+vCfjrpHFyCsXyribqfNUpolDA==",
|
||||
"version": "2.1323.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1323.0.tgz",
|
||||
"integrity": "sha512-GoLwk2SuG9A6eWgc1mGmm548dklheDmkeptHRw2RhCvq2GZqlc4AzStFUjUURy4O4NQmd2ZiQIoeseue4RwurA==",
|
||||
"requires": {
|
||||
"buffer": "4.9.2",
|
||||
"events": "1.1.1",
|
||||
@ -18285,9 +17857,9 @@
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "6.10.1",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.1.tgz",
|
||||
"integrity": "sha512-QBXX27XXCEIi1zqimTBjlZsFFg2YzK9uQfuAIqG1AyIEeyKiiCaobD0Tst2ULwiX4PRB53VLRQvAqyu5TwvOZg==",
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.0.tgz",
|
||||
"integrity": "sha512-0zrKDEnmNscYyAyN94smo2LlJ63gaezKHpHM+KQ+6EiAgAnah5Kt3hQSYzOTQX/63YNdT1oJXiLlB5LqTdcjUw==",
|
||||
"requires": {
|
||||
"bson": "^4.7.0",
|
||||
"kareem": "2.5.1",
|
||||
@ -20477,9 +20049,9 @@
|
||||
}
|
||||
},
|
||||
"posthog-node": {
|
||||
"version": "2.5.4",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-2.5.4.tgz",
|
||||
"integrity": "sha512-CdywlVh0CZU05/3MrBc0qY/zsLdU2X9XSz/yL1qMRhbyZhD8lrnuGlI69G2cpzZtli6S/nu64wcmULz/mFFA5w==",
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-2.5.3.tgz",
|
||||
"integrity": "sha512-kDmBjQHguPrh/rUTKmB0+Hj7C3fq2t+/fcfQkDBGz0f0fEF2WxV5yyxRmd2IF/hFmHxMrGLDkEVjKr78B+judg==",
|
||||
"requires": {
|
||||
"axios": "^0.27.0"
|
||||
},
|
||||
@ -21207,9 +20779,9 @@
|
||||
"integrity": "sha512-4J4XekQG0ol4/TyUzMfksrWsMTbw/7JYlT+SFaX7H0xamd1OeuVlUSb/Cbq4qdDx1lc+uLZQW7u2mlImcE8c+w=="
|
||||
},
|
||||
"swagger-ui-express": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.2.tgz",
|
||||
"integrity": "sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==",
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.1.tgz",
|
||||
"integrity": "sha512-Pss7YNFKNdq66XKNjRe4IRXKKYNx/LvOSml9TdrZ8/78UpxUHIp9JoXpXWA5Z4L+SCmX63DZ9IPlQ8nnRuncvA==",
|
||||
"requires": {
|
||||
"swagger-ui-dist": ">=4.11.0"
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.281.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.267.0",
|
||||
"@godaddy/terminus": "^4.11.2",
|
||||
"@octokit/rest": "^19.0.5",
|
||||
"@sentry/node": "^7.40.0",
|
||||
"@sentry/tracing": "^7.39.0",
|
||||
"@sentry/node": "^7.14.0",
|
||||
"@sentry/tracing": "^7.19.0",
|
||||
"@types/crypto-js": "^4.1.1",
|
||||
"@types/libsodium-wrappers": "^0.7.10",
|
||||
"await-to-js": "^3.0.0",
|
||||
"aws-sdk": "^2.1348.0",
|
||||
"aws-sdk": "^2.1311.0",
|
||||
"axios": "^1.1.3",
|
||||
"axios-retry": "^3.4.0",
|
||||
"bcrypt": "^5.1.0",
|
||||
@ -29,15 +29,15 @@
|
||||
"jsrp": "^0.2.4",
|
||||
"libsodium-wrappers": "^0.7.10",
|
||||
"lodash": "^4.17.21",
|
||||
"mongoose": "^6.10.1",
|
||||
"mongoose": "^6.7.2",
|
||||
"nodemailer": "^6.8.0",
|
||||
"posthog-node": "^2.5.4",
|
||||
"posthog-node": "^2.2.2",
|
||||
"query-string": "^7.1.3",
|
||||
"request-ip": "^3.3.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"stripe": "^10.7.0",
|
||||
"swagger-autogen": "^2.22.0",
|
||||
"swagger-ui-express": "^4.6.2",
|
||||
"swagger-ui-express": "^4.6.0",
|
||||
"tweetnacl": "^1.0.3",
|
||||
"tweetnacl-util": "^0.15.1",
|
||||
"typescript": "^4.9.3",
|
||||
@ -57,7 +57,7 @@
|
||||
"lint-and-fix": "eslint . --ext .ts --fix",
|
||||
"lint-staged": "lint-staged",
|
||||
"pretest": "docker compose -f test-resources/docker-compose.test.yml up -d",
|
||||
"test": "cross-env NODE_ENV=test jest --verbose --testTimeout=10000 --detectOpenHandles",
|
||||
"test": "cross-env NODE_ENV=test jest --testTimeout=10000 --detectOpenHandles",
|
||||
"test:ci": "npm test -- --watchAll=false --ci --reporters=default --reporters=jest-junit --reporters=github-actions --coverage --testLocationInResults --json --outputFile=coverage/report.json",
|
||||
"posttest": "docker compose -f test-resources/docker-compose.test.yml down"
|
||||
},
|
||||
|
@ -1,86 +0,0 @@
|
||||
import AWS from 'aws-sdk'
|
||||
|
||||
export const createTemporaryIAMUser = async (rootAccessKeyId, rootSecretAccessKey, region, userName, policyDocument, durationInSeconds) => {
|
||||
// Configure AWS SDK with your root user credentials
|
||||
AWS.config.update({
|
||||
accessKeyId: rootAccessKeyId,
|
||||
secretAccessKey: rootSecretAccessKey,
|
||||
region: region,
|
||||
});
|
||||
|
||||
const iam = new AWS.IAM();
|
||||
const sts = new AWS.STS();
|
||||
// Get the account ID
|
||||
const callerIdentity = await sts.getCallerIdentity().promise();
|
||||
const accountId = callerIdentity.Account;
|
||||
|
||||
// Create the IAM role
|
||||
const roleName = `Role-${userName}`;
|
||||
const assumeRolePolicyDocument = {
|
||||
Version: '2012-10-17',
|
||||
Statement: [
|
||||
{
|
||||
Effect: 'Allow',
|
||||
Principal: {
|
||||
AWS: `arn:aws:iam::${accountId}:root`,
|
||||
},
|
||||
Action: 'sts:AssumeRole',
|
||||
},
|
||||
],
|
||||
};
|
||||
const createRoleParams = {
|
||||
RoleName: roleName,
|
||||
AssumeRolePolicyDocument: JSON.stringify(assumeRolePolicyDocument),
|
||||
};
|
||||
const role = await iam.createRole(createRoleParams).promise();
|
||||
|
||||
// Create and attach the policy to the IAM role
|
||||
const policyName = `Policy-${userName}`;
|
||||
const createPolicyParams = {
|
||||
PolicyName: policyName,
|
||||
PolicyDocument: JSON.stringify(policyDocument),
|
||||
};
|
||||
const policy = await iam.createPolicy(createPolicyParams).promise();
|
||||
|
||||
const attachRolePolicyParams = {
|
||||
PolicyArn: policy.Policy.Arn,
|
||||
RoleName: roleName,
|
||||
};
|
||||
await iam.attachRolePolicy(attachRolePolicyParams).promise();
|
||||
|
||||
// Create temporary credentials for the IAM role
|
||||
const assumeRoleParams = {
|
||||
RoleArn: role.Role.Arn,
|
||||
RoleSessionName: `TemporarySession-${userName}`,
|
||||
DurationSeconds: durationInSeconds,
|
||||
};
|
||||
const credentials = await sts.assumeRole(assumeRoleParams).promise();
|
||||
|
||||
// Return the temporary credentials
|
||||
return {
|
||||
accessKeyId: credentials.Credentials.AccessKeyId,
|
||||
secretAccessKey: credentials.Credentials.SecretAccessKey,
|
||||
sessionToken: credentials.Credentials.SessionToken,
|
||||
};
|
||||
};
|
||||
|
||||
// module.exports = createTemporaryIAMUser;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// // Example policy document
|
||||
// const policyDocument = {
|
||||
// Version: '2012-10-17',
|
||||
// Statement: [
|
||||
// {
|
||||
// Action: 's3:ListBucket',
|
||||
// Effect: 'Allow',
|
||||
// Resource: 'arn:aws:s3:::example-bucket',
|
||||
// },
|
||||
// ],
|
||||
// };
|
||||
|
||||
|
5
backend/tests/example.test.ts
Normal file
5
backend/tests/example.test.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { it, expect } from '@jest/globals';
|
||||
|
||||
it('should return true', () => {
|
||||
expect(true).toBeTruthy();
|
||||
});
|
@ -1,251 +0,0 @@
|
||||
import { describe, test, expect } from '@jest/globals';
|
||||
import {
|
||||
decryptAsymmetric,
|
||||
decryptSymmetric,
|
||||
encryptAsymmetric,
|
||||
encryptSymmetric
|
||||
} from '../../src/utils/crypto';
|
||||
|
||||
describe('Crypto', () => {
|
||||
describe('encryptAsymmetric', () => {
|
||||
describe('given all valid publicKey, privateKey and plaintext', () => {
|
||||
const publicKey = '6U5m6S5jlyazJ+R4z7Yf/Ah4th4JwKxDN8Wn7+upvzw=';
|
||||
const privateKey = 'Z8W53YV+2ddjJCrFwzptjK96y2QsQI9oXuvfcx+qxz0=';
|
||||
const plaintext = 'secret-message';
|
||||
|
||||
test('should encrypt plain text', () => {
|
||||
const result = encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
expect(result.ciphertext).toBeDefined();
|
||||
expect(result.nonce).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('given empty/undefined publicKey', () => {
|
||||
let publicKey: string;
|
||||
const privateKey = 'Z8W53YV+2ddjJCrFwzptjK96y2QsQI9oXuvfcx+qxz0=';
|
||||
const plaintext = 'secret-message';
|
||||
|
||||
test('should throw error if publicKey is undefined', () => {
|
||||
expect(() => {
|
||||
encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
}).toThrowError('Failed to perform asymmetric encryption');
|
||||
});
|
||||
|
||||
test('should throw error if publicKey is empty string', () => {
|
||||
publicKey = '';
|
||||
expect(() => {
|
||||
encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
}).toThrowError('Failed to perform asymmetric encryption');
|
||||
});
|
||||
});
|
||||
|
||||
describe('given empty/undefined privateKey', () => {
|
||||
const publicKey = '6U5m6S5jlyazJ+R4z7Yf/Ah4th4JwKxDN8Wn7+upvzw=';
|
||||
let privateKey: string;
|
||||
const plaintext = 'secret-message';
|
||||
|
||||
test('should throw error if privateKey is undefined', () => {
|
||||
expect(() => {
|
||||
encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
}).toThrowError('Failed to perform asymmetric encryption');
|
||||
});
|
||||
|
||||
test('should throw error if privateKey is empty string', () => {
|
||||
privateKey = '';
|
||||
expect(() => {
|
||||
encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
}).toThrowError('Failed to perform asymmetric encryption');
|
||||
});
|
||||
});
|
||||
|
||||
describe('given undefined/invalid plaint text', () => {
|
||||
const publicKey = '6U5m6S5jlyazJ+R4z7Yf/Ah4th4JwKxDN8Wn7+upvzw=';
|
||||
const privateKey = 'Z8W53YV+2ddjJCrFwzptjK96y2QsQI9oXuvfcx+qxz0=';
|
||||
let plaintext: string;
|
||||
|
||||
test('should throw error if plaintext is undefined', () => {
|
||||
expect(() => {
|
||||
encryptAsymmetric({ plaintext, publicKey, privateKey });
|
||||
}).toThrowError('Failed to perform asymmetric encryption');
|
||||
});
|
||||
|
||||
test('should encrypt plaintext containing special characters', () => {
|
||||
plaintext = '131@#$%235!@#&*(&123sadfkjadjf';
|
||||
const result = encryptAsymmetric({
|
||||
plaintext,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
expect(result.ciphertext).toBeDefined();
|
||||
expect(result.nonce).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('decryptAsymmetric', () => {
|
||||
describe('given all valid publicKey, privateKey and plaintext', () => {
|
||||
const publicKey = '6U5m6S5jlyazJ+R4z7Yf/Ah4th4JwKxDN8Wn7+upvzw=';
|
||||
const privateKey = 'Z8W53YV+2ddjJCrFwzptjK96y2QsQI9oXuvfcx+qxz0=';
|
||||
const plaintext = 'secret-message';
|
||||
|
||||
test('should decrypt the encrypted plaintext', () => {
|
||||
const encryptedResult = encryptAsymmetric({
|
||||
plaintext,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
const ciphertext = encryptedResult.ciphertext;
|
||||
const nonce = encryptedResult.nonce;
|
||||
|
||||
const decryptedResult = decryptAsymmetric({
|
||||
ciphertext,
|
||||
nonce,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
|
||||
expect(decryptedResult).toBeDefined();
|
||||
expect(decryptedResult).toEqual(plaintext);
|
||||
});
|
||||
});
|
||||
|
||||
describe('given ciphertext or nonce is modified before decrypt', () => {
|
||||
const publicKey = '6U5m6S5jlyazJ+R4z7Yf/Ah4th4JwKxDN8Wn7+upvzw=';
|
||||
const privateKey = 'Z8W53YV+2ddjJCrFwzptjK96y2QsQI9oXuvfcx+qxz0=';
|
||||
const plaintext = 'secret-message';
|
||||
|
||||
test('should throw error if ciphertext is modified', () => {
|
||||
const encryptedResult = encryptAsymmetric({
|
||||
plaintext,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
const ciphertext = '=12adfJ@#52af1231=123'; // modified
|
||||
const nonce = encryptedResult.nonce;
|
||||
|
||||
expect(() => {
|
||||
decryptAsymmetric({
|
||||
ciphertext,
|
||||
nonce,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
}).toThrowError('Failed to perform asymmetric decryption');
|
||||
});
|
||||
|
||||
test('should throw error if nonce is modified', () => {
|
||||
const encryptedResult = encryptAsymmetric({
|
||||
plaintext,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
const ciphertext = encryptedResult.ciphertext;
|
||||
const nonce = '=12adfJ@#52af1231=123'; // modified
|
||||
|
||||
expect(() => {
|
||||
decryptAsymmetric({
|
||||
ciphertext,
|
||||
nonce,
|
||||
publicKey,
|
||||
privateKey
|
||||
});
|
||||
}).toThrowError('Failed to perform asymmetric decryption');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('encryptSymmetric', () => {
|
||||
let plaintext: string;
|
||||
const key = '7e8ee7e5cc667b9c1829783ad31f36f4';
|
||||
|
||||
test('should encrypt plaintext with the given key', () => {
|
||||
plaintext = 'secret-message';
|
||||
const { ciphertext, iv, tag } = encryptSymmetric({ plaintext, key });
|
||||
expect(ciphertext).toBeDefined();
|
||||
expect(iv).toBeDefined();
|
||||
expect(tag).toBeDefined();
|
||||
});
|
||||
|
||||
test('should throw an error when plaintext is undefined', () => {
|
||||
const invalidKey = 'invalid-key';
|
||||
expect(() => {
|
||||
encryptSymmetric({ plaintext, key: invalidKey });
|
||||
}).toThrowError('Failed to perform symmetric encryption');
|
||||
});
|
||||
|
||||
test('should throw an error when invalid key is provided', () => {
|
||||
plaintext = 'secret-message';
|
||||
const invalidKey = 'invalid-key';
|
||||
|
||||
expect(() => {
|
||||
encryptSymmetric({ plaintext, key: invalidKey });
|
||||
}).toThrowError('Failed to perform symmetric encryption');
|
||||
});
|
||||
});
|
||||
|
||||
describe('decryptSymmetric', () => {
|
||||
const plaintext = 'secret-message';
|
||||
const key = '7e8ee7e5cc667b9c1829783ad31f36f4';
|
||||
const { ciphertext, iv, tag } = encryptSymmetric({ plaintext, key });
|
||||
|
||||
test('should decrypt encrypted plaintext', () => {
|
||||
const result = decryptSymmetric({
|
||||
ciphertext,
|
||||
iv,
|
||||
tag,
|
||||
key
|
||||
});
|
||||
|
||||
expect(result).toBeDefined();
|
||||
expect(result).toEqual(plaintext);
|
||||
});
|
||||
|
||||
test('should fail if ciphertext is modified', () => {
|
||||
const modifieldCiphertext = 'abcdefghijklmnopqrstuvwxyz';
|
||||
expect(() => {
|
||||
decryptSymmetric({
|
||||
ciphertext: modifieldCiphertext,
|
||||
iv,
|
||||
tag,
|
||||
key
|
||||
});
|
||||
}).toThrowError('Failed to perform symmetric decryption');
|
||||
});
|
||||
|
||||
test('should fail if iv is modified', () => {
|
||||
const modifiedIv = 'abcdefghijklmnopqrstuvwxyz';
|
||||
expect(() => {
|
||||
decryptSymmetric({
|
||||
ciphertext,
|
||||
iv: modifiedIv,
|
||||
tag,
|
||||
key
|
||||
});
|
||||
}).toThrowError('Failed to perform symmetric decryption');
|
||||
});
|
||||
|
||||
test('should fail if tag is modified', () => {
|
||||
const modifiedTag = 'abcdefghijklmnopqrstuvwxyz';
|
||||
expect(() => {
|
||||
decryptSymmetric({
|
||||
ciphertext,
|
||||
iv,
|
||||
tag: modifiedTag,
|
||||
key
|
||||
});
|
||||
}).toThrowError('Failed to perform symmetric decryption');
|
||||
});
|
||||
|
||||
test('should throw an error when decryption fails', () => {
|
||||
const invalidKey = 'invalid-key';
|
||||
expect(() => {
|
||||
decryptSymmetric({
|
||||
ciphertext,
|
||||
iv,
|
||||
tag,
|
||||
key: invalidKey
|
||||
});
|
||||
}).toThrowError('Failed to perform symmetric decryption');
|
||||
});
|
||||
});
|
||||
});
|
@ -1,29 +0,0 @@
|
||||
import { describe, test, expect } from '@jest/globals';
|
||||
import { getChannelFromUserAgent } from '../../src/utils/posthog';
|
||||
|
||||
describe('posthog getChannelFromUserAgent', () => {
|
||||
test("should return 'web' when userAgent includes 'mozilla'", () => {
|
||||
const userAgent =
|
||||
'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.115 Mobile Safari/537.36';
|
||||
const channel = getChannelFromUserAgent(userAgent);
|
||||
expect(channel).toBe('web');
|
||||
});
|
||||
|
||||
test("should return 'cli'", () => {
|
||||
const userAgent = 'cli';
|
||||
const channel = getChannelFromUserAgent(userAgent);
|
||||
expect(channel).toBe('cli');
|
||||
});
|
||||
|
||||
test("should return 'k8-operator'", () => {
|
||||
const userAgent = 'k8-operator';
|
||||
const channel = getChannelFromUserAgent(userAgent);
|
||||
expect(channel).toBe('k8-operator');
|
||||
});
|
||||
|
||||
test('should return undefined if no userAgent', () => {
|
||||
const userAgent = undefined;
|
||||
const channel = getChannelFromUserAgent(userAgent);
|
||||
expect(channel).toBe('other');
|
||||
});
|
||||
});
|
@ -4,10 +4,7 @@ go 1.19
|
||||
|
||||
require (
|
||||
github.com/99designs/keyring v1.2.2
|
||||
github.com/mattn/go-isatty v0.0.14
|
||||
github.com/muesli/ansi v0.0.0-20221106050444-61f0cd9a192a
|
||||
github.com/muesli/mango-cobra v1.2.0
|
||||
github.com/muesli/reflow v0.3.0
|
||||
github.com/muesli/roff v0.1.0
|
||||
github.com/spf13/cobra v1.6.1
|
||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d
|
||||
@ -25,6 +22,7 @@ require (
|
||||
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
|
||||
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
|
||||
github.com/mattn/go-colorable v0.1.9 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.14 // indirect
|
||||
github.com/mitchellh/mapstructure v1.3.3 // indirect
|
||||
github.com/mtibben/percent v0.2.1 // indirect
|
||||
|
@ -56,7 +56,6 @@ github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
|
||||
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
|
||||
@ -64,16 +63,12 @@ github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
|
||||
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||
github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs=
|
||||
github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
|
||||
github.com/muesli/ansi v0.0.0-20221106050444-61f0cd9a192a h1:jlDOeO5TU0pYlbc/y6PFguab5IjANI0Knrpg3u/ton4=
|
||||
github.com/muesli/ansi v0.0.0-20221106050444-61f0cd9a192a/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
|
||||
github.com/muesli/mango v0.1.0 h1:DZQK45d2gGbql1arsYA4vfg4d7I9Hfx5rX/GCmzsAvI=
|
||||
github.com/muesli/mango v0.1.0/go.mod h1:5XFpbC8jY5UUv89YQciiXNlbi+iJgt29VDC5xbzrLL4=
|
||||
github.com/muesli/mango-cobra v1.2.0 h1:DQvjzAM0PMZr85Iv9LIMaYISpTOliMEg+uMFtNbYvWg=
|
||||
github.com/muesli/mango-cobra v1.2.0/go.mod h1:vMJL54QytZAJhCT13LPVDfkvCUJ5/4jNUKF/8NC2UjA=
|
||||
github.com/muesli/mango-pflag v0.1.0 h1:UADqbYgpUyRoBja3g6LUL+3LErjpsOwaC9ywvBWe7Sg=
|
||||
github.com/muesli/mango-pflag v0.1.0/go.mod h1:YEQomTxaCUp8PrbhFh10UfbhbQrM/xJ4i2PB8VTLLW0=
|
||||
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
|
||||
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
|
||||
github.com/muesli/roff v0.1.0 h1:YD0lalCotmYuF5HhZliKWlIx7IEhiXeSfq7hNjFqGF8=
|
||||
github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
||||
@ -83,7 +78,6 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
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/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
@ -112,6 +106,7 @@ go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAV
|
||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
|
||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
|
@ -263,10 +263,10 @@ var secretsSetCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
// Print secret operations
|
||||
headers := [...]string{"SECRET NAME", "SECRET VALUE", "STATUS"}
|
||||
rows := [][3]string{}
|
||||
headers := []string{"SECRET NAME", "SECRET VALUE", "STATUS"}
|
||||
rows := [][]string{}
|
||||
for _, secretOperation := range secretOperations {
|
||||
rows = append(rows, [...]string{secretOperation.SecretKey, secretOperation.SecretValue, secretOperation.SecretOperation})
|
||||
rows = append(rows, []string{secretOperation.SecretKey, secretOperation.SecretValue, secretOperation.SecretOperation})
|
||||
}
|
||||
|
||||
visualize.Table(headers, rows)
|
||||
|
@ -3,12 +3,12 @@ package visualize
|
||||
import "github.com/Infisical/infisical-merge/packages/models"
|
||||
|
||||
func PrintAllSecretDetails(secrets []models.SingleEnvironmentVariable) {
|
||||
rows := [][3]string{}
|
||||
rows := [][]string{}
|
||||
for _, secret := range secrets {
|
||||
rows = append(rows, [...]string{secret.Key, secret.Value, secret.Type})
|
||||
rows = append(rows, []string{secret.Key, secret.Value, secret.Type})
|
||||
}
|
||||
|
||||
headers := [...]string{"SECRET NAME", "SECRET VALUE", "SECRET TYPE"}
|
||||
headers := []string{"SECRET NAME", "SECRET VALUE", "SECRET TYPE"}
|
||||
|
||||
Table(headers, rows)
|
||||
}
|
||||
|
@ -2,14 +2,8 @@ package visualize
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/jedib0t/go-pretty/table"
|
||||
"github.com/mattn/go-isatty"
|
||||
"github.com/muesli/ansi"
|
||||
"github.com/muesli/reflow/truncate"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/term"
|
||||
)
|
||||
|
||||
type TableOptions struct {
|
||||
@ -22,35 +16,8 @@ type TableOptions struct {
|
||||
// }
|
||||
// }
|
||||
|
||||
const (
|
||||
// combined width of the table borders and padding
|
||||
borderWidths = 10
|
||||
// char to indicate that a string has been truncated
|
||||
ellipsis = "…"
|
||||
)
|
||||
|
||||
// Given headers and rows, this function will print out a table
|
||||
func Table(headers [3]string, rows [][3]string) {
|
||||
// if we're not in a terminal or cygwin terminal, don't truncate the secret value
|
||||
shouldTruncate := isatty.IsTerminal(os.Stdout.Fd())
|
||||
|
||||
// This will return an error if we're not in a terminal or
|
||||
// if the terminal is a cygwin terminal like Git Bash.
|
||||
width, _, err := term.GetSize(int(os.Stdout.Fd()))
|
||||
if err != nil {
|
||||
if shouldTruncate {
|
||||
log.Errorf("error getting terminal size: %s", err)
|
||||
} else {
|
||||
log.Debug(err)
|
||||
}
|
||||
}
|
||||
|
||||
longestSecretName, longestSecretType := getLongestValues(append(rows, headers))
|
||||
availableWidth := width - longestSecretName - longestSecretType - borderWidths
|
||||
if availableWidth < 0 {
|
||||
availableWidth = 0
|
||||
}
|
||||
|
||||
func Table(headers []string, rows [][]string) {
|
||||
t := table.NewWriter()
|
||||
t.SetOutputMirror(os.Stdout)
|
||||
t.SetStyle(table.StyleLight)
|
||||
@ -68,11 +35,7 @@ func Table(headers [3]string, rows [][3]string) {
|
||||
t.AppendHeader(tableHeaders)
|
||||
for _, row := range rows {
|
||||
tableRow := table.Row{}
|
||||
for i, val := range row {
|
||||
// only truncate the first column (secret value)
|
||||
if i == 1 && stringWidth(val) > availableWidth && shouldTruncate {
|
||||
val = truncate.StringWithTail(val, uint(availableWidth), ellipsis)
|
||||
}
|
||||
for _, val := range row {
|
||||
tableRow = append(tableRow, val)
|
||||
}
|
||||
t.AppendRow(tableRow)
|
||||
@ -80,28 +43,3 @@ func Table(headers [3]string, rows [][3]string) {
|
||||
|
||||
t.Render()
|
||||
}
|
||||
|
||||
// getLongestValues returns the length of the longest secret name and type from all rows (including the header).
|
||||
func getLongestValues(rows [][3]string) (longestSecretName, longestSecretType int) {
|
||||
for _, row := range rows {
|
||||
if len(row[0]) > longestSecretName {
|
||||
longestSecretName = stringWidth(row[0])
|
||||
}
|
||||
if len(row[2]) > longestSecretType {
|
||||
longestSecretType = stringWidth(row[2])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// stringWidth returns the width of a string.
|
||||
// ANSI escape sequences are ignored and double-width characters are handled correctly.
|
||||
func stringWidth(str string) (width int) {
|
||||
for _, l := range strings.Split(str, "\n") {
|
||||
w := ansi.PrintableRuneWidth(l)
|
||||
if w > width {
|
||||
width = w
|
||||
}
|
||||
}
|
||||
return width
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ description: "Frequently Asked Questions about Infisical"
|
||||
---
|
||||
|
||||
Frequently asked questions about the CLI can be found on this page.
|
||||
If you can't find the answer you are looking for, please create an issue on our GitHub repository or join our Slack channel for additional support.
|
||||
If you can't find the answer you're looking for, please create an issue on our GitHub repository or join our Slack channel for additional support.
|
||||
|
||||
<Accordion title="I'm getting a Keyring related error message when trying to login" defaultOpen="true">
|
||||
By default, the CLI will choose the most suitable store available on your system.
|
||||
@ -22,4 +22,4 @@ Yes. If you have previously retrieved secrets for a specific project and environ
|
||||
|
||||
<Accordion title="Can I upload the .infisical.json file that was generated?">
|
||||
Yes. This is simply a configuration file and contains no sensitive data.
|
||||
</Accordion>
|
||||
</Accordion>
|
@ -39,10 +39,10 @@ Prerequisites:
|
||||
Starting your service with the Infisical CLI pulls your secrets from Infisical and injects them into your service.
|
||||
|
||||
```dockerfile
|
||||
CMD ["infisical", "run", "--", "[your service start command]"]
|
||||
CMD ["infisical", "run", "---", "[your service start command]"]
|
||||
|
||||
# example with single single command
|
||||
CMD ["infisical", "run", "--", "npm", "run", "start"]
|
||||
CMD ["infisical", "run", "---", "npm", "run", "start"]
|
||||
|
||||
# example with multiple commands
|
||||
CMD ["infisical", "run", "--command", "npm run start && ..."]
|
||||
@ -55,7 +55,7 @@ Head to your project settings in Infisical Cloud to generate an [Infisical Token
|
||||
## Feed Docker your Infisical Token
|
||||
|
||||
```bash
|
||||
docker run --env INFISICAL_TOKEN=[token] [DOCKER-IMAGE]...
|
||||
docker run --env INFISICAL_TOKEN=[token]...
|
||||
```
|
||||
|
||||
<Info>
|
||||
|
@ -11,27 +11,27 @@ Other environment variables are listed below to increase the functionality of yo
|
||||
<Tabs>
|
||||
<Tab title="Required">
|
||||
<ParamField query="ENCRYPTION_KEY" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="JWT_SIGNUP_SECRET" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="JWT_REFRESH_SECRET" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="JWT_AUTH_SECRET" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="JWT_MFA_SECRET" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="JWT_SERVICE_SECRET" type="string" default="none" required>
|
||||
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
|
||||
Must be a random 32 character length hex string
|
||||
</ParamField>
|
||||
|
||||
<ParamField query="MONGO_URL" type="string" default="none" required>
|
||||
|
@ -38,7 +38,7 @@ Self-hosted Infisical allows you to maintain your sensitive information within y
|
||||
#### 1. Fill our environment variables
|
||||
|
||||
Before you can deploy the Helm chart, you must fill out the required environment variables. To do so, please copy the below file to a `.yaml` file.
|
||||
Refer to the available [environment variables](/self-hosting/configuration/envars) to learn more
|
||||
Refer to the available [environment variables](../../self-hosting/configuration/envars) to learn more
|
||||
|
||||
<Accordion title="values.yaml">
|
||||
[View all available Helm chart values parameters](https://github.com/Infisical/infisical/tree/main/helm-charts/infisical)
|
||||
@ -178,7 +178,7 @@ Self-hosted Infisical allows you to maintain your sensitive information within y
|
||||
mkdir nginx && wget -O ./nginx/default.conf https://raw.githubusercontent.com/Infisical/infisical/main/nginx/default.dev.conf
|
||||
```
|
||||
|
||||
3. Tweak the `.env` according to your preferences. Refer to the available [environment variables](/self-hosting/configuration/envars)
|
||||
3. Tweak the `.env` according to your preferences. Refer to the available [environment variables](../../self-hosting/configuration/envars)
|
||||
|
||||
```bash
|
||||
# update environment variables like mongo login
|
||||
@ -195,4 +195,4 @@ Self-hosted Infisical allows you to maintain your sensitive information within y
|
||||
5. Your Infisical installation is complete and should be running on [http://localhost:80](http://localhost:80). Please note that the containers are not exposed to the internet and only bind to the localhost. It's up to you to configure a firewall, SSL certificates, and implement any additional security measures.
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</Tabs>
|
Reference in New Issue
Block a user