mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 19:28:16 +00:00
Add endpoint to get project key for ST V3
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
import { Types } from "mongoose";
|
import { Types } from "mongoose";
|
||||||
import {
|
import {
|
||||||
|
IServiceTokenDataV3,
|
||||||
|
IUser,
|
||||||
ServiceTokenDataV3,
|
ServiceTokenDataV3,
|
||||||
ServiceTokenDataV3Key
|
ServiceTokenDataV3Key
|
||||||
} from "../../models";
|
} from "../../models";
|
||||||
@@ -24,6 +26,32 @@ import { BadRequestError, ResourceNotFoundError } from "../../utils/errors";
|
|||||||
import { EEAuditLogService } from "../../ee/services";
|
import { EEAuditLogService } from "../../ee/services";
|
||||||
import { getJwtServiceTokenSecret } from "../../config";
|
import { getJwtServiceTokenSecret } from "../../config";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return project key for service token
|
||||||
|
* @param req
|
||||||
|
* @param res
|
||||||
|
*/
|
||||||
|
export const getServiceTokenDataKey = async (req: Request, res: Response) => {
|
||||||
|
const key = await ServiceTokenDataV3Key.findOne({
|
||||||
|
serviceTokenData: (req.authData.authPayload as IServiceTokenDataV3)._id
|
||||||
|
}).populate<{ sender: IUser }>("sender", "publicKey");
|
||||||
|
|
||||||
|
if (!key) throw ResourceNotFoundError({
|
||||||
|
message: "Failed to find project key for service token"
|
||||||
|
});
|
||||||
|
|
||||||
|
const { _id, encryptedKey, nonce, sender: { publicKey } } = key;
|
||||||
|
|
||||||
|
return res.status(200).send({
|
||||||
|
key: {
|
||||||
|
_id,
|
||||||
|
encryptedKey,
|
||||||
|
publicKey,
|
||||||
|
nonce
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create service token data
|
* Create service token data
|
||||||
* @param req
|
* @param req
|
||||||
|
|||||||
@@ -4,6 +4,14 @@ import { requireAuth } from "../../middleware";
|
|||||||
import { AuthMode } from "../../variables";
|
import { AuthMode } from "../../variables";
|
||||||
import { serviceTokenDataController } from "../../controllers/v3";
|
import { serviceTokenDataController } from "../../controllers/v3";
|
||||||
|
|
||||||
|
router.get(
|
||||||
|
"/me/key",
|
||||||
|
requireAuth({
|
||||||
|
acceptedAuthModes: [AuthMode.SERVICE_TOKEN_V3]
|
||||||
|
}),
|
||||||
|
serviceTokenDataController.getServiceTokenDataKey
|
||||||
|
);
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
"/",
|
"/",
|
||||||
requireAuth({
|
requireAuth({
|
||||||
|
|||||||
Reference in New Issue
Block a user