Update db schema, load cert from cert body instead

This commit is contained in:
Fang-Pen Lin
2025-11-04 11:09:01 -08:00
parent f85d913017
commit 089157b237
4 changed files with 20 additions and 26 deletions

View File

@@ -12,6 +12,7 @@ export const PkiAcmeChallengesSchema = z.object({
authId: z.string().uuid(),
type: z.string(),
status: z.string(),
error: z.string().nullable().optional(),
validatedAt: z.date().nullable().optional(),
createdAt: z.date(),
updatedAt: z.date()

View File

@@ -10,17 +10,15 @@ import { TImmutableDBKeys } from "./models";
export const PkiAcmeOrdersSchema = z.object({
id: z.string().uuid(),
accountId: z.string().uuid(),
certificateId: z.string().uuid().nullable().optional(),
notBefore: z.date().nullable().optional(),
notAfter: z.date().nullable().optional(),
expiresAt: z.date(),
csr: z.string().nullable().optional(),
error: z.string().nullable().optional(),
status: z.string(),
createdAt: z.date(),
updatedAt: z.date(),
csr: z.string().nullable().optional(),
certificate: z.string().nullable().optional(),
certificateChain: z.string().nullable().optional(),
error: z.string().nullable().optional(),
certificateId: z.string().uuid().nullable().optional()
updatedAt: z.date()
});
export type TPkiAcmeOrders = z.infer<typeof PkiAcmeOrdersSchema>;

View File

@@ -599,32 +599,27 @@ export const pkiAcmeServiceFactory = ({
// TODO: this should be the same transaction?
let errorToReturn: Error | undefined;
try {
const { certificate, certificateChain, certificateId } =
await certificateV3Service.signCertificateFromProfile({
actor: ActorType.ACME_ACCOUNT,
actorId: accountId,
actorAuthMethod: null,
actorOrgId,
profileId,
csr,
notBefore: order.notBefore ? new Date(order.notBefore) : undefined,
notAfter: order.notAfter ? new Date(order.notAfter) : undefined,
validity: {
// TODO: read config from the profile to get the expiration time instead
ttl: (24 * 60 * 60 * 1000).toString()
},
enrollmentType: EnrollmentType.ACME
});
const { certificateId } = await certificateV3Service.signCertificateFromProfile({
actor: ActorType.ACME_ACCOUNT,
actorId: accountId,
actorAuthMethod: null,
actorOrgId,
profileId,
csr,
notBefore: order.notBefore ? new Date(order.notBefore) : undefined,
notAfter: order.notAfter ? new Date(order.notAfter) : undefined,
validity: {
// TODO: read config from the profile to get the expiration time instead
ttl: (24 * 60 * 60 * 1000).toString()
},
enrollmentType: EnrollmentType.ACME
});
// TODO: associate the certificate with the order
await acmeOrderDAL.updateById(
orderId,
{
status: AcmeOrderStatus.Valid,
csr,
// TODO: we actually don't need to store the certificate and certificate chain here
// It appears that the certificate and certificate chain are stored in the certificate_body table already
certificateChain,
certificate,
certificateId
},
tx