feat: updated router to validate max ttl and ttl

This commit is contained in:
=
2025-01-28 01:57:15 +05:30
parent 811dc8dd75
commit 91f2d0384e
7 changed files with 472 additions and 371 deletions
@@ -79,7 +79,8 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
params: z.object({ params: z.object({
identityId: z.string().trim().describe(AWS_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(AWS_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
stsEndpoint: z stsEndpoint: z
.string() .string()
.trim() .trim()
@@ -111,7 +112,11 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
.default(2592000) .default(2592000)
.describe(AWS_AUTH.ATTACH.accessTokenMaxTTL), .describe(AWS_AUTH.ATTACH.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(AWS_AUTH.ATTACH.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(AWS_AUTH.ATTACH.accessTokenNumUsesLimit)
}), })
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema identityAwsAuth: IdentityAwsAuthsSchema
@@ -167,7 +172,8 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
params: z.object({ params: z.object({
identityId: z.string().describe(AWS_AUTH.UPDATE.identityId) identityId: z.string().describe(AWS_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
stsEndpoint: z.string().trim().min(1).optional().describe(AWS_AUTH.UPDATE.stsEndpoint), stsEndpoint: z.string().trim().min(1).optional().describe(AWS_AUTH.UPDATE.stsEndpoint),
allowedPrincipalArns: validatePrincipalArns.describe(AWS_AUTH.UPDATE.allowedPrincipalArns), allowedPrincipalArns: validatePrincipalArns.describe(AWS_AUTH.UPDATE.allowedPrincipalArns),
allowedAccountIds: validateAccountIds.describe(AWS_AUTH.UPDATE.allowedAccountIds), allowedAccountIds: validateAccountIds.describe(AWS_AUTH.UPDATE.allowedAccountIds),
@@ -181,8 +187,18 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
.describe(AWS_AUTH.UPDATE.accessTokenTrustedIps), .describe(AWS_AUTH.UPDATE.accessTokenTrustedIps),
accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(AWS_AUTH.UPDATE.accessTokenTTL), accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(AWS_AUTH.UPDATE.accessTokenTTL),
accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(AWS_AUTH.UPDATE.accessTokenNumUsesLimit), accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(AWS_AUTH.UPDATE.accessTokenNumUsesLimit),
accessTokenMaxTTL: z.number().int().max(315360000).min(0).optional().describe(AWS_AUTH.UPDATE.accessTokenMaxTTL) accessTokenMaxTTL: z
}), .number()
.int()
.max(315360000)
.min(0)
.optional()
.describe(AWS_AUTH.UPDATE.accessTokenMaxTTL)
})
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema identityAwsAuth: IdentityAwsAuthsSchema
@@ -76,7 +76,8 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
params: z.object({ params: z.object({
identityId: z.string().trim().describe(AZURE_AUTH.LOGIN.identityId) identityId: z.string().trim().describe(AZURE_AUTH.LOGIN.identityId)
}), }),
body: z.object({ body: z
.object({
tenantId: z.string().trim().describe(AZURE_AUTH.ATTACH.tenantId), tenantId: z.string().trim().describe(AZURE_AUTH.ATTACH.tenantId),
resource: z.string().trim().describe(AZURE_AUTH.ATTACH.resource), resource: z.string().trim().describe(AZURE_AUTH.ATTACH.resource),
allowedServicePrincipalIds: validateAzureAuthField.describe(AZURE_AUTH.ATTACH.allowedServicePrincipalIds), allowedServicePrincipalIds: validateAzureAuthField.describe(AZURE_AUTH.ATTACH.allowedServicePrincipalIds),
@@ -102,8 +103,17 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
.max(315360000) .max(315360000)
.default(2592000) .default(2592000)
.describe(AZURE_AUTH.ATTACH.accessTokenMaxTTL), .describe(AZURE_AUTH.ATTACH.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(AZURE_AUTH.ATTACH.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z
}), .number()
.int()
.min(0)
.default(0)
.describe(AZURE_AUTH.ATTACH.accessTokenNumUsesLimit)
})
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema identityAzureAuth: IdentityAzureAuthsSchema
@@ -158,7 +168,8 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
params: z.object({ params: z.object({
identityId: z.string().trim().describe(AZURE_AUTH.UPDATE.identityId) identityId: z.string().trim().describe(AZURE_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
tenantId: z.string().trim().optional().describe(AZURE_AUTH.UPDATE.tenantId), tenantId: z.string().trim().optional().describe(AZURE_AUTH.UPDATE.tenantId),
resource: z.string().trim().optional().describe(AZURE_AUTH.UPDATE.resource), resource: z.string().trim().optional().describe(AZURE_AUTH.UPDATE.resource),
allowedServicePrincipalIds: validateAzureAuthField allowedServicePrincipalIds: validateAzureAuthField
@@ -173,7 +184,12 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
.optional() .optional()
.describe(AZURE_AUTH.UPDATE.accessTokenTrustedIps), .describe(AZURE_AUTH.UPDATE.accessTokenTrustedIps),
accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(AZURE_AUTH.UPDATE.accessTokenTTL), accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(AZURE_AUTH.UPDATE.accessTokenTTL),
accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(AZURE_AUTH.UPDATE.accessTokenNumUsesLimit), accessTokenNumUsesLimit: z
.number()
.int()
.min(0)
.optional()
.describe(AZURE_AUTH.UPDATE.accessTokenNumUsesLimit),
accessTokenMaxTTL: z accessTokenMaxTTL: z
.number() .number()
.int() .int()
@@ -181,7 +197,11 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
.min(0) .min(0)
.optional() .optional()
.describe(AZURE_AUTH.UPDATE.accessTokenMaxTTL) .describe(AZURE_AUTH.UPDATE.accessTokenMaxTTL)
}), })
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema identityAzureAuth: IdentityAzureAuthsSchema
@@ -74,7 +74,8 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
params: z.object({ params: z.object({
identityId: z.string().trim().describe(GCP_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(GCP_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
type: z.enum(["iam", "gce"]), type: z.enum(["iam", "gce"]),
allowedServiceAccounts: validateGcpAuthField.describe(GCP_AUTH.ATTACH.allowedServiceAccounts), allowedServiceAccounts: validateGcpAuthField.describe(GCP_AUTH.ATTACH.allowedServiceAccounts),
allowedProjects: validateGcpAuthField.describe(GCP_AUTH.ATTACH.allowedProjects), allowedProjects: validateGcpAuthField.describe(GCP_AUTH.ATTACH.allowedProjects),
@@ -102,7 +103,11 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
.default(2592000) .default(2592000)
.describe(GCP_AUTH.ATTACH.accessTokenMaxTTL), .describe(GCP_AUTH.ATTACH.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(GCP_AUTH.ATTACH.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(GCP_AUTH.ATTACH.accessTokenNumUsesLimit)
}), })
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema identityGcpAuth: IdentityGcpAuthsSchema
@@ -159,7 +164,8 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
params: z.object({ params: z.object({
identityId: z.string().trim().describe(GCP_AUTH.UPDATE.identityId) identityId: z.string().trim().describe(GCP_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
type: z.enum(["iam", "gce"]).optional(), type: z.enum(["iam", "gce"]).optional(),
allowedServiceAccounts: validateGcpAuthField.optional().describe(GCP_AUTH.UPDATE.allowedServiceAccounts), allowedServiceAccounts: validateGcpAuthField.optional().describe(GCP_AUTH.UPDATE.allowedServiceAccounts),
allowedProjects: validateGcpAuthField.optional().describe(GCP_AUTH.UPDATE.allowedProjects), allowedProjects: validateGcpAuthField.optional().describe(GCP_AUTH.UPDATE.allowedProjects),
@@ -174,8 +180,18 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
.describe(GCP_AUTH.UPDATE.accessTokenTrustedIps), .describe(GCP_AUTH.UPDATE.accessTokenTrustedIps),
accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(GCP_AUTH.UPDATE.accessTokenTTL), accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(GCP_AUTH.UPDATE.accessTokenTTL),
accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(GCP_AUTH.UPDATE.accessTokenNumUsesLimit), accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(GCP_AUTH.UPDATE.accessTokenNumUsesLimit),
accessTokenMaxTTL: z.number().int().min(0).max(315360000).optional().describe(GCP_AUTH.UPDATE.accessTokenMaxTTL) accessTokenMaxTTL: z
}), .number()
.int()
.min(0)
.max(315360000)
.optional()
.describe(GCP_AUTH.UPDATE.accessTokenMaxTTL)
})
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema identityGcpAuth: IdentityGcpAuthsSchema
@@ -87,7 +87,8 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
params: z.object({ params: z.object({
identityId: z.string().trim().describe(KUBERNETES_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(KUBERNETES_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
kubernetesHost: z.string().trim().min(1).describe(KUBERNETES_AUTH.ATTACH.kubernetesHost), kubernetesHost: z.string().trim().min(1).describe(KUBERNETES_AUTH.ATTACH.kubernetesHost),
caCert: z.string().trim().default("").describe(KUBERNETES_AUTH.ATTACH.caCert), caCert: z.string().trim().default("").describe(KUBERNETES_AUTH.ATTACH.caCert),
tokenReviewerJwt: z.string().trim().min(1).describe(KUBERNETES_AUTH.ATTACH.tokenReviewerJwt), tokenReviewerJwt: z.string().trim().min(1).describe(KUBERNETES_AUTH.ATTACH.tokenReviewerJwt),
@@ -122,7 +123,11 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
.min(0) .min(0)
.default(0) .default(0)
.describe(KUBERNETES_AUTH.ATTACH.accessTokenNumUsesLimit) .describe(KUBERNETES_AUTH.ATTACH.accessTokenNumUsesLimit)
}), })
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema identityKubernetesAuth: IdentityKubernetesAuthResponseSchema
@@ -178,7 +183,8 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
params: z.object({ params: z.object({
identityId: z.string().describe(KUBERNETES_AUTH.UPDATE.identityId) identityId: z.string().describe(KUBERNETES_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
kubernetesHost: z.string().trim().min(1).optional().describe(KUBERNETES_AUTH.UPDATE.kubernetesHost), kubernetesHost: z.string().trim().min(1).optional().describe(KUBERNETES_AUTH.UPDATE.kubernetesHost),
caCert: z.string().trim().optional().describe(KUBERNETES_AUTH.UPDATE.caCert), caCert: z.string().trim().optional().describe(KUBERNETES_AUTH.UPDATE.caCert),
tokenReviewerJwt: z.string().trim().min(1).optional().describe(KUBERNETES_AUTH.UPDATE.tokenReviewerJwt), tokenReviewerJwt: z.string().trim().min(1).optional().describe(KUBERNETES_AUTH.UPDATE.tokenReviewerJwt),
@@ -213,7 +219,11 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
.max(315360000) .max(315360000)
.optional() .optional()
.describe(KUBERNETES_AUTH.UPDATE.accessTokenMaxTTL) .describe(KUBERNETES_AUTH.UPDATE.accessTokenMaxTTL)
}), })
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema identityKubernetesAuth: IdentityKubernetesAuthResponseSchema
@@ -87,7 +87,8 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
params: z.object({ params: z.object({
identityId: z.string().trim().describe(OIDC_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(OIDC_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
oidcDiscoveryUrl: z.string().url().min(1).describe(OIDC_AUTH.ATTACH.oidcDiscoveryUrl), oidcDiscoveryUrl: z.string().url().min(1).describe(OIDC_AUTH.ATTACH.oidcDiscoveryUrl),
caCert: z.string().trim().default("").describe(OIDC_AUTH.ATTACH.caCert), caCert: z.string().trim().default("").describe(OIDC_AUTH.ATTACH.caCert),
boundIssuer: z.string().min(1).describe(OIDC_AUTH.ATTACH.boundIssuer), boundIssuer: z.string().min(1).describe(OIDC_AUTH.ATTACH.boundIssuer),
@@ -117,7 +118,11 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
.default(2592000) .default(2592000)
.describe(OIDC_AUTH.ATTACH.accessTokenMaxTTL), .describe(OIDC_AUTH.ATTACH.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(OIDC_AUTH.ATTACH.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(OIDC_AUTH.ATTACH.accessTokenNumUsesLimit)
}), })
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema identityOidcAuth: IdentityOidcAuthResponseSchema
@@ -210,7 +215,11 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
.describe(OIDC_AUTH.UPDATE.accessTokenMaxTTL), .describe(OIDC_AUTH.UPDATE.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(OIDC_AUTH.UPDATE.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(OIDC_AUTH.UPDATE.accessTokenNumUsesLimit)
}) })
.partial(), .partial()
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema identityOidcAuth: IdentityOidcAuthResponseSchema
@@ -26,7 +26,8 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
params: z.object({ params: z.object({
identityId: z.string().trim().describe(TOKEN_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(TOKEN_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
accessTokenTrustedIps: z accessTokenTrustedIps: z
.object({ .object({
ipAddress: z.string().trim() ipAddress: z.string().trim()
@@ -49,8 +50,17 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
.max(315360000) .max(315360000)
.default(2592000) .default(2592000)
.describe(TOKEN_AUTH.ATTACH.accessTokenMaxTTL), .describe(TOKEN_AUTH.ATTACH.accessTokenMaxTTL),
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(TOKEN_AUTH.ATTACH.accessTokenNumUsesLimit) accessTokenNumUsesLimit: z
}), .number()
.int()
.min(0)
.default(0)
.describe(TOKEN_AUTH.ATTACH.accessTokenNumUsesLimit)
})
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema identityTokenAuth: IdentityTokenAuthsSchema
@@ -105,7 +115,8 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
params: z.object({ params: z.object({
identityId: z.string().trim().describe(TOKEN_AUTH.UPDATE.identityId) identityId: z.string().trim().describe(TOKEN_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
accessTokenTrustedIps: z accessTokenTrustedIps: z
.object({ .object({
ipAddress: z.string().trim() ipAddress: z.string().trim()
@@ -115,7 +126,12 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
.optional() .optional()
.describe(TOKEN_AUTH.UPDATE.accessTokenTrustedIps), .describe(TOKEN_AUTH.UPDATE.accessTokenTrustedIps),
accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(TOKEN_AUTH.UPDATE.accessTokenTTL), accessTokenTTL: z.number().int().min(0).max(315360000).optional().describe(TOKEN_AUTH.UPDATE.accessTokenTTL),
accessTokenNumUsesLimit: z.number().int().min(0).optional().describe(TOKEN_AUTH.UPDATE.accessTokenNumUsesLimit), accessTokenNumUsesLimit: z
.number()
.int()
.min(0)
.optional()
.describe(TOKEN_AUTH.UPDATE.accessTokenNumUsesLimit),
accessTokenMaxTTL: z accessTokenMaxTTL: z
.number() .number()
.int() .int()
@@ -123,7 +139,11 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
.max(315360000) .max(315360000)
.optional() .optional()
.describe(TOKEN_AUTH.UPDATE.accessTokenMaxTTL) .describe(TOKEN_AUTH.UPDATE.accessTokenMaxTTL)
}), })
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema identityTokenAuth: IdentityTokenAuthsSchema
@@ -86,7 +86,8 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
params: z.object({ params: z.object({
identityId: z.string().trim().describe(UNIVERSAL_AUTH.ATTACH.identityId) identityId: z.string().trim().describe(UNIVERSAL_AUTH.ATTACH.identityId)
}), }),
body: z.object({ body: z
.object({
clientSecretTrustedIps: z clientSecretTrustedIps: z
.object({ .object({
ipAddress: z.string().trim() ipAddress: z.string().trim()
@@ -123,7 +124,11 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
.min(0) .min(0)
.default(0) .default(0)
.describe(UNIVERSAL_AUTH.ATTACH.accessTokenNumUsesLimit) .describe(UNIVERSAL_AUTH.ATTACH.accessTokenNumUsesLimit)
}), })
.refine(
(val) => val.accessTokenTTL <= val.accessTokenMaxTTL,
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema identityUniversalAuth: IdentityUniversalAuthsSchema
@@ -176,7 +181,8 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
params: z.object({ params: z.object({
identityId: z.string().describe(UNIVERSAL_AUTH.UPDATE.identityId) identityId: z.string().describe(UNIVERSAL_AUTH.UPDATE.identityId)
}), }),
body: z.object({ body: z
.object({
clientSecretTrustedIps: z clientSecretTrustedIps: z
.object({ .object({
ipAddress: z.string().trim() ipAddress: z.string().trim()
@@ -213,7 +219,11 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
.max(315360000) .max(315360000)
.optional() .optional()
.describe(UNIVERSAL_AUTH.UPDATE.accessTokenMaxTTL) .describe(UNIVERSAL_AUTH.UPDATE.accessTokenMaxTTL)
}), })
.refine(
(val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true),
"Access Token TTL cannot be greater than Access Token Max TTL."
),
response: { response: {
200: z.object({ 200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema identityUniversalAuth: IdentityUniversalAuthsSchema