diff --git a/packages/@n8n/api-types/src/dto/encryption/encryption-key-response.dto.ts b/packages/@n8n/api-types/src/dto/encryption/encryption-key-response.dto.ts index 2785c9c6d99..6294c012bc5 100644 --- a/packages/@n8n/api-types/src/dto/encryption/encryption-key-response.dto.ts +++ b/packages/@n8n/api-types/src/dto/encryption/encryption-key-response.dto.ts @@ -4,4 +4,5 @@ export type EncryptionKeyResponseDto = { algorithm: string | null; status: string; createdAt: string; + updatedAt: string; }; diff --git a/packages/cli/src/modules/encryption-key-manager/__tests__/encryption-key.controller.test.ts b/packages/cli/src/modules/encryption-key-manager/__tests__/encryption-key.controller.test.ts index a99f7d922ba..eeb150f6b4c 100644 --- a/packages/cli/src/modules/encryption-key-manager/__tests__/encryption-key.controller.test.ts +++ b/packages/cli/src/modules/encryption-key-manager/__tests__/encryption-key.controller.test.ts @@ -41,6 +41,7 @@ describe('EncryptionKeyController', () => { algorithm: 'aes-256-cbc', status: 'inactive', createdAt: '2026-01-15T00:00:00.000Z', + updatedAt: '2026-01-15T00:00:00.000Z', }, { id: 'k2', @@ -48,6 +49,7 @@ describe('EncryptionKeyController', () => { algorithm: 'aes-256-gcm', status: 'active', createdAt: '2026-01-15T00:00:00.000Z', + updatedAt: '2026-01-15T00:00:00.000Z', }, ]); }); @@ -114,6 +116,7 @@ describe('EncryptionKeyController', () => { algorithm: 'aes-256-gcm', status: 'active', createdAt: '2026-01-15T00:00:00.000Z', + updatedAt: '2026-01-15T00:00:00.000Z', }); expect(result).not.toHaveProperty('value'); }); diff --git a/packages/cli/src/modules/encryption-key-manager/encryption-key.controller.ts b/packages/cli/src/modules/encryption-key-manager/encryption-key.controller.ts index f60f05fb38e..76bc044d0cd 100644 --- a/packages/cli/src/modules/encryption-key-manager/encryption-key.controller.ts +++ b/packages/cli/src/modules/encryption-key-manager/encryption-key.controller.ts @@ -15,6 +15,7 @@ function toResponseDto(row: DeploymentKey): EncryptionKeyResponseDto { algorithm: row.algorithm, status: row.status, createdAt: row.createdAt.toISOString(), + updatedAt: row.updatedAt.toISOString(), }; } diff --git a/packages/cli/test/integration/encryption-keys.api.test.ts b/packages/cli/test/integration/encryption-keys.api.test.ts index a97b49e07a5..3aad06eda2f 100644 --- a/packages/cli/test/integration/encryption-keys.api.test.ts +++ b/packages/cli/test/integration/encryption-keys.api.test.ts @@ -46,7 +46,7 @@ const seedKey = async ( ); describe('GET /encryption/keys', () => { - test('returns all keys for owner with id/type/algorithm/status/createdAt (never value)', async () => { + test('returns all keys for owner with id/type/algorithm/status/createdAt/updatedAt (never value)', async () => { const legacy = await seedKey({ algorithm: 'aes-256-cbc', status: 'inactive', value: 'legacy' }); const active = await seedKey({ algorithm: 'aes-256-gcm', @@ -69,6 +69,7 @@ describe('GET /encryption/keys', () => { algorithm: expect.any(String), status: expect.any(String), createdAt: expect.any(String), + updatedAt: expect.any(String), }); expect(row).not.toHaveProperty('value'); } @@ -117,6 +118,7 @@ describe('POST /encryption/keys', () => { algorithm: 'aes-256-gcm', status: 'active', createdAt: expect.any(String), + updatedAt: expect.any(String), }); expect(response.body.data).not.toHaveProperty('value');