Skip to content

Commit 621fa19

Browse files
authored
chore: upgrade logto cloud package (#7978)
1 parent 11212d6 commit 621fa19

File tree

46 files changed

+191
-34
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+191
-34
lines changed

packages/connectors/connector-logto-email/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"access": "public"
5353
},
5454
"devDependencies": {
55-
"@logto/cloud": "0.2.5-fd82773",
55+
"@logto/cloud": "0.2.5-96334d3",
5656
"@silverhand/eslint-config": "6.0.1",
5757
"@silverhand/ts-config": "6.0.0",
5858
"@types/node": "^22.14.0",

packages/console/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"@fontsource/roboto-mono": "^5.0.0",
2929
"@inkeep/cxkit-react": "^0.5.66",
3030
"@jest/types": "^29.5.0",
31-
"@logto/cloud": "0.2.5-fd82773",
31+
"@logto/cloud": "0.2.5-96334d3",
3232
"@logto/connector-kit": "workspace:^",
3333
"@logto/core-kit": "workspace:^",
3434
"@logto/language-kit": "workspace:^",

packages/console/src/components/Region/index.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { type PublicRegionName, type RegionResponse as RegionType } from '@logto/cloud/routes';
1+
import { type RegionResponse as RegionType } from '@logto/cloud/routes';
22
import { TenantTag } from '@logto/schemas';
33
import classNames from 'classnames';
44
import { useMemo, type FunctionComponent } from 'react';
@@ -12,16 +12,15 @@ import ukFlag from './assets/uk.svg?react';
1212
import usFlag from './assets/us.svg?react';
1313
import styles from './index.module.scss';
1414

15-
export const defaultRegionName = 'EU' satisfies PublicRegionName;
15+
export const defaultRegionName = 'EU';
1616

17-
const regionDisplayNameMap: Readonly<Record<PublicRegionName, string> & Record<string, string>> =
18-
Object.freeze({
19-
EU: 'Europe',
20-
US: 'West US',
21-
AU: 'Australia',
22-
JP: 'Japan',
23-
UK: 'United Kingdom',
24-
});
17+
const regionDisplayNameMap: Readonly<Record<string, string>> = Object.freeze({
18+
EU: 'Europe',
19+
US: 'West US',
20+
AU: 'Australia',
21+
JP: 'Japan',
22+
UK: 'United Kingdom',
23+
});
2524

2625
/**
2726
* Get the display name of the region. If the region is not in the map, return the original region

packages/console/src/consts/quota-item-phrases.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export const skuQuotaItemPhrasesMap: Record<
3232
idpInitiatedSsoEnabled: 'idp_initiated_sso_enabled.name',
3333
samlApplicationsLimit: 'saml_applications_limit.name',
3434
securityFeaturesEnabled: 'security_features_enabled.name',
35+
customDomainsLimit: 'custom_domains_limit.name',
3536
};
3637

3738
export const skuQuotaItemUnlimitedPhrasesMap: Record<
@@ -63,6 +64,7 @@ export const skuQuotaItemUnlimitedPhrasesMap: Record<
6364
idpInitiatedSsoEnabled: 'idp_initiated_sso_enabled.unlimited',
6465
samlApplicationsLimit: 'saml_applications_limit.unlimited',
6566
securityFeaturesEnabled: 'security_features_enabled.unlimited',
67+
customDomainsLimit: 'custom_domains_limit.unlimited',
6668
};
6769

6870
export const skuQuotaItemLimitedPhrasesMap: Record<
@@ -94,6 +96,7 @@ export const skuQuotaItemLimitedPhrasesMap: Record<
9496
idpInitiatedSsoEnabled: 'idp_initiated_sso_enabled.limited',
9597
samlApplicationsLimit: 'saml_applications_limit.limited',
9698
securityFeaturesEnabled: 'security_features_enabled.limited',
99+
customDomainsLimit: 'custom_domains_limit.limited',
97100
};
98101

99102
export const skuQuotaItemNotEligiblePhrasesMap: Record<
@@ -125,5 +128,6 @@ export const skuQuotaItemNotEligiblePhrasesMap: Record<
125128
idpInitiatedSsoEnabled: 'idp_initiated_sso_enabled.not_eligible',
126129
samlApplicationsLimit: 'saml_applications_limit.not_eligible',
127130
securityFeaturesEnabled: 'security_features_enabled.not_eligible',
131+
customDomainsLimit: 'custom_domains_limit.not_eligible',
128132
};
129133
/* === for new pricing model === */

packages/console/src/consts/tenants.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { type PublicRegionName } from '@logto/cloud/routes';
21
import { ReservedPlanId, TenantTag, defaultManagementApi } from '@logto/schemas';
32
import dayjs from 'dayjs';
43

@@ -116,6 +115,7 @@ export const defaultSubscriptionQuota: NewSubscriptionQuota = {
116115
idpInitiatedSsoEnabled: false,
117116
samlApplicationsLimit: 0,
118117
securityFeaturesEnabled: false,
118+
customDomainsLimit: 1,
119119
};
120120

121121
export const defaultSubscriptionUsage: NewSubscriptionCountBasedUsage = {
@@ -140,6 +140,7 @@ export const defaultSubscriptionUsage: NewSubscriptionCountBasedUsage = {
140140
idpInitiatedSsoEnabled: false,
141141
samlApplicationsLimit: 0,
142142
securityFeaturesEnabled: false,
143+
customDomainsLimit: 0,
143144
};
144145

145146
const getAdminTenantEndpoint = () => {
@@ -158,12 +159,7 @@ export const adminTenantEndpoint = getAdminTenantEndpoint();
158159
export const mainTitle = isCloud ? 'Logto Cloud' : 'Logto Console';
159160

160161
// Manually maintaining the list of regions to avoid unexpected changes. We may consider using an API in the future.
161-
export const availableRegions = Object.freeze([
162-
'EU',
163-
'US',
164-
'AU',
165-
'JP',
166-
] as const satisfies PublicRegionName[]);
162+
export const availableRegions = Object.freeze(['EU', 'US', 'AU', 'JP'] as const);
167163

168164
// The threshold days to show the convert to production card in the get started page
169165
export const convertToProductionThresholdDays = 7;

packages/console/src/hooks/use-system-limit-error-message.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const systemLimitKeyGuard = z.enum([
2323
'tenantMembersLimit',
2424
'organizationsLimit',
2525
'samlApplicationsLimit',
26+
'customDomainsLimit',
2627
'usersPerOrganizationLimit',
2728
'organizationUserRolesLimit',
2829
'organizationMachineToMachineRolesLimit',
@@ -48,6 +49,7 @@ const systemLimitEntityPhrases: Record<SystemLimitKey, AdminConsoleKey> = {
4849
tenantMembersLimit: 'system_limit.entities.tenant_member',
4950
organizationsLimit: 'system_limit.entities.organization',
5051
samlApplicationsLimit: 'system_limit.entities.saml_application',
52+
customDomainsLimit: 'system_limit.entities.custom_domain',
5153
usersPerOrganizationLimit: 'system_limit.entities.user_per_organization',
5254
organizationUserRolesLimit: 'system_limit.entities.organization_user_role',
5355
organizationMachineToMachineRolesLimit:

packages/core/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
"test:report": "codecov -F core"
2727
},
2828
"dependencies": {
29-
"@logto/account-center": "workspace:*",
3029
"@authenio/samlify-node-xmllint": "^2.0.0",
3130
"@aws-sdk/client-s3": "^3.556.0",
3231
"@azure/storage-blob": "^12.17.0",
3332
"@google-cloud/storage": "^7.10.0",
3433
"@koa/cors": "^5.0.0",
34+
"@logto/account-center": "workspace:*",
3535
"@logto/affiliate": "^0.1.0",
3636
"@logto/app-insights": "workspace:^",
3737
"@logto/cli": "workspace:^",
@@ -102,7 +102,7 @@
102102
"zod": "3.24.3"
103103
},
104104
"devDependencies": {
105-
"@logto/cloud": "0.2.5-fd82773",
105+
"@logto/cloud": "0.2.5-96334d3",
106106
"@silverhand/eslint-config": "6.0.1",
107107
"@silverhand/ts-config": "6.0.0",
108108
"@types/adm-zip": "^0.5.5",

packages/core/src/__mocks__/cloud-connection.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export const mockQuota = {
5959
idpInitiatedSsoEnabled: false,
6060
samlApplicationsLimit: 0,
6161
securityFeaturesEnabled: false,
62+
customDomainsLimit: 1,
6263
};
6364

6465
export const mockSubscriptionData: Subscription = {

packages/core/src/queries/tenant-usage/index.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
OrganizationUserRelations,
1515
OrganizationRoles,
1616
OrganizationScopes,
17+
Domains,
1718
} from '@logto/schemas';
1819
import { sql } from '@silverhand/slonik';
1920
import type { CommonQueryMethods } from '@silverhand/slonik';
@@ -60,6 +61,7 @@ const { table: organizationRolesTable, fields: organizationRolesFields } = conve
6061
true
6162
);
6263
const { table: organizationScopesTable } = convertToIdentifiers(OrganizationScopes, true);
64+
const { table: domainsTable } = convertToIdentifiers(Domains, true);
6365

6466
export default class TenantUsageQuery {
6567
constructor(private readonly pool: CommonQueryMethods) {}
@@ -82,6 +84,7 @@ export default class TenantUsageQuery {
8284
organizationUserRolesLimit: this.countOrganizationUserRoles,
8385
organizationMachineToMachineRolesLimit: this.countOrganizationMachineToMachineRoles,
8486
organizationScopesLimit: this.countOrganizationScopes,
87+
customDomainsLimit: this.countCustomDomains,
8588
};
8689
}
8790

@@ -274,4 +277,14 @@ export default class TenantUsageQuery {
274277

275278
return Number(result.count);
276279
};
280+
281+
private readonly countCustomDomains: UsageQuery = async () => {
282+
const result = await this.pool.one<{ count: string }>(sql`
283+
select
284+
count(*)
285+
from ${domainsTable}
286+
`);
287+
288+
return Number(result.count);
289+
};
277290
}

packages/core/src/queries/tenant-usage/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ const sharedUsageKeyGuard = z.enum([
6666
'enterpriseSsoLimit',
6767
'organizationsLimit',
6868
'samlApplicationsLimit',
69+
'customDomainsLimit',
6970
]) satisfies ToZodEnum<SharedUsageKey>;
7071

7172
/** All usage keys that need to be checked (union of SystemUsageKey and QuotaUsageKey). */
@@ -91,6 +92,7 @@ const quotaUsageKeyGuard = z.enum([
9192
'mfaEnabled',
9293
'securityFeaturesEnabled',
9394
'idpInitiatedSsoEnabled',
95+
'customDomainsLimit',
9496
]) satisfies ToZodEnum<QuotaUsageKey>;
9597

9698
export const isQuotaUsageKey = (key: UsageKey): key is QuotaUsageKey =>
@@ -116,6 +118,7 @@ const numericQuotaUsageKeyGuard = z.enum([
116118
'organizationsLimit',
117119
'samlApplicationsLimit',
118120
'socialConnectorsLimit',
121+
'customDomainsLimit',
119122
]) satisfies ToZodEnum<NumericQuotaUsageKey>;
120123

121124
export const isNumericQuotaUsageKey = (key: string): key is NumericQuotaUsageKey =>

0 commit comments

Comments
 (0)