Merge branch 'heads/main' into fix/helm-charts-improvements

This commit is contained in:
Grraahaam
2023-03-31 23:32:54 +02:00
14 changed files with 901 additions and 183 deletions

View File

@@ -9,15 +9,15 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.267.0",
"@aws-sdk/client-secrets-manager": "^3.281.0",
"@godaddy/terminus": "^4.11.2",
"@octokit/rest": "^19.0.5",
"@sentry/node": "^7.39.0",
"@sentry/tracing": "^7.19.0",
"@sentry/node": "^7.40.0",
"@sentry/tracing": "^7.39.0",
"@types/crypto-js": "^4.1.1",
"@types/libsodium-wrappers": "^0.7.10",
"await-to-js": "^3.0.0",
"aws-sdk": "^2.1311.0",
"aws-sdk": "^2.1324.0",
"axios": "^1.1.3",
"axios-retry": "^3.4.0",
"bcrypt": "^5.1.0",
@@ -38,7 +38,7 @@
"jsrp": "^0.2.4",
"libsodium-wrappers": "^0.7.10",
"lodash": "^4.17.21",
"mongoose": "^6.7.2",
"mongoose": "^6.10.2",
"nodemailer": "^6.8.0",
"posthog-node": "^2.5.4",
"query-string": "^7.1.3",
@@ -232,15 +232,15 @@
}
},
"node_modules/@aws-sdk/client-secrets-manager": {
"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==",
"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==",
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sts": "3.279.0",
"@aws-sdk/client-sts": "3.281.0",
"@aws-sdk/config-resolver": "3.272.0",
"@aws-sdk/credential-provider-node": "3.279.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",
@@ -277,10 +277,211 @@
"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",
@@ -323,6 +524,7 @@
"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",
@@ -365,6 +567,7 @@
"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",
@@ -469,6 +672,7 @@
"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",
@@ -488,6 +692,7 @@
"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",
@@ -522,6 +727,7 @@
"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",
@@ -905,6 +1111,7 @@
"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",
@@ -2781,32 +2988,14 @@
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
"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/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.39.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.39.0.tgz",
"integrity": "sha512-oe1OBxgs6t/FizjxkSPtuvJv5wJMO+mLENZkiE0PpBD56JyZrWK48kYIt2ccWAfk6Vh235/oIpmqET150xB4lQ==",
"version": "7.40.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.40.0.tgz",
"integrity": "sha512-S2pcLBUsCg3+WYlyQbXKPey3H1yaZPt9fpJTPAoabbidYXweBAbtFjSCRwPFwCQMzWusWxlYEwWRT77C07pHVg==",
"dependencies": {
"@sentry/core": "7.39.0",
"@sentry/types": "7.39.0",
"@sentry/utils": "7.39.0",
"@sentry/core": "7.40.0",
"@sentry/types": "7.40.0",
"@sentry/utils": "7.40.0",
"cookie": "^0.4.1",
"https-proxy-agent": "^5.0.0",
"lru_map": "^0.3.3",
@@ -2817,12 +3006,12 @@
}
},
"node_modules/@sentry/node/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==",
"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.39.0",
"@sentry/utils": "7.39.0",
"@sentry/types": "7.40.0",
"@sentry/utils": "7.40.0",
"tslib": "^1.9.3"
},
"engines": {
@@ -2830,19 +3019,19 @@
}
},
"node_modules/@sentry/node/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==",
"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.39.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.39.0.tgz",
"integrity": "sha512-/ZxlPgm1mGgmuMckCTc9iyqDuFTEYNEoMB53IjVFz8ann+37OiWB7Py/QV1rEEsv3xKrGbA8thhRhV9E1sjTlQ==",
"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.39.0",
"@sentry/types": "7.40.0",
"tslib": "^1.9.3"
},
"engines": {
@@ -2855,13 +3044,46 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/tracing": {
"version": "7.38.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.38.0.tgz",
"integrity": "sha512-ejXJp8oOT64MVtBzqdECUUaNzKbpu25St8Klub1i4Sm7xO+ZjDQDI4TIHvWojZvtkwQ3F4jcsCclc8KuyJunyQ==",
"version": "7.39.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.39.0.tgz",
"integrity": "sha512-bSRdUMzp/n54J+Qf4hHC4WVvdv4vZEv3NEbNNsnIZNAhnVAq6QB9VzsGRJZ12PqxJU3StDuqLiZFVOmGxETCkQ==",
"dependencies": {
"@sentry/core": "7.38.0",
"@sentry/types": "7.38.0",
"@sentry/utils": "7.38.0",
"@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",
"tslib": "^1.9.3"
},
"engines": {
@@ -2873,31 +3095,6 @@
"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",
@@ -3874,9 +4071,9 @@
}
},
"node_modules/aws-sdk": {
"version": "2.1323.0",
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1323.0.tgz",
"integrity": "sha512-GoLwk2SuG9A6eWgc1mGmm548dklheDmkeptHRw2RhCvq2GZqlc4AzStFUjUURy4O4NQmd2ZiQIoeseue4RwurA==",
"version": "2.1324.0",
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1324.0.tgz",
"integrity": "sha512-7T9Jn6qtzCANdqRcdhxZ9Fx31/U+h/VPFxEU3+sFEnC7WtGtRlgmsJOY2lIdFKRXkHYT3Jw5MqDyjnb/i1QqbA==",
"dependencies": {
"buffer": "4.9.2",
"events": "1.1.1",
@@ -7427,9 +7624,9 @@
}
},
"node_modules/mongoose": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.0.tgz",
"integrity": "sha512-0zrKDEnmNscYyAyN94smo2LlJ63gaezKHpHM+KQ+6EiAgAnah5Kt3hQSYzOTQX/63YNdT1oJXiLlB5LqTdcjUw==",
"version": "6.10.2",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.2.tgz",
"integrity": "sha512-9/AbheG2PiVVBWLx3S6LgCIEQNdMppjdnp/WH9nLGjFzjJeb9LiHNPEtsOGOm8qXmuICHMdbn5iUFAsLWWvpEw==",
"dependencies": {
"bson": "^4.7.0",
"kareem": "2.5.1",
@@ -12423,15 +12620,15 @@
}
},
"@aws-sdk/client-secrets-manager": {
"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==",
"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==",
"requires": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sts": "3.279.0",
"@aws-sdk/client-sts": "3.281.0",
"@aws-sdk/config-resolver": "3.272.0",
"@aws-sdk/credential-provider-node": "3.279.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",
@@ -12463,12 +12660,194 @@
"@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",
@@ -12508,6 +12887,7 @@
"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",
@@ -12547,6 +12927,7 @@
"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",
@@ -12636,6 +13017,7 @@
"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",
@@ -12652,6 +13034,7 @@
"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",
@@ -12680,6 +13063,7 @@
"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",
@@ -12985,6 +13369,7 @@
"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",
@@ -14376,16 +14761,44 @@
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
"@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==",
"@sentry/node": {
"version": "7.40.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.40.0.tgz",
"integrity": "sha512-S2pcLBUsCg3+WYlyQbXKPey3H1yaZPt9fpJTPAoabbidYXweBAbtFjSCRwPFwCQMzWusWxlYEwWRT77C07pHVg==",
"requires": {
"@sentry/types": "7.38.0",
"@sentry/utils": "7.38.0",
"@sentry/core": "7.40.0",
"@sentry/types": "7.40.0",
"@sentry/utils": "7.40.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",
@@ -14393,17 +14806,14 @@
}
}
},
"@sentry/node": {
"@sentry/tracing": {
"version": "7.39.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.39.0.tgz",
"integrity": "sha512-oe1OBxgs6t/FizjxkSPtuvJv5wJMO+mLENZkiE0PpBD56JyZrWK48kYIt2ccWAfk6Vh235/oIpmqET150xB4lQ==",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.39.0.tgz",
"integrity": "sha512-bSRdUMzp/n54J+Qf4hHC4WVvdv4vZEv3NEbNNsnIZNAhnVAq6QB9VzsGRJZ12PqxJU3StDuqLiZFVOmGxETCkQ==",
"requires": {
"@sentry/core": "7.39.0",
"@sentry/types": "7.39.0",
"@sentry/utils": "7.39.0",
"cookie": "^0.4.1",
"https-proxy-agent": "^5.0.0",
"lru_map": "^0.3.3",
"tslib": "^1.9.3"
},
"dependencies": {
@@ -14438,45 +14848,6 @@
}
}
},
"@sentry/tracing": {
"version": "7.38.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.38.0.tgz",
"integrity": "sha512-ejXJp8oOT64MVtBzqdECUUaNzKbpu25St8Klub1i4Sm7xO+ZjDQDI4TIHvWojZvtkwQ3F4jcsCclc8KuyJunyQ==",
"requires": {
"@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": {
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sinclair/typebox": {
"version": "0.25.24",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
@@ -15226,9 +15597,9 @@
"integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g=="
},
"aws-sdk": {
"version": "2.1323.0",
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1323.0.tgz",
"integrity": "sha512-GoLwk2SuG9A6eWgc1mGmm548dklheDmkeptHRw2RhCvq2GZqlc4AzStFUjUURy4O4NQmd2ZiQIoeseue4RwurA==",
"version": "2.1324.0",
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1324.0.tgz",
"integrity": "sha512-7T9Jn6qtzCANdqRcdhxZ9Fx31/U+h/VPFxEU3+sFEnC7WtGtRlgmsJOY2lIdFKRXkHYT3Jw5MqDyjnb/i1QqbA==",
"requires": {
"buffer": "4.9.2",
"events": "1.1.1",
@@ -17914,9 +18285,9 @@
}
},
"mongoose": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.0.tgz",
"integrity": "sha512-0zrKDEnmNscYyAyN94smo2LlJ63gaezKHpHM+KQ+6EiAgAnah5Kt3hQSYzOTQX/63YNdT1oJXiLlB5LqTdcjUw==",
"version": "6.10.2",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.2.tgz",
"integrity": "sha512-9/AbheG2PiVVBWLx3S6LgCIEQNdMppjdnp/WH9nLGjFzjJeb9LiHNPEtsOGOm8qXmuICHMdbn5iUFAsLWWvpEw==",
"requires": {
"bson": "^4.7.0",
"kareem": "2.5.1",

View File

@@ -1,14 +1,14 @@
{
"dependencies": {
"@aws-sdk/client-secrets-manager": "^3.267.0",
"@aws-sdk/client-secrets-manager": "^3.281.0",
"@godaddy/terminus": "^4.11.2",
"@octokit/rest": "^19.0.5",
"@sentry/node": "^7.39.0",
"@sentry/tracing": "^7.19.0",
"@sentry/tracing": "^7.39.0",
"@sentry/node": "^7.40.0",
"@types/crypto-js": "^4.1.1",
"@types/libsodium-wrappers": "^0.7.10",
"await-to-js": "^3.0.0",
"aws-sdk": "^2.1311.0",
"aws-sdk": "^2.1324.0",
"axios": "^1.1.3",
"axios-retry": "^3.4.0",
"bcrypt": "^5.1.0",
@@ -29,7 +29,7 @@
"jsrp": "^0.2.4",
"libsodium-wrappers": "^0.7.10",
"lodash": "^4.17.21",
"mongoose": "^6.7.2",
"mongoose": "^6.10.2",
"nodemailer": "^6.8.0",
"posthog-node": "^2.5.4",
"query-string": "^7.1.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 --testTimeout=10000 --detectOpenHandles",
"test": "cross-env NODE_ENV=test jest --verbose --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"
},

View File

@@ -1,5 +0,0 @@
import { it, expect } from '@jest/globals';
it('should return true', () => {
expect(true).toBeTruthy();
});

View File

@@ -0,0 +1,251 @@
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');
});
});
});

View File

@@ -0,0 +1,29 @@
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');
});
});

View File

@@ -4,7 +4,10 @@ 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
@@ -22,7 +25,6 @@ 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

View File

@@ -56,6 +56,7 @@ 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=
@@ -63,12 +64,16 @@ 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=
@@ -78,6 +83,7 @@ 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=
@@ -106,7 +112,6 @@ 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=

View File

@@ -263,10 +263,10 @@ var secretsSetCmd = &cobra.Command{
}
// Print secret operations
headers := []string{"SECRET NAME", "SECRET VALUE", "STATUS"}
rows := [][]string{}
headers := [...]string{"SECRET NAME", "SECRET VALUE", "STATUS"}
rows := [][3]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)

View File

@@ -3,12 +3,12 @@ package visualize
import "github.com/Infisical/infisical-merge/packages/models"
func PrintAllSecretDetails(secrets []models.SingleEnvironmentVariable) {
rows := [][]string{}
rows := [][3]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)
}

View File

@@ -2,8 +2,14 @@ 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 {
@@ -16,8 +22,35 @@ 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 []string, rows [][]string) {
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
}
t := table.NewWriter()
t.SetOutputMirror(os.Stdout)
t.SetStyle(table.StyleLight)
@@ -35,7 +68,11 @@ func Table(headers []string, rows [][]string) {
t.AppendHeader(tableHeaders)
for _, row := range rows {
tableRow := table.Row{}
for _, val := range 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)
}
tableRow = append(tableRow, val)
}
t.AppendRow(tableRow)
@@ -43,3 +80,28 @@ func Table(headers []string, rows [][]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
}

View File

@@ -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're 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 are 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>

View File

@@ -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 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="JWT_SIGNUP_SECRET" type="string" default="none" required>
Must be a random 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="JWT_REFRESH_SECRET" type="string" default="none" required>
Must be a random 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="JWT_AUTH_SECRET" type="string" default="none" required>
Must be a random 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="JWT_MFA_SECRET" type="string" default="none" required>
Must be a random 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="JWT_SERVICE_SECRET" type="string" default="none" required>
Must be a random 32 character length hex string
Must be a random 16 byte hex string. Can be generated with `openssl rand -hex 16`
</ParamField>
<ParamField query="MONGO_URL" type="string" default="none" required>

View File

@@ -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>

View File

@@ -52,12 +52,12 @@ export const OrgSettingsPage = () => {
const addIncidentContact = useAddIncidentContact();
const removeIncidentContact = useDeleteIncidentContact();
const [completeInviteLink, setcompleteInviteLink] = useState<string|undefined>("")
const [completeInviteLink, setcompleteInviteLink] = useState<string | undefined>('');
const isMoreUsersNotAllowed =
(orgUsers || []).length >= 5 &&
subscriptionPlan === plans.starter &&
host === 'https://app.infisical.com' &&
host === 'https://app.infisical.com' &&
currentWorkspace?._id !== '63ea8121b6e2b0543ba79616';
const onRenameOrg = async (name: string) => {
@@ -84,7 +84,7 @@ export const OrgSettingsPage = () => {
try {
await removeUserOrgMembership.mutateAsync({ orgId: currentOrg?._id, membershipId });
createNotification({
text: 'Successfully removed used from org',
text: 'Successfully removed user from org',
type: 'success'
});
} catch (error) {
@@ -99,11 +99,14 @@ export const OrgSettingsPage = () => {
if (!currentOrg?._id) return;
try {
const {data} = await addUserToOrg.mutateAsync({ organizationId: currentOrg?._id, inviteeEmail: email });
setcompleteInviteLink(data?.completeInviteLink)
const { data } = await addUserToOrg.mutateAsync({
organizationId: currentOrg?._id,
inviteeEmail: email
});
setcompleteInviteLink(data?.completeInviteLink);
// only show this notification when email is configured. A [completeInviteLink] will not be sent if smtp is configured
if (!data.completeInviteLink){
if (!data.completeInviteLink) {
createNotification({
text: 'Successfully invited user to the organization.',
type: 'success'