mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(core): Add rsa option to ssh key generation (#7154)
PR adds a new field to the SourceControlPreferences as well as to the POST parameters for the `source-control/preferences` and `source-control/generate-key-pair` endpoints. Both now accept an optional string parameter `keyGeneratorType` of `'ed25519' | 'rsa'` Calling the `source-control/generate-key-pair` endpoint with the parameter set, it will also update the stored preferences accordingly (so that in the future new keys will use the same method) By default ed25519 is being used. The default may be changed using a new environment parameter: `N8N_SOURCECONTROL_DEFAULT_SSH_KEY_TYPE` which can be `rsa` or `ed25519` RSA keys are generated with a length of 4096 bytes.
This commit is contained in:
committed by
GitHub
parent
aaf87c3edd
commit
fdac2c8572
@@ -5,6 +5,7 @@ import * as utils from '../shared/utils/';
|
||||
import type { User } from '@db/entities/User';
|
||||
import * as UserManagementHelpers from '@/UserManagement/UserManagementHelper';
|
||||
import Container from 'typedi';
|
||||
import config from '@/config';
|
||||
import { License } from '@/License';
|
||||
import { SourceControlPreferencesService } from '@/environments/sourceControl/sourceControlPreferences.service.ee';
|
||||
import { SourceControlService } from '@/environments/sourceControl/sourceControl.service.ee';
|
||||
@@ -69,4 +70,21 @@ describe('GET /sourceControl/preferences', () => {
|
||||
expect(data[0].id).toBe('haQetoXq9GxHSkft');
|
||||
});
|
||||
});
|
||||
|
||||
test('refreshing key pairsshould return new rsa key', async () => {
|
||||
config.set('sourceControl.defaultKeyPairType', 'rsa');
|
||||
await authOwnerAgent
|
||||
.post(`/${SOURCE_CONTROL_API_ROOT}/generate-key-pair`)
|
||||
.send()
|
||||
.expect(200)
|
||||
.expect((res) => {
|
||||
expect(
|
||||
Container.get(SourceControlPreferencesService).getPreferences().keyGeneratorType,
|
||||
).toBe('rsa');
|
||||
expect(res.body.data).toHaveProperty('publicKey');
|
||||
expect(res.body.data).toHaveProperty('keyGeneratorType');
|
||||
expect(res.body.data.keyGeneratorType).toBe('rsa');
|
||||
expect(res.body.data.publicKey).toContain('ssh-rsa');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user