src/crypto/key/dto/key-chain-update.dto.ts

Description

DTO for updating rotation policy.

Extends

createZodDto( RotationPolicyUpdateSchema, )

Relationships

Used by

No results matching.

Index

Properties

Properties

Optional certValidityDays
Type : number
Decorators :
@ApiPropertyOptional({description: 'Certificate validity in days.', minimum: 1, maximum: 3650})
Optional enabled
Type : boolean
Decorators :
@ApiPropertyOptional({description: 'Whether automatic key rotation is enabled.'})
Optional intervalDays
Type : number
Decorators :
@ApiPropertyOptional({description: 'Rotation interval in days.', minimum: 1, maximum: 3650})
import { ApiPropertyOptional } from "@nestjs/swagger";
import { createZodDto } from "nestjs-zod";
import {
    KeyChainUpdateSchema,
    RotationPolicyUpdateSchema,
} from "../schemas/key-chain.schema";

/**
 * DTO for updating rotation policy.
 */
export class RotationPolicyUpdateDto extends createZodDto(
    RotationPolicyUpdateSchema,
) {
    @ApiPropertyOptional({
        description: "Whether automatic key rotation is enabled.",
    })
    enabled?: boolean;

    @ApiPropertyOptional({
        description: "Rotation interval in days.",
        minimum: 1,
        maximum: 3650,
    })
    intervalDays?: number;

    @ApiPropertyOptional({
        description: "Certificate validity in days.",
        minimum: 1,
        maximum: 3650,
    })
    certValidityDays?: number;
}

/**
 * DTO for updating a key chain.
 *
 * Only metadata and rotation policy can be updated.
 * Key material and certificates are managed internally.
 */
export class KeyChainUpdateDto extends createZodDto(KeyChainUpdateSchema) {
    @ApiPropertyOptional({
        description: "Human-readable description for the key chain.",
    })
    description?: string;

    @ApiPropertyOptional({
        description: "Rotation policy configuration.",
        type: RotationPolicyUpdateDto,
    })
    rotationPolicy?: RotationPolicyUpdateDto;

    @ApiPropertyOptional({
        description:
            "Active certificate chain in PEM format. Used for external certificate updates.",
    })
    activeCertificate?: string;
}

results matching ""

    No results matching ""