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

Description

DTO for updating a key chain.

Only metadata and rotation policy can be updated. Key material and certificates are managed internally.

Extends

createZodDto(KeyChainUpdateSchema)

Relationships

Used by

No results matching.

Index

Properties

Properties

Optional activeCertificate
Type : string
Decorators :
@ApiPropertyOptional({description: 'Active certificate chain in PEM format. Used for external certificate updates.'})
Optional description
Type : string
Decorators :
@ApiPropertyOptional({description: 'Human-readable description for the key chain.'})
Optional rotationPolicy
Type : RotationPolicyUpdateDto
Decorators :
@ApiPropertyOptional({description: 'Rotation policy configuration.', type: RotationPolicyUpdateDto})
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 ""