mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-05 11:26:33 +00:00
misc: formatting changes
This commit is contained in:
@@ -2,11 +2,6 @@ import { ForbiddenError, subject } from "@casl/ability";
|
|||||||
|
|
||||||
import { BadRequestError } from "@app/lib/errors";
|
import { BadRequestError } from "@app/lib/errors";
|
||||||
import { ActorType } from "@app/services/auth/auth-type";
|
import { ActorType } from "@app/services/auth/auth-type";
|
||||||
import { TKmsServiceFactory } from "@app/services/kms/kms-service";
|
|
||||||
import { TProjectDALFactory } from "@app/services/project/project-dal";
|
|
||||||
import { TProjectSlackConfigDALFactory } from "@app/services/slack/project-slack-config-dal";
|
|
||||||
import { triggerSlackNotification } from "@app/services/slack/slack-fns";
|
|
||||||
import { SlackTriggerFeature } from "@app/services/slack/slack-types";
|
|
||||||
|
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub } from "../permission/project-permission";
|
import { ProjectPermissionActions, ProjectPermissionSub } from "../permission/project-permission";
|
||||||
import { TVerifyApprovers } from "./access-approval-policy-types";
|
import { TVerifyApprovers } from "./access-approval-policy-types";
|
||||||
@@ -39,69 +34,3 @@ export const verifyApprovers = async ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
type TTriggerAccessRequestSlackNotif = {
|
|
||||||
projectId: string;
|
|
||||||
projectName: string;
|
|
||||||
requesterFullName: string;
|
|
||||||
isTemporary: boolean;
|
|
||||||
requesterEmail: string;
|
|
||||||
secretPath: string;
|
|
||||||
environment: string;
|
|
||||||
permissions: string[];
|
|
||||||
approvalUrl: string;
|
|
||||||
projectDAL: Pick<TProjectDALFactory, "findById" | "findProjectWithOrg">;
|
|
||||||
kmsService: Pick<TKmsServiceFactory, "createCipherPairWithDataKey">;
|
|
||||||
projectSlackConfigDAL: Pick<TProjectSlackConfigDALFactory, "getIntegrationDetailsByProject">;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const triggerAccessRequestSlackNotif = async ({
|
|
||||||
projectId,
|
|
||||||
projectName,
|
|
||||||
requesterFullName,
|
|
||||||
isTemporary,
|
|
||||||
requesterEmail,
|
|
||||||
secretPath,
|
|
||||||
environment,
|
|
||||||
permissions,
|
|
||||||
approvalUrl,
|
|
||||||
projectDAL,
|
|
||||||
kmsService,
|
|
||||||
projectSlackConfigDAL
|
|
||||||
}: TTriggerAccessRequestSlackNotif) => {
|
|
||||||
const messageBody = `${requesterFullName} (${requesterEmail}) has requested ${
|
|
||||||
isTemporary ? "temporary" : "permanent"
|
|
||||||
} access to ${secretPath} in the ${environment} environment of ${projectName}.
|
|
||||||
|
|
||||||
The following permissions are requested: ${permissions.join(", ")}
|
|
||||||
|
|
||||||
View the request and approve or deny it <${approvalUrl}|here>.`;
|
|
||||||
|
|
||||||
const payloadBlocks = [
|
|
||||||
{
|
|
||||||
type: "header",
|
|
||||||
text: {
|
|
||||||
type: "plain_text",
|
|
||||||
text: "New access approval request pending for review",
|
|
||||||
emoji: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "section",
|
|
||||||
text: {
|
|
||||||
type: "mrkdwn",
|
|
||||||
text: messageBody
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
await triggerSlackNotification({
|
|
||||||
projectId,
|
|
||||||
projectDAL,
|
|
||||||
kmsService,
|
|
||||||
payloadMessage: messageBody,
|
|
||||||
projectSlackConfigDAL,
|
|
||||||
payloadBlocks,
|
|
||||||
feature: SlackTriggerFeature.ACCESS_REQUEST
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
import { PackRule, unpackRules } from "@casl/ability/extra";
|
import { PackRule, unpackRules } from "@casl/ability/extra";
|
||||||
|
|
||||||
import { UnauthorizedError } from "@app/lib/errors";
|
import { UnauthorizedError } from "@app/lib/errors";
|
||||||
|
import { TKmsServiceFactory } from "@app/services/kms/kms-service";
|
||||||
|
import { TProjectDALFactory } from "@app/services/project/project-dal";
|
||||||
|
import { TProjectSlackConfigDALFactory } from "@app/services/slack/project-slack-config-dal";
|
||||||
|
import { triggerSlackNotification } from "@app/services/slack/slack-fns";
|
||||||
|
import { SlackTriggerFeature } from "@app/services/slack/slack-types";
|
||||||
|
|
||||||
import { TVerifyPermission } from "./access-approval-request-types";
|
import { TVerifyPermission } from "./access-approval-request-types";
|
||||||
|
|
||||||
@@ -51,3 +56,67 @@ export const verifyRequestedPermissions = ({ permissions }: TVerifyPermission) =
|
|||||||
accessTypes: requestedPermissions.filter(filterUnique)
|
accessTypes: requestedPermissions.filter(filterUnique)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const triggerAccessRequestSlackNotif = async ({
|
||||||
|
projectId,
|
||||||
|
projectName,
|
||||||
|
requesterFullName,
|
||||||
|
isTemporary,
|
||||||
|
requesterEmail,
|
||||||
|
secretPath,
|
||||||
|
environment,
|
||||||
|
permissions,
|
||||||
|
approvalUrl,
|
||||||
|
projectDAL,
|
||||||
|
kmsService,
|
||||||
|
projectSlackConfigDAL
|
||||||
|
}: {
|
||||||
|
projectId: string;
|
||||||
|
projectName: string;
|
||||||
|
requesterFullName: string;
|
||||||
|
isTemporary: boolean;
|
||||||
|
requesterEmail: string;
|
||||||
|
secretPath: string;
|
||||||
|
environment: string;
|
||||||
|
permissions: string[];
|
||||||
|
approvalUrl: string;
|
||||||
|
projectDAL: Pick<TProjectDALFactory, "findById" | "findProjectWithOrg">;
|
||||||
|
kmsService: Pick<TKmsServiceFactory, "createCipherPairWithDataKey">;
|
||||||
|
projectSlackConfigDAL: Pick<TProjectSlackConfigDALFactory, "getIntegrationDetailsByProject">;
|
||||||
|
}) => {
|
||||||
|
const messageBody = `${requesterFullName} (${requesterEmail}) has requested ${
|
||||||
|
isTemporary ? "temporary" : "permanent"
|
||||||
|
} access to ${secretPath} in the ${environment} environment of ${projectName}.
|
||||||
|
|
||||||
|
The following permissions are requested: ${permissions.join(", ")}
|
||||||
|
|
||||||
|
View the request and approve or deny it <${approvalUrl}|here>.`;
|
||||||
|
|
||||||
|
const payloadBlocks = [
|
||||||
|
{
|
||||||
|
type: "header",
|
||||||
|
text: {
|
||||||
|
type: "plain_text",
|
||||||
|
text: "New access approval request pending for review",
|
||||||
|
emoji: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "section",
|
||||||
|
text: {
|
||||||
|
type: "mrkdwn",
|
||||||
|
text: messageBody
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
await triggerSlackNotification({
|
||||||
|
projectId,
|
||||||
|
projectDAL,
|
||||||
|
kmsService,
|
||||||
|
payloadMessage: messageBody,
|
||||||
|
projectSlackConfigDAL,
|
||||||
|
payloadBlocks,
|
||||||
|
feature: SlackTriggerFeature.ACCESS_REQUEST
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ import { TUserDALFactory } from "@app/services/user/user-dal";
|
|||||||
|
|
||||||
import { TAccessApprovalPolicyApproverDALFactory } from "../access-approval-policy/access-approval-policy-approver-dal";
|
import { TAccessApprovalPolicyApproverDALFactory } from "../access-approval-policy/access-approval-policy-approver-dal";
|
||||||
import { TAccessApprovalPolicyDALFactory } from "../access-approval-policy/access-approval-policy-dal";
|
import { TAccessApprovalPolicyDALFactory } from "../access-approval-policy/access-approval-policy-dal";
|
||||||
import { triggerAccessRequestSlackNotif, verifyApprovers } from "../access-approval-policy/access-approval-policy-fns";
|
import { verifyApprovers } from "../access-approval-policy/access-approval-policy-fns";
|
||||||
import { TPermissionServiceFactory } from "../permission/permission-service";
|
import { TPermissionServiceFactory } from "../permission/permission-service";
|
||||||
import { TProjectUserAdditionalPrivilegeDALFactory } from "../project-user-additional-privilege/project-user-additional-privilege-dal";
|
import { TProjectUserAdditionalPrivilegeDALFactory } from "../project-user-additional-privilege/project-user-additional-privilege-dal";
|
||||||
import { ProjectUserAdditionalPrivilegeTemporaryMode } from "../project-user-additional-privilege/project-user-additional-privilege-types";
|
import { ProjectUserAdditionalPrivilegeTemporaryMode } from "../project-user-additional-privilege/project-user-additional-privilege-types";
|
||||||
import { TAccessApprovalRequestDALFactory } from "./access-approval-request-dal";
|
import { TAccessApprovalRequestDALFactory } from "./access-approval-request-dal";
|
||||||
import { verifyRequestedPermissions } from "./access-approval-request-fns";
|
import { triggerAccessRequestSlackNotif, verifyRequestedPermissions } from "./access-approval-request-fns";
|
||||||
import { TAccessApprovalRequestReviewerDALFactory } from "./access-approval-request-reviewer-dal";
|
import { TAccessApprovalRequestReviewerDALFactory } from "./access-approval-request-reviewer-dal";
|
||||||
import {
|
import {
|
||||||
ApprovalStatus,
|
ApprovalStatus,
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ export const triggerSecretApprovalSlackNotif = async ({
|
|||||||
const user = await userDAL.findById(secretApprovalRequest.committerUserId);
|
const user = await userDAL.findById(secretApprovalRequest.committerUserId);
|
||||||
|
|
||||||
const messageBody = `A secret approval request has been opened by ${user.email}.
|
const messageBody = `A secret approval request has been opened by ${user.email}.
|
||||||
*Environment*: ${environment}
|
*Environment*: ${environment}
|
||||||
*Secret path*: ${secretPath || "/"}
|
*Secret path*: ${secretPath || "/"}
|
||||||
|
|
||||||
View the complete details <${appCfg.SITE_URL}/project/${project.id}/approval?requestId=${
|
View the complete details <${appCfg.SITE_URL}/project/${project.id}/approval?requestId=${
|
||||||
secretApprovalRequest.id
|
secretApprovalRequest.id
|
||||||
}|here>.`;
|
}|here>.`;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user