mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 04:27:29 +00:00
feat: removed all getProjectFromSplitId
This commit is contained in:
@@ -24,7 +24,7 @@ type TKmipOperationServiceFactoryDep = {
|
|||||||
kmsService: TKmsServiceFactory;
|
kmsService: TKmsServiceFactory;
|
||||||
kmsDAL: TKmsKeyDALFactory;
|
kmsDAL: TKmsKeyDALFactory;
|
||||||
kmipClientDAL: TKmipClientDALFactory;
|
kmipClientDAL: TKmipClientDALFactory;
|
||||||
projectDAL: Pick<TProjectDALFactory, "getProjectFromSplitId" | "findById">;
|
projectDAL: Pick<TProjectDALFactory, "findById">;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getOrgPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getOrgPermission">;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -995,8 +995,7 @@ export const registerRoutes = async (
|
|||||||
pkiAlertDAL,
|
pkiAlertDAL,
|
||||||
pkiCollectionDAL,
|
pkiCollectionDAL,
|
||||||
permissionService,
|
permissionService,
|
||||||
smtpService,
|
smtpService
|
||||||
projectDAL
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const pkiCollectionService = pkiCollectionServiceFactory({
|
const pkiCollectionService = pkiCollectionServiceFactory({
|
||||||
@@ -1004,8 +1003,7 @@ export const registerRoutes = async (
|
|||||||
pkiCollectionItemDAL,
|
pkiCollectionItemDAL,
|
||||||
certificateAuthorityDAL,
|
certificateAuthorityDAL,
|
||||||
certificateDAL,
|
certificateDAL,
|
||||||
permissionService,
|
permissionService
|
||||||
projectDAL
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const projectTemplateService = projectTemplateServiceFactory({
|
const projectTemplateService = projectTemplateServiceFactory({
|
||||||
@@ -1663,8 +1661,7 @@ export const registerRoutes = async (
|
|||||||
const cmekService = cmekServiceFactory({
|
const cmekService = cmekServiceFactory({
|
||||||
kmsDAL,
|
kmsDAL,
|
||||||
kmsService,
|
kmsService,
|
||||||
permissionService,
|
permissionService
|
||||||
projectDAL
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const externalMigrationQueue = externalMigrationQueueFactory({
|
const externalMigrationQueue = externalMigrationQueueFactory({
|
||||||
@@ -1806,7 +1803,6 @@ export const registerRoutes = async (
|
|||||||
|
|
||||||
const certificateAuthorityService = certificateAuthorityServiceFactory({
|
const certificateAuthorityService = certificateAuthorityServiceFactory({
|
||||||
certificateAuthorityDAL,
|
certificateAuthorityDAL,
|
||||||
projectDAL,
|
|
||||||
permissionService,
|
permissionService,
|
||||||
appConnectionDAL,
|
appConnectionDAL,
|
||||||
appConnectionService,
|
appConnectionService,
|
||||||
@@ -1816,7 +1812,8 @@ export const registerRoutes = async (
|
|||||||
certificateBodyDAL,
|
certificateBodyDAL,
|
||||||
certificateSecretDAL,
|
certificateSecretDAL,
|
||||||
kmsService,
|
kmsService,
|
||||||
pkiSubscriberDAL
|
pkiSubscriberDAL,
|
||||||
|
projectDAL
|
||||||
});
|
});
|
||||||
|
|
||||||
const internalCaFns = InternalCertificateAuthorityFns({
|
const internalCaFns = InternalCertificateAuthorityFns({
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import {
|
|||||||
ProjectRolesSchema,
|
ProjectRolesSchema,
|
||||||
ProjectSlackConfigsSchema,
|
ProjectSlackConfigsSchema,
|
||||||
ProjectSshConfigsSchema,
|
ProjectSshConfigsSchema,
|
||||||
|
ProjectType,
|
||||||
SecretFoldersSchema,
|
SecretFoldersSchema,
|
||||||
SortDirection,
|
SortDirection,
|
||||||
UserEncryptionKeysSchema,
|
UserEncryptionKeysSchema,
|
||||||
UsersSchema,
|
UsersSchema
|
||||||
ProjectType
|
|
||||||
} from "@app/db/schemas";
|
} from "@app/db/schemas";
|
||||||
import { ProjectMicrosoftTeamsConfigsSchema } from "@app/db/schemas/project-microsoft-teams-configs";
|
import { ProjectMicrosoftTeamsConfigsSchema } from "@app/db/schemas/project-microsoft-teams-configs";
|
||||||
import { EventType } from "@app/ee/services/audit-log/audit-log-types";
|
import { EventType } from "@app/ee/services/audit-log/audit-log-types";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ForbiddenError } from "@casl/ability";
|
import { ForbiddenError } from "@casl/ability";
|
||||||
|
|
||||||
import { ProjectType, TableName } from "@app/db/schemas";
|
import { TableName } from "@app/db/schemas";
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
||||||
import { BadRequestError, NotFoundError } from "@app/lib/errors";
|
import { BadRequestError, NotFoundError } from "@app/lib/errors";
|
||||||
@@ -50,10 +50,7 @@ type TCertificateAuthorityServiceFactoryDep = {
|
|||||||
>;
|
>;
|
||||||
externalCertificateAuthorityDAL: Pick<TExternalCertificateAuthorityDALFactory, "create" | "update">;
|
externalCertificateAuthorityDAL: Pick<TExternalCertificateAuthorityDALFactory, "create" | "update">;
|
||||||
internalCertificateAuthorityService: TInternalCertificateAuthorityServiceFactory;
|
internalCertificateAuthorityService: TInternalCertificateAuthorityServiceFactory;
|
||||||
projectDAL: Pick<
|
projectDAL: Pick<TProjectDALFactory, "findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction">;
|
||||||
TProjectDALFactory,
|
|
||||||
"findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction" | "getProjectFromSplitId"
|
|
||||||
>;
|
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
certificateDAL: Pick<TCertificateDALFactory, "create" | "transaction">;
|
certificateDAL: Pick<TCertificateDALFactory, "create" | "transaction">;
|
||||||
certificateBodyDAL: Pick<TCertificateBodyDALFactory, "create">;
|
certificateBodyDAL: Pick<TCertificateBodyDALFactory, "create">;
|
||||||
@@ -98,20 +95,10 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
{ type, projectId, name, enableDirectIssuance, configuration, status }: TCreateCertificateAuthorityDTO,
|
{ type, projectId, name, enableDirectIssuance, configuration, status }: TCreateCertificateAuthorityDTO,
|
||||||
actor: OrgServiceActor
|
actor: OrgServiceActor
|
||||||
) => {
|
) => {
|
||||||
let finalProjectId: string = projectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
finalProjectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor: actor.type,
|
actor: actor.type,
|
||||||
actorId: actor.id,
|
actorId: actor.id,
|
||||||
projectId: finalProjectId,
|
projectId,
|
||||||
actorAuthMethod: actor.authMethod,
|
actorAuthMethod: actor.authMethod,
|
||||||
actorOrgId: actor.orgId
|
actorOrgId: actor.orgId
|
||||||
});
|
});
|
||||||
@@ -125,7 +112,7 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
const ca = await internalCertificateAuthorityService.createCa({
|
const ca = await internalCertificateAuthorityService.createCa({
|
||||||
...(configuration as TCreateInternalCertificateAuthorityDTO["configuration"]),
|
...(configuration as TCreateInternalCertificateAuthorityDTO["configuration"]),
|
||||||
isInternal: true,
|
isInternal: true,
|
||||||
projectId: finalProjectId,
|
projectId,
|
||||||
enableDirectIssuance,
|
enableDirectIssuance,
|
||||||
name
|
name
|
||||||
});
|
});
|
||||||
@@ -141,7 +128,7 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
type,
|
type,
|
||||||
enableDirectIssuance: ca.enableDirectIssuance,
|
enableDirectIssuance: ca.enableDirectIssuance,
|
||||||
name: ca.name,
|
name: ca.name,
|
||||||
projectId: finalProjectId,
|
projectId,
|
||||||
status,
|
status,
|
||||||
configuration: ca.internalCa
|
configuration: ca.internalCa
|
||||||
} as TCertificateAuthority;
|
} as TCertificateAuthority;
|
||||||
@@ -150,7 +137,7 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
if (type === CaType.ACME) {
|
if (type === CaType.ACME) {
|
||||||
return acmeFns.createCertificateAuthority({
|
return acmeFns.createCertificateAuthority({
|
||||||
name,
|
name,
|
||||||
projectId: finalProjectId,
|
projectId,
|
||||||
configuration: configuration as TCreateAcmeCertificateAuthorityDTO["configuration"],
|
configuration: configuration as TCreateAcmeCertificateAuthorityDTO["configuration"],
|
||||||
enableDirectIssuance,
|
enableDirectIssuance,
|
||||||
status,
|
status,
|
||||||
@@ -223,20 +210,10 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
{ projectId, type }: { projectId: string; type: CaType },
|
{ projectId, type }: { projectId: string; type: CaType },
|
||||||
actor: OrgServiceActor
|
actor: OrgServiceActor
|
||||||
) => {
|
) => {
|
||||||
let finalProjectId: string = projectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
finalProjectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor: actor.type,
|
actor: actor.type,
|
||||||
actorId: actor.id,
|
actorId: actor.id,
|
||||||
projectId: finalProjectId,
|
projectId,
|
||||||
actorAuthMethod: actor.authMethod,
|
actorAuthMethod: actor.authMethod,
|
||||||
actorOrgId: actor.orgId
|
actorOrgId: actor.orgId
|
||||||
});
|
});
|
||||||
@@ -248,7 +225,7 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
|
|
||||||
if (type === CaType.INTERNAL) {
|
if (type === CaType.INTERNAL) {
|
||||||
const cas = await certificateAuthorityDAL.findWithAssociatedCa({
|
const cas = await certificateAuthorityDAL.findWithAssociatedCa({
|
||||||
[`${TableName.CertificateAuthority}.projectId` as "projectId"]: finalProjectId,
|
[`${TableName.CertificateAuthority}.projectId` as "projectId"]: projectId,
|
||||||
$notNull: [`${TableName.InternalCertificateAuthority}.id` as "id"]
|
$notNull: [`${TableName.InternalCertificateAuthority}.id` as "id"]
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -266,7 +243,7 @@ export const certificateAuthorityServiceFactory = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type === CaType.ACME) {
|
if (type === CaType.ACME) {
|
||||||
return acmeFns.listCertificateAuthorities({ projectId: finalProjectId });
|
return acmeFns.listCertificateAuthorities({ projectId });
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new BadRequestError({ message: "Invalid certificate authority type" });
|
throw new BadRequestError({ message: "Invalid certificate authority type" });
|
||||||
|
|||||||
+2
-13
@@ -5,7 +5,7 @@ import slugify from "@sindresorhus/slugify";
|
|||||||
import crypto, { KeyObject } from "crypto";
|
import crypto, { KeyObject } from "crypto";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { ProjectType, TableName, TCertificateAuthorities, TCertificateTemplates } from "@app/db/schemas";
|
import { TableName, TCertificateAuthorities, TCertificateTemplates } from "@app/db/schemas";
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import {
|
import {
|
||||||
ProjectPermissionActions,
|
ProjectPermissionActions,
|
||||||
@@ -99,10 +99,7 @@ type TInternalCertificateAuthorityServiceFactoryDep = {
|
|||||||
certificateBodyDAL: Pick<TCertificateBodyDALFactory, "create">;
|
certificateBodyDAL: Pick<TCertificateBodyDALFactory, "create">;
|
||||||
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
||||||
pkiCollectionItemDAL: Pick<TPkiCollectionItemDALFactory, "create">;
|
pkiCollectionItemDAL: Pick<TPkiCollectionItemDALFactory, "create">;
|
||||||
projectDAL: Pick<
|
projectDAL: Pick<TProjectDALFactory, "findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction">;
|
||||||
TProjectDALFactory,
|
|
||||||
"findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction" | "getProjectFromSplitId"
|
|
||||||
>;
|
|
||||||
kmsService: Pick<TKmsServiceFactory, "generateKmsKey" | "encryptWithKmsKey" | "decryptWithKmsKey">;
|
kmsService: Pick<TKmsServiceFactory, "generateKmsKey" | "encryptWithKmsKey" | "decryptWithKmsKey">;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
};
|
};
|
||||||
@@ -148,14 +145,6 @@ export const internalCertificateAuthorityServiceFactory = ({
|
|||||||
if (!project) throw new NotFoundError({ message: `Project with slug '${dto.projectSlug}' not found` });
|
if (!project) throw new NotFoundError({ message: `Project with slug '${dto.projectSlug}' not found` });
|
||||||
projectId = project.id;
|
projectId = project.id;
|
||||||
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor: dto.actor,
|
actor: dto.actor,
|
||||||
actorId: dto.actorId,
|
actorId: dto.actorId,
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { ForbiddenError } from "@casl/ability";
|
|||||||
import * as x509 from "@peculiar/x509";
|
import * as x509 from "@peculiar/x509";
|
||||||
import { createPrivateKey, createPublicKey, sign, verify } from "crypto";
|
import { createPrivateKey, createPublicKey, sign, verify } from "crypto";
|
||||||
|
|
||||||
import { ProjectType } from "@app/db/schemas";
|
|
||||||
import { TCertificateAuthorityCrlDALFactory } from "@app/ee/services/certificate-authority-crl/certificate-authority-crl-dal";
|
import { TCertificateAuthorityCrlDALFactory } from "@app/ee/services/certificate-authority-crl/certificate-authority-crl-dal";
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import {
|
import {
|
||||||
@@ -48,10 +47,7 @@ type TCertificateServiceFactoryDep = {
|
|||||||
certificateAuthoritySecretDAL: Pick<TCertificateAuthoritySecretDALFactory, "findOne">;
|
certificateAuthoritySecretDAL: Pick<TCertificateAuthoritySecretDALFactory, "findOne">;
|
||||||
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
||||||
pkiCollectionItemDAL: Pick<TPkiCollectionItemDALFactory, "create">;
|
pkiCollectionItemDAL: Pick<TPkiCollectionItemDALFactory, "create">;
|
||||||
projectDAL: Pick<
|
projectDAL: Pick<TProjectDALFactory, "findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction">;
|
||||||
TProjectDALFactory,
|
|
||||||
"findProjectBySlug" | "findOne" | "updateById" | "findById" | "transaction" | "getProjectFromSplitId"
|
|
||||||
>;
|
|
||||||
kmsService: Pick<TKmsServiceFactory, "generateKmsKey" | "encryptWithKmsKey" | "decryptWithKmsKey">;
|
kmsService: Pick<TKmsServiceFactory, "generateKmsKey" | "encryptWithKmsKey" | "decryptWithKmsKey">;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
};
|
};
|
||||||
@@ -316,15 +312,7 @@ export const certificateServiceFactory = ({
|
|||||||
|
|
||||||
const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId);
|
const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId);
|
||||||
if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` });
|
if (!project) throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` });
|
||||||
let projectId = project.id;
|
const projectId = project.id;
|
||||||
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { ForbiddenError } from "@casl/ability";
|
import { ForbiddenError } from "@casl/ability";
|
||||||
|
|
||||||
import { ProjectType } from "@app/db/schemas";
|
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import { ProjectPermissionCmekActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
import { ProjectPermissionCmekActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
||||||
import { SigningAlgorithm } from "@app/lib/crypto/sign";
|
import { SigningAlgorithm } from "@app/lib/crypto/sign";
|
||||||
@@ -23,25 +22,17 @@ import { TKmsKeyDALFactory } from "@app/services/kms/kms-key-dal";
|
|||||||
import { TKmsServiceFactory } from "@app/services/kms/kms-service";
|
import { TKmsServiceFactory } from "@app/services/kms/kms-service";
|
||||||
|
|
||||||
import { KmsKeyUsage } from "../kms/kms-types";
|
import { KmsKeyUsage } from "../kms/kms-types";
|
||||||
import { TProjectDALFactory } from "../project/project-dal";
|
|
||||||
|
|
||||||
type TCmekServiceFactoryDep = {
|
type TCmekServiceFactoryDep = {
|
||||||
kmsService: TKmsServiceFactory;
|
kmsService: TKmsServiceFactory;
|
||||||
kmsDAL: TKmsKeyDALFactory;
|
kmsDAL: TKmsKeyDALFactory;
|
||||||
permissionService: TPermissionServiceFactory;
|
permissionService: TPermissionServiceFactory;
|
||||||
projectDAL: Pick<TProjectDALFactory, "getProjectFromSplitId">;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TCmekServiceFactory = ReturnType<typeof cmekServiceFactory>;
|
export type TCmekServiceFactory = ReturnType<typeof cmekServiceFactory>;
|
||||||
|
|
||||||
export const cmekServiceFactory = ({ kmsService, kmsDAL, permissionService, projectDAL }: TCmekServiceFactoryDep) => {
|
export const cmekServiceFactory = ({ kmsService, kmsDAL, permissionService }: TCmekServiceFactoryDep) => {
|
||||||
const createCmek = async ({ projectId: preSplitProjectId, ...dto }: TCreateCmekDTO, actor: OrgServiceActor) => {
|
const createCmek = async ({ projectId, ...dto }: TCreateCmekDTO, actor: OrgServiceActor) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const cmekProjectFromSplit = await projectDAL.getProjectFromSplitId(projectId, ProjectType.KMS);
|
|
||||||
if (cmekProjectFromSplit) {
|
|
||||||
projectId = cmekProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor: actor.type,
|
actor: actor.type,
|
||||||
actorId: actor.id,
|
actorId: actor.id,
|
||||||
@@ -132,16 +123,7 @@ export const cmekServiceFactory = ({ kmsService, kmsDAL, permissionService, proj
|
|||||||
return key;
|
return key;
|
||||||
};
|
};
|
||||||
|
|
||||||
const listCmeksByProjectId = async (
|
const listCmeksByProjectId = async ({ projectId, ...filters }: TListCmeksByProjectIdDTO, actor: OrgServiceActor) => {
|
||||||
{ projectId: preSplitProjectId, ...filters }: TListCmeksByProjectIdDTO,
|
|
||||||
actor: OrgServiceActor
|
|
||||||
) => {
|
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const cmekProjectFromSplit = await projectDAL.getProjectFromSplitId(preSplitProjectId, ProjectType.KMS);
|
|
||||||
if (cmekProjectFromSplit) {
|
|
||||||
projectId = cmekProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor: actor.type,
|
actor: actor.type,
|
||||||
actorId: actor.id,
|
actorId: actor.id,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { ForbiddenError } from "@casl/ability";
|
import { ForbiddenError } from "@casl/ability";
|
||||||
|
|
||||||
import { ProjectType } from "@app/db/schemas";
|
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
||||||
import { ForbiddenRequestError, NotFoundError } from "@app/lib/errors";
|
import { ForbiddenRequestError, NotFoundError } from "@app/lib/errors";
|
||||||
@@ -9,7 +8,6 @@ import { TPkiCollectionDALFactory } from "@app/services/pki-collection/pki-colle
|
|||||||
import { pkiItemTypeToNameMap } from "@app/services/pki-collection/pki-collection-types";
|
import { pkiItemTypeToNameMap } from "@app/services/pki-collection/pki-collection-types";
|
||||||
import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service";
|
import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service";
|
||||||
|
|
||||||
import { TProjectDALFactory } from "../project/project-dal";
|
|
||||||
import { TPkiAlertDALFactory } from "./pki-alert-dal";
|
import { TPkiAlertDALFactory } from "./pki-alert-dal";
|
||||||
import { TCreateAlertDTO, TDeleteAlertDTO, TGetAlertByIdDTO, TUpdateAlertDTO } from "./pki-alert-types";
|
import { TCreateAlertDTO, TDeleteAlertDTO, TGetAlertByIdDTO, TUpdateAlertDTO } from "./pki-alert-types";
|
||||||
|
|
||||||
@@ -21,7 +19,6 @@ type TPkiAlertServiceFactoryDep = {
|
|||||||
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
pkiCollectionDAL: Pick<TPkiCollectionDALFactory, "findById">;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
smtpService: Pick<TSmtpService, "sendMail">;
|
smtpService: Pick<TSmtpService, "sendMail">;
|
||||||
projectDAL: Pick<TProjectDALFactory, "getProjectFromSplitId">;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TPkiAlertServiceFactory = ReturnType<typeof pkiAlertServiceFactory>;
|
export type TPkiAlertServiceFactory = ReturnType<typeof pkiAlertServiceFactory>;
|
||||||
@@ -30,8 +27,7 @@ export const pkiAlertServiceFactory = ({
|
|||||||
pkiAlertDAL,
|
pkiAlertDAL,
|
||||||
pkiCollectionDAL,
|
pkiCollectionDAL,
|
||||||
permissionService,
|
permissionService,
|
||||||
smtpService,
|
smtpService
|
||||||
projectDAL
|
|
||||||
}: TPkiAlertServiceFactoryDep) => {
|
}: TPkiAlertServiceFactoryDep) => {
|
||||||
const sendPkiItemExpiryNotices = async () => {
|
const sendPkiItemExpiryNotices = async () => {
|
||||||
const allAlertItems = await pkiAlertDAL.getExpiringPkiCollectionItemsForAlerting();
|
const allAlertItems = await pkiAlertDAL.getExpiringPkiCollectionItemsForAlerting();
|
||||||
@@ -67,7 +63,7 @@ export const pkiAlertServiceFactory = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const createPkiAlert = async ({
|
const createPkiAlert = async ({
|
||||||
projectId: preSplitProjectId,
|
projectId,
|
||||||
name,
|
name,
|
||||||
pkiCollectionId,
|
pkiCollectionId,
|
||||||
alertBeforeDays,
|
alertBeforeDays,
|
||||||
@@ -77,15 +73,6 @@ export const pkiAlertServiceFactory = ({
|
|||||||
actor,
|
actor,
|
||||||
actorOrgId
|
actorOrgId
|
||||||
}: TCreateAlertDTO) => {
|
}: TCreateAlertDTO) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import { ForbiddenError } from "@casl/ability";
|
import { ForbiddenError } from "@casl/ability";
|
||||||
|
|
||||||
import { ProjectType, TPkiCollectionItems } from "@app/db/schemas";
|
import { TPkiCollectionItems } from "@app/db/schemas";
|
||||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||||
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
||||||
import { BadRequestError, NotFoundError } from "@app/lib/errors";
|
import { BadRequestError, NotFoundError } from "@app/lib/errors";
|
||||||
import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal";
|
import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal";
|
||||||
import { TCertificateAuthorityDALFactory } from "@app/services/certificate-authority/certificate-authority-dal";
|
import { TCertificateAuthorityDALFactory } from "@app/services/certificate-authority/certificate-authority-dal";
|
||||||
|
|
||||||
import { TProjectDALFactory } from "../project/project-dal";
|
|
||||||
import { TPkiCollectionDALFactory } from "./pki-collection-dal";
|
import { TPkiCollectionDALFactory } from "./pki-collection-dal";
|
||||||
import { transformPkiCollectionItem } from "./pki-collection-fns";
|
import { transformPkiCollectionItem } from "./pki-collection-fns";
|
||||||
import { TPkiCollectionItemDALFactory } from "./pki-collection-item-dal";
|
import { TPkiCollectionItemDALFactory } from "./pki-collection-item-dal";
|
||||||
@@ -31,7 +30,6 @@ type TPkiCollectionServiceFactoryDep = {
|
|||||||
certificateAuthorityDAL: Pick<TCertificateAuthorityDALFactory, "find" | "findOne">;
|
certificateAuthorityDAL: Pick<TCertificateAuthorityDALFactory, "find" | "findOne">;
|
||||||
certificateDAL: Pick<TCertificateDALFactory, "find">;
|
certificateDAL: Pick<TCertificateDALFactory, "find">;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
projectDAL: Pick<TProjectDALFactory, "getProjectFromSplitId">;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TPkiCollectionServiceFactory = ReturnType<typeof pkiCollectionServiceFactory>;
|
export type TPkiCollectionServiceFactory = ReturnType<typeof pkiCollectionServiceFactory>;
|
||||||
@@ -41,27 +39,17 @@ export const pkiCollectionServiceFactory = ({
|
|||||||
pkiCollectionItemDAL,
|
pkiCollectionItemDAL,
|
||||||
certificateAuthorityDAL,
|
certificateAuthorityDAL,
|
||||||
certificateDAL,
|
certificateDAL,
|
||||||
permissionService,
|
permissionService
|
||||||
projectDAL
|
|
||||||
}: TPkiCollectionServiceFactoryDep) => {
|
}: TPkiCollectionServiceFactoryDep) => {
|
||||||
const createPkiCollection = async ({
|
const createPkiCollection = async ({
|
||||||
name,
|
name,
|
||||||
description,
|
description,
|
||||||
projectId: preSplitProjectId,
|
projectId,
|
||||||
actorId,
|
actorId,
|
||||||
actorAuthMethod,
|
actorAuthMethod,
|
||||||
actor,
|
actor,
|
||||||
actorOrgId
|
actorOrgId
|
||||||
}: TCreatePkiCollectionDTO) => {
|
}: TCreatePkiCollectionDTO) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Knex } from "knex";
|
|||||||
import { TDbClient } from "@app/db";
|
import { TDbClient } from "@app/db";
|
||||||
import {
|
import {
|
||||||
ProjectsSchema,
|
ProjectsSchema,
|
||||||
ProjectType,
|
|
||||||
ProjectUpgradeStatus,
|
ProjectUpgradeStatus,
|
||||||
ProjectVersion,
|
ProjectVersion,
|
||||||
SortDirection,
|
SortDirection,
|
||||||
@@ -369,22 +368,6 @@ export const projectDALFactory = (db: TDbClient) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const getProjectFromSplitId = async (projectId: string, projectType: ProjectType) => {
|
|
||||||
try {
|
|
||||||
const project = await db(TableName.ProjectSplitBackfillIds)
|
|
||||||
.where({
|
|
||||||
sourceProjectId: projectId,
|
|
||||||
destinationProjectType: projectType
|
|
||||||
})
|
|
||||||
.join(TableName.Project, `${TableName.Project}.id`, `${TableName.ProjectSplitBackfillIds}.destinationProjectId`)
|
|
||||||
.select(selectAllTableCols(TableName.Project))
|
|
||||||
.first();
|
|
||||||
return project;
|
|
||||||
} catch (error) {
|
|
||||||
throw new DatabaseError({ error, name: `Failed to find split project with id ${projectId}` });
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const searchProjects = async (dto: {
|
const searchProjects = async (dto: {
|
||||||
orgId: string;
|
orgId: string;
|
||||||
actor: ActorType;
|
actor: ActorType;
|
||||||
@@ -488,7 +471,6 @@ export const projectDALFactory = (db: TDbClient) => {
|
|||||||
findProjectBySlug,
|
findProjectBySlug,
|
||||||
findProjectWithOrg,
|
findProjectWithOrg,
|
||||||
checkProjectUpgradeStatus,
|
checkProjectUpgradeStatus,
|
||||||
getProjectFromSplitId,
|
|
||||||
searchProjects,
|
searchProjects,
|
||||||
findProjectByEnvId,
|
findProjectByEnvId,
|
||||||
countOfOrgProjects
|
countOfOrgProjects
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ForbiddenError, subject } from "@casl/ability";
|
import { ForbiddenError, subject } from "@casl/ability";
|
||||||
import slugify from "@sindresorhus/slugify";
|
import slugify from "@sindresorhus/slugify";
|
||||||
|
|
||||||
import { ProjectMembershipRole, ProjectType, ProjectVersion, TableName, TProjectEnvironments } from "@app/db/schemas";
|
import { ProjectMembershipRole, ProjectVersion, TableName, TProjectEnvironments } from "@app/db/schemas";
|
||||||
import { TLicenseServiceFactory } from "@app/ee/services/license/license-service";
|
import { TLicenseServiceFactory } from "@app/ee/services/license/license-service";
|
||||||
import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission";
|
import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission";
|
||||||
import { throwIfMissingSecretReadValueOrDescribePermission } from "@app/ee/services/permission/permission-fns";
|
import { throwIfMissingSecretReadValueOrDescribePermission } from "@app/ee/services/permission/permission-fns";
|
||||||
@@ -910,14 +910,7 @@ export const projectServiceFactory = ({
|
|||||||
actor
|
actor
|
||||||
}: TListProjectCasDTO) => {
|
}: TListProjectCasDTO) => {
|
||||||
const project = await projectDAL.findProjectByFilter(filter);
|
const project = await projectDAL.findProjectByFilter(filter);
|
||||||
let projectId = project.id;
|
const projectId = project.id;
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
@@ -963,14 +956,7 @@ export const projectServiceFactory = ({
|
|||||||
actor
|
actor
|
||||||
}: TListProjectCertsDTO) => {
|
}: TListProjectCertsDTO) => {
|
||||||
const project = await projectDAL.findProjectByFilter(filter);
|
const project = await projectDAL.findProjectByFilter(filter);
|
||||||
let projectId = project.id;
|
const projectId = project.id;
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
@@ -1010,21 +996,12 @@ export const projectServiceFactory = ({
|
|||||||
* Return list of (PKI) alerts configured for project
|
* Return list of (PKI) alerts configured for project
|
||||||
*/
|
*/
|
||||||
const listProjectAlerts = async ({
|
const listProjectAlerts = async ({
|
||||||
projectId: preSplitProjectId,
|
projectId,
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
actorAuthMethod,
|
actorAuthMethod,
|
||||||
actorOrgId
|
actorOrgId
|
||||||
}: TListProjectAlertsDTO) => {
|
}: TListProjectAlertsDTO) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
@@ -1046,20 +1023,12 @@ export const projectServiceFactory = ({
|
|||||||
* Return list of PKI collections for project
|
* Return list of PKI collections for project
|
||||||
*/
|
*/
|
||||||
const listProjectPkiCollections = async ({
|
const listProjectPkiCollections = async ({
|
||||||
projectId: preSplitProjectId,
|
projectId,
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
actorAuthMethod,
|
actorAuthMethod,
|
||||||
actorOrgId
|
actorOrgId
|
||||||
}: TListProjectAlertsDTO) => {
|
}: TListProjectAlertsDTO) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
@@ -1119,21 +1088,12 @@ export const projectServiceFactory = ({
|
|||||||
* Return list of certificate templates for project
|
* Return list of certificate templates for project
|
||||||
*/
|
*/
|
||||||
const listProjectCertificateTemplates = async ({
|
const listProjectCertificateTemplates = async ({
|
||||||
projectId: preSplitProjectId,
|
projectId,
|
||||||
actorId,
|
actorId,
|
||||||
actorOrgId,
|
actorOrgId,
|
||||||
actorAuthMethod,
|
actorAuthMethod,
|
||||||
actor
|
actor
|
||||||
}: TListProjectCertificateTemplatesDTO) => {
|
}: TListProjectCertificateTemplatesDTO) => {
|
||||||
let projectId = preSplitProjectId;
|
|
||||||
const certManagerProjectFromSplit = await projectDAL.getProjectFromSplitId(
|
|
||||||
projectId,
|
|
||||||
ProjectType.CertificateManager
|
|
||||||
);
|
|
||||||
if (certManagerProjectFromSplit) {
|
|
||||||
projectId = certManagerProjectFromSplit.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { permission } = await permissionService.getProjectPermission({
|
const { permission } = await permissionService.getProjectPermission({
|
||||||
actor,
|
actor,
|
||||||
actorId,
|
actorId,
|
||||||
|
|||||||
Reference in New Issue
Block a user