fix update machine params + default to no max ttl

This commit is contained in:
Maidul Islam
2023-12-06 20:35:26 -05:00
parent 0fb2056b8b
commit a4f6b828ad
4 changed files with 22 additions and 13 deletions
@@ -557,6 +557,10 @@ export const createMachineIdentity = async (req: Request, res: Response) => {
} }
} = await validateRequest(reqValidator.CreateMachineIdentityV1, req); } = await validateRequest(reqValidator.CreateMachineIdentityV1, req);
if (accessTokenMaxTTL > 0 && accessTokenTTL > accessTokenMaxTTL) {
throw BadRequestError({ message: "Access token TTL cannot be greater than max TTL" })
}
const { permission } = await getAuthDataOrgPermissions({ const { permission } = await getAuthDataOrgPermissions({
authData: req.authData, authData: req.authData,
organizationId: new Types.ObjectId(organizationId) organizationId: new Types.ObjectId(organizationId)
@@ -676,10 +680,15 @@ export const updateMachineIdentity = async (req: Request, res: Response) => {
clientSecretTrustedIps, clientSecretTrustedIps,
accessTokenTrustedIps, accessTokenTrustedIps,
accessTokenTTL, accessTokenTTL,
accessTokenNumUsesLimit accessTokenNumUsesLimit,
accessTokenMaxTTL
} }
} = await validateRequest(reqValidator.UpdateMachineIdentityV1, req); } = await validateRequest(reqValidator.UpdateMachineIdentityV1, req);
if (accessTokenTTL && accessTokenMaxTTL > 0 && accessTokenTTL > accessTokenMaxTTL) {
throw BadRequestError({ message: "Access token TTL cannot be greater than max TTL" })
}
const machineMembershipOrg = await MachineMembershipOrg const machineMembershipOrg = await MachineMembershipOrg
.findOne({ .findOne({
machineIdentity: new Types.ObjectId(machineId) machineIdentity: new Types.ObjectId(machineId)
@@ -779,7 +788,8 @@ export const updateMachineIdentity = async (req: Request, res: Response) => {
clientSecretTrustedIps: reformattedClientSecretTrustedIps, clientSecretTrustedIps: reformattedClientSecretTrustedIps,
accessTokenTrustedIps: reformattedAccessTokenTrustedIps, accessTokenTrustedIps: reformattedAccessTokenTrustedIps,
accessTokenTTL, accessTokenTTL,
accessTokenNumUsesLimit accessTokenNumUsesLimit,
accessTokenMaxTTL
}, },
{ {
new: true new: true
+4 -7
View File
@@ -58,15 +58,11 @@ export const CreateMachineIdentityV1 = z.object({
.min(1) .min(1)
.default([{ ipAddress: "0.0.0.0/0" }]), .default([{ ipAddress: "0.0.0.0/0" }]),
accessTokenTTL: z.number().int().min(0).default(7200), accessTokenTTL: z.number().int().min(0).default(7200),
accessTokenMaxTTL: z.number().int().min(0).default(7200), accessTokenMaxTTL: z.number().int().min(0).default(0),
accessTokenNumUsesLimit: z.number().int().min(0).default(0) accessTokenNumUsesLimit: z.number().int().min(0).default(0)
}) })
.refine(data => data.accessTokenTTL <= data.accessTokenMaxTTL, {
message: "accessTokenTTL cannot be greater than accessTokenMaxTTL",
path: ["accessTokenTTL"],
})
}); });
export const UpdateMachineIdentityV1 = z.object({ export const UpdateMachineIdentityV1 = z.object({
params: z.object({ params: z.object({
machineId: z.string() machineId: z.string()
@@ -89,7 +85,8 @@ export const UpdateMachineIdentityV1 = z.object({
.min(1) .min(1)
.optional(), .optional(),
accessTokenTTL: z.number().int().min(0).optional(), accessTokenTTL: z.number().int().min(0).optional(),
accessTokenNumUsesLimit: z.number().int().min(0).optional() accessTokenNumUsesLimit: z.number().int().min(0).optional(),
accessTokenMaxTTL: z.number().int().min(0).default(0),
}), }),
}); });
@@ -81,7 +81,8 @@ export const useUpdateMachineIdentity = () => {
clientSecretTrustedIps, clientSecretTrustedIps,
accessTokenTrustedIps, accessTokenTrustedIps,
accessTokenTTL, accessTokenTTL,
accessTokenNumUsesLimit accessTokenNumUsesLimit,
accessTokenMaxTTL
}) => { }) => {
const { data: { machineIdentity } } = await apiRequest.patch(`/api/v1/machine-identities/${machineId}`, { const { data: { machineIdentity } } = await apiRequest.patch(`/api/v1/machine-identities/${machineId}`, {
@@ -90,7 +91,8 @@ export const useUpdateMachineIdentity = () => {
clientSecretTrustedIps, clientSecretTrustedIps,
accessTokenTrustedIps, accessTokenTrustedIps,
accessTokenTTL, accessTokenTTL,
accessTokenNumUsesLimit accessTokenNumUsesLimit,
accessTokenMaxTTL
}); });
return machineIdentity; return machineIdentity;
@@ -109,7 +109,7 @@ export const AddMachineIdentityModal = ({
defaultValues: { defaultValues: {
name: "", name: "",
accessTokenTTL: "7200", accessTokenTTL: "7200",
accessTokenMaxTTL: "7200", accessTokenMaxTTL: "0",
accessTokenNumUsesLimit: "0", accessTokenNumUsesLimit: "0",
clientSecretTrustedIps: [{ clientSecretTrustedIps: [{
ipAddress: "0.0.0.0/0" ipAddress: "0.0.0.0/0"
@@ -177,7 +177,7 @@ export const AddMachineIdentityModal = ({
reset({ reset({
name: "", name: "",
accessTokenTTL: "7200", accessTokenTTL: "7200",
accessTokenMaxTTL: "7200", accessTokenMaxTTL: "0",
accessTokenNumUsesLimit: "0", accessTokenNumUsesLimit: "0",
role: roles[0].slug, role: roles[0].slug,
clientSecretTrustedIps: [{ clientSecretTrustedIps: [{