mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-15 20:25:43 +00:00
feat(rbac): added new validation to all routes and permission check to most
This commit is contained in:
@@ -9,6 +9,7 @@ import { BotService } from "../services";
|
||||
import { AuthData } from "../interfaces/middleware";
|
||||
import { extractIPDetails } from "../utils/ip";
|
||||
import { z } from "zod";
|
||||
import { EventType, UserAgentType } from "../ee/models";
|
||||
|
||||
/**
|
||||
* Validate authenticated clients for workspace with id [workspaceId] based
|
||||
@@ -122,9 +123,241 @@ export const validateClientForWorkspace = async ({
|
||||
}
|
||||
};
|
||||
|
||||
export const CreateWorkspacev1 = z.object({
|
||||
export const GetWorkspaceSecretSnapshotsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
query: z.object({
|
||||
environment: z.string().trim(),
|
||||
folderId: z.string().trim().default("root"),
|
||||
offset: z.number(),
|
||||
limit: z.number()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceSecretSnapshotsCountV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
query: z.object({
|
||||
environment: z.string().trim(),
|
||||
folderId: z.string().trim().default("root")
|
||||
})
|
||||
});
|
||||
|
||||
export const RollbackWorkspaceSecretSnapshotV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
environment: z.string().trim(),
|
||||
folderId: z.string().trim().default("root"),
|
||||
version: z.number()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceLogsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
query: z.object({
|
||||
offset: z.number(),
|
||||
limit: z.number(),
|
||||
sortBy: z.string().trim().optional(),
|
||||
userId: z.string().trim().optional(),
|
||||
actionNames: z.string().trim().optional()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceAuditLogsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
query: z.object({
|
||||
eventType: z.nativeEnum(EventType).nullable().optional(),
|
||||
userAgentType: z.nativeEnum(UserAgentType).nullable().optional(),
|
||||
startDate: z.string().datetime().nullable().optional(),
|
||||
endDate: z.string().datetime().nullable().optional(),
|
||||
offset: z.number(),
|
||||
limit: z.number(),
|
||||
actor: z.string().nullish().optional()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceAuditLogActorFilterOptsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceTrustedIpsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const AddWorkspaceTrustedIpV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
ipAddress: z.string().trim(),
|
||||
comment: z.string().trim().default(""),
|
||||
isActive: z.boolean()
|
||||
})
|
||||
});
|
||||
|
||||
export const UpdateWorkspaceTrustedIpV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim(),
|
||||
trustedIpId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
ipAddress: z.string().trim(),
|
||||
comment: z.string().trim().default("")
|
||||
})
|
||||
});
|
||||
|
||||
export const DeleteWorkspaceTrustedIpV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim(),
|
||||
trustedIpId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspacePublicKeysV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceMembershipsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const CreateWorkspaceV1 = z.object({
|
||||
body: z.object({
|
||||
workspaceName: z.string().trim(),
|
||||
organizationId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const DeleteWorkspaceV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const ChangeWorkspaceNameV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
name: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const InviteUserToWorkspaceV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
email: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceIntegrationsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceIntegrationAuthorizationsV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceServiceTokensV1 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceServiceTokenDataV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceKeyV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceMembershipsV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const UpdateWorkspaceMembershipsV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim(),
|
||||
membershipId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
role: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const DeleteWorkspaceMembershipsV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim(),
|
||||
membershipId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const ToggleAutoCapitalizationV2 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
autoCapitalization: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceBlinkIndexStatusV3 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const GetWorkspaceSecretsV3 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
})
|
||||
});
|
||||
|
||||
export const NameWorkspaceSecretsV3 = z.object({
|
||||
params: z.object({
|
||||
workspaceId: z.string().trim()
|
||||
}),
|
||||
body: z.object({
|
||||
secretsToUpdate: z
|
||||
.object({
|
||||
secretName: z.string().trim(),
|
||||
_id: z.string().trim()
|
||||
})
|
||||
.array()
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user