Skip to content

Commit

Permalink
SM-1159: Rename Service Accounts to Machine Accounts (#8444)
Browse files Browse the repository at this point in the history
* SM-1159: Rename service accounts to machine accounts. Visible text only.

* SM-1159: Second round of adding service to machine account renames

* SM-1159: Change title

* SM-1159: Fix typo

* SM-1159: Add more keys

* SM-1159: Reordered keys

* SM-1159: Keys update
  • Loading branch information
coltonhurst committed Apr 5, 2024
1 parent 9f8f93e commit fb51aa5
Show file tree
Hide file tree
Showing 23 changed files with 222 additions and 59 deletions.
Expand Up @@ -154,7 +154,7 @@ export class EventsComponent extends BaseEventsComponent implements OnInit, OnDe

if (r.serviceAccountId) {
return {
name: this.i18nService.t("serviceAccount") + " " + this.getShortId(r.serviceAccountId),
name: this.i18nService.t("machineAccount") + " " + this.getShortId(r.serviceAccountId),
};
}

Expand Down
Expand Up @@ -33,7 +33,7 @@
</bit-hint>
</bit-form-field>
<bit-form-field class="tw-w-2/3">
<bit-label>{{ "additionalServiceAccounts" | i18n }}</bit-label>
<bit-label>{{ "additionalMachineAccounts" | i18n }}</bit-label>
<input
bitInput
id="additionalServiceAccountCount"
Expand All @@ -44,8 +44,8 @@
/>
<bit-hint>
<div>
{{ "includedServiceAccounts" | i18n: options.baseServiceAccountCount }}
{{ "addAdditionalServiceAccounts" | i18n: (monthlyServiceAccountPrice | currency: "$") }}
{{ "includedMachineAccounts" | i18n: options.baseServiceAccountCount }}
{{ "addAdditionalMachineAccounts" | i18n: (monthlyServiceAccountPrice | currency: "$") }}
</div>
<div>
<strong>{{ "total" | i18n }}:</strong>
Expand All @@ -56,19 +56,19 @@
</bit-hint>
</bit-form-field>
<bit-form-control>
<bit-label>{{ "limitServiceAccounts" | i18n }}</bit-label>
<bit-label>{{ "limitMachineAccounts" | i18n }}</bit-label>
<input
type="checkbox"
bitCheckbox
id="limitServiceAccounts"
formControlName="limitServiceAccounts"
/>
<bit-hint>
{{ "limitServiceAccountsDesc" | i18n }}
{{ "limitMachineAccountsDesc" | i18n }}
</bit-hint>
</bit-form-control>
<bit-form-field class="tw-w-2/3" *ngIf="formGroup.value.limitServiceAccounts">
<bit-label>{{ "serviceAccountLimit" | i18n }}</bit-label>
<bit-label>{{ "machineAccountLimit" | i18n }}</bit-label>
<input
bitInput
id="additionalServiceAccountLimit"
Expand All @@ -79,9 +79,9 @@
/>
<bit-hint>
<div>
{{ "includedServiceAccounts" | i18n: options.baseServiceAccountCount }}
{{ "includedMachineAccounts" | i18n: options.baseServiceAccountCount }}
</div>
<strong>{{ "maxServiceAccountCost" | i18n }}:</strong>
<strong>{{ "maxMachineAccountCost" | i18n }}:</strong>
{{ maxAdditionalServiceAccounts }} &times;
{{ options.additionalServiceAccountPrice | currency: "$" }} =
{{ maxServiceAccountTotalCost | currency: "$" }} / {{ options.interval | i18n }}
Expand Down
10 changes: 5 additions & 5 deletions apps/web/src/app/billing/shared/sm-subscribe.component.html
Expand Up @@ -20,10 +20,10 @@ <h4 bitTypography="h4">{{ "secretsManagerForPlan" | i18n: planName }}</h4>
<ng-template #unlimitedProjects>
<li>{{ "unlimitedProjects" | i18n }}</li>
</ng-template>
<li>{{ "serviceAccountsIncluded" | i18n: serviceAccountsIncluded }}</li>
<li>{{ "machineAccountsIncluded" | i18n: serviceAccountsIncluded }}</li>
<li *ngIf="product != productTypes.Free">
{{
"additionalServiceAccountCost" | i18n: (monthlyCostPerServiceAccount | currency: "$")
"additionalMachineAccountCost" | i18n: (monthlyCostPerServiceAccount | currency: "$")
}}
</li>
</ul>
Expand Down Expand Up @@ -54,12 +54,12 @@ <h4 bitTypography="h4">{{ "secretsManagerForPlan" | i18n: planName }}</h4>
</div>
<div *ngIf="selectedPlan.SecretsManager.hasAdditionalServiceAccountOption" class="tw-w-1/2">
<bit-form-field>
<bit-label>{{ "additionalServiceAccounts" | i18n }}</bit-label>
<bit-label>{{ "additionalMachineAccounts" | i18n }}</bit-label>
<input bitInput formControlName="additionalServiceAccounts" type="number" />
<bit-hint>
{{ "includedServiceAccounts" | i18n: serviceAccountsIncluded }}
{{ "includedMachineAccounts" | i18n: serviceAccountsIncluded }}
{{
"addAdditionalServiceAccounts" | i18n: (monthlyCostPerServiceAccount | currency: "$")
"addAdditionalMachineAccounts" | i18n: (monthlyCostPerServiceAccount | currency: "$")
}}
</bit-hint>
</bit-form-field>
Expand Down
Expand Up @@ -39,7 +39,7 @@ const Template: Story = (args) => ({
template: `
<app-onboarding title="Get started">
<app-onboarding-task
[title]="'createServiceAccount' | i18n"
[title]="'createMachineAccount' | i18n"
icon="bwi-cli"
[completed]="createServiceAccount"
>
Expand Down
163 changes: 163 additions & 0 deletions apps/web/src/locales/en/messages.json
Expand Up @@ -7730,5 +7730,168 @@
"cancellationDate": {
"message": "Cancellation date",
"description": "The date header used when a subscription is cancelled."
},
"machineAccountsCannotCreate": {
"message": "Machine accounts cannot be created in suspended organizations. Please contact your organization owner for assistance."
},
"machineAccount": {
"message": "Machine account",
"description": "A machine user which can be used to automate processes and access secrets in the system."
},
"machineAccounts": {
"message": "Machine accounts",
"description": "The title for the section that deals with machine accounts."
},
"newMachineAccount": {
"message": "New machine account",
"description": "Title for creating a new machine account."
},
"machineAccountsNoItemsMessage": {
"message": "Create a new machine account to get started automating secret access.",
"description": "Message to encourage the user to start creating machine accounts."
},
"machineAccountsNoItemsTitle": {
"message": "Nothing to show yet",
"description": "Title to indicate that there are no machine accounts to display."
},
"deleteMachineAccounts": {
"message": "Delete machine accounts",
"description": "Title for the action to delete one or multiple machine accounts."
},
"deleteMachineAccount": {
"message": "Delete machine account",
"description": "Title for the action to delete a single machine account."
},
"viewMachineAccount": {
"message": "View machine account",
"description": "Action to view the details of a machine account."
},
"deleteMachineAccountDialogMessage": {
"message": "Deleting machine account $MACHINE_ACCOUNT$ is permanent and irreversible.",
"placeholders": {
"machine_account": {
"content": "$1",
"example": "Machine account name"
}
}
},
"deleteMachineAccountsDialogMessage": {
"message": "Deleting machine accounts is permanent and irreversible."
},
"deleteMachineAccountsConfirmMessage": {
"message": "Delete $COUNT$ machine accounts",
"placeholders": {
"count": {
"content": "$1",
"example": "2"
}
}
},
"deleteMachineAccountToast": {
"message": "Machine account deleted"
},
"deleteMachineAccountsToast": {
"message": "Machine accounts deleted"
},
"searchMachineAccounts": {
"message": "Search machine accounts",
"description": "Placeholder text for searching machine accounts."
},
"editMachineAccount": {
"message": "Edit machine account",
"description": "Title for editing a machine account."
},
"machineAccountName": {
"message": "Machine account name",
"description": "Label for the name of a machine account"
},
"machineAccountCreated": {
"message": "Machine account created",
"description": "Notifies that a new machine account has been created"
},
"machineAccountUpdated": {
"message": "Machine account updated",
"description": "Notifies that a machine account has been updated"
},
"projectMachineAccountsDescription": {
"message": "Grant machine accounts access to this project."
},
"projectMachineAccountsSelectHint": {
"message": "Type or select machine accounts"
},
"projectEmptyMachineAccountAccessPolicies": {
"message": "Add machine accounts to grant access"
},
"machineAccountPeopleDescription": {
"message": "Grant groups or people access to this machine account."
},
"machineAccountProjectsDescription": {
"message": "Assign projects to this machine account. "
},
"createMachineAccount": {
"message": "Create a machine account"
},
"maPeopleWarningMessage": {
"message": "Removing people from a machine account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a machine account."
},
"smAccessRemovalWarningMaTitle": {
"message": "Remove access to this machine account"
},
"smAccessRemovalWarningMaMessage": {
"message": "This action will remove your access to the machine account."
},
"machineAccountsIncluded": {
"message": "$COUNT$ machine accounts included",
"placeholders": {
"count": {
"content": "$1",
"example": "3"
}
}
},
"additionalMachineAccountCost": {
"message": "$COST$ per month for additional machine accounts",
"placeholders": {
"cost": {
"content": "$1",
"example": "$0.50"
}
}
},
"additionalMachineAccounts": {
"message": "Additional machine accounts"
},
"includedMachineAccounts": {
"message": "Your plan comes with $COUNT$ machine accounts.",
"placeholders": {
"count": {
"content": "$1",
"example": "50"
}
}
},
"addAdditionalMachineAccounts": {
"message": "You can add additional machine accounts for $COST$ per month.",
"placeholders": {
"cost": {
"content": "$1",
"example": "$0.50"
}
}
},
"limitMachineAccounts": {
"message": "Limit machine accounts (optional)"
},
"limitMachineAccountsDesc": {
"message": "Set a limit for your machine accounts. Once this limit is reached, you will not be able to create new machine accounts."
},
"machineAccountLimit": {
"message": "Machine account limit (optional)"
},
"maxMachineAccountCost": {
"message": "Max potential machine account cost"
},
"machineAccountAccessUpdated": {
"message": "Machine account access updated"
}
}
Expand Up @@ -18,7 +18,7 @@
></bit-nav-item>
<bit-nav-item
icon="bwi-wrench"
[text]="'serviceAccounts' | i18n"
[text]="'machineAccounts' | i18n"
route="service-accounts"
[relativeTo]="route.parent"
></bit-nav-item>
Expand Down
Expand Up @@ -5,7 +5,7 @@
<div *ngIf="!loading && view$ | async as view; else spinner">
<app-onboarding [title]="'getStarted' | i18n" *ngIf="showOnboarding" (dismiss)="hideOnboarding()">
<app-onboarding-task
[title]="'createServiceAccount' | i18n"
[title]="'createMachineAccount' | i18n"
(click)="openServiceAccountDialog()"
icon="bwi-cli"
[completed]="view.tasks.createServiceAccount"
Expand Down
@@ -1,14 +1,14 @@
<div class="tw-w-2/5">
<p class="tw-mt-8">
{{ "projectServiceAccountsDescription" | i18n }}
{{ "projectMachineAccountsDescription" | i18n }}
</p>
<sm-access-selector
[rows]="rows$ | async"
granteeType="serviceAccounts"
[label]="'serviceAccounts' | i18n"
[hint]="'projectServiceAccountsSelectHint' | i18n"
[columnTitle]="'serviceAccounts' | i18n"
[emptyMessage]="'projectEmptyServiceAccountAccessPolicies' | i18n"
[label]="'machineAccounts' | i18n"
[hint]="'projectMachineAccountsSelectHint' | i18n"
[columnTitle]="'machineAccounts' | i18n"
[emptyMessage]="'projectEmptyMachineAccountAccessPolicies' | i18n"
(onCreateAccessPolicies)="handleCreateAccessPolicies($event)"
(onDeleteAccessPolicy)="handleDeleteAccessPolicy($event)"
(onUpdateAccessPolicy)="handleUpdateAccessPolicy($event)"
Expand Down
Expand Up @@ -6,7 +6,7 @@
<bit-tab-link [route]="['secrets']">{{ "secrets" | i18n }}</bit-tab-link>
<ng-container *ngIf="project.write">
<bit-tab-link [route]="['people']">{{ "people" | i18n }}</bit-tab-link>
<bit-tab-link [route]="['service-accounts']">{{ "serviceAccounts" | i18n }}</bit-tab-link>
<bit-tab-link [route]="['service-accounts']">{{ "machineAccounts" | i18n }}</bit-tab-link>
</ng-container>
</bit-tab-nav-bar>
<sm-new-menu></sm-new-menu>
Expand Down
Expand Up @@ -8,7 +8,7 @@
</ng-container>
<ng-container *ngIf="data.serviceAccounts.length > 1">
{{ data.serviceAccounts.length }}
{{ "serviceAccounts" | i18n }}
{{ "machineAccounts" | i18n }}
</ng-container>
</span>
</ng-container>
Expand Down
Expand Up @@ -43,14 +43,14 @@ export class ServiceAccountDeleteDialogComponent {

get title() {
return this.data.serviceAccounts.length === 1
? this.i18nService.t("deleteServiceAccount")
: this.i18nService.t("deleteServiceAccounts");
? this.i18nService.t("deleteMachineAccount")
: this.i18nService.t("deleteMachineAccounts");
}

get dialogContent() {
return this.data.serviceAccounts.length === 1
? this.i18nService.t("deleteServiceAccountDialogMessage", this.data.serviceAccounts[0].name)
: this.i18nService.t("deleteServiceAccountsDialogMessage");
? this.i18nService.t("deleteMachineAccountDialogMessage", this.data.serviceAccounts[0].name)
: this.i18nService.t("deleteMachineAccountsDialogMessage");
}

get dialogConfirmationLabel() {
Expand Down Expand Up @@ -79,17 +79,17 @@ export class ServiceAccountDeleteDialogComponent {

const message =
this.data.serviceAccounts.length === 1
? "deleteServiceAccountToast"
: "deleteServiceAccountsToast";
? "deleteMachineAccountToast"
: "deleteMachineAccountsToast";
this.platformUtilsService.showToast("success", null, this.i18nService.t(message));
}

openBulkStatusDialog(bulkStatusResults: BulkOperationStatus[]) {
this.dialogService.open<unknown, BulkStatusDetails>(BulkStatusDialogComponent, {
data: {
title: "deleteServiceAccounts",
subTitle: "serviceAccounts",
columnTitle: "serviceAccountName",
title: "deleteMachineAccounts",
subTitle: "machineAccounts",
columnTitle: "machineAccountName",
message: "bulkDeleteProjectsErrorMessage",
details: bulkStatusResults,
},
Expand All @@ -100,7 +100,7 @@ export class ServiceAccountDeleteDialogComponent {
return this.data.serviceAccounts?.length === 1
? this.i18nService.t("deleteProjectConfirmMessage", this.data.serviceAccounts[0].name)
: this.i18nService.t(
"deleteServiceAccountsConfirmMessage",
"deleteMachineAccountsConfirmMessage",
this.data.serviceAccounts?.length.toString(),
);
}
Expand Down
Expand Up @@ -7,7 +7,7 @@
</div>
<div *ngIf="!loading">
<bit-form-field>
<bit-label>{{ "serviceAccountName" | i18n }}</bit-label>
<bit-label>{{ "machineAccountName" | i18n }}</bit-label>
<input appAutofocus formControlName="name" bitInput />
</bit-form-field>
</div>
Expand Down

0 comments on commit fb51aa5

Please sign in to comment.