From 619fe553ef4fa822566d31ea6c561b2a7a0db282 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 16:51:36 -0700 Subject: [PATCH 01/18] update k8 operator to use service account --- .../api/v1alpha1/infisicalsecret_types.go | 18 +++- .../api/v1alpha1/zz_generated.deepcopy.go | 33 +++++++ ...ecrets.infisical.com_infisicalsecrets.yaml | 31 +++++++ k8-operator/config/samples/sample.yaml | 9 +- .../samples/serviceAccountCredsSecret.yaml | 9 ++ .../controllers/infisicalsecret_helper.go | 80 ++++++++++++++--- k8-operator/go.mod | 10 +-- k8-operator/go.sum | 10 +++ k8-operator/packages/api/api.go | 57 ++++++++++++ k8-operator/packages/api/models.go | 53 +++++++++++ k8-operator/packages/crypto/crypto.go | 7 ++ k8-operator/packages/model/model.go | 14 +++ k8-operator/packages/util/secrets.go | 87 ++++++++++++++++--- 13 files changed, 388 insertions(+), 30 deletions(-) create mode 100644 k8-operator/config/samples/serviceAccountCredsSecret.yaml create mode 100644 k8-operator/packages/model/model.go diff --git a/k8-operator/api/v1alpha1/infisicalsecret_types.go b/k8-operator/api/v1alpha1/infisicalsecret_types.go index f6027d1da4..3d02e55eed 100644 --- a/k8-operator/api/v1alpha1/infisicalsecret_types.go +++ b/k8-operator/api/v1alpha1/infisicalsecret_types.go @@ -4,6 +4,16 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +type Authentication struct { + ServiceAccount ServiceAccountDetails `json:"serviceAccount"` +} + +type ServiceAccountDetails struct { + ServiceAccountSecretReference KubeSecretReference `json:"serviceAccountSecretReference"` + ProjectId string `json:"projectId"` + EnvironmentName string `json:"environmentName"` +} + type KubeSecretReference struct { // The name of the Kubernetes Secret // +kubebuilder:validation:Required @@ -16,10 +26,14 @@ type KubeSecretReference struct { // InfisicalSecretSpec defines the desired state of InfisicalSecret type InfisicalSecretSpec struct { - // +kubebuilder:validation:Required + // +kubebuilder:validation:Optional TokenSecretReference KubeSecretReference `json:"tokenSecretReference,omitempty"` + + // +kubebuilder:validation:Optional + Authentication Authentication `json:"authentication,omitempty"` + // +kubebuilder:validation:Required - ManagedSecretReference KubeSecretReference `json:"managedSecretReference,omitempty"` + ManagedSecretReference KubeSecretReference `json:"managedSecretReference"` // Infisical host to pull secrets from HostAPI string `json:"hostAPI,omitempty"` diff --git a/k8-operator/api/v1alpha1/zz_generated.deepcopy.go b/k8-operator/api/v1alpha1/zz_generated.deepcopy.go index af9eff318b..c05e757b86 100644 --- a/k8-operator/api/v1alpha1/zz_generated.deepcopy.go +++ b/k8-operator/api/v1alpha1/zz_generated.deepcopy.go @@ -26,6 +26,22 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Authentication) DeepCopyInto(out *Authentication) { + *out = *in + out.ServiceAccount = in.ServiceAccount +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authentication. +func (in *Authentication) DeepCopy() *Authentication { + if in == nil { + return nil + } + out := new(Authentication) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *InfisicalSecret) DeepCopyInto(out *InfisicalSecret) { *out = *in @@ -89,6 +105,7 @@ func (in *InfisicalSecretList) DeepCopyObject() runtime.Object { func (in *InfisicalSecretSpec) DeepCopyInto(out *InfisicalSecretSpec) { *out = *in out.TokenSecretReference = in.TokenSecretReference + out.Authentication = in.Authentication out.ManagedSecretReference = in.ManagedSecretReference } @@ -138,3 +155,19 @@ func (in *KubeSecretReference) DeepCopy() *KubeSecretReference { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceAccountDetails) DeepCopyInto(out *ServiceAccountDetails) { + *out = *in + out.ServiceAccountSecretReference = in.ServiceAccountSecretReference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountDetails. +func (in *ServiceAccountDetails) DeepCopy() *ServiceAccountDetails { + if in == nil { + return nil + } + out := new(ServiceAccountDetails) + in.DeepCopyInto(out) + return out +} diff --git a/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml b/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml index 2064d76e88..a62fa651aa 100644 --- a/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml +++ b/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml @@ -35,6 +35,35 @@ spec: spec: description: InfisicalSecretSpec defines the desired state of InfisicalSecret properties: + authentication: + properties: + serviceAccount: + properties: + environmentName: + type: string + projectId: + type: string + serviceAccountSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret + is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - environmentName + - projectId + - serviceAccountSecretReference + type: object + required: + - serviceAccount + type: object hostAPI: description: Infisical host to pull secrets from type: string @@ -62,6 +91,8 @@ spec: - secretName - secretNamespace type: object + required: + - managedSecretReference type: object status: description: InfisicalSecretStatus defines the observed state of InfisicalSecret diff --git a/k8-operator/config/samples/sample.yaml b/k8-operator/config/samples/sample.yaml index 236e55baf4..adecbedbb5 100644 --- a/k8-operator/config/samples/sample.yaml +++ b/k8-operator/config/samples/sample.yaml @@ -3,10 +3,17 @@ kind: InfisicalSecret metadata: name: infisicalsecret-sample spec: - hostAPI: https://app.infisical.com/api + hostAPI: http://localhost:7070/api tokenSecretReference: secretName: service-token secretNamespace: default + authentication: + serviceAccount: + serviceAccountSecretReference: + secretName: service-account + secretNamespace: default + projectId: "6439ec224cfbf7ea2a95b651" + environmentName: "dev" managedSecretReference: secretName: managed-secret secretNamespace: default diff --git a/k8-operator/config/samples/serviceAccountCredsSecret.yaml b/k8-operator/config/samples/serviceAccountCredsSecret.yaml new file mode 100644 index 0000000000..859312ee27 --- /dev/null +++ b/k8-operator/config/samples/serviceAccountCredsSecret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: service-account +type: Opaque +stringData: + serviceAccountAccessKey: <> + serviceAccountPrivateKey: <> + serviceAccountPublicKey: <> diff --git a/k8-operator/controllers/infisicalsecret_helper.go b/k8-operator/controllers/infisicalsecret_helper.go index fef8b5a337..e528b19d50 100644 --- a/k8-operator/controllers/infisicalsecret_helper.go +++ b/k8-operator/controllers/infisicalsecret_helper.go @@ -7,6 +7,7 @@ import ( "github.com/Infisical/infisical/k8-operator/api/v1alpha1" "github.com/Infisical/infisical/k8-operator/packages/api" + "github.com/Infisical/infisical/k8-operator/packages/model" "github.com/Infisical/infisical/k8-operator/packages/util" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -14,6 +15,10 @@ import ( "k8s.io/apimachinery/pkg/types" ) +const SERVICE_ACCOUNT_ACCESS_KEY = "serviceAccountAccessKey" +const SERVICE_ACCOUNT_PUBLIC_KEY = "serviceAccountPublicKey" +const SERVICE_ACCOUNT_PRIVATE_KEY = "serviceAccountPrivateKey" + const INFISICAL_TOKEN_SECRET_KEY_NAME = "infisicalToken" const SECRET_VERSION_ANNOTATION = "secrets.infisical.com/version" // used to set the version of secrets via Etag const OPERATOR_SETTINGS_CONFIGMAP_NAME = "infisical-config" @@ -69,19 +74,47 @@ func (r *InfisicalSecretReconciler) GetInfisicalTokenFromKubeSecret(ctx context. Name: infisicalSecret.Spec.TokenSecretReference.SecretName, }) + if errors.IsNotFound(err) { + return "", nil + } + if err != nil { return "", fmt.Errorf("failed to read Infisical token secret from secret named [%s] in namespace [%s]: with error [%w]", infisicalSecret.Spec.TokenSecretReference.SecretName, infisicalSecret.Spec.TokenSecretReference.SecretNamespace, err) } infisicalServiceToken := tokenSecret.Data[INFISICAL_TOKEN_SECRET_KEY_NAME] - if infisicalServiceToken == nil { - return "", fmt.Errorf("the Infisical token is not set in the Kubernetes secret. Please add the key [%s] with the corresponding token value", INFISICAL_TOKEN_SECRET_KEY_NAME) - } return strings.Replace(string(infisicalServiceToken), " ", "", -1), nil } -func (r *InfisicalSecretReconciler) CreateInfisicalManagedKubeSecret(ctx context.Context, infisicalSecret v1alpha1.InfisicalSecret, secretsFromAPI []util.SingleEnvironmentVariable, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) error { +// Fetches service account credentials from a Kubernetes secret specified in the infisicalSecret object, extracts the access key, public key, and private key from the secret, and returns them as a ServiceAccountCredentials object. +// If any keys are missing or an error occurs, returns an empty object or an error object, respectively. +func (r *InfisicalSecretReconciler) GetInfisicalServiceAccountCredentialsFromKubeSecret(ctx context.Context, infisicalSecret v1alpha1.InfisicalSecret) (serviceAccountDetails model.ServiceAccountDetails, err error) { + serviceAccountCredsFromKubeSecret, err := r.GetKubeSecretByNamespacedName(ctx, types.NamespacedName{ + Namespace: infisicalSecret.Spec.Authentication.ServiceAccount.ServiceAccountSecretReference.SecretNamespace, + Name: infisicalSecret.Spec.Authentication.ServiceAccount.ServiceAccountSecretReference.SecretName, + }) + + if errors.IsNotFound(err) { + return model.ServiceAccountDetails{}, nil + } + + if err != nil { + return model.ServiceAccountDetails{}, fmt.Errorf("something went wrong when fetching your service account credentials [err=%s]", err) + } + + accessKeyFromSecret := serviceAccountCredsFromKubeSecret.Data[SERVICE_ACCOUNT_ACCESS_KEY] + publicKeyFromSecret := serviceAccountCredsFromKubeSecret.Data[SERVICE_ACCOUNT_PUBLIC_KEY] + privateKeyFromSecret := serviceAccountCredsFromKubeSecret.Data[SERVICE_ACCOUNT_PRIVATE_KEY] + + if accessKeyFromSecret == nil || publicKeyFromSecret == nil || privateKeyFromSecret == nil { + return model.ServiceAccountDetails{}, nil + } + + return model.ServiceAccountDetails{AccessKey: string(accessKeyFromSecret), PrivateKey: string(privateKeyFromSecret), PublicKey: string(publicKeyFromSecret)}, nil +} + +func (r *InfisicalSecretReconciler) CreateInfisicalManagedKubeSecret(ctx context.Context, infisicalSecret v1alpha1.InfisicalSecret, secretsFromAPI []model.SingleEnvironmentVariable, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) error { plainProcessedSecrets := make(map[string][]byte) for _, secret := range secretsFromAPI { plainProcessedSecrets[secret.Key] = []byte(secret.Value) // plain process @@ -109,7 +142,7 @@ func (r *InfisicalSecretReconciler) CreateInfisicalManagedKubeSecret(ctx context return nil } -func (r *InfisicalSecretReconciler) UpdateInfisicalManagedKubeSecret(ctx context.Context, managedKubeSecret corev1.Secret, secretsFromAPI []util.SingleEnvironmentVariable, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) error { +func (r *InfisicalSecretReconciler) UpdateInfisicalManagedKubeSecret(ctx context.Context, managedKubeSecret corev1.Secret, secretsFromAPI []model.SingleEnvironmentVariable, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) error { plainProcessedSecrets := make(map[string][]byte) for _, secret := range secretsFromAPI { plainProcessedSecrets[secret.Key] = []byte(secret.Value) @@ -131,6 +164,15 @@ func (r *InfisicalSecretReconciler) UpdateInfisicalManagedKubeSecret(ctx context func (r *InfisicalSecretReconciler) ReconcileInfisicalSecret(ctx context.Context, infisicalSecret v1alpha1.InfisicalSecret) error { infisicalToken, err := r.GetInfisicalTokenFromKubeSecret(ctx, infisicalSecret) + if err != nil { + return fmt.Errorf("ReconcileInfisicalSecret: unable to get service token from kube secret [err=%s]", err) + } + + serviceAccountCreds, err := r.GetInfisicalServiceAccountCredentialsFromKubeSecret(ctx, infisicalSecret) + if err != nil { + return fmt.Errorf("ReconcileInfisicalSecret: unable to get service account creds from kube secret [err=%s]", err) + } + r.SetInfisicalTokenLoadCondition(ctx, &infisicalSecret, err) if err != nil { return fmt.Errorf("unable to load Infisical Token from the specified Kubernetes secret with error [%w]", err) @@ -146,15 +188,33 @@ func (r *InfisicalSecretReconciler) ReconcileInfisicalSecret(ctx context.Context return fmt.Errorf("something went wrong when fetching the managed Kubernetes secret [%w]", err) } + // Get exiting Etag if exists secretVersionBasedOnETag := "" - if managedKubeSecret != nil { secretVersionBasedOnETag = managedKubeSecret.Annotations[SECRET_VERSION_ANNOTATION] } - plainTextSecretsFromApi, fullEncryptedSecretsResponse, err := util.GetPlainTextSecretsViaServiceToken(infisicalToken, secretVersionBasedOnETag) - if err != nil { - return fmt.Errorf("failed to get secrets because [err=%v]\n", err) + var plainTextSecretsFromApi []model.SingleEnvironmentVariable + var fullEncryptedSecretsResponse api.GetEncryptedSecretsV2Response + + if serviceAccountCreds.AccessKey != "" || serviceAccountCreds.PrivateKey != "" || serviceAccountCreds.PublicKey != "" { + plainTextSecretsFromApi, fullEncryptedSecretsResponse, err = util.GetPlainTextSecretsViaServiceAccount(serviceAccountCreds, infisicalSecret.Spec.Authentication.ServiceAccount.ProjectId, infisicalSecret.Spec.Authentication.ServiceAccount.EnvironmentName, secretVersionBasedOnETag) + if err != nil { + return fmt.Errorf("\nfailed to get secrets because [err=%v]", err) + } + + fmt.Println("ReconcileInfisicalSecret: Fetched secrets via service account") + + } else if infisicalToken != "" { + plainTextSecretsFromApi, fullEncryptedSecretsResponse, err = util.GetPlainTextSecretsViaServiceToken(infisicalToken, secretVersionBasedOnETag) + if err != nil { + return fmt.Errorf("\nfailed to get secrets because [err=%v]", err) + } + + fmt.Println("ReconcileInfisicalSecret: Fetched secrets via service token") + + } else { + return fmt.Errorf("no authentication method provided. You must provide either a valid service token or a service account details to fetch secrets") } if !fullEncryptedSecretsResponse.Modified { @@ -162,8 +222,6 @@ func (r *InfisicalSecretReconciler) ReconcileInfisicalSecret(ctx context.Context return nil } - fmt.Println("secret is modified so it needs to be created or updated") - if managedKubeSecret == nil { return r.CreateInfisicalManagedKubeSecret(ctx, infisicalSecret, plainTextSecretsFromApi, fullEncryptedSecretsResponse) } else { diff --git a/k8-operator/go.mod b/k8-operator/go.mod index a4b615409f..6de0684551 100644 --- a/k8-operator/go.mod +++ b/k8-operator/go.mod @@ -57,12 +57,12 @@ require ( go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.1.0 - golang.org/x/net v0.7.0 // indirect + golang.org/x/crypto v0.8.0 + golang.org/x/net v0.9.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/sys v0.7.0 // indirect + golang.org/x/term v0.7.0 // indirect + golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/k8-operator/go.sum b/k8-operator/go.sum index 1ae17974ab..5b5f8f3d06 100644 --- a/k8-operator/go.sum +++ b/k8-operator/go.sum @@ -392,6 +392,8 @@ golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -474,6 +476,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgk golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -566,11 +570,15 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -583,6 +591,8 @@ golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/k8-operator/packages/api/api.go b/k8-operator/packages/api/api.go index ac7c47d6d3..bb719f6506 100644 --- a/k8-operator/packages/api/api.go +++ b/k8-operator/packages/api/api.go @@ -78,3 +78,60 @@ func CallGetSecretsV2(httpClient *resty.Client, request GetEncryptedSecretsV2Req return encryptedSecretsResponse, nil } + +func CallGetServiceTokenAccountDetailsV2(httpClient *resty.Client) (ServiceAccountDetailsResponse, error) { + var serviceAccountDetailsResponse ServiceAccountDetailsResponse + response, err := httpClient. + R(). + SetResult(&serviceAccountDetailsResponse). + SetHeader("User-Agent", USER_AGENT_NAME). + Get(fmt.Sprintf("%v/v2/service-accounts/me", API_HOST_URL)) + + if err != nil { + return ServiceAccountDetailsResponse{}, fmt.Errorf("CallGetServiceTokenAccountDetailsV2: Unable to complete api request [err=%s]", err) + } + + if response.IsError() { + return ServiceAccountDetailsResponse{}, fmt.Errorf("CallGetServiceTokenAccountDetailsV2: Unsuccessful response: [response=%s]", response) + } + + return serviceAccountDetailsResponse, nil +} + +func CallGetServiceAccountWorkspacePermissionsV2(httpClient *resty.Client) (ServiceAccountWorkspacePermissions, error) { + var serviceAccountWorkspacePermissionsResponse ServiceAccountWorkspacePermissions + response, err := httpClient. + R(). + SetResult(&serviceAccountWorkspacePermissionsResponse). + SetHeader("User-Agent", USER_AGENT_NAME). + Get(fmt.Sprintf("%v/v2/service-accounts//permissions/workspace", API_HOST_URL)) + + if err != nil { + return ServiceAccountWorkspacePermissions{}, fmt.Errorf("CallGetServiceAccountWorkspacePermissionsV2: Unable to complete api request [err=%s]", err) + } + + if response.IsError() { + return ServiceAccountWorkspacePermissions{}, fmt.Errorf("CallGetServiceAccountWorkspacePermissionsV2: Unsuccessful response: [response=%s]", response) + } + + return serviceAccountWorkspacePermissionsResponse, nil +} + +func CallGetServiceAccountKeysV2(httpClient *resty.Client, request GetServiceAccountKeysRequest) (GetServiceAccountKeysResponse, error) { + var serviceAccountKeysResponse GetServiceAccountKeysResponse + response, err := httpClient. + R(). + SetResult(&serviceAccountKeysResponse). + SetHeader("User-Agent", USER_AGENT_NAME). + Get(fmt.Sprintf("%v/v2/service-accounts/%v/keys", API_HOST_URL, request.ServiceAccountId)) + + if err != nil { + return GetServiceAccountKeysResponse{}, fmt.Errorf("CallGetServiceAccountKeysV2: Unable to complete api request [err=%s]", err) + } + + if response.IsError() { + return GetServiceAccountKeysResponse{}, fmt.Errorf("CallGetServiceAccountKeysV2: Unsuccessful response: [response=%s]", response) + } + + return serviceAccountKeysResponse, nil +} diff --git a/k8-operator/packages/api/models.go b/k8-operator/packages/api/models.go index 7a34b8f7a1..623cf05c94 100644 --- a/k8-operator/packages/api/models.go +++ b/k8-operator/packages/api/models.go @@ -65,3 +65,56 @@ type GetServiceTokenDetailsResponse struct { Iv string `json:"iv"` Tag string `json:"tag"` } + +type ServiceAccountDetailsResponse struct { + ServiceAccount struct { + ID string `json:"_id"` + Name string `json:"name"` + Organization string `json:"organization"` + PublicKey string `json:"publicKey"` + LastUsed time.Time `json:"lastUsed"` + ExpiresAt time.Time `json:"expiresAt"` + } `json:"serviceAccount"` +} + +type ServiceAccountWorkspacePermission struct { + ID string `json:"_id"` + ServiceAccount string `json:"serviceAccount"` + Workspace struct { + ID string `json:"_id"` + Name string `json:"name"` + AutoCapitalization bool `json:"autoCapitalization"` + Organization string `json:"organization"` + Environments []struct { + Name string `json:"name"` + Slug string `json:"slug"` + ID string `json:"_id"` + } `json:"environments"` + } `json:"workspace"` + Environment string `json:"environment"` + Read bool `json:"read"` + Write bool `json:"write"` +} + +type ServiceAccountWorkspacePermissions struct { + ServiceAccountWorkspacePermission []ServiceAccountWorkspacePermissions `json:"serviceAccountWorkspacePermissions"` +} + +type GetServiceAccountKeysRequest struct { + ServiceAccountId string `json:"id"` +} + +type ServiceAccountKey struct { + ID string `json:"_id"` + EncryptedKey string `json:"encryptedKey"` + Nonce string `json:"nonce"` + Sender string `json:"sender"` + ServiceAccount string `json:"serviceAccount"` + Workspace string `json:"workspace"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +type GetServiceAccountKeysResponse struct { + ServiceAccountKeys []ServiceAccountKey `json:"serviceAccountKeys"` +} diff --git a/k8-operator/packages/crypto/crypto.go b/k8-operator/packages/crypto/crypto.go index d5b0a99556..e8633e2735 100644 --- a/k8-operator/packages/crypto/crypto.go +++ b/k8-operator/packages/crypto/crypto.go @@ -3,6 +3,8 @@ package crypto import ( "crypto/aes" "crypto/cipher" + + "golang.org/x/crypto/nacl/box" ) func DecryptSymmetric(key []byte, encryptedPrivateKey []byte, tag []byte, IV []byte) ([]byte, error) { @@ -26,3 +28,8 @@ func DecryptSymmetric(key []byte, encryptedPrivateKey []byte, tag []byte, IV []b return plaintext, nil } + +func DecryptAsymmetric(ciphertext []byte, nonce []byte, publicKey []byte, privateKey []byte) (plainText []byte) { + plainTextToReturn, _ := box.Open(nil, ciphertext, (*[24]byte)(nonce), (*[32]byte)(publicKey), (*[32]byte)(privateKey)) + return plainTextToReturn +} diff --git a/k8-operator/packages/model/model.go b/k8-operator/packages/model/model.go new file mode 100644 index 0000000000..b7d4780b29 --- /dev/null +++ b/k8-operator/packages/model/model.go @@ -0,0 +1,14 @@ +package model + +type ServiceAccountDetails struct { + AccessKey string + PublicKey string + PrivateKey string +} + +type SingleEnvironmentVariable struct { + Key string `json:"key"` + Value string `json:"value"` + Type string `json:"type"` + ID string `json:"_id"` +} diff --git a/k8-operator/packages/util/secrets.go b/k8-operator/packages/util/secrets.go index 4cbf246489..8134fb8828 100644 --- a/k8-operator/packages/util/secrets.go +++ b/k8-operator/packages/util/secrets.go @@ -7,16 +7,10 @@ import ( "github.com/Infisical/infisical/k8-operator/packages/api" "github.com/Infisical/infisical/k8-operator/packages/crypto" + "github.com/Infisical/infisical/k8-operator/packages/model" "github.com/go-resty/resty/v2" ) -type SingleEnvironmentVariable struct { - Key string `json:"key"` - Value string `json:"value"` - Type string `json:"type"` - ID string `json:"_id"` -} - type DecodedSymmetricEncryptionDetails = struct { Cipher []byte IV []byte @@ -54,7 +48,7 @@ func GetServiceTokenDetails(infisicalToken string) (api.GetServiceTokenDetailsRe return serviceTokenDetails, nil } -func GetPlainTextSecretsViaServiceToken(fullServiceToken string, etag string) ([]SingleEnvironmentVariable, api.GetEncryptedSecretsV2Response, error) { +func GetPlainTextSecretsViaServiceToken(fullServiceToken string, etag string) ([]model.SingleEnvironmentVariable, api.GetEncryptedSecretsV2Response, error) { serviceTokenParts := strings.SplitN(fullServiceToken, ".", 4) if len(serviceTokenParts) < 4 { return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("invalid service token entered. Please double check your service token and try again") @@ -100,6 +94,77 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, etag string) ([ return plainTextSecrets, encryptedSecretsResponse, nil } +// Fetches plaintext secrets from an API endpoint using a service account. +// The function fetches the service account details and keys, decrypts the workspace key, fetches the encrypted secrets for the specified project and environment, and decrypts the secrets using the decrypted workspace key. +// Returns the plaintext secrets, encrypted secrets response, and any errors that occurred during the process. +func GetPlainTextSecretsViaServiceAccount(serviceAccountCreds model.ServiceAccountDetails, projectId string, environmentName string, etag string) ([]model.SingleEnvironmentVariable, api.GetEncryptedSecretsV2Response, error) { + httpClient := resty.New() + httpClient.SetAuthToken(serviceAccountCreds.AccessKey). + SetHeader("Accept", "application/json") + + serviceAccountDetails, err := api.CallGetServiceTokenAccountDetailsV2(httpClient) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to get service account details. [err=%v]", err) + } + + serviceAccountKeys, err := api.CallGetServiceAccountKeysV2(httpClient, api.GetServiceAccountKeysRequest{ServiceAccountId: serviceAccountDetails.ServiceAccount.ID}) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to get service account key details. [err=%v]", err) + } + + // find key for requested project + var workspaceServiceAccountKey api.ServiceAccountKey + for _, serviceAccountKey := range serviceAccountKeys.ServiceAccountKeys { + if serviceAccountKey.Workspace == projectId { + workspaceServiceAccountKey = serviceAccountKey + } + } + + if workspaceServiceAccountKey.ID == "" || workspaceServiceAccountKey.EncryptedKey == "" || workspaceServiceAccountKey.Nonce == "" || serviceAccountCreds.PublicKey == "" || serviceAccountCreds.PrivateKey == "" { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("unable to find key for [projectId=%s] [err=%v]. Ensure that the given service account has access to given projectId", projectId, err) + } + + cipherText, err := base64.StdEncoding.DecodeString(workspaceServiceAccountKey.EncryptedKey) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to decode EncryptedKey secrets because [err=%v]", err) + } + + nonce, err := base64.StdEncoding.DecodeString(workspaceServiceAccountKey.Nonce) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to decode nonce secrets because [err=%v]", err) + } + + publickey, err := base64.StdEncoding.DecodeString(serviceAccountCreds.PublicKey) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to decode PublicKey secrets because [err=%v]", err) + } + + privateKey, err := base64.StdEncoding.DecodeString(serviceAccountCreds.PrivateKey) + + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to decode PrivateKey secrets because [err=%v]", err) + } + + plainTextWorkspaceKey := crypto.DecryptAsymmetric(cipherText, nonce, publickey, privateKey) + + encryptedSecretsResponse, err := api.CallGetSecretsV2(httpClient, api.GetEncryptedSecretsV2Request{ + WorkspaceId: projectId, + Environment: environmentName, + ETag: etag, + }) + + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("unable to fetch secrets because [err=%v]", err) + } + + plainTextSecrets, err := GetPlainTextSecrets(plainTextWorkspaceKey, encryptedSecretsResponse) + if err != nil { + return nil, api.GetEncryptedSecretsV2Response{}, fmt.Errorf("GetPlainTextSecretsViaServiceAccount: unable to get plain text secrets because [err=%v]", err) + } + + return plainTextSecrets, encryptedSecretsResponse, nil +} + func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV string, tag string) (DecodedSymmetricEncryptionDetails, error) { cipherx, err := base64.StdEncoding.DecodeString(cipher) if err != nil { @@ -129,8 +194,8 @@ func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV st }, nil } -func GetPlainTextSecrets(key []byte, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) ([]SingleEnvironmentVariable, error) { - plainTextSecrets := []SingleEnvironmentVariable{} +func GetPlainTextSecrets(key []byte, encryptedSecretsResponse api.GetEncryptedSecretsV2Response) ([]model.SingleEnvironmentVariable, error) { + plainTextSecrets := []model.SingleEnvironmentVariable{} for _, secret := range encryptedSecretsResponse.Secrets { // Decrypt key key_iv, err := base64.StdEncoding.DecodeString(secret.SecretKeyIV) @@ -174,7 +239,7 @@ func GetPlainTextSecrets(key []byte, encryptedSecretsResponse api.GetEncryptedSe return nil, fmt.Errorf("unable to symmetrically decrypt secret value") } - plainTextSecret := SingleEnvironmentVariable{ + plainTextSecret := model.SingleEnvironmentVariable{ Key: string(plainTextKey), Value: string(plainTextValue), Type: string(secret.Type), From 4a36dcd1ed31605a352edbe4944da0baf5e5f569 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 17:07:49 -0700 Subject: [PATCH 02/18] update helm and kubectl install manifests --- helm-charts/secrets-operator/Chart.yaml | 2 +- .../templates/infisicalsecret-crd.yaml | 31 +++++++++++++++++++ .../install-secrets-operator.yaml | 30 ++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/helm-charts/secrets-operator/Chart.yaml b/helm-charts/secrets-operator/Chart.yaml index a7716ab69f..15e532d8b3 100644 --- a/helm-charts/secrets-operator/Chart.yaml +++ b/helm-charts/secrets-operator/Chart.yaml @@ -13,7 +13,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.4 +version: 0.1.5 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. diff --git a/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml b/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml index a3ae93f9e3..22cb57e6e2 100644 --- a/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml +++ b/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml @@ -35,6 +35,35 @@ spec: spec: description: InfisicalSecretSpec defines the desired state of InfisicalSecret properties: + authentication: + properties: + serviceAccount: + properties: + environmentName: + type: string + projectId: + type: string + serviceAccountSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret + is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - environmentName + - projectId + - serviceAccountSecretReference + type: object + required: + - serviceAccount + type: object hostAPI: description: Infisical host to pull secrets from type: string @@ -62,6 +91,8 @@ spec: - secretName - secretNamespace type: object + required: + - managedSecretReference type: object status: description: InfisicalSecretStatus defines the observed state of InfisicalSecret diff --git a/k8-operator/kubectl-install/install-secrets-operator.yaml b/k8-operator/kubectl-install/install-secrets-operator.yaml index 7902babfb3..159496f911 100644 --- a/k8-operator/kubectl-install/install-secrets-operator.yaml +++ b/k8-operator/kubectl-install/install-secrets-operator.yaml @@ -43,6 +43,34 @@ spec: spec: description: InfisicalSecretSpec defines the desired state of InfisicalSecret properties: + authentication: + properties: + serviceAccount: + properties: + environmentName: + type: string + projectId: + type: string + serviceAccountSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - environmentName + - projectId + - serviceAccountSecretReference + type: object + required: + - serviceAccount + type: object hostAPI: description: Infisical host to pull secrets from type: string @@ -70,6 +98,8 @@ spec: - secretName - secretNamespace type: object + required: + - managedSecretReference type: object status: description: InfisicalSecretStatus defines the observed state of InfisicalSecret From e348e4678effb881de9bf003cfc40b890df4d366 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 17:11:18 -0700 Subject: [PATCH 03/18] remove unused method --- backend/src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index 912d39177f..c77fcd7931 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -70,7 +70,8 @@ import { getNodeEnv, getPort, getSentryDSN, - getSiteURL + getSiteURL, + getSmtpHost } from './config'; const main = async () => { From 5585893cfe6992a6f01aa72ce505882bddacea7c Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 17:12:07 -0700 Subject: [PATCH 04/18] allow service account to fetch secrets --- backend/src/routes/v2/secrets.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/routes/v2/secrets.ts b/backend/src/routes/v2/secrets.ts index 57657b0793..ab8e40488f 100644 --- a/backend/src/routes/v2/secrets.ts +++ b/backend/src/routes/v2/secrets.ts @@ -44,7 +44,7 @@ router.post( const secretIds = requests .map((request) => request.secret._id) .filter((secretId) => secretId !== undefined) - + if (secretIds.length > 0) { req.secrets = await validateClientForSecrets({ authData: req.authData, @@ -53,8 +53,8 @@ router.post( }); } } - return true; - }), + return true; + }), validateRequest, secretsController.batchSecrets ); @@ -123,7 +123,7 @@ router.get( query('tagSlugs'), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN] + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_SERVICE_ACCOUNT] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], From df2e0e03ff99ca29e0c8e72c083228d1906887ba Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 18:40:33 -0700 Subject: [PATCH 05/18] add service token to auth methods block for k8 --- .../api/v1alpha1/infisicalsecret_types.go | 11 ++++++++-- .../api/v1alpha1/zz_generated.deepcopy.go | 17 ++++++++++++++++ ...ecrets.infisical.com_infisicalsecrets.yaml | 20 +++++++++++++++++-- k8-operator/config/samples/sample.yaml | 11 +++++++--- .../controllers/infisicalsecret_helper.go | 17 ++++++++++++++-- 5 files changed, 67 insertions(+), 9 deletions(-) diff --git a/k8-operator/api/v1alpha1/infisicalsecret_types.go b/k8-operator/api/v1alpha1/infisicalsecret_types.go index 3d02e55eed..e8dccdabb3 100644 --- a/k8-operator/api/v1alpha1/infisicalsecret_types.go +++ b/k8-operator/api/v1alpha1/infisicalsecret_types.go @@ -5,7 +5,14 @@ import ( ) type Authentication struct { + // +kubebuilder:validation:Optional ServiceAccount ServiceAccountDetails `json:"serviceAccount"` + // +kubebuilder:validation:Optional + ServiceToken ServiceTokenDetails `json:"serviceToken"` +} + +type ServiceTokenDetails struct { + ServiceTokenSecretReference KubeSecretReference `json:"serviceTokenSecretReference"` } type ServiceAccountDetails struct { @@ -27,10 +34,10 @@ type KubeSecretReference struct { // InfisicalSecretSpec defines the desired state of InfisicalSecret type InfisicalSecretSpec struct { // +kubebuilder:validation:Optional - TokenSecretReference KubeSecretReference `json:"tokenSecretReference,omitempty"` + TokenSecretReference KubeSecretReference `json:"tokenSecretReference"` // +kubebuilder:validation:Optional - Authentication Authentication `json:"authentication,omitempty"` + Authentication Authentication `json:"authentication"` // +kubebuilder:validation:Required ManagedSecretReference KubeSecretReference `json:"managedSecretReference"` diff --git a/k8-operator/api/v1alpha1/zz_generated.deepcopy.go b/k8-operator/api/v1alpha1/zz_generated.deepcopy.go index c05e757b86..97c0f4fc76 100644 --- a/k8-operator/api/v1alpha1/zz_generated.deepcopy.go +++ b/k8-operator/api/v1alpha1/zz_generated.deepcopy.go @@ -30,6 +30,7 @@ import ( func (in *Authentication) DeepCopyInto(out *Authentication) { *out = *in out.ServiceAccount = in.ServiceAccount + out.ServiceToken = in.ServiceToken } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authentication. @@ -171,3 +172,19 @@ func (in *ServiceAccountDetails) DeepCopy() *ServiceAccountDetails { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceTokenDetails) DeepCopyInto(out *ServiceTokenDetails) { + *out = *in + out.ServiceTokenSecretReference = in.ServiceTokenSecretReference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceTokenDetails. +func (in *ServiceTokenDetails) DeepCopy() *ServiceTokenDetails { + if in == nil { + return nil + } + out := new(ServiceTokenDetails) + in.DeepCopyInto(out) + return out +} diff --git a/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml b/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml index a62fa651aa..3bcdb0020e 100644 --- a/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml +++ b/k8-operator/config/crd/bases/secrets.infisical.com_infisicalsecrets.yaml @@ -61,8 +61,24 @@ spec: - projectId - serviceAccountSecretReference type: object - required: - - serviceAccount + serviceToken: + properties: + serviceTokenSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret + is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - serviceTokenSecretReference + type: object type: object hostAPI: description: Infisical host to pull secrets from diff --git a/k8-operator/config/samples/sample.yaml b/k8-operator/config/samples/sample.yaml index adecbedbb5..1109654211 100644 --- a/k8-operator/config/samples/sample.yaml +++ b/k8-operator/config/samples/sample.yaml @@ -4,9 +4,6 @@ metadata: name: infisicalsecret-sample spec: hostAPI: http://localhost:7070/api - tokenSecretReference: - secretName: service-token - secretNamespace: default authentication: serviceAccount: serviceAccountSecretReference: @@ -14,6 +11,14 @@ spec: secretNamespace: default projectId: "6439ec224cfbf7ea2a95b651" environmentName: "dev" + serviceToken: + serviceTokenSecretReference: + secretName: service-token + secretNamespace: default managedSecretReference: secretName: managed-secret secretNamespace: default + # To be depreciated soon + tokenSecretReference: + secretName: service-token + secretNamespace: default diff --git a/k8-operator/controllers/infisicalsecret_helper.go b/k8-operator/controllers/infisicalsecret_helper.go index e528b19d50..faf4a4e300 100644 --- a/k8-operator/controllers/infisicalsecret_helper.go +++ b/k8-operator/controllers/infisicalsecret_helper.go @@ -69,9 +69,22 @@ func (r *InfisicalSecretReconciler) GetKubeSecretByNamespacedName(ctx context.Co } func (r *InfisicalSecretReconciler) GetInfisicalTokenFromKubeSecret(ctx context.Context, infisicalSecret v1alpha1.InfisicalSecret) (string, error) { + // default to new secret ref structure + secretName := infisicalSecret.Spec.Authentication.ServiceToken.ServiceTokenSecretReference.SecretName + secretNamespace := infisicalSecret.Spec.Authentication.ServiceToken.ServiceTokenSecretReference.SecretNamespace + + // fall back to previous secret ref + if secretName == "" { + secretName = infisicalSecret.Spec.TokenSecretReference.SecretName + } + + if secretNamespace == "" { + secretNamespace = infisicalSecret.Spec.TokenSecretReference.SecretNamespace + } + tokenSecret, err := r.GetKubeSecretByNamespacedName(ctx, types.NamespacedName{ - Namespace: infisicalSecret.Spec.TokenSecretReference.SecretNamespace, - Name: infisicalSecret.Spec.TokenSecretReference.SecretName, + Namespace: secretNamespace, + Name: secretName, }) if errors.IsNotFound(err) { From 92df5e1a2fd953a1db2f4f57285eee1e3f47f40d Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 16 Apr 2023 21:04:28 -0700 Subject: [PATCH 06/18] add docs for new k8 oper with service account --- docs/integrations/platforms/kubernetes.mdx | 125 ++++++++++++++++----- 1 file changed, 97 insertions(+), 28 deletions(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index 5ea3967d97..e4bb54e5e6 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -38,12 +38,10 @@ The operator can be install via [Helm](helm.sh) or [kubectl](https://github.com/ ## Sync Infisical Secrets to your cluster - -To retrieve secrets from an Infisical project and store them in your Kubernetes cluster, you can use the InfisicalSecret custom resource. -This resource is available after installing the Infisical operator. In order to specify the Infisical Token location and the location where the retrieved secrets should be stored, you can use the `tokenSecretReference` and `managedSecretReference` fields within the InfisicalSecret resource. +To retrieve secrets from an Infisical project and save them as a native Kubernetes secret within a specific namespace, utilize the `InfisicalSecret` custom resource. +This resource can be created after installing the Infisical operator. ```yaml - apiVersion: secrets.infisical.com/v1alpha1 kind: InfisicalSecret metadata: @@ -52,39 +50,110 @@ metadata: spec: # The host that should be used to pull secrets from. If left empty, the value specified in Global configuration will be used hostAPI: https://app.infisical.com/api - - # The Kubernetes secret the stores the Infisical token - tokenSecretReference: - # Kubernetes secret name - secretName: service-token - # The secret namespace - secretNamespace: default - - # The Kubernetes secret that Infisical Operator will create and populate with secrets from the above project + authentication: + serviceToken: # <-- option 1 + serviceTokenSecretReference: + secretName: service-token + secretNamespace: option + serviceAccount: # <-- method 2 + serviceAccountSecretReference: + secretName: service-account + secretNamespace: default + projectId: "6439ec224cfbf7ea2a95b651" + environmentName: "dev" managedSecretReference: - # The name of managed Kubernetes secret that should be created secretName: managed-secret - # The namespace the managed secret should be installed in secretNamespace: default ``` +### InfisicalSecret CRD properties - - The `tokenSecretReference` field in the InfisicalSecret resource is used to specify the location of the Infisical Token, which is required for authenticating and retrieving secrets from an Infisical project. - - To create a Kubernetes secret containing an [Infisical Token](../../getting-started/dashboard/token), you can run the command below. - ``` bash - kubectl create secret generic service-token --from-literal=infisicalToken= - ``` + + If you are fetching secrets from a self hosted instance of Infisical set the value of `hostAPI` to + ` https://your-self-hosted-instace.com/api` -Once the secret is created, add the name and namespace of the secret under `tokenSecretReference` field in the InfisicalSecret custom resource. + When `hostAPI` is not defined the operator fetches secrets from Infisical Cloud. + -{' '} + + The `authentication` property tells the operator where it should look to find credentials needed to fetch secrets from Infisical. You can authenticate via two methods as described below. - - No matter what the name of the secret is or its namespace, it must contain a - key named `infisicalToken` with a valid Infisical Token as the value - + + + Authenticating with service tokens is a great option when you have a small number of services you'd like to fetch secrets for and are looking for the least amount of setup. + + #### 1. Generate service token + You can generate a service token for an Infisical project by heading over to the Infisical dashboard then to Project Settings. + + #### 2. Create Kubernetes secret containing service token + + Once you have generated the service token, you will need to create a Kubernetes secret containing the service token you generated. + To quickly create a Kubernetes secret containing the generated service token, you can run the command below. + + ``` bash + kubectl create secret generic service-token --from-literal=infisicalToken= + ``` + + #### 3. Add reference for the Kubernetes secret containing service token + + Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceToken` field in the InfisicalSecret resource. + + ## Example + ```yaml + apiVersion: secrets.infisical.com/v1alpha1 + kind: InfisicalSecret + metadata: + name: infisicalsecret-sample-crd + spec: + authentication: + serviceToken: + serviceTokenSecretReference: + secretName: service-token # <-- name of the Kubernetes secret that stores our service token + secretNamespace: option # <-- namespace of the Kubernetes secret that stores our service token + ... + ``` + + + + Authenticating with service tokens is a great option when you have a small number of services you'd like to fetch secrets for and are looking for the least amount of setup. + + #### 1. Generate service token + + You can generate a service token for an Infisical project by heading over to the Infisical dashboard then to Project Settings. + + #### 2. Create Kubernetes secret containing service token + + Once you have generated the service token, you will need to create a Kubernetes secret containing the service token you generated. + To quickly create a Kubernetes secret containing the generated service token, you can run the command below. + + ``` bash + kubectl create secret generic service-token --from-literal=infisicalToken= + ``` + + #### 3. Add reference for the Kubernetes secret containing service token + + Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceToken` field in the InfisicalSecret resource. + + ## Example + ```yaml + apiVersion: secrets.infisical.com/v1alpha1 + kind: InfisicalSecret + metadata: + name: infisicalsecret-sample-crd + spec: + authentication: + serviceToken: + serviceTokenSecretReference: + secretName: service-token # <-- name of the Kubernetes secret that stores our service token + secretNamespace: option # <-- namespace of the Kubernetes secret that stores our service token + ... + ``` + ``` + kubectl create secret generic service-token --from-literal=serviceAccountAccessKey=secret123 --from-literal=serviceAccountPublicKey=123456 --from-literal=serviceAccountPrivateKey=123456 + ``` + + + From b4839eaac853fd7e57567a9b377b3c93d8e6d872 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Mon, 17 Apr 2023 05:01:06 +0000 Subject: [PATCH 07/18] fix: upgrade @sentry/tracing from 7.41.0 to 7.45.0 Snyk has created this PR to upgrade @sentry/tracing from 7.41.0 to 7.45.0. See this package in npm: https://www.npmjs.com/package/@sentry/tracing See this project in Snyk: https://app.snyk.io/org/maidul98/project/35057e82-ed7d-4e19-ba4d-719a42135cd6?utm_source=github&utm_medium=referral&page=upgrade-pr --- backend/package-lock.json | 130 ++++++++++++++++++++++++++++++-------- backend/package.json | 2 +- 2 files changed, 104 insertions(+), 28 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 7180d957f3..ad04286886 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -12,8 +12,8 @@ "@aws-sdk/client-secrets-manager": "^3.294.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", - "@sentry/tracing": "^7.41.0", "@sentry/node": "^7.41.0", + "@sentry/tracing": "^7.45.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", "await-to-js": "^3.0.0", @@ -3651,6 +3651,58 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "node_modules/@sentry-internal/tracing": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-0aIDY2OvUX7k2XHaimOlWkboXoQvJ9dEKvfpu0Wh0YxfUTGPa+wplUdg3WVdkk018sq1L11MKmj4MPZyYUvXhw==", + "dependencies": { + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/core": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "dependencies": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "dependencies": { + "@sentry/types": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/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/core": { "version": "7.41.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.41.0.tgz", @@ -3692,24 +3744,16 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sentry/tracing": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.41.0.tgz", - "integrity": "sha512-zh1ceuwQ8NzE5n8r4y78QrYD/alJl4qlkiEX9lAL6PnLMWJkVWM02BBu+x75yPFWSSDfDA/kZ9WqKkHNdjGpDw==", + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-FsoFmZPzTBGvWeJH73NxSF1ot61Zw3aIZo5XolengiKnRmcrQOFxebtMKBiZ61QBRYGqsm5uT7QB7zITU6Ikgg==", "dependencies": { - "@sentry/core": "7.41.0", - "@sentry/types": "7.41.0", - "@sentry/utils": "7.41.0", - "tslib": "^1.9.3" + "@sentry-internal/tracing": "7.45.0" }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/tracing/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/types": { "version": "7.41.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.41.0.tgz", @@ -15930,6 +15974,48 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "@sentry-internal/tracing": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-0aIDY2OvUX7k2XHaimOlWkboXoQvJ9dEKvfpu0Wh0YxfUTGPa+wplUdg3WVdkk018sq1L11MKmj4MPZyYUvXhw==", + "requires": { + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/core": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "requires": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==" + }, + "@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "requires": { + "@sentry/types": "7.45.0", + "tslib": "^1.9.3" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@sentry/core": { "version": "7.41.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.41.0.tgz", @@ -15969,21 +16055,11 @@ } }, "@sentry/tracing": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.41.0.tgz", - "integrity": "sha512-zh1ceuwQ8NzE5n8r4y78QrYD/alJl4qlkiEX9lAL6PnLMWJkVWM02BBu+x75yPFWSSDfDA/kZ9WqKkHNdjGpDw==", + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-FsoFmZPzTBGvWeJH73NxSF1ot61Zw3aIZo5XolengiKnRmcrQOFxebtMKBiZ61QBRYGqsm5uT7QB7zITU6Ikgg==", "requires": { - "@sentry/core": "7.41.0", - "@sentry/types": "7.41.0", - "@sentry/utils": "7.41.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-internal/tracing": "7.45.0" } }, "@sentry/types": { diff --git a/backend/package.json b/backend/package.json index 8638cf444f..b226741210 100644 --- a/backend/package.json +++ b/backend/package.json @@ -3,7 +3,7 @@ "@aws-sdk/client-secrets-manager": "^3.294.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", - "@sentry/tracing": "^7.41.0", + "@sentry/tracing": "^7.45.0", "@sentry/node": "^7.40.0", "@sentry/node": "^7.41.0", "@types/crypto-js": "^4.1.1", From 2d22c96a975748ff5f67926b0e0fba5ca2ef9072 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Mon, 17 Apr 2023 05:01:13 +0000 Subject: [PATCH 08/18] fix: upgrade @sentry/node from 7.41.0 to 7.45.0 Snyk has created this PR to upgrade @sentry/node from 7.41.0 to 7.45.0. See this package in npm: https://www.npmjs.com/package/@sentry/node See this project in Snyk: https://app.snyk.io/org/maidul98/project/35057e82-ed7d-4e19-ba4d-719a42135cd6?utm_source=github&utm_medium=referral&page=upgrade-pr --- backend/package-lock.json | 179 +++++++++++++++++++++++++++++++++++--- backend/package.json | 2 +- 2 files changed, 167 insertions(+), 14 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 7180d957f3..5d068b72c6 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -12,8 +12,8 @@ "@aws-sdk/client-secrets-manager": "^3.294.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", + "@sentry/node": "^7.45.0", "@sentry/tracing": "^7.41.0", - "@sentry/node": "^7.41.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", "await-to-js": "^3.0.0", @@ -3651,6 +3651,58 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "node_modules/@sentry-internal/tracing": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-0aIDY2OvUX7k2XHaimOlWkboXoQvJ9dEKvfpu0Wh0YxfUTGPa+wplUdg3WVdkk018sq1L11MKmj4MPZyYUvXhw==", + "dependencies": { + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/core": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "dependencies": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "dependencies": { + "@sentry/types": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry-internal/tracing/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/core": { "version": "7.41.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.41.0.tgz", @@ -3670,13 +3722,14 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sentry/node": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.41.0.tgz", - "integrity": "sha512-JAz0TAVvq4z7dNrDBECLB5Fd4bGDGXSOR1f63iV/8fUNsZPqqdh8LXnctPXTpcTjsdlfmjUL1CC2RQ6yKYMtTQ==", + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.45.0.tgz", + "integrity": "sha512-x8mq+DrJWpSi716Rap/2w70DKWD8vjl87Y70OYFu+Dn6CxWDHClObSxLzuJcE5lww0Sq9RnU6UHQWzjXSb/pVQ==", "dependencies": { - "@sentry/core": "7.41.0", - "@sentry/types": "7.41.0", - "@sentry/utils": "7.41.0", + "@sentry-internal/tracing": "7.45.0", + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", "cookie": "^0.4.1", "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", @@ -3686,6 +3739,39 @@ "node": ">=8" } }, + "node_modules/@sentry/node/node_modules/@sentry/core": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "dependencies": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/node/node_modules/@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/node/node_modules/@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "dependencies": { + "@sentry/types": "7.45.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", @@ -15930,6 +16016,48 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "@sentry-internal/tracing": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.45.0.tgz", + "integrity": "sha512-0aIDY2OvUX7k2XHaimOlWkboXoQvJ9dEKvfpu0Wh0YxfUTGPa+wplUdg3WVdkk018sq1L11MKmj4MPZyYUvXhw==", + "requires": { + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/core": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "requires": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==" + }, + "@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "requires": { + "@sentry/types": "7.45.0", + "tslib": "^1.9.3" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@sentry/core": { "version": "7.41.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.41.0.tgz", @@ -15948,19 +16076,44 @@ } }, "@sentry/node": { - "version": "7.41.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.41.0.tgz", - "integrity": "sha512-JAz0TAVvq4z7dNrDBECLB5Fd4bGDGXSOR1f63iV/8fUNsZPqqdh8LXnctPXTpcTjsdlfmjUL1CC2RQ6yKYMtTQ==", + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.45.0.tgz", + "integrity": "sha512-x8mq+DrJWpSi716Rap/2w70DKWD8vjl87Y70OYFu+Dn6CxWDHClObSxLzuJcE5lww0Sq9RnU6UHQWzjXSb/pVQ==", "requires": { - "@sentry/core": "7.41.0", - "@sentry/types": "7.41.0", - "@sentry/utils": "7.41.0", + "@sentry-internal/tracing": "7.45.0", + "@sentry/core": "7.45.0", + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.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.45.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.45.0.tgz", + "integrity": "sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w==", + "requires": { + "@sentry/types": "7.45.0", + "@sentry/utils": "7.45.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.45.0.tgz", + "integrity": "sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw==" + }, + "@sentry/utils": { + "version": "7.45.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.45.0.tgz", + "integrity": "sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ==", + "requires": { + "@sentry/types": "7.45.0", + "tslib": "^1.9.3" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", diff --git a/backend/package.json b/backend/package.json index 8638cf444f..0f7506bc38 100644 --- a/backend/package.json +++ b/backend/package.json @@ -4,7 +4,7 @@ "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", "@sentry/tracing": "^7.41.0", - "@sentry/node": "^7.40.0", + "@sentry/node": "^7.45.0", "@sentry/node": "^7.41.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", From aa27308f5acf8531ae939394e9f9919e74d8b17f Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Mon, 17 Apr 2023 05:01:18 +0000 Subject: [PATCH 09/18] fix: upgrade @aws-sdk/client-secrets-manager from 3.294.0 to 3.299.0 Snyk has created this PR to upgrade @aws-sdk/client-secrets-manager from 3.294.0 to 3.299.0. See this package in npm: https://www.npmjs.com/package/@aws-sdk/client-secrets-manager See this project in Snyk: https://app.snyk.io/org/maidul98/project/35057e82-ed7d-4e19-ba4d-719a42135cd6?utm_source=github&utm_medium=referral&page=upgrade-pr --- backend/package-lock.json | 1854 ++++++++++++++++++------------------- backend/package.json | 2 +- 2 files changed, 921 insertions(+), 935 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 7180d957f3..5cd3d3a635 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,11 +9,11 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@aws-sdk/client-secrets-manager": "^3.294.0", + "@aws-sdk/client-secrets-manager": "^3.299.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", - "@sentry/tracing": "^7.41.0", "@sentry/node": "^7.41.0", + "@sentry/tracing": "^7.41.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", "await-to-js": "^3.0.0", @@ -233,45 +233,45 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.294.0.tgz", - "integrity": "sha512-L3fcQiHqOPkc3odrWCVRrhC838p8mFLZxRpQPHz3YCxhSbeclhPjqHNyoljkHmoaqzo+e0owqkM3kYyfereGcg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.299.0.tgz", + "integrity": "sha512-9aUTwgrfo3dw4qVWHm6mo8P71umwqeN167lqurpOLY4923e0hrCr3a0zcbQc5lxNgKh14iopLrHm0Ty7+5SJcw==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.294.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-node": "3.294.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1", + "@aws-sdk/client-sts": "3.299.0", + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-node": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0", "uuid": "^8.3.2" }, "engines": { @@ -279,398 +279,394 @@ } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/abort-controller": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.292.0.tgz", - "integrity": "sha512-lf+OPptL01kvryIJy7+dvFux5KbJ6OTwLPPEekVKZ2AfEvwcVtOZWFUhyw3PJCBTVncjKB1Kjl3V/eTS3YuPXQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.296.0.tgz", + "integrity": "sha512-gNUFBlBw6+sEMfDjPVa83iscpQwXBS4uoiZXnfeQ6s6tnaxqQpJDrBBmNvYqDEXNdaAJX4FhayEwkSvtir/f3A==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.294.0.tgz", - "integrity": "sha512-+FuxQTi5WvnaXM5JbNLkBIzQ3An4gA0ox61N1u+3xled+nywKb1yQ7WmRpyMG5bLbkmnj3aqoo5/uskFc4c4EA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.299.0.tgz", + "integrity": "sha512-SZ6LehIW3sxtKqH78gTJg6rIKqtqYRIOLP5NNhp6HTWvVfmvOxGc1NtVDxLiTzJOf1xEXY+DgoNuBVO2XXqsxA==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.294.0.tgz", - "integrity": "sha512-/ZfDud76MdSPJ/TxjV2xLE30XbBQDZwKQ32axwoK1eziPvrAIUBYVgpBwj+m0quhoiQhBKkg3aFl6j39AF2thw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.299.0.tgz", + "integrity": "sha512-IUt8L0TCM8GH0SCYH3Le0S52fdgUXIkhxpPtAX/2QPxlBBIMLAiyDIIEc1RUMyzhombRO1agQkwwE6Qtx8NQ/Q==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/client-sts": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.294.0.tgz", - "integrity": "sha512-AefqwhFjTDzelZuSYhriJbiI+GQwf2yKiKAnCt0gRj6rswewStM63Gtlhfb01sFPp+ZiqPcyQ47LqUaHp1mz/g==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.299.0.tgz", + "integrity": "sha512-p+JPaCbom4HmhBe1ko53F8Jgbmi9MOXHJBf83UOeYcWJsECm0me8RWogl7bgnfxdemsS40INk5t4JxMLmNS3MQ==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-node": "3.294.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-sdk-sts": "3.292.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-node": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-sdk-sts": "3.299.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", "fast-xml-parser": "4.1.2", - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/config-resolver": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.292.0.tgz", - "integrity": "sha512-cB3twnNR7vYvlt2jvw8VlA1+iv/tVzl+/S39MKqw2tepU+AbJAM0EHwb/dkf1OKSmlrnANXhshx80MHF9zL4mA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.299.0.tgz", + "integrity": "sha512-MpaAI7CWMx0ci2UcbMmJg+Xf8f1D6+I1VCpzaCgaMeJyHsID5q52VWG8qSD/QzxPU8Pb3TmmA0D0YDRKpCwRcA==", "dependencies": { - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-config-provider": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-config-provider": "3.295.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.292.0.tgz", - "integrity": "sha512-YbafSG0ZEKE2969CJWVtUhh3hfOeLPecFVoXOtegCyAJgY5Ghtu4TsVhL4DgiGAgOC30ojAmUVQEXzd7xJF5xA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.296.0.tgz", + "integrity": "sha512-eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.292.0.tgz", - "integrity": "sha512-W/peOgDSRYulgzFpUhvgi1pCm6piBz6xrVN17N4QOy+3NHBXRVMVzYk6ct2qpLPgJUSEZkcpP+Gds+bBm8ed1A==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.296.0.tgz", + "integrity": "sha512-DXqksHyT/GVVYbPGknMARKi6Rk6cqCHJUAejePIx5cz1SCKlDrV704hykafHIjaDoy/Zeoj1wzjfwy83sJfDCg==", "dependencies": { - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.294.0.tgz", - "integrity": "sha512-pdTPbaAb5bWA+DnuKoL2TpXeNDp6Ejpv/OYt+bw2gdzl9w5r/ZCtUTTbW+Vvejr4WL5s3c1bY96kwdqCn7iLqA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.299.0.tgz", + "integrity": "sha512-KMJDzK1iCMc9j0aIsui9hoLXcrgJCioycD/64nR+Z3a+qOtoC5qIsrh/craNQU/PxhHSdp79iZq8FJgP8SCPwA==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/credential-provider-process": "3.292.0", - "@aws-sdk/credential-provider-sso": "3.294.0", - "@aws-sdk/credential-provider-web-identity": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.296.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/credential-provider-process": "3.296.0", + "@aws-sdk/credential-provider-sso": "3.299.0", + "@aws-sdk/credential-provider-web-identity": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.294.0.tgz", - "integrity": "sha512-zUL1Qhb4BsQIZCs/TPpG4oIYH/9YsGiS+Se1tasSGjTOLfBy7jhOZ0QIdpEeyAx/EP8blOBredM9xWfEXgiHVA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.299.0.tgz", + "integrity": "sha512-lEQa4i17WKg2M1by6RWKjSOPPg/2S8GOiWsdwoKNXqjxPb4UZbikC+ASTySwNcKHPWNjgTg8FLL3XrcqEY9PLg==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/credential-provider-ini": "3.294.0", - "@aws-sdk/credential-provider-process": "3.292.0", - "@aws-sdk/credential-provider-sso": "3.294.0", - "@aws-sdk/credential-provider-web-identity": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.296.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/credential-provider-ini": "3.299.0", + "@aws-sdk/credential-provider-process": "3.296.0", + "@aws-sdk/credential-provider-sso": "3.299.0", + "@aws-sdk/credential-provider-web-identity": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-process": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.292.0.tgz", - "integrity": "sha512-CFVXuMuUvg/a4tknzRikEDwZBnKlHs1LZCpTXIGjBdUTdosoi4WNzDLzGp93ZRTtcgFz+4wirz2f7P3lC0NrQw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.296.0.tgz", + "integrity": "sha512-AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.294.0.tgz", - "integrity": "sha512-UxrcAA/0l7j9+3tolYcG5M61D/IE1Bjd/9H87H1i2A2BrwUUBhW1Dp/vvROEDrrywlMDG3CDF3T/7ADtTak+sg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.299.0.tgz", + "integrity": "sha512-84Ym0nSsjAI7s8OaHnx6nNotCncneLy7vFXJwZyLQjzAjYHm1lDkEDaI0WcZagMO82HqcJXhA5AEVzUycNCIfw==", "dependencies": { - "@aws-sdk/client-sso": "3.294.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/token-providers": "3.294.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso": "3.299.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/token-providers": "3.299.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.292.0.tgz", - "integrity": "sha512-4DbtIEM9gGVfqYlMdYXg3XY+vBhemjB1zXIequottW8loLYM8Vuz4/uGxxKNze6evVVzowsA0wKrYclE1aj/Rg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.296.0.tgz", + "integrity": "sha512-Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.292.0.tgz", - "integrity": "sha512-zh3bhUJbL8RSa39ZKDcy+AghtUkIP8LwcNlwRIoxMQh3Row4D1s4fCq0KZCx98NJBEXoiTLyTQlZxxI//BOb1Q==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.296.0.tgz", + "integrity": "sha512-wHuKQ+PGKQkYGVuIGscbcbbASl8yIVOSC+QTrZQ4PNsMDvQd9ey2npsmxZk1Z2ULaxY+qYtZCmByyGc8k51TtQ==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/querystring-builder": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/querystring-builder": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/hash-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.292.0.tgz", - "integrity": "sha512-1yLxmIsvE+eK36JXEgEIouTITdykQLVhsA5Oai//Lar6Ddgu1sFpLDbdkMtKbrh4I0jLN9RacNCkeVQjZPTCCQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.296.0.tgz", + "integrity": "sha512-01Sgxm0NE3rtEznLY8vx1bfNsIeM5Sk5SjY9RXqnvCf9EyaKH9x5FMS/DX/SgDdIYi3aXbTwiwScNVCNBzOIQA==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-buffer-from": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-buffer-from": "3.295.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/invalid-dependency": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.292.0.tgz", - "integrity": "sha512-39OUV78CD3TmEbjhpt+V+Fk4wAGWhixqHxDSN8+4WL0uB4Fl7k5m3Z9hNY78AttHQSl2twR7WtLztnXPAFsriw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.296.0.tgz", + "integrity": "sha512-dmy4fUds0woHGjxwziaSYCLtb/SOfoEeQjW0GFvHj+YGFyY5hJzna4C759Tt8X5obh1evUXlQcH+FL7TS+7tRQ==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/is-array-buffer": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.292.0.tgz", - "integrity": "sha512-kW/G5T/fzI0sJH5foZG6XJiNCevXqKLxV50qIT4B1pMuw7regd4ALIy0HwSqj1nnn9mSbRWBfmby0jWCJsMcwg==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.295.0.tgz", + "integrity": "sha512-SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-content-length": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.292.0.tgz", - "integrity": "sha512-2gMWzQus5mj14menolpPDbYBeaOYcj7KNFZOjTjjI3iQ0KqyetG6XasirNrcJ/8QX1BRmpTol8Xjp2Ue3Gbzwg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.296.0.tgz", + "integrity": "sha512-e7lJm3kkC2pWZdIw23gpMUk1GrpRTBRqhdFfVwyduXw6Wo4nBYv8Z5MOYy3/SlpjE1BDCaPBoZ3O19cO3arHxg==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.292.0.tgz", - "integrity": "sha512-cPMkiSxpZGG6tYlW4OS+ucS6r43f9ddX9kcUoemJCY10MOuogdPjulCAjE0HTs2PLKSOrrG4CTP4Q4wWDrH4Bw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.299.0.tgz", + "integrity": "sha512-37BGxHem6yKjSC6zG2xPjvjE7APIDIvwkxL+/K1Jz9+T6AZITcs7tx5y6mIfvaHsdPuCKjrl7Wzg/9jgUKuLkw==", "dependencies": { - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-config-provider": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-host-header": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.292.0.tgz", - "integrity": "sha512-mHuCWe3Yg2S5YZ7mB7sKU6C97XspfqrimWjMW9pfV2usAvLA3R0HrB03jpR5vpZ3P4q7HB6wK3S6CjYMGGRNag==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.296.0.tgz", + "integrity": "sha512-V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-logger": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.292.0.tgz", - "integrity": "sha512-yZNY1XYmG3NG+uonET7jzKXNiwu61xm/ZZ6i/l51SusuaYN+qQtTAhOFsieQqTehF9kP4FzbsWgPDwD8ZZX9lw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.296.0.tgz", + "integrity": "sha512-LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.292.0.tgz", - "integrity": "sha512-kA3VZpPko0Zqd7CYPTKAxhjEv0HJqFu2054L04dde1JLr43ro+2MTdX7vsHzeAFUVRphqatFFofCumvXmU6Mig==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.296.0.tgz", + "integrity": "sha512-UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-retry": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.293.0.tgz", - "integrity": "sha512-7tiaz2GzRecNHaZ6YnF+Nrtk3au8qF6oiipf11R7MJiqJ0fkMLnz/iRrlakDziS9qF/a9v+3yxb4W4NHK3f4Tw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.296.0.tgz", + "integrity": "sha512-Tz3gDZm5viQg7BG5bF9Cg0qbm4+Ur3a7wcGkj1XHQdzGDYR76gxvU0bfnSNUmWRz3kaVNyISyXSOUygG0cbhbw==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/service-error-classification": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "@aws-sdk/util-retry": "3.292.0", - "tslib": "^2.3.1", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/service-error-classification": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "tslib": "^2.5.0", "uuid": "^8.3.2" }, "engines": { @@ -678,397 +674,394 @@ } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.292.0.tgz", - "integrity": "sha512-GN5ZHEqXZqDi+HkVbaXRX9HaW/vA5rikYpWKYsmxTUZ7fB7ijvEO3co3lleJv2C+iGYRtUIHC4wYNB5xgoTCxg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.299.0.tgz", + "integrity": "sha512-yE7IiMQpF1FYqLSYOei4AYM9z62ayFfMMyhKE9IFs+TVaag97uz8NaRlr88HDTcBCZ0CMl6UwNJlZytPD4NjCw==", "dependencies": { - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-serde": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.292.0.tgz", - "integrity": "sha512-6hN9mTQwSvV8EcGvtXbS/MpK7WMCokUku5Wu7X24UwCNMVkoRHLIkYcxHcvBTwttuOU0d8hph1/lIX4dkLwkQw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.296.0.tgz", + "integrity": "sha512-xk2PpWAAX758oUTGkGBAncpOr7ddIXisjD2Y2r9DDXuE4JMho2x6zcrVSiYsGIQ6MHZ9XNJKBVDiK9PA4iQWGQ==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-signing": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.292.0.tgz", - "integrity": "sha512-GVfoSjDjEQ4TaO6x9MffyP3uRV+2KcS5FtexLCYOM9pJcnE9tqq9FJOrZ1xl1g+YjUVKxo4x8lu3tpEtIb17qg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.299.0.tgz", + "integrity": "sha512-anhrjeNuo0470QodEmzteFMnqABNebL900yhfODySXCMiaoeTBpo8Qd8t4q4O8PizA7FeLYA3l/5tb/udp7qew==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/signature-v4": "3.299.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-stack": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.292.0.tgz", - "integrity": "sha512-WdQpRkuMysrEwrkByCM1qCn2PPpFGGQ2iXqaFha5RzCdZDlxJni9cVNb6HzWUcgjLEYVTXCmOR9Wxm3CNW44Qg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.296.0.tgz", + "integrity": "sha512-Rgo7/mdk9tt4qa9+pzG3AoGNhuj7NmnF5H+3DoPm75h58BYP8hKbKobdPGgI2rZLPtO3PGgmyw/4K4tQJPIZ8g==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.293.0.tgz", - "integrity": "sha512-gZ7/e6XwpKk9mvgA78q4Ffc796jTn02TUKx2qMDnkLVbeJXBNN2jnvYEKq8v70+o7fd/ALRudg8gBDmkkhM/Hw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.299.0.tgz", + "integrity": "sha512-Brm5UcbRhuVVmmbpDN8/WSJPCHogV64jGXL5upfL+iJ0c5eZ57LXOZ8kz++t3BU1rEkSIXHJanneEmn7Wbd5sA==", "dependencies": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-endpoints": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/node-config-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.292.0.tgz", - "integrity": "sha512-S3NnC9dQ5GIbJYSDIldZb4zdpCOEua1tM7bjYL3VS5uqCEM93kIi/o/UkIUveMp/eqTS2LJa5HjNIz5Te6je0A==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.296.0.tgz", + "integrity": "sha512-S/tYcuw9ACOWRmRe5oUkmutQ+TApjVs0yDl504DKs74f3p4kRgI/MGWkBiR3mcfThHaxu81z0gkRL2qfW2SDwg==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/node-http-handler": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.292.0.tgz", - "integrity": "sha512-L/E3UDSwXLXjt1XWWh0RBD55F+aZI1AEdPwdES9i1PjnZLyuxuDhEDptVibNN56+I9/4Q3SbmuVRVlOD0uzBag==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.296.0.tgz", + "integrity": "sha512-D15jjPqYSNhEq58BwkmIpD3VwqG4bL5acAaNu5wWAI4S4236JlG+nmpi3gEeE25z1KCwtBl7G30fVRgXYJ2CWA==", "dependencies": { - "@aws-sdk/abort-controller": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/querystring-builder": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/abort-controller": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/querystring-builder": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/property-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.292.0.tgz", - "integrity": "sha512-dHArSvsiqhno/g55N815gXmAMrmN8DP7OeFNqJ4wJG42xsF2PFN3DAsjIuHuXMwu+7A3R1LHqIpvv0hA9KeoJQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.296.0.tgz", + "integrity": "sha512-kjczxE9Od5LoAKQOmxVWISJ9oPG3aCsB+2+NdI+k9EJFDXUUdMcVV3Skei5uHGgKLMsI6CZy8ezZx6YxOSLSew==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/protocol-http": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.292.0.tgz", - "integrity": "sha512-NLi4fq3k41aXIh1I97yX0JTy+3p6aW1NdwFwdMa674z86QNfb4SfRQRZBQe9wEnAZ/eWHVnlKIuII+U1URk/Kg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.296.0.tgz", + "integrity": "sha512-0U1Z/+tpwdRiSToWo1bpdkbTzjbLugTnd02ATjvK4B7zi363SUGlKfoWgV+v7FU/22CIUI1ZIe7XzXvq5rJfjA==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/querystring-builder": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.292.0.tgz", - "integrity": "sha512-XElIFJaReIm24eEvBtV2dOtZvcm3gXsGu/ftG8MLJKbKXFKpAP1q+K6En0Bs7/T88voKghKdKpKT+eZUWgTqlg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.296.0.tgz", + "integrity": "sha512-+ZrZdTRaVI1R1xKQNrTwuiRoPateUaJ/DNw/myJpTPt+ZRg0H7LKBGaJYwL4pl5l/z1UM/E1fOttSfSW7GHxfw==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-uri-escape": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-uri-escape": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/querystring-parser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.292.0.tgz", - "integrity": "sha512-iTYpYo7a8X9RxiPbjjewIpm6XQPx2EOcF1dWCPRII9EFlmZ4bwnX+PDI36fIo9oVs8TIKXmwNGODU9nsg7CSAw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.296.0.tgz", + "integrity": "sha512-nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/service-error-classification": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.292.0.tgz", - "integrity": "sha512-X1k3sixCeC45XSNHBe+kRBQBwPDyTFtFITb8O5Qw4dS9XWGhrUJT4CX0qE5aj8qP3F9U5nRizs9c2mBVVP0Caw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.296.0.tgz", + "integrity": "sha512-YIsWSQ38e1+FqXz3CMrkKS0JD8OLlHf6I72PJhbfegePpQQFqi9R8OREjP5V7UR9Z972yruv4i96ROH6SCtmoA==", "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.292.0.tgz", - "integrity": "sha512-Av2TTYg1Jig2kbkD56ybiqZJB6vVrYjv1W5UQwY/q3nA/T2mcrgQ20ByCOt5Bv9VvY7FSgC+znj+L4a7RLGmBg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.296.0.tgz", + "integrity": "sha512-S31VfdiruN2trayoeB7HifsEB+WXhtfECosj90K903rzfyX+Eo+uUoK9O07UotxJ2gB3MBQ7R8pNnZio3Lb66w==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/signature-v4": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.292.0.tgz", - "integrity": "sha512-+rw47VY5mvBecn13tDQTl1ipGWg5tE63faWgmZe68HoBL87ZiDzsd7bUKOvjfW21iMgWlwAppkaNNQayYRb2zg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.299.0.tgz", + "integrity": "sha512-3TtP+S3Tu0Q2/EwJLnN+IEok9nRyez79f6vprqXbC9Lex623cqh/OOYSy2oUjFlIgsIOLPum87/1bfcznYW+yQ==", "dependencies": { - "@aws-sdk/is-array-buffer": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-hex-encoding": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "@aws-sdk/util-uri-escape": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/is-array-buffer": "3.295.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-hex-encoding": "3.295.0", + "@aws-sdk/util-middleware": "3.296.0", + "@aws-sdk/util-uri-escape": "3.295.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/smithy-client": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.292.0.tgz", - "integrity": "sha512-S8PKzjPkZ6SXYZuZiU787dMsvQ0d/LFEhw2OI4Oe2An9Fc2IwJ2FYukyHoQJOV2tV0DiuMebPo7eMyQyjKElvA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.296.0.tgz", + "integrity": "sha512-HEpsLNozGe9XOWouq5A1TFw5KhFodi8tZqYVNEbSpLoRR+EQKf6OCRvKIRkOn7FnnaOasOR1n7S0D51UG6/irw==", "dependencies": { - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/token-providers": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.294.0.tgz", - "integrity": "sha512-6nwO04LtC5f4AsUvGZXyjaswuEK4Rr2VsuANpMKrPCgunRfI58a8YXLniudOSXN6e7CFJ6M3uo/h5YXqtnzGug==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.299.0.tgz", + "integrity": "sha512-gCTxmg2IdXg0/mFV6tmOgNiqGmLeEXDejwyz6dT1P76CvgwjdM9bJ+gSRlKLa+jS49L/vqAZD6Hq/i1ZJmXRag==", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.294.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso-oidc": "3.299.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/types": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.292.0.tgz", - "integrity": "sha512-1teYAY2M73UXZxMAxqZxVS2qwXjQh0OWtt7qyLfha0TtIk/fZ1hRwFgxbDCHUFcdNBSOSbKH/ESor90KROXLCQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.296.0.tgz", + "integrity": "sha512-s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/url-parser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.292.0.tgz", - "integrity": "sha512-NZeAuZCk1x6TIiWuRfbOU6wHPBhf0ly2qOHzWut4BCH+b4RrDmFF8EmXcH1auEfGhE7yRyR6XqIN0t3S+hYACA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.296.0.tgz", + "integrity": "sha512-nBgeGF+ziuDSLz+y8UAl6zL2tXxDwh3wqeXFe9ZcR4YW71BWuh+vEqEsaEMutOrfnJacCrYKTs9TkIOW41cEGg==", "dependencies": { - "@aws-sdk/querystring-parser": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/querystring-parser": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-base64": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.292.0.tgz", - "integrity": "sha512-zjNCwNdy617yFvEjZorepNWXB2sQCVfsShCwFy/kIQ5iW5tT2jQKaqc0K77diU9atkooxw9p1W9m9sOgrkOFNw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.295.0.tgz", + "integrity": "sha512-z1r40BsBiOTALnzASvLb4qutGwPpL+jH2UKTCV5WJLXZFMzRnpZaRfeZGE8lMJ/i0+jv9H9G1FmVzE8UgB4rhw==", "dependencies": { - "@aws-sdk/util-buffer-from": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/util-buffer-from": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.292.0.tgz", - "integrity": "sha512-Wd/BM+JsMiKvKs/bN3z6TredVEHh2pKudGfg3CSjTRpqFpOG903KDfyHBD42yg5PuCHoHoewJvTPKwgn7/vhaw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.295.0.tgz", + "integrity": "sha512-NbG4/RSHV1VueStPRclSo5zRjNUmcDlNAs29sniZF+YaN0+Ad7hEdu/YgJw39shBfUaurz2Wv0pufU3cxE5Tng==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-body-length-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.292.0.tgz", - "integrity": "sha512-BBgipZ2P6RhogWE/qj0oqpdlyd3iSBYmb+aD/TBXwB2lA/X8A99GxweBd/kp06AmcJRoMS9WIXgbWkiiBlRlSA==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.295.0.tgz", + "integrity": "sha512-dvGf8VBmrT66lM0n6P/h7wnlHS4Atafyivyl8f4TUCMvRdpqryvvrtnX6yYcq3T7VKQmas/2SOlgDvcrhGXaiw==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-buffer-from": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.292.0.tgz", - "integrity": "sha512-RxNZjLoXNxHconH9TYsk5RaEBjSgTtozHeyIdacaHPj5vlQKi4hgL2hIfKeeNiAfQEVjaUFF29lv81xpNMzVMQ==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.295.0.tgz", + "integrity": "sha512-5ezVEITQnrQKn+CU9qfZHgRp2nrrbX0Clmlm9aiNjAEQEPHY33tWl0t6n8h8yU+IpGiNRMWBVC4aSJaE5NA1mA==", "dependencies": { - "@aws-sdk/is-array-buffer": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/is-array-buffer": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-config-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.292.0.tgz", - "integrity": "sha512-t3noYll6bPRSxeeNNEkC5czVjAiTPcsq00OwfJ2xyUqmquhLEfLwoJKmrT1uP7DjIEXdUtfoIQ2jWiIVm/oO5A==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.295.0.tgz", + "integrity": "sha512-/5Dl1aV2yI8YQjqwmg4RTnl/E9NmNsx7HIwBZt+dTcOrM0LMUwczQBFFcLyqCj/qv5y+VsvLoAAA/OiBT7hb3w==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.292.0.tgz", - "integrity": "sha512-7+zVUlMGfa8/KT++9humHo6IDxTnxMCmWUj5jVNlkpk6h7Ecmppf7aXotviyVIA43lhtz0p2AErs0N0ekEUK+w==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.296.0.tgz", + "integrity": "sha512-R+nzc0PuTMaOG3LV4FoS5W7oMAqqr8G1IyI+A4Q5iem6YDMF157qV5h6wpIt3A8n9YfjyssLsAT/WPfyv/M79w==", "dependencies": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", "bowser": "^2.11.0", - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">= 10.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.292.0.tgz", - "integrity": "sha512-SSIw85eF4BVs0fOJRyshT+R3b/UmBPhiVKCUZm2rq6+lIGkDPiSwQU3d/80AhXtiL5SFT/IzAKKgQd8qMa7q3A==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.299.0.tgz", + "integrity": "sha512-/7Ii0knBd9yGJ9ut89M90vqELtjQ+1c1Q3vA4o9ycof/mtn+VICtZ5UbQP+apAfCKVH+e0aeJNVRVibGVLXS+A==", "dependencies": { - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">= 10.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-endpoints": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.293.0.tgz", - "integrity": "sha512-R/99aNV49Refpv5guiUjEUrZYlvnfaNBniB+/ZtMO3ixxUopapssCrUivuJrmhccmrYaTCZw7dRzIWjU1jJhKg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.296.0.tgz", + "integrity": "sha512-YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==", "dependencies": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.292.0.tgz", - "integrity": "sha512-qBd5KFIUywQ3qSSbj814S2srk0vfv8A6QMI+Obs1y2LHZFdQN5zViptI4UhXhKOHe+NnrHWxSuLC/LMH6q3SmA==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.295.0.tgz", + "integrity": "sha512-XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-middleware": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.292.0.tgz", - "integrity": "sha512-KjhS7flfoBKDxbiBZjLjMvEizXgjfQb7GQEItgzGoI9rfGCmZtvqCcqQQoIlxb8bIzGRggAUHtBGWnlLbpb+GQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.296.0.tgz", + "integrity": "sha512-MNWU+doVuX+mIehEManP6OP+f08T33qQpHoBqKIeKpn3TjZjMHG7ujACTkJiEOHUrnwTov7h0Sm+3OZwk3kh9w==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-retry": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.292.0.tgz", - "integrity": "sha512-JEHyF7MpVeRF5uR4LDYgpOKcFpOPiAj8TqN46SVOQQcL1K+V7cSr7O7N7J6MwJaN9XOzAcBadeIupMm7/BFbgw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.296.0.tgz", + "integrity": "sha512-0mh7SqOMjuJ4vE423SzA/AfCLM68jykbfpEBkTmfqkpjkeQSW+UXHAUdXsMmfzIneiq7go5Z548F868C3cZnwQ==", "dependencies": { - "@aws-sdk/service-error-classification": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/service-error-classification": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-uri-escape": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.292.0.tgz", - "integrity": "sha512-hOQtUMQ4VcQ9iwKz50AoCp1XBD5gJ9nly/gJZccAM7zSA5mOO8RRKkbdonqquVHxrO0CnYgiFeCh3V35GFecUw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.295.0.tgz", + "integrity": "sha512-1H5DcyIoXF8XcPBWf7wzHt0l+TW2EoR8Oq4gsVrPTQkHMTVclC2Yn8EF3gc4arwVBzwLulI9LMBE2L8fexGfTQ==", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.292.0.tgz", - "integrity": "sha512-dld+lpC3QdmTQHdBWJ0WFDkXDSrJgfz03q6mQ8+7H+BC12ZhT0I0g9iuvUjolqy7QR00OxOy47Y9FVhq8EC0Gg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.299.0.tgz", + "integrity": "sha512-TRPAemTDzqxCxbpVkXV+Sp9JbEo0JdT/W8qzP/uuOdglZlNXM+SadkOuNFmqr2KG83bJE6lvomGJcJb9vMN4XQ==", "dependencies": { - "@aws-sdk/types": "3.292.0", + "@aws-sdk/types": "3.296.0", "bowser": "^2.11.0", - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.292.0.tgz", - "integrity": "sha512-f+NfIMal5E61MDc5WGhUEoicr7b1eNNhA+GgVdSB/Hg5fYhEZvFK9RZizH5rrtsLjjgcr9nPYSR7/nDKCJLumw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.299.0.tgz", + "integrity": "sha512-GXA8pCDlQ4Rj+sZErZZfuFuwVnCAph/EvpmwdRNu99v9hX3Q2+HEcS+zM4zBqKDnW1DvaJoxr4SMrk9KBxHUmQ==", "dependencies": { - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" @@ -1083,12 +1076,12 @@ } }, "node_modules/@aws-sdk/client-secrets-manager/node_modules/@aws-sdk/util-utf8": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.292.0.tgz", - "integrity": "sha512-FPkj+Z59/DQWvoVu2wFaRncc3KVwe/pgK3MfVb0Lx+Ibey5KUx+sNpJmYcVYHUAe/Nv/JeIpOtYuC96IXOnI6w==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.295.0.tgz", + "integrity": "sha512-ITN8v3F63ZkA4sdmCtSbS/mhav4F0MEAiXDAUXtMJLNqVtaVcyQST4i9vNmPpIVthAPAtP0QjyF2tq/Di8bxtQ==", "dependencies": { - "@aws-sdk/util-buffer-from": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/util-buffer-from": "3.295.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" @@ -13264,704 +13257,697 @@ } }, "@aws-sdk/client-secrets-manager": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.294.0.tgz", - "integrity": "sha512-L3fcQiHqOPkc3odrWCVRrhC838p8mFLZxRpQPHz3YCxhSbeclhPjqHNyoljkHmoaqzo+e0owqkM3kYyfereGcg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.299.0.tgz", + "integrity": "sha512-9aUTwgrfo3dw4qVWHm6mo8P71umwqeN167lqurpOLY4923e0hrCr3a0zcbQc5lxNgKh14iopLrHm0Ty7+5SJcw==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.294.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-node": "3.294.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1", + "@aws-sdk/client-sts": "3.299.0", + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-node": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0", "uuid": "^8.3.2" }, "dependencies": { "@aws-sdk/abort-controller": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.292.0.tgz", - "integrity": "sha512-lf+OPptL01kvryIJy7+dvFux5KbJ6OTwLPPEekVKZ2AfEvwcVtOZWFUhyw3PJCBTVncjKB1Kjl3V/eTS3YuPXQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.296.0.tgz", + "integrity": "sha512-gNUFBlBw6+sEMfDjPVa83iscpQwXBS4uoiZXnfeQ6s6tnaxqQpJDrBBmNvYqDEXNdaAJX4FhayEwkSvtir/f3A==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/client-sso": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.294.0.tgz", - "integrity": "sha512-+FuxQTi5WvnaXM5JbNLkBIzQ3An4gA0ox61N1u+3xled+nywKb1yQ7WmRpyMG5bLbkmnj3aqoo5/uskFc4c4EA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.299.0.tgz", + "integrity": "sha512-SZ6LehIW3sxtKqH78gTJg6rIKqtqYRIOLP5NNhp6HTWvVfmvOxGc1NtVDxLiTzJOf1xEXY+DgoNuBVO2XXqsxA==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/client-sso-oidc": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.294.0.tgz", - "integrity": "sha512-/ZfDud76MdSPJ/TxjV2xLE30XbBQDZwKQ32axwoK1eziPvrAIUBYVgpBwj+m0quhoiQhBKkg3aFl6j39AF2thw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.299.0.tgz", + "integrity": "sha512-IUt8L0TCM8GH0SCYH3Le0S52fdgUXIkhxpPtAX/2QPxlBBIMLAiyDIIEc1RUMyzhombRO1agQkwwE6Qtx8NQ/Q==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/client-sts": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.294.0.tgz", - "integrity": "sha512-AefqwhFjTDzelZuSYhriJbiI+GQwf2yKiKAnCt0gRj6rswewStM63Gtlhfb01sFPp+ZiqPcyQ47LqUaHp1mz/g==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.299.0.tgz", + "integrity": "sha512-p+JPaCbom4HmhBe1ko53F8Jgbmi9MOXHJBf83UOeYcWJsECm0me8RWogl7bgnfxdemsS40INk5t4JxMLmNS3MQ==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-node": "3.294.0", - "@aws-sdk/fetch-http-handler": "3.292.0", - "@aws-sdk/hash-node": "3.292.0", - "@aws-sdk/invalid-dependency": "3.292.0", - "@aws-sdk/middleware-content-length": "3.292.0", - "@aws-sdk/middleware-endpoint": "3.292.0", - "@aws-sdk/middleware-host-header": "3.292.0", - "@aws-sdk/middleware-logger": "3.292.0", - "@aws-sdk/middleware-recursion-detection": "3.292.0", - "@aws-sdk/middleware-retry": "3.293.0", - "@aws-sdk/middleware-sdk-sts": "3.292.0", - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/middleware-user-agent": "3.293.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/node-http-handler": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/smithy-client": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "@aws-sdk/util-body-length-browser": "3.292.0", - "@aws-sdk/util-body-length-node": "3.292.0", - "@aws-sdk/util-defaults-mode-browser": "3.292.0", - "@aws-sdk/util-defaults-mode-node": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "@aws-sdk/util-retry": "3.292.0", - "@aws-sdk/util-user-agent-browser": "3.292.0", - "@aws-sdk/util-user-agent-node": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-node": "3.299.0", + "@aws-sdk/fetch-http-handler": "3.296.0", + "@aws-sdk/hash-node": "3.296.0", + "@aws-sdk/invalid-dependency": "3.296.0", + "@aws-sdk/middleware-content-length": "3.296.0", + "@aws-sdk/middleware-endpoint": "3.299.0", + "@aws-sdk/middleware-host-header": "3.296.0", + "@aws-sdk/middleware-logger": "3.296.0", + "@aws-sdk/middleware-recursion-detection": "3.296.0", + "@aws-sdk/middleware-retry": "3.296.0", + "@aws-sdk/middleware-sdk-sts": "3.299.0", + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/middleware-user-agent": "3.299.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/node-http-handler": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/smithy-client": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "@aws-sdk/util-body-length-browser": "3.295.0", + "@aws-sdk/util-body-length-node": "3.295.0", + "@aws-sdk/util-defaults-mode-browser": "3.296.0", + "@aws-sdk/util-defaults-mode-node": "3.299.0", + "@aws-sdk/util-endpoints": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "@aws-sdk/util-user-agent-browser": "3.299.0", + "@aws-sdk/util-user-agent-node": "3.299.0", + "@aws-sdk/util-utf8": "3.295.0", "fast-xml-parser": "4.1.2", - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/config-resolver": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.292.0.tgz", - "integrity": "sha512-cB3twnNR7vYvlt2jvw8VlA1+iv/tVzl+/S39MKqw2tepU+AbJAM0EHwb/dkf1OKSmlrnANXhshx80MHF9zL4mA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.299.0.tgz", + "integrity": "sha512-MpaAI7CWMx0ci2UcbMmJg+Xf8f1D6+I1VCpzaCgaMeJyHsID5q52VWG8qSD/QzxPU8Pb3TmmA0D0YDRKpCwRcA==", "requires": { - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-config-provider": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-config-provider": "3.295.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-env": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.292.0.tgz", - "integrity": "sha512-YbafSG0ZEKE2969CJWVtUhh3hfOeLPecFVoXOtegCyAJgY5Ghtu4TsVhL4DgiGAgOC30ojAmUVQEXzd7xJF5xA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.296.0.tgz", + "integrity": "sha512-eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-imds": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.292.0.tgz", - "integrity": "sha512-W/peOgDSRYulgzFpUhvgi1pCm6piBz6xrVN17N4QOy+3NHBXRVMVzYk6ct2qpLPgJUSEZkcpP+Gds+bBm8ed1A==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.296.0.tgz", + "integrity": "sha512-DXqksHyT/GVVYbPGknMARKi6Rk6cqCHJUAejePIx5cz1SCKlDrV704hykafHIjaDoy/Zeoj1wzjfwy83sJfDCg==", "requires": { - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-ini": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.294.0.tgz", - "integrity": "sha512-pdTPbaAb5bWA+DnuKoL2TpXeNDp6Ejpv/OYt+bw2gdzl9w5r/ZCtUTTbW+Vvejr4WL5s3c1bY96kwdqCn7iLqA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.299.0.tgz", + "integrity": "sha512-KMJDzK1iCMc9j0aIsui9hoLXcrgJCioycD/64nR+Z3a+qOtoC5qIsrh/craNQU/PxhHSdp79iZq8FJgP8SCPwA==", "requires": { - "@aws-sdk/credential-provider-env": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/credential-provider-process": "3.292.0", - "@aws-sdk/credential-provider-sso": "3.294.0", - "@aws-sdk/credential-provider-web-identity": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.296.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/credential-provider-process": "3.296.0", + "@aws-sdk/credential-provider-sso": "3.299.0", + "@aws-sdk/credential-provider-web-identity": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-node": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.294.0.tgz", - "integrity": "sha512-zUL1Qhb4BsQIZCs/TPpG4oIYH/9YsGiS+Se1tasSGjTOLfBy7jhOZ0QIdpEeyAx/EP8blOBredM9xWfEXgiHVA==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.299.0.tgz", + "integrity": "sha512-lEQa4i17WKg2M1by6RWKjSOPPg/2S8GOiWsdwoKNXqjxPb4UZbikC+ASTySwNcKHPWNjgTg8FLL3XrcqEY9PLg==", "requires": { - "@aws-sdk/credential-provider-env": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/credential-provider-ini": "3.294.0", - "@aws-sdk/credential-provider-process": "3.292.0", - "@aws-sdk/credential-provider-sso": "3.294.0", - "@aws-sdk/credential-provider-web-identity": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.296.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/credential-provider-ini": "3.299.0", + "@aws-sdk/credential-provider-process": "3.296.0", + "@aws-sdk/credential-provider-sso": "3.299.0", + "@aws-sdk/credential-provider-web-identity": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-process": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.292.0.tgz", - "integrity": "sha512-CFVXuMuUvg/a4tknzRikEDwZBnKlHs1LZCpTXIGjBdUTdosoi4WNzDLzGp93ZRTtcgFz+4wirz2f7P3lC0NrQw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.296.0.tgz", + "integrity": "sha512-AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-sso": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.294.0.tgz", - "integrity": "sha512-UxrcAA/0l7j9+3tolYcG5M61D/IE1Bjd/9H87H1i2A2BrwUUBhW1Dp/vvROEDrrywlMDG3CDF3T/7ADtTak+sg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.299.0.tgz", + "integrity": "sha512-84Ym0nSsjAI7s8OaHnx6nNotCncneLy7vFXJwZyLQjzAjYHm1lDkEDaI0WcZagMO82HqcJXhA5AEVzUycNCIfw==", "requires": { - "@aws-sdk/client-sso": "3.294.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/token-providers": "3.294.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso": "3.299.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/token-providers": "3.299.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.292.0.tgz", - "integrity": "sha512-4DbtIEM9gGVfqYlMdYXg3XY+vBhemjB1zXIequottW8loLYM8Vuz4/uGxxKNze6evVVzowsA0wKrYclE1aj/Rg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.296.0.tgz", + "integrity": "sha512-Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/fetch-http-handler": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.292.0.tgz", - "integrity": "sha512-zh3bhUJbL8RSa39ZKDcy+AghtUkIP8LwcNlwRIoxMQh3Row4D1s4fCq0KZCx98NJBEXoiTLyTQlZxxI//BOb1Q==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.296.0.tgz", + "integrity": "sha512-wHuKQ+PGKQkYGVuIGscbcbbASl8yIVOSC+QTrZQ4PNsMDvQd9ey2npsmxZk1Z2ULaxY+qYtZCmByyGc8k51TtQ==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/querystring-builder": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-base64": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/querystring-builder": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-base64": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/hash-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.292.0.tgz", - "integrity": "sha512-1yLxmIsvE+eK36JXEgEIouTITdykQLVhsA5Oai//Lar6Ddgu1sFpLDbdkMtKbrh4I0jLN9RacNCkeVQjZPTCCQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.296.0.tgz", + "integrity": "sha512-01Sgxm0NE3rtEznLY8vx1bfNsIeM5Sk5SjY9RXqnvCf9EyaKH9x5FMS/DX/SgDdIYi3aXbTwiwScNVCNBzOIQA==", "requires": { - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-buffer-from": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-buffer-from": "3.295.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/invalid-dependency": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.292.0.tgz", - "integrity": "sha512-39OUV78CD3TmEbjhpt+V+Fk4wAGWhixqHxDSN8+4WL0uB4Fl7k5m3Z9hNY78AttHQSl2twR7WtLztnXPAFsriw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.296.0.tgz", + "integrity": "sha512-dmy4fUds0woHGjxwziaSYCLtb/SOfoEeQjW0GFvHj+YGFyY5hJzna4C759Tt8X5obh1evUXlQcH+FL7TS+7tRQ==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/is-array-buffer": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.292.0.tgz", - "integrity": "sha512-kW/G5T/fzI0sJH5foZG6XJiNCevXqKLxV50qIT4B1pMuw7regd4ALIy0HwSqj1nnn9mSbRWBfmby0jWCJsMcwg==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.295.0.tgz", + "integrity": "sha512-SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-content-length": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.292.0.tgz", - "integrity": "sha512-2gMWzQus5mj14menolpPDbYBeaOYcj7KNFZOjTjjI3iQ0KqyetG6XasirNrcJ/8QX1BRmpTol8Xjp2Ue3Gbzwg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.296.0.tgz", + "integrity": "sha512-e7lJm3kkC2pWZdIw23gpMUk1GrpRTBRqhdFfVwyduXw6Wo4nBYv8Z5MOYy3/SlpjE1BDCaPBoZ3O19cO3arHxg==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-endpoint": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.292.0.tgz", - "integrity": "sha512-cPMkiSxpZGG6tYlW4OS+ucS6r43f9ddX9kcUoemJCY10MOuogdPjulCAjE0HTs2PLKSOrrG4CTP4Q4wWDrH4Bw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.299.0.tgz", + "integrity": "sha512-37BGxHem6yKjSC6zG2xPjvjE7APIDIvwkxL+/K1Jz9+T6AZITcs7tx5y6mIfvaHsdPuCKjrl7Wzg/9jgUKuLkw==", "requires": { - "@aws-sdk/middleware-serde": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/url-parser": "3.292.0", - "@aws-sdk/util-config-provider": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-serde": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/url-parser": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-host-header": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.292.0.tgz", - "integrity": "sha512-mHuCWe3Yg2S5YZ7mB7sKU6C97XspfqrimWjMW9pfV2usAvLA3R0HrB03jpR5vpZ3P4q7HB6wK3S6CjYMGGRNag==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.296.0.tgz", + "integrity": "sha512-V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-logger": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.292.0.tgz", - "integrity": "sha512-yZNY1XYmG3NG+uonET7jzKXNiwu61xm/ZZ6i/l51SusuaYN+qQtTAhOFsieQqTehF9kP4FzbsWgPDwD8ZZX9lw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.296.0.tgz", + "integrity": "sha512-LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.292.0.tgz", - "integrity": "sha512-kA3VZpPko0Zqd7CYPTKAxhjEv0HJqFu2054L04dde1JLr43ro+2MTdX7vsHzeAFUVRphqatFFofCumvXmU6Mig==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.296.0.tgz", + "integrity": "sha512-UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-retry": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.293.0.tgz", - "integrity": "sha512-7tiaz2GzRecNHaZ6YnF+Nrtk3au8qF6oiipf11R7MJiqJ0fkMLnz/iRrlakDziS9qF/a9v+3yxb4W4NHK3f4Tw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.296.0.tgz", + "integrity": "sha512-Tz3gDZm5viQg7BG5bF9Cg0qbm4+Ur3a7wcGkj1XHQdzGDYR76gxvU0bfnSNUmWRz3kaVNyISyXSOUygG0cbhbw==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/service-error-classification": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "@aws-sdk/util-retry": "3.292.0", - "tslib": "^2.3.1", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/service-error-classification": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "@aws-sdk/util-retry": "3.296.0", + "tslib": "^2.5.0", "uuid": "^8.3.2" } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.292.0.tgz", - "integrity": "sha512-GN5ZHEqXZqDi+HkVbaXRX9HaW/vA5rikYpWKYsmxTUZ7fB7ijvEO3co3lleJv2C+iGYRtUIHC4wYNB5xgoTCxg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.299.0.tgz", + "integrity": "sha512-yE7IiMQpF1FYqLSYOei4AYM9z62ayFfMMyhKE9IFs+TVaag97uz8NaRlr88HDTcBCZ0CMl6UwNJlZytPD4NjCw==", "requires": { - "@aws-sdk/middleware-signing": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-signing": "3.299.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-serde": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.292.0.tgz", - "integrity": "sha512-6hN9mTQwSvV8EcGvtXbS/MpK7WMCokUku5Wu7X24UwCNMVkoRHLIkYcxHcvBTwttuOU0d8hph1/lIX4dkLwkQw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.296.0.tgz", + "integrity": "sha512-xk2PpWAAX758oUTGkGBAncpOr7ddIXisjD2Y2r9DDXuE4JMho2x6zcrVSiYsGIQ6MHZ9XNJKBVDiK9PA4iQWGQ==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-signing": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.292.0.tgz", - "integrity": "sha512-GVfoSjDjEQ4TaO6x9MffyP3uRV+2KcS5FtexLCYOM9pJcnE9tqq9FJOrZ1xl1g+YjUVKxo4x8lu3tpEtIb17qg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.299.0.tgz", + "integrity": "sha512-anhrjeNuo0470QodEmzteFMnqABNebL900yhfODySXCMiaoeTBpo8Qd8t4q4O8PizA7FeLYA3l/5tb/udp7qew==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/signature-v4": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/signature-v4": "3.299.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-middleware": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-stack": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.292.0.tgz", - "integrity": "sha512-WdQpRkuMysrEwrkByCM1qCn2PPpFGGQ2iXqaFha5RzCdZDlxJni9cVNb6HzWUcgjLEYVTXCmOR9Wxm3CNW44Qg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.296.0.tgz", + "integrity": "sha512-Rgo7/mdk9tt4qa9+pzG3AoGNhuj7NmnF5H+3DoPm75h58BYP8hKbKobdPGgI2rZLPtO3PGgmyw/4K4tQJPIZ8g==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/middleware-user-agent": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.293.0.tgz", - "integrity": "sha512-gZ7/e6XwpKk9mvgA78q4Ffc796jTn02TUKx2qMDnkLVbeJXBNN2jnvYEKq8v70+o7fd/ALRudg8gBDmkkhM/Hw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.299.0.tgz", + "integrity": "sha512-Brm5UcbRhuVVmmbpDN8/WSJPCHogV64jGXL5upfL+iJ0c5eZ57LXOZ8kz++t3BU1rEkSIXHJanneEmn7Wbd5sA==", "requires": { - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-endpoints": "3.293.0", - "tslib": "^2.3.1" + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-endpoints": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/node-config-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.292.0.tgz", - "integrity": "sha512-S3NnC9dQ5GIbJYSDIldZb4zdpCOEua1tM7bjYL3VS5uqCEM93kIi/o/UkIUveMp/eqTS2LJa5HjNIz5Te6je0A==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.296.0.tgz", + "integrity": "sha512-S/tYcuw9ACOWRmRe5oUkmutQ+TApjVs0yDl504DKs74f3p4kRgI/MGWkBiR3mcfThHaxu81z0gkRL2qfW2SDwg==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/node-http-handler": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.292.0.tgz", - "integrity": "sha512-L/E3UDSwXLXjt1XWWh0RBD55F+aZI1AEdPwdES9i1PjnZLyuxuDhEDptVibNN56+I9/4Q3SbmuVRVlOD0uzBag==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.296.0.tgz", + "integrity": "sha512-D15jjPqYSNhEq58BwkmIpD3VwqG4bL5acAaNu5wWAI4S4236JlG+nmpi3gEeE25z1KCwtBl7G30fVRgXYJ2CWA==", "requires": { - "@aws-sdk/abort-controller": "3.292.0", - "@aws-sdk/protocol-http": "3.292.0", - "@aws-sdk/querystring-builder": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/abort-controller": "3.296.0", + "@aws-sdk/protocol-http": "3.296.0", + "@aws-sdk/querystring-builder": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/property-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.292.0.tgz", - "integrity": "sha512-dHArSvsiqhno/g55N815gXmAMrmN8DP7OeFNqJ4wJG42xsF2PFN3DAsjIuHuXMwu+7A3R1LHqIpvv0hA9KeoJQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.296.0.tgz", + "integrity": "sha512-kjczxE9Od5LoAKQOmxVWISJ9oPG3aCsB+2+NdI+k9EJFDXUUdMcVV3Skei5uHGgKLMsI6CZy8ezZx6YxOSLSew==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/protocol-http": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.292.0.tgz", - "integrity": "sha512-NLi4fq3k41aXIh1I97yX0JTy+3p6aW1NdwFwdMa674z86QNfb4SfRQRZBQe9wEnAZ/eWHVnlKIuII+U1URk/Kg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.296.0.tgz", + "integrity": "sha512-0U1Z/+tpwdRiSToWo1bpdkbTzjbLugTnd02ATjvK4B7zi363SUGlKfoWgV+v7FU/22CIUI1ZIe7XzXvq5rJfjA==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/querystring-builder": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.292.0.tgz", - "integrity": "sha512-XElIFJaReIm24eEvBtV2dOtZvcm3gXsGu/ftG8MLJKbKXFKpAP1q+K6En0Bs7/T88voKghKdKpKT+eZUWgTqlg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.296.0.tgz", + "integrity": "sha512-+ZrZdTRaVI1R1xKQNrTwuiRoPateUaJ/DNw/myJpTPt+ZRg0H7LKBGaJYwL4pl5l/z1UM/E1fOttSfSW7GHxfw==", "requires": { - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-uri-escape": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-uri-escape": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/querystring-parser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.292.0.tgz", - "integrity": "sha512-iTYpYo7a8X9RxiPbjjewIpm6XQPx2EOcF1dWCPRII9EFlmZ4bwnX+PDI36fIo9oVs8TIKXmwNGODU9nsg7CSAw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.296.0.tgz", + "integrity": "sha512-nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/service-error-classification": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.292.0.tgz", - "integrity": "sha512-X1k3sixCeC45XSNHBe+kRBQBwPDyTFtFITb8O5Qw4dS9XWGhrUJT4CX0qE5aj8qP3F9U5nRizs9c2mBVVP0Caw==" + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.296.0.tgz", + "integrity": "sha512-YIsWSQ38e1+FqXz3CMrkKS0JD8OLlHf6I72PJhbfegePpQQFqi9R8OREjP5V7UR9Z972yruv4i96ROH6SCtmoA==" }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.292.0.tgz", - "integrity": "sha512-Av2TTYg1Jig2kbkD56ybiqZJB6vVrYjv1W5UQwY/q3nA/T2mcrgQ20ByCOt5Bv9VvY7FSgC+znj+L4a7RLGmBg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.296.0.tgz", + "integrity": "sha512-S31VfdiruN2trayoeB7HifsEB+WXhtfECosj90K903rzfyX+Eo+uUoK9O07UotxJ2gB3MBQ7R8pNnZio3Lb66w==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/signature-v4": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.292.0.tgz", - "integrity": "sha512-+rw47VY5mvBecn13tDQTl1ipGWg5tE63faWgmZe68HoBL87ZiDzsd7bUKOvjfW21iMgWlwAppkaNNQayYRb2zg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.299.0.tgz", + "integrity": "sha512-3TtP+S3Tu0Q2/EwJLnN+IEok9nRyez79f6vprqXbC9Lex623cqh/OOYSy2oUjFlIgsIOLPum87/1bfcznYW+yQ==", "requires": { - "@aws-sdk/is-array-buffer": "3.292.0", - "@aws-sdk/types": "3.292.0", - "@aws-sdk/util-hex-encoding": "3.292.0", - "@aws-sdk/util-middleware": "3.292.0", - "@aws-sdk/util-uri-escape": "3.292.0", - "@aws-sdk/util-utf8": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/is-array-buffer": "3.295.0", + "@aws-sdk/types": "3.296.0", + "@aws-sdk/util-hex-encoding": "3.295.0", + "@aws-sdk/util-middleware": "3.296.0", + "@aws-sdk/util-uri-escape": "3.295.0", + "@aws-sdk/util-utf8": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/smithy-client": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.292.0.tgz", - "integrity": "sha512-S8PKzjPkZ6SXYZuZiU787dMsvQ0d/LFEhw2OI4Oe2An9Fc2IwJ2FYukyHoQJOV2tV0DiuMebPo7eMyQyjKElvA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.296.0.tgz", + "integrity": "sha512-HEpsLNozGe9XOWouq5A1TFw5KhFodi8tZqYVNEbSpLoRR+EQKf6OCRvKIRkOn7FnnaOasOR1n7S0D51UG6/irw==", "requires": { - "@aws-sdk/middleware-stack": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-stack": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/token-providers": { - "version": "3.294.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.294.0.tgz", - "integrity": "sha512-6nwO04LtC5f4AsUvGZXyjaswuEK4Rr2VsuANpMKrPCgunRfI58a8YXLniudOSXN6e7CFJ6M3uo/h5YXqtnzGug==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.299.0.tgz", + "integrity": "sha512-gCTxmg2IdXg0/mFV6tmOgNiqGmLeEXDejwyz6dT1P76CvgwjdM9bJ+gSRlKLa+jS49L/vqAZD6Hq/i1ZJmXRag==", "requires": { - "@aws-sdk/client-sso-oidc": "3.294.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/shared-ini-file-loader": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso-oidc": "3.299.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/shared-ini-file-loader": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/types": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.292.0.tgz", - "integrity": "sha512-1teYAY2M73UXZxMAxqZxVS2qwXjQh0OWtt7qyLfha0TtIk/fZ1hRwFgxbDCHUFcdNBSOSbKH/ESor90KROXLCQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.296.0.tgz", + "integrity": "sha512-s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/url-parser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.292.0.tgz", - "integrity": "sha512-NZeAuZCk1x6TIiWuRfbOU6wHPBhf0ly2qOHzWut4BCH+b4RrDmFF8EmXcH1auEfGhE7yRyR6XqIN0t3S+hYACA==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.296.0.tgz", + "integrity": "sha512-nBgeGF+ziuDSLz+y8UAl6zL2tXxDwh3wqeXFe9ZcR4YW71BWuh+vEqEsaEMutOrfnJacCrYKTs9TkIOW41cEGg==", "requires": { - "@aws-sdk/querystring-parser": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/querystring-parser": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-base64": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.292.0.tgz", - "integrity": "sha512-zjNCwNdy617yFvEjZorepNWXB2sQCVfsShCwFy/kIQ5iW5tT2jQKaqc0K77diU9atkooxw9p1W9m9sOgrkOFNw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.295.0.tgz", + "integrity": "sha512-z1r40BsBiOTALnzASvLb4qutGwPpL+jH2UKTCV5WJLXZFMzRnpZaRfeZGE8lMJ/i0+jv9H9G1FmVzE8UgB4rhw==", "requires": { - "@aws-sdk/util-buffer-from": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/util-buffer-from": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-body-length-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.292.0.tgz", - "integrity": "sha512-Wd/BM+JsMiKvKs/bN3z6TredVEHh2pKudGfg3CSjTRpqFpOG903KDfyHBD42yg5PuCHoHoewJvTPKwgn7/vhaw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.295.0.tgz", + "integrity": "sha512-NbG4/RSHV1VueStPRclSo5zRjNUmcDlNAs29sniZF+YaN0+Ad7hEdu/YgJw39shBfUaurz2Wv0pufU3cxE5Tng==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-body-length-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.292.0.tgz", - "integrity": "sha512-BBgipZ2P6RhogWE/qj0oqpdlyd3iSBYmb+aD/TBXwB2lA/X8A99GxweBd/kp06AmcJRoMS9WIXgbWkiiBlRlSA==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.295.0.tgz", + "integrity": "sha512-dvGf8VBmrT66lM0n6P/h7wnlHS4Atafyivyl8f4TUCMvRdpqryvvrtnX6yYcq3T7VKQmas/2SOlgDvcrhGXaiw==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-buffer-from": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.292.0.tgz", - "integrity": "sha512-RxNZjLoXNxHconH9TYsk5RaEBjSgTtozHeyIdacaHPj5vlQKi4hgL2hIfKeeNiAfQEVjaUFF29lv81xpNMzVMQ==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.295.0.tgz", + "integrity": "sha512-5ezVEITQnrQKn+CU9qfZHgRp2nrrbX0Clmlm9aiNjAEQEPHY33tWl0t6n8h8yU+IpGiNRMWBVC4aSJaE5NA1mA==", "requires": { - "@aws-sdk/is-array-buffer": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/is-array-buffer": "3.295.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-config-provider": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.292.0.tgz", - "integrity": "sha512-t3noYll6bPRSxeeNNEkC5czVjAiTPcsq00OwfJ2xyUqmquhLEfLwoJKmrT1uP7DjIEXdUtfoIQ2jWiIVm/oO5A==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.295.0.tgz", + "integrity": "sha512-/5Dl1aV2yI8YQjqwmg4RTnl/E9NmNsx7HIwBZt+dTcOrM0LMUwczQBFFcLyqCj/qv5y+VsvLoAAA/OiBT7hb3w==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.292.0.tgz", - "integrity": "sha512-7+zVUlMGfa8/KT++9humHo6IDxTnxMCmWUj5jVNlkpk6h7Ecmppf7aXotviyVIA43lhtz0p2AErs0N0ekEUK+w==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.296.0.tgz", + "integrity": "sha512-R+nzc0PuTMaOG3LV4FoS5W7oMAqqr8G1IyI+A4Q5iem6YDMF157qV5h6wpIt3A8n9YfjyssLsAT/WPfyv/M79w==", "requires": { - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", "bowser": "^2.11.0", - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.292.0.tgz", - "integrity": "sha512-SSIw85eF4BVs0fOJRyshT+R3b/UmBPhiVKCUZm2rq6+lIGkDPiSwQU3d/80AhXtiL5SFT/IzAKKgQd8qMa7q3A==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.299.0.tgz", + "integrity": "sha512-/7Ii0knBd9yGJ9ut89M90vqELtjQ+1c1Q3vA4o9ycof/mtn+VICtZ5UbQP+apAfCKVH+e0aeJNVRVibGVLXS+A==", "requires": { - "@aws-sdk/config-resolver": "3.292.0", - "@aws-sdk/credential-provider-imds": "3.292.0", - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/property-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/config-resolver": "3.299.0", + "@aws-sdk/credential-provider-imds": "3.296.0", + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/property-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-endpoints": { - "version": "3.293.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.293.0.tgz", - "integrity": "sha512-R/99aNV49Refpv5guiUjEUrZYlvnfaNBniB+/ZtMO3ixxUopapssCrUivuJrmhccmrYaTCZw7dRzIWjU1jJhKg==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.296.0.tgz", + "integrity": "sha512-YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==", "requires": { - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-hex-encoding": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.292.0.tgz", - "integrity": "sha512-qBd5KFIUywQ3qSSbj814S2srk0vfv8A6QMI+Obs1y2LHZFdQN5zViptI4UhXhKOHe+NnrHWxSuLC/LMH6q3SmA==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.295.0.tgz", + "integrity": "sha512-XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-middleware": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.292.0.tgz", - "integrity": "sha512-KjhS7flfoBKDxbiBZjLjMvEizXgjfQb7GQEItgzGoI9rfGCmZtvqCcqQQoIlxb8bIzGRggAUHtBGWnlLbpb+GQ==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.296.0.tgz", + "integrity": "sha512-MNWU+doVuX+mIehEManP6OP+f08T33qQpHoBqKIeKpn3TjZjMHG7ujACTkJiEOHUrnwTov7h0Sm+3OZwk3kh9w==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-retry": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.292.0.tgz", - "integrity": "sha512-JEHyF7MpVeRF5uR4LDYgpOKcFpOPiAj8TqN46SVOQQcL1K+V7cSr7O7N7J6MwJaN9XOzAcBadeIupMm7/BFbgw==", + "version": "3.296.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.296.0.tgz", + "integrity": "sha512-0mh7SqOMjuJ4vE423SzA/AfCLM68jykbfpEBkTmfqkpjkeQSW+UXHAUdXsMmfzIneiq7go5Z548F868C3cZnwQ==", "requires": { - "@aws-sdk/service-error-classification": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/service-error-classification": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-uri-escape": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.292.0.tgz", - "integrity": "sha512-hOQtUMQ4VcQ9iwKz50AoCp1XBD5gJ9nly/gJZccAM7zSA5mOO8RRKkbdonqquVHxrO0CnYgiFeCh3V35GFecUw==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.295.0.tgz", + "integrity": "sha512-1H5DcyIoXF8XcPBWf7wzHt0l+TW2EoR8Oq4gsVrPTQkHMTVclC2Yn8EF3gc4arwVBzwLulI9LMBE2L8fexGfTQ==", "requires": { - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.292.0.tgz", - "integrity": "sha512-dld+lpC3QdmTQHdBWJ0WFDkXDSrJgfz03q6mQ8+7H+BC12ZhT0I0g9iuvUjolqy7QR00OxOy47Y9FVhq8EC0Gg==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.299.0.tgz", + "integrity": "sha512-TRPAemTDzqxCxbpVkXV+Sp9JbEo0JdT/W8qzP/uuOdglZlNXM+SadkOuNFmqr2KG83bJE6lvomGJcJb9vMN4XQ==", "requires": { - "@aws-sdk/types": "3.292.0", + "@aws-sdk/types": "3.296.0", "bowser": "^2.11.0", - "tslib": "^2.3.1" + "tslib": "^2.5.0" } }, "@aws-sdk/util-user-agent-node": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.292.0.tgz", - "integrity": "sha512-f+NfIMal5E61MDc5WGhUEoicr7b1eNNhA+GgVdSB/Hg5fYhEZvFK9RZizH5rrtsLjjgcr9nPYSR7/nDKCJLumw==", + "version": "3.299.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.299.0.tgz", + "integrity": "sha512-GXA8pCDlQ4Rj+sZErZZfuFuwVnCAph/EvpmwdRNu99v9hX3Q2+HEcS+zM4zBqKDnW1DvaJoxr4SMrk9KBxHUmQ==", "requires": { - "@aws-sdk/node-config-provider": "3.292.0", - "@aws-sdk/types": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/node-config-provider": "3.296.0", + "@aws-sdk/types": "3.296.0", + "tslib": "^2.5.0" } }, "@aws-sdk/util-utf8": { - "version": "3.292.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.292.0.tgz", - "integrity": "sha512-FPkj+Z59/DQWvoVu2wFaRncc3KVwe/pgK3MfVb0Lx+Ibey5KUx+sNpJmYcVYHUAe/Nv/JeIpOtYuC96IXOnI6w==", + "version": "3.295.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.295.0.tgz", + "integrity": "sha512-ITN8v3F63ZkA4sdmCtSbS/mhav4F0MEAiXDAUXtMJLNqVtaVcyQST4i9vNmPpIVthAPAtP0QjyF2tq/Di8bxtQ==", "requires": { - "@aws-sdk/util-buffer-from": "3.292.0", - "tslib": "^2.3.1" + "@aws-sdk/util-buffer-from": "3.295.0", + "tslib": "^2.5.0" } } } diff --git a/backend/package.json b/backend/package.json index 8638cf444f..7df70d8905 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@aws-sdk/client-secrets-manager": "^3.294.0", + "@aws-sdk/client-secrets-manager": "^3.299.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", "@sentry/tracing": "^7.41.0", From 8e2837c8e83783a585ab7514049fd0051a206c60 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Mon, 17 Apr 2023 05:01:23 +0000 Subject: [PATCH 10/18] fix: upgrade mongoose from 6.10.3 to 6.10.4 Snyk has created this PR to upgrade mongoose from 6.10.3 to 6.10.4. See this package in npm: https://www.npmjs.com/package/mongoose See this project in Snyk: https://app.snyk.io/org/maidul98/project/35057e82-ed7d-4e19-ba4d-719a42135cd6?utm_source=github&utm_medium=referral&page=upgrade-pr --- backend/package-lock.json | 16 ++++++++-------- backend/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 7180d957f3..96858da025 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -12,8 +12,8 @@ "@aws-sdk/client-secrets-manager": "^3.294.0", "@godaddy/terminus": "^4.11.2", "@octokit/rest": "^19.0.5", - "@sentry/tracing": "^7.41.0", "@sentry/node": "^7.41.0", + "@sentry/tracing": "^7.41.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", "await-to-js": "^3.0.0", @@ -38,7 +38,7 @@ "jsrp": "^0.2.4", "libsodium-wrappers": "^0.7.10", "lodash": "^4.17.21", - "mongoose": "^6.10.3", + "mongoose": "^6.10.4", "nodemailer": "^6.8.0", "posthog-node": "^2.6.0", "query-string": "^7.1.3", @@ -8264,9 +8264,9 @@ } }, "node_modules/mongoose": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.3.tgz", - "integrity": "sha512-fZ3pIlQn7lM632r1l4qiU58lKrJ+FufKVG8TNeRXSChAeu9alCl5KoQ9bLw4jnQNYevSq9o+sqZmFDHP+EVW3g==", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.4.tgz", + "integrity": "sha512-xCHVVEaOuhZxbthsKYxvHexWafJqWsl03sD7y7uyyt3euLd1sQoDI8DKueeJq9+hrbWkMkAGbGzgFPTIRqenPg==", "dependencies": { "bson": "^4.7.0", "kareem": "2.5.1", @@ -19444,9 +19444,9 @@ } }, "mongoose": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.3.tgz", - "integrity": "sha512-fZ3pIlQn7lM632r1l4qiU58lKrJ+FufKVG8TNeRXSChAeu9alCl5KoQ9bLw4jnQNYevSq9o+sqZmFDHP+EVW3g==", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.4.tgz", + "integrity": "sha512-xCHVVEaOuhZxbthsKYxvHexWafJqWsl03sD7y7uyyt3euLd1sQoDI8DKueeJq9+hrbWkMkAGbGzgFPTIRqenPg==", "requires": { "bson": "^4.7.0", "kareem": "2.5.1", diff --git a/backend/package.json b/backend/package.json index 8638cf444f..b943a79416 100644 --- a/backend/package.json +++ b/backend/package.json @@ -30,7 +30,7 @@ "jsrp": "^0.2.4", "libsodium-wrappers": "^0.7.10", "lodash": "^4.17.21", - "mongoose": "^6.10.3", + "mongoose": "^6.10.4", "nodemailer": "^6.8.0", "posthog-node": "^2.6.0", "query-string": "^7.1.3", From 44c716aba33a58eec1d0a231c1bd448ecc58ac19 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Mon, 17 Apr 2023 11:49:49 -0700 Subject: [PATCH 11/18] Fixing minor bugs in dashboard and billing --- frontend/src/pages/dashboard/[id].tsx | 10 ++++++---- .../components/EnvComparisonRow/EnvComparisonRow.tsx | 12 ++++++------ .../Settings/OrgSettingsPage/OrgSettingsPage.tsx | 5 ++++- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/frontend/src/pages/dashboard/[id].tsx b/frontend/src/pages/dashboard/[id].tsx index 8aa480c81c..bd43c85b19 100644 --- a/frontend/src/pages/dashboard/[id].tsx +++ b/frontend/src/pages/dashboard/[id].tsx @@ -240,10 +240,12 @@ export default function Dashboard() { setWorkspaceEnvs(accessibleEnvironments || []); // set env - const env = accessibleEnvironments?.[0] || { + console.log(1, accessibleEnvironments, envInURL) + const env = accessibleEnvironments?.find((ae: WorkspaceEnv) => ae.slug === envInURL) || { name: 'unknown', slug: 'unknown' }; + console.log(1, env) setSelectedEnv(env); setSelectedSnapshotEnv(env); @@ -279,7 +281,7 @@ export default function Dashboard() { setData(undefined); } })(); - }, [workspaceId]); + }, [workspaceId, envInURL]); useEffect(() => { (async () => { @@ -290,7 +292,7 @@ export default function Dashboard() { let dataToSort; if (selectedEnv) { dataToSort = await getSecretsForProject({ - env: selectedEnv.slug, + env: String(envInURL), setIsKeyAvailable, setData, workspaceId @@ -1018,7 +1020,7 @@ export default function Dashboard() {
infisical loading indicator diff --git a/frontend/src/views/DashboardPage/components/EnvComparisonRow/EnvComparisonRow.tsx b/frontend/src/views/DashboardPage/components/EnvComparisonRow/EnvComparisonRow.tsx index acadf600dd..c464074ec1 100644 --- a/frontend/src/views/DashboardPage/components/EnvComparisonRow/EnvComparisonRow.tsx +++ b/frontend/src/views/DashboardPage/components/EnvComparisonRow/EnvComparisonRow.tsx @@ -28,8 +28,8 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret, ref.current.scrollLeft = e.currentTarget.scrollLeft; }; - return -
+ return +
{(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split('').length === 0 && EMPTY} {(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split(REGEX).map((word: string) => { @@ -78,7 +78,7 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret, ); })} - {!(secret?.value || secret?.value === '') && missing} + {!(secret?.value || secret?.value === '') && missing}
{(isSecretValueHidden && secret?.value) && (
@@ -118,7 +118,7 @@ export const EnvComparisonRow = ({
{index + 1}
-
{secret?.key || ''}
+
{secret?.key || ''}
diff --git a/frontend/src/views/Settings/OrgSettingsPage/OrgSettingsPage.tsx b/frontend/src/views/Settings/OrgSettingsPage/OrgSettingsPage.tsx index d5d8687b7c..33b94eafe8 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/OrgSettingsPage.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/OrgSettingsPage.tsx @@ -62,7 +62,10 @@ export const OrgSettingsPage = () => { (orgUsers || []).length >= 5 && subscriptionPlan === plans.starter && host === 'https://app.infisical.com' && - currentWorkspace?._id !== '63ea8121b6e2b0543ba79616'; + currentWorkspace?._id !== '63ea8121b6e2b0543ba79616' && + currentWorkspace?._id !== '634870246fd2e26f28e76996' && + currentWorkspace?._id !== '63d823cef9e728a0a961255a' && + currentWorkspace?._id !== '6412ec319db25595ac00b8c6'; const onRenameOrg = async (name: string) => { if (!currentOrg?._id) return; From 48cd2bddfea15522e92a4581bb5777cf13a308a0 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Mon, 17 Apr 2023 12:08:23 -0700 Subject: [PATCH 12/18] Rolled back the dashboard --- frontend/src/pages/dashboard/[id].tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/dashboard/[id].tsx b/frontend/src/pages/dashboard/[id].tsx index bd43c85b19..55cfaca8f8 100644 --- a/frontend/src/pages/dashboard/[id].tsx +++ b/frontend/src/pages/dashboard/[id].tsx @@ -19,8 +19,8 @@ import { } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Tag } from 'public/data/frequentInterfaces'; -import queryString from 'query-string'; +// import queryString from 'query-string'; import Button from '@app/components/basic/buttons/Button'; import BottonRightPopup from '@app/components/basic/popups/BottomRightPopup'; import { useNotificationContext } from '@app/components/context/Notifications/NotificationProvider'; @@ -173,7 +173,7 @@ export default function Dashboard() { const { createNotification } = useNotificationContext(); const router = useRouter(); - const envInURL = queryString.parse(router.asPath.split('?')[1])?.env; + // const envInURL = queryString.parse(router.asPath.split('?')[1])?.env; const workspaceId = router.query.id as string; const [workspaceEnvs, setWorkspaceEnvs] = useState([]); @@ -240,12 +240,10 @@ export default function Dashboard() { setWorkspaceEnvs(accessibleEnvironments || []); // set env - console.log(1, accessibleEnvironments, envInURL) - const env = accessibleEnvironments?.find((ae: WorkspaceEnv) => ae.slug === envInURL) || { + const env = accessibleEnvironments[0] || { name: 'unknown', slug: 'unknown' }; - console.log(1, env) setSelectedEnv(env); setSelectedSnapshotEnv(env); @@ -281,7 +279,7 @@ export default function Dashboard() { setData(undefined); } })(); - }, [workspaceId, envInURL]); + }, [workspaceId]); useEffect(() => { (async () => { @@ -292,7 +290,7 @@ export default function Dashboard() { let dataToSort; if (selectedEnv) { dataToSort = await getSecretsForProject({ - env: String(envInURL), + env: selectedEnv.slug, setIsKeyAvailable, setData, workspaceId @@ -818,7 +816,7 @@ export default function Dashboard() { }; return
- {!envInURL + {false ? : (data ? (
@@ -848,7 +846,7 @@ export default function Dashboard() {
envir.slug === envInURL)[0].name || ''} + currentEnv={selectedEnv?.name || ''} isProjectRelated userAvailableEnvs={workspaceEnvs} onEnvChange={handleOnEnvironmentChange} From 70668d778308a5c5883391a11e68745c13fe48d2 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 18 Apr 2023 13:36:30 -0700 Subject: [PATCH 13/18] add docs for using k8 controller with service acounts --- docs/integrations/platforms/kubernetes.mdx | 58 ++++++++++++---------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index e4bb54e5e6..e023d6e5fe 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -38,8 +38,8 @@ The operator can be install via [Helm](helm.sh) or [kubectl](https://github.com/ ## Sync Infisical Secrets to your cluster -To retrieve secrets from an Infisical project and save them as a native Kubernetes secret within a specific namespace, utilize the `InfisicalSecret` custom resource. -This resource can be created after installing the Infisical operator. +To retrieve secrets from an Infisical project and save them as native Kubernetes secrets within a specific namespace, utilize the `InfisicalSecret` custom resource definition (CRD). +This resource can be created after installing the Infisical operator. For each new managed secret, you will need to create a new InfisicalSecret CRD. ```yaml apiVersion: secrets.infisical.com/v1alpha1 @@ -62,8 +62,8 @@ spec: projectId: "6439ec224cfbf7ea2a95b651" environmentName: "dev" managedSecretReference: - secretName: managed-secret - secretNamespace: default + secretName: managed-secret # <-- the name of kubernetes secret that will be created + secretNamespace: default # <-- where the kubernetes secret that will be created ``` ### InfisicalSecret CRD properties @@ -96,7 +96,7 @@ spec: #### 3. Add reference for the Kubernetes secret containing service token - Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceToken` field in the InfisicalSecret resource. + Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceToken.serviceTokenSecretReference` field in the InfisicalSecret resource. ## Example ```yaml @@ -115,24 +115,34 @@ spec: - Authenticating with service tokens is a great option when you have a small number of services you'd like to fetch secrets for and are looking for the least amount of setup. + We recommend authenticating with service account credentials when you have a large number of services. With this method, instead of creating a service token for each Infisical project you'd like to + fetch secrets from, you can fetch secrets from a number of Infisical projects with just one set of credentials. - #### 1. Generate service token + #### 1. Generate service account - You can generate a service token for an Infisical project by heading over to the Infisical dashboard then to Project Settings. + You can generate a service account by heading over to the organization settings. Once you create the service account, keep the credentials at hand for the next steps. - #### 2. Create Kubernetes secret containing service token + #### 2. Grant service account access to Infisical projects - Once you have generated the service token, you will need to create a Kubernetes secret containing the service token you generated. - To quickly create a Kubernetes secret containing the generated service token, you can run the command below. + Click on the pencil icon on the service account you just created and add the projects you'd like to be accessible via that service account. - ``` bash - kubectl create secret generic service-token --from-literal=infisicalToken= + #### 3. Store service account credentials in K8 secret + Next, we'll need to store the service account credentials in a kubernetes secret so that we can reference it in our InfisicalSecret CRD. + + We recommend you create this kubernetes secret in a new namespace since you may need to reference it many times for each InfisicalSecret CRD you create. + + To quickly create a Kubernetes secret containing the service account details, you can execute the command below after replacing it with your own service account credentials. + + ``` + kubectl create secret generic service-token --from-literal=serviceAccountAccessKey=[REPLACE] --from-literal=serviceAccountPrivateKey=[REPLACE] --from-literal=serviceAccountPublicKey=[REPLACE] ``` - #### 3. Add reference for the Kubernetes secret containing service token + Regardless of how you create the kubernetes secret containing the service account credentials, you will need to define values for the following keys in the secret: `serviceAccountAccessKey`, `serviceAccountPrivateKey`, and `serviceAccountPublicKey` - Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceToken` field in the InfisicalSecret resource. + Once the secret is created, add the name and namespace of the secret that was just created under `authentication.serviceAccount.serviceAccountSecretReference` field in the InfisicalSecret CRD. + + #### 4. Add projectId and environment from which to fetch secrets from + Add the Infisical project id and environment from which to fetch secrets for by providing values under `authentication.serviceAccount.projectId` and `authentication.serviceAccount.environmentName`. ## Example ```yaml @@ -141,17 +151,13 @@ spec: metadata: name: infisicalsecret-sample-crd spec: - authentication: - serviceToken: - serviceTokenSecretReference: - secretName: service-token # <-- name of the Kubernetes secret that stores our service token - secretNamespace: option # <-- namespace of the Kubernetes secret that stores our service token - ... + serviceAccount: + serviceAccountSecretReference: + secretName: service-account + secretNamespace: default + projectId: "6439ec224cfbf7ea2a95b651" + environmentName: "dev" ``` - ``` - kubectl create secret generic service-token --from-literal=serviceAccountAccessKey=secret123 --from-literal=serviceAccountPublicKey=123456 --from-literal=serviceAccountPrivateKey=123456 - ``` - @@ -160,7 +166,7 @@ spec: The `managedSecretReference` field in the InfisicalSecret resource is used to specify the location where secrets retrieved from an Infisical project should be stored. You should specify the name and namespace of the Kubernetes secret that will hold these secrets. The operator will create the secret for you, you just need to provide its name and namespace. -It is recommended that the managed secret be created in the same namespace as the deployment that will use it. +The managed secret be should be created in the same namespace as the deployment that will use it. From 92e04c45e748277b6c820d9bac0b451fd8c5a006 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 18 Apr 2023 15:28:12 -0700 Subject: [PATCH 14/18] Update Chart.yaml --- helm-charts/secrets-operator/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/secrets-operator/Chart.yaml b/helm-charts/secrets-operator/Chart.yaml index 15e532d8b3..5bee2bb8dd 100644 --- a/helm-charts/secrets-operator/Chart.yaml +++ b/helm-charts/secrets-operator/Chart.yaml @@ -18,4 +18,4 @@ version: 0.1.5 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.1.4" +appVersion: "0.1.5" From dd4c4e1473ecb7d8f98fc9a0ccacb7a306e693c4 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 18 Apr 2023 16:17:32 -0700 Subject: [PATCH 15/18] make hostAPI optional --- .../api/v1alpha1/infisicalsecret_types.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/k8-operator/api/v1alpha1/infisicalsecret_types.go b/k8-operator/api/v1alpha1/infisicalsecret_types.go index e8dccdabb3..96364bf869 100644 --- a/k8-operator/api/v1alpha1/infisicalsecret_types.go +++ b/k8-operator/api/v1alpha1/infisicalsecret_types.go @@ -4,13 +4,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -type Authentication struct { - // +kubebuilder:validation:Optional - ServiceAccount ServiceAccountDetails `json:"serviceAccount"` - // +kubebuilder:validation:Optional - ServiceToken ServiceTokenDetails `json:"serviceToken"` -} - type ServiceTokenDetails struct { ServiceTokenSecretReference KubeSecretReference `json:"serviceTokenSecretReference"` } @@ -21,6 +14,13 @@ type ServiceAccountDetails struct { EnvironmentName string `json:"environmentName"` } +type Authentication struct { + // +kubebuilder:validation:Optional + ServiceAccount ServiceAccountDetails `json:"serviceAccount"` + // +kubebuilder:validation:Optional + ServiceToken ServiceTokenDetails `json:"serviceToken"` +} + type KubeSecretReference struct { // The name of the Kubernetes Secret // +kubebuilder:validation:Required @@ -43,7 +43,8 @@ type InfisicalSecretSpec struct { ManagedSecretReference KubeSecretReference `json:"managedSecretReference"` // Infisical host to pull secrets from - HostAPI string `json:"hostAPI,omitempty"` + // +kubebuilder:validation:Optional + HostAPI string `json:"hostAPI"` } // InfisicalSecretStatus defines the observed state of InfisicalSecret From 9f1f709b57445a891889d1186975cceaa866ff34 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 18 Apr 2023 16:29:38 -0700 Subject: [PATCH 16/18] add service token field in helmchart for k8 --- .../templates/infisicalsecret-crd.yaml | 20 +++++++++++++++++-- .../install-secrets-operator.yaml | 19 ++++++++++++++++-- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml b/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml index 22cb57e6e2..eee275f5e8 100644 --- a/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml +++ b/helm-charts/secrets-operator/templates/infisicalsecret-crd.yaml @@ -61,8 +61,24 @@ spec: - projectId - serviceAccountSecretReference type: object - required: - - serviceAccount + serviceToken: + properties: + serviceTokenSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret + is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - serviceTokenSecretReference + type: object type: object hostAPI: description: Infisical host to pull secrets from diff --git a/k8-operator/kubectl-install/install-secrets-operator.yaml b/k8-operator/kubectl-install/install-secrets-operator.yaml index 159496f911..6c9d5ef0db 100644 --- a/k8-operator/kubectl-install/install-secrets-operator.yaml +++ b/k8-operator/kubectl-install/install-secrets-operator.yaml @@ -68,8 +68,23 @@ spec: - projectId - serviceAccountSecretReference type: object - required: - - serviceAccount + serviceToken: + properties: + serviceTokenSecretReference: + properties: + secretName: + description: The name of the Kubernetes Secret + type: string + secretNamespace: + description: The name space where the Kubernetes Secret is located + type: string + required: + - secretName + - secretNamespace + type: object + required: + - serviceTokenSecretReference + type: object type: object hostAPI: description: Infisical host to pull secrets from From b0107d28d41b863c9749235c68673a60feb756f5 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 18 Apr 2023 16:33:29 -0700 Subject: [PATCH 17/18] update chart value --- helm-charts/secrets-operator/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm-charts/secrets-operator/Chart.yaml b/helm-charts/secrets-operator/Chart.yaml index 5bee2bb8dd..35475b8d8a 100644 --- a/helm-charts/secrets-operator/Chart.yaml +++ b/helm-charts/secrets-operator/Chart.yaml @@ -13,9 +13,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.5 +version: 0.1.6 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.1.5" +appVersion: "0.1.6" From afdf9710140620a728620347bd3daa215b878c1a Mon Sep 17 00:00:00 2001 From: mv-turtle <78047717+mv-turtle@users.noreply.github.com> Date: Wed, 19 Apr 2023 07:53:22 -0700 Subject: [PATCH 18/18] Fixed path in docs --- docs/api-reference/overview/authentication.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api-reference/overview/authentication.mdx b/docs/api-reference/overview/authentication.mdx index 3e18f8ce42..b05e989ae2 100644 --- a/docs/api-reference/overview/authentication.mdx +++ b/docs/api-reference/overview/authentication.mdx @@ -5,11 +5,11 @@ description: "How to authenticate with the Infisical Public API" ## Essentials -The Public API accepts multiple modes of authentication being via API Key, Service Account credentials, or [Infisical Token](../../../getting-started/dashboard/token). +The Public API accepts multiple modes of authentication being via API Key, Service Account credentials, or [Infisical Token](../../getting-started/dashboard/token). - API Key: Provides full access to all endpoints representing the user. - [Service Account](): Provides scoped access to an organization and select projects representing a machine such as a VM or application client. -- [Infisical Token](../../../getting-started/dashboard/token): Provides short-lived, scoped CRUD access to the secrets of a specific project and environment. +- [Infisical Token](../../getting-started/dashboard/token): Provides short-lived, scoped CRUD access to the secrets of a specific project and environment. @@ -48,4 +48,4 @@ Depending on your use case, it may make sense to use one or another authenticati - API Key (not recommended): Use if you need full access to the Public API without needing to access any secrets endpoints (because API keys can't encrypt/decrypt secrets). - Service Account (recommeded): Use if you need access to multiple projects and environments in an organization; service accounts can generate short-lived access tokens, making them useful for some complex setups. -- Service Token (recommeded): Use if you need short-lived, scoped CRUD access to the secrets of a specific project and environment. \ No newline at end of file +- Service Token (recommeded): Use if you need short-lived, scoped CRUD access to the secrets of a specific project and environment.