diff --git a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html
index 20dc22597f..67c785326c 100644
--- a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html
+++ b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html
@@ -177,6 +177,14 @@
>
+
+ {{ "secretsManager" | i18n }}
+
+
{{ "selfHostingTitle" | i18n }}
diff --git a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts
index 52245320fe..693700a6bc 100644
--- a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts
+++ b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts
@@ -21,6 +21,7 @@ import {
BillingSyncApiKeyComponent,
BillingSyncApiModalData,
} from "./billing-sync-api-key.component";
+import { SecretsManagerSubscriptionOptions } from "./secrets-manager/sm-adjust-subscription.component";
@Component({
selector: "app-org-subscription-cloud",
@@ -36,6 +37,7 @@ export class OrganizationSubscriptionCloudComponent implements OnInit, OnDestroy
adjustStorageAdd = true;
showAdjustStorage = false;
hasBillingSyncToken: boolean;
+ showAdjustSecretsManager = false;
firstLoaded = false;
loading: boolean;
@@ -105,6 +107,14 @@ export class OrganizationSubscriptionCloudComponent implements OnInit, OnDestroy
(i) => i.keyType === OrganizationApiKeyType.BillingSync
);
+ this.showAdjustSecretsManager =
+ this.userOrg.canEditSubscription &&
+ this.userOrg.useSecretsManager &&
+ this.sub.secretsManagerPlan != null &&
+ this.sub.secretsManagerPlan.hasAdditionalSeatsOption &&
+ !this.subscription.cancelled &&
+ !this.subscriptionMarkedForCancel;
+
this.loading = false;
}
@@ -153,6 +163,19 @@ export class OrganizationSubscriptionCloudComponent implements OnInit, OnDestroy
return this.sub.seats;
}
+ get smOptions(): SecretsManagerSubscriptionOptions {
+ return {
+ seatCount: this.sub.smSeats,
+ seatLimit: this.sub.maxAutoscaleSmSeats,
+ seatPrice: this.sub.secretsManagerPlan.seatPrice,
+ serviceAccountLimit: this.sub.maxAutoscaleSmServiceAccounts,
+ serviceAccountCount: this.sub.smServiceAccounts,
+ interval: this.billingInterval,
+ additionalServiceAccountPrice: this.sub.secretsManagerPlan.additionalPricePerServiceAccount,
+ baseServiceAccountCount: this.sub.secretsManagerPlan.baseServiceAccount,
+ };
+ }
+
get maxAutoscaleSeats() {
return this.sub.maxAutoscaleSeats;
}