@zincapp/znvault-cli 2.26.4 → 2.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/group.d.ts +3 -0
- package/dist/commands/group.d.ts.map +1 -0
- package/dist/commands/group.js +319 -0
- package/dist/commands/group.js.map +1 -0
- package/dist/commands/host/bootstrap-token.d.ts.map +1 -1
- package/dist/commands/host/bootstrap-token.js +28 -10
- package/dist/commands/host/bootstrap-token.js.map +1 -1
- package/dist/commands/host/index.d.ts.map +1 -1
- package/dist/commands/host/index.js +4 -0
- package/dist/commands/host/index.js.map +1 -1
- package/dist/commands/host/link-agent.d.ts +26 -0
- package/dist/commands/host/link-agent.d.ts.map +1 -0
- package/dist/commands/host/link-agent.js +110 -0
- package/dist/commands/host/link-agent.js.map +1 -0
- package/dist/commands/host/types.d.ts +5 -0
- package/dist/commands/host/types.d.ts.map +1 -1
- package/dist/commands/ssh-ca/ca.d.ts +14 -0
- package/dist/commands/ssh-ca/ca.d.ts.map +1 -0
- package/dist/commands/ssh-ca/ca.js +169 -0
- package/dist/commands/ssh-ca/ca.js.map +1 -0
- package/dist/commands/ssh-ca/certificates.d.ts +7 -0
- package/dist/commands/ssh-ca/certificates.d.ts.map +1 -0
- package/dist/commands/ssh-ca/certificates.js +131 -0
- package/dist/commands/ssh-ca/certificates.js.map +1 -0
- package/dist/commands/ssh-ca/helpers.d.ts +37 -0
- package/dist/commands/ssh-ca/helpers.d.ts.map +1 -0
- package/dist/commands/ssh-ca/helpers.js +104 -0
- package/dist/commands/ssh-ca/helpers.js.map +1 -0
- package/dist/commands/ssh-ca/index.d.ts +7 -0
- package/dist/commands/ssh-ca/index.d.ts.map +1 -0
- package/dist/commands/ssh-ca/index.js +180 -0
- package/dist/commands/ssh-ca/index.js.map +1 -0
- package/dist/commands/ssh-ca/mappings.d.ts +11 -0
- package/dist/commands/ssh-ca/mappings.d.ts.map +1 -0
- package/dist/commands/ssh-ca/mappings.js +178 -0
- package/dist/commands/ssh-ca/mappings.js.map +1 -0
- package/dist/commands/ssh-ca/server-groups.d.ts +21 -0
- package/dist/commands/ssh-ca/server-groups.d.ts.map +1 -0
- package/dist/commands/ssh-ca/server-groups.js +252 -0
- package/dist/commands/ssh-ca/server-groups.js.map +1 -0
- package/dist/commands/ssh-ca/sign.d.ts +3 -0
- package/dist/commands/ssh-ca/sign.d.ts.map +1 -0
- package/dist/commands/ssh-ca/sign.js +79 -0
- package/dist/commands/ssh-ca/sign.js.map +1 -0
- package/dist/commands/ssh-ca/types.d.ts +135 -0
- package/dist/commands/ssh-ca/types.d.ts.map +1 -0
- package/dist/commands/ssh-ca/types.js +3 -0
- package/dist/commands/ssh-ca/types.js.map +1 -0
- package/dist/commands/ssh-ca.d.ts +7 -0
- package/dist/commands/ssh-ca.d.ts.map +1 -0
- package/dist/commands/ssh-ca.js +7 -0
- package/dist/commands/ssh-ca.js.map +1 -0
- package/dist/commands/ssh.d.ts +3 -0
- package/dist/commands/ssh.d.ts.map +1 -0
- package/dist/commands/ssh.js +814 -0
- package/dist/commands/ssh.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/client/tenants.d.ts.map +1 -1
- package/dist/lib/client/tenants.js +3 -6
- package/dist/lib/client/tenants.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// Path: src/commands/ssh-ca/index.ts
|
|
2
|
+
import { getStatus, initCA, deleteCA, getPublicKey } from './ca.js';
|
|
3
|
+
import { listMappings, createMapping, updateMapping, deleteMapping } from './mappings.js';
|
|
4
|
+
import { listServerGroups, getServerGroup, createServerGroup, deleteServerGroup, setAccessRule, deleteAccessRule, getAuthorizedPrincipals, } from './server-groups.js';
|
|
5
|
+
import { listCertificates, getCertificate, revokeCertificate } from './certificates.js';
|
|
6
|
+
import { signCertificate } from './sign.js';
|
|
7
|
+
// Re-export types
|
|
8
|
+
export * from './types.js';
|
|
9
|
+
export function registerSSHCACommands(program) {
|
|
10
|
+
const sshca = program
|
|
11
|
+
.command('ssh-ca')
|
|
12
|
+
.description('SSH Certificate Authority management')
|
|
13
|
+
.addHelpText('after', `
|
|
14
|
+
Examples:
|
|
15
|
+
# Initialize the CA
|
|
16
|
+
znvault ssh-ca init --key-type ed25519 --default-ttl 28800
|
|
17
|
+
|
|
18
|
+
# Get CA public key for server configuration
|
|
19
|
+
znvault ssh-ca public-key --raw > /etc/ssh/trusted-user-ca-keys.pub
|
|
20
|
+
|
|
21
|
+
# Create a principal mapping
|
|
22
|
+
znvault ssh-ca mapping create --group-id GROUP_ID --principals deploy,developer
|
|
23
|
+
|
|
24
|
+
# Create a server group and add access rules
|
|
25
|
+
znvault ssh-ca server-group create --name production-web
|
|
26
|
+
znvault ssh-ca server-group set-access GROUP_ID --linux-user deploy --principals deploy,admin
|
|
27
|
+
|
|
28
|
+
# Sign your SSH public key
|
|
29
|
+
znvault ssh-ca sign --file ~/.ssh/id_ed25519.pub > ~/.ssh/id_ed25519-cert.pub
|
|
30
|
+
|
|
31
|
+
# List and revoke certificates
|
|
32
|
+
znvault ssh-ca cert list --active-only
|
|
33
|
+
znvault ssh-ca cert revoke CERT_ID --reason "User offboarded"
|
|
34
|
+
`);
|
|
35
|
+
// -------------------------------------------------------------------------
|
|
36
|
+
// CA Commands
|
|
37
|
+
// -------------------------------------------------------------------------
|
|
38
|
+
sshca
|
|
39
|
+
.command('status')
|
|
40
|
+
.description('Get SSH CA status')
|
|
41
|
+
.option('--json', 'Output as JSON')
|
|
42
|
+
.action(getStatus);
|
|
43
|
+
sshca
|
|
44
|
+
.command('init')
|
|
45
|
+
.description('Initialize SSH CA')
|
|
46
|
+
.option('--key-type <type>', 'Key type: ed25519 or rsa-4096')
|
|
47
|
+
.option('--default-ttl <seconds>', 'Default certificate TTL in seconds')
|
|
48
|
+
.option('--max-ttl <seconds>', 'Maximum certificate TTL in seconds')
|
|
49
|
+
.option('--extensions <list>', 'Allowed extensions (comma-separated)')
|
|
50
|
+
.option('--json', 'Output as JSON')
|
|
51
|
+
.action(initCA);
|
|
52
|
+
sshca
|
|
53
|
+
.command('delete')
|
|
54
|
+
.description('Delete SSH CA (destructive!)')
|
|
55
|
+
.option('--force', 'Skip confirmation')
|
|
56
|
+
.option('--json', 'Output as JSON')
|
|
57
|
+
.action(deleteCA);
|
|
58
|
+
sshca
|
|
59
|
+
.command('public-key')
|
|
60
|
+
.description('Get CA public key')
|
|
61
|
+
.option('--raw', 'Output only the key (for piping to file)')
|
|
62
|
+
.option('--json', 'Output as JSON')
|
|
63
|
+
.action(getPublicKey);
|
|
64
|
+
// -------------------------------------------------------------------------
|
|
65
|
+
// Mapping Commands
|
|
66
|
+
// -------------------------------------------------------------------------
|
|
67
|
+
const mapping = sshca.command('mapping').description('Manage principal mappings (SSO group → SSH principals)');
|
|
68
|
+
mapping
|
|
69
|
+
.command('list')
|
|
70
|
+
.alias('ls')
|
|
71
|
+
.description('List principal mappings')
|
|
72
|
+
.option('--json', 'Output as JSON')
|
|
73
|
+
.action(listMappings);
|
|
74
|
+
mapping
|
|
75
|
+
.command('create')
|
|
76
|
+
.description('Create a principal mapping')
|
|
77
|
+
.option('--group-id <id>', 'SSO group ID')
|
|
78
|
+
.option('--principals <list>', 'SSH principals (comma-separated)')
|
|
79
|
+
.option('--json', 'Output as JSON')
|
|
80
|
+
.action(createMapping);
|
|
81
|
+
mapping
|
|
82
|
+
.command('update <mapping-id>')
|
|
83
|
+
.description('Update a principal mapping')
|
|
84
|
+
.option('--principals <list>', 'New SSH principals (comma-separated)')
|
|
85
|
+
.option('--json', 'Output as JSON')
|
|
86
|
+
.action(updateMapping);
|
|
87
|
+
mapping
|
|
88
|
+
.command('delete <mapping-id>')
|
|
89
|
+
.alias('rm')
|
|
90
|
+
.description('Delete a principal mapping')
|
|
91
|
+
.option('--force', 'Skip confirmation')
|
|
92
|
+
.option('--json', 'Output as JSON')
|
|
93
|
+
.action(deleteMapping);
|
|
94
|
+
// -------------------------------------------------------------------------
|
|
95
|
+
// Server Group Commands
|
|
96
|
+
// -------------------------------------------------------------------------
|
|
97
|
+
const serverGroup = sshca.command('server-group').alias('sg').description('Manage server groups');
|
|
98
|
+
serverGroup
|
|
99
|
+
.command('list')
|
|
100
|
+
.alias('ls')
|
|
101
|
+
.description('List server groups')
|
|
102
|
+
.option('--json', 'Output as JSON')
|
|
103
|
+
.action(listServerGroups);
|
|
104
|
+
serverGroup
|
|
105
|
+
.command('get <group-id>')
|
|
106
|
+
.description('Get server group details')
|
|
107
|
+
.option('--json', 'Output as JSON')
|
|
108
|
+
.action(getServerGroup);
|
|
109
|
+
serverGroup
|
|
110
|
+
.command('create')
|
|
111
|
+
.description('Create a server group')
|
|
112
|
+
.option('--name <name>', 'Server group name')
|
|
113
|
+
.option('--description <desc>', 'Description')
|
|
114
|
+
.option('--json', 'Output as JSON')
|
|
115
|
+
.action(createServerGroup);
|
|
116
|
+
serverGroup
|
|
117
|
+
.command('delete <group-id>')
|
|
118
|
+
.alias('rm')
|
|
119
|
+
.description('Delete a server group')
|
|
120
|
+
.option('--force', 'Skip confirmation')
|
|
121
|
+
.option('--json', 'Output as JSON')
|
|
122
|
+
.action(deleteServerGroup);
|
|
123
|
+
serverGroup
|
|
124
|
+
.command('set-access <group-id>')
|
|
125
|
+
.description('Set access rule for a server group')
|
|
126
|
+
.option('--linux-user <user>', 'Linux user name')
|
|
127
|
+
.option('--principals <list>', 'Allowed principals (comma-separated)')
|
|
128
|
+
.option('--json', 'Output as JSON')
|
|
129
|
+
.action(setAccessRule);
|
|
130
|
+
serverGroup
|
|
131
|
+
.command('delete-access <group-id> <linux-user>')
|
|
132
|
+
.description('Delete access rule from a server group')
|
|
133
|
+
.option('--force', 'Skip confirmation')
|
|
134
|
+
.option('--json', 'Output as JSON')
|
|
135
|
+
.action(deleteAccessRule);
|
|
136
|
+
serverGroup
|
|
137
|
+
.command('principals <group-id>')
|
|
138
|
+
.description('Get authorized principals for server configuration')
|
|
139
|
+
.option('--json', 'Output as JSON')
|
|
140
|
+
.action(getAuthorizedPrincipals);
|
|
141
|
+
// -------------------------------------------------------------------------
|
|
142
|
+
// Certificate Commands
|
|
143
|
+
// -------------------------------------------------------------------------
|
|
144
|
+
const cert = sshca.command('cert').alias('certificate').description('Manage SSH certificates');
|
|
145
|
+
cert
|
|
146
|
+
.command('list')
|
|
147
|
+
.alias('ls')
|
|
148
|
+
.description('List certificates')
|
|
149
|
+
.option('--active-only', 'Show only active certificates')
|
|
150
|
+
.option('--revoked', 'Show only revoked certificates')
|
|
151
|
+
.option('--user-id <id>', 'Filter by user ID')
|
|
152
|
+
.option('--limit <n>', 'Maximum number of results')
|
|
153
|
+
.option('--json', 'Output as JSON')
|
|
154
|
+
.action(listCertificates);
|
|
155
|
+
cert
|
|
156
|
+
.command('get <cert-id>')
|
|
157
|
+
.description('Get certificate details')
|
|
158
|
+
.option('--json', 'Output as JSON')
|
|
159
|
+
.action(getCertificate);
|
|
160
|
+
cert
|
|
161
|
+
.command('revoke <cert-id>')
|
|
162
|
+
.description('Revoke a certificate')
|
|
163
|
+
.option('--reason <reason>', 'Revocation reason')
|
|
164
|
+
.option('--force', 'Skip confirmation')
|
|
165
|
+
.option('--json', 'Output as JSON')
|
|
166
|
+
.action(revokeCertificate);
|
|
167
|
+
// -------------------------------------------------------------------------
|
|
168
|
+
// Sign Command
|
|
169
|
+
// -------------------------------------------------------------------------
|
|
170
|
+
sshca
|
|
171
|
+
.command('sign')
|
|
172
|
+
.description('Sign SSH public key to get a certificate')
|
|
173
|
+
.option('--public-key <key>', 'SSH public key string')
|
|
174
|
+
.option('--file <path>', 'Path to SSH public key file')
|
|
175
|
+
.option('--ttl <seconds>', 'Certificate TTL in seconds')
|
|
176
|
+
.option('--principals <list>', 'Direct principal specification (admin override, comma-separated). Requires ssh:ca:admin permission.')
|
|
177
|
+
.option('--json', 'Output as JSON')
|
|
178
|
+
.action(signCertificate);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/ssh-ca/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MappingCreateOptions, MappingUpdateOptions } from './types.js';
|
|
2
|
+
export declare function listMappings(options: {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
}): Promise<void>;
|
|
5
|
+
export declare function createMapping(options: MappingCreateOptions): Promise<void>;
|
|
6
|
+
export declare function updateMapping(mappingId: string, options: MappingUpdateOptions): Promise<void>;
|
|
7
|
+
export declare function deleteMapping(mappingId: string, options: {
|
|
8
|
+
force?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=mappings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../src/commands/ssh-ca/mappings.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAapB,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7E;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BnG;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlH"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// Path: src/commands/ssh-ca/mappings.ts
|
|
2
|
+
/**
|
|
3
|
+
* Principal mapping commands for SSH CA
|
|
4
|
+
*/
|
|
5
|
+
import ora from 'ora';
|
|
6
|
+
import Table from 'cli-table3';
|
|
7
|
+
import inquirer from 'inquirer';
|
|
8
|
+
import { client } from '../../lib/client.js';
|
|
9
|
+
import * as output from '../../lib/output.js';
|
|
10
|
+
import { formatDate, formatPrincipals, parsePrincipals, isValidPrincipal } from './helpers.js';
|
|
11
|
+
export async function listMappings(options) {
|
|
12
|
+
const spinner = ora('Fetching principal mappings...').start();
|
|
13
|
+
try {
|
|
14
|
+
const response = await client.get('/v1/ssh/principal-mappings');
|
|
15
|
+
spinner.stop();
|
|
16
|
+
if (options.json) {
|
|
17
|
+
output.json(response.items);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (response.items.length === 0) {
|
|
21
|
+
output.info('No principal mappings found.');
|
|
22
|
+
output.info('Create one with: znvault ssh-ca mapping create');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const table = new Table({
|
|
26
|
+
head: ['ID', 'SSO Group', 'Principals', 'Created'],
|
|
27
|
+
style: { head: ['cyan'] },
|
|
28
|
+
});
|
|
29
|
+
for (const mapping of response.items) {
|
|
30
|
+
table.push([
|
|
31
|
+
mapping.id.substring(0, 8) + '...',
|
|
32
|
+
mapping.groupDisplayName ?? mapping.groupName ?? mapping.groupId.substring(0, 8),
|
|
33
|
+
formatPrincipals(mapping.principals),
|
|
34
|
+
formatDate(mapping.createdAt),
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
console.log(table.toString());
|
|
38
|
+
output.info(`${response.items.length} mapping(s) found`);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
spinner.fail('Failed to list mappings');
|
|
42
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function createMapping(options) {
|
|
47
|
+
// Fetch SSO groups for selection
|
|
48
|
+
let groups = [];
|
|
49
|
+
try {
|
|
50
|
+
const groupsResponse = await client.get('/v1/sso/groups');
|
|
51
|
+
groups = groupsResponse.items;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Groups endpoint might fail, continue with manual input
|
|
55
|
+
}
|
|
56
|
+
let groupId = options.groupId;
|
|
57
|
+
if (!groupId) {
|
|
58
|
+
if (groups.length > 0) {
|
|
59
|
+
const { selectedGroup } = await inquirer.prompt([{
|
|
60
|
+
type: 'list',
|
|
61
|
+
name: 'selectedGroup',
|
|
62
|
+
message: 'Select SSO group:',
|
|
63
|
+
choices: groups.map(g => ({
|
|
64
|
+
name: g.displayName ?? g.name,
|
|
65
|
+
value: g.id,
|
|
66
|
+
})),
|
|
67
|
+
}]);
|
|
68
|
+
groupId = selectedGroup;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const { id } = await inquirer.prompt([{
|
|
72
|
+
type: 'input',
|
|
73
|
+
name: 'id',
|
|
74
|
+
message: 'SSO Group ID:',
|
|
75
|
+
validate: (input) => input.trim() ? true : 'Group ID is required',
|
|
76
|
+
}]);
|
|
77
|
+
groupId = id;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const principalsInput = options.principals ?? (await inquirer.prompt([{
|
|
81
|
+
type: 'input',
|
|
82
|
+
name: 'principals',
|
|
83
|
+
message: 'SSH Principals (comma-separated):',
|
|
84
|
+
validate: (input) => {
|
|
85
|
+
const principals = parsePrincipals(input);
|
|
86
|
+
if (principals.length === 0)
|
|
87
|
+
return 'At least one principal is required';
|
|
88
|
+
for (const p of principals) {
|
|
89
|
+
if (!isValidPrincipal(p))
|
|
90
|
+
return `Invalid principal: ${p}`;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
},
|
|
94
|
+
}])).principals;
|
|
95
|
+
const principals = parsePrincipals(principalsInput);
|
|
96
|
+
const spinner = ora('Creating principal mapping...').start();
|
|
97
|
+
try {
|
|
98
|
+
const response = await client.post('/v1/ssh/principal-mappings', {
|
|
99
|
+
groupId,
|
|
100
|
+
principals,
|
|
101
|
+
});
|
|
102
|
+
spinner.succeed('Principal mapping created');
|
|
103
|
+
if (options.json) {
|
|
104
|
+
output.json(response);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
output.keyValue({
|
|
108
|
+
'ID': response.id,
|
|
109
|
+
'Group ID': response.groupId,
|
|
110
|
+
'Principals': response.principals.join(', '),
|
|
111
|
+
'Created': formatDate(response.createdAt),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
spinner.fail('Failed to create mapping');
|
|
116
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export async function updateMapping(mappingId, options) {
|
|
121
|
+
const principalsInput = options.principals ?? (await inquirer.prompt([{
|
|
122
|
+
type: 'input',
|
|
123
|
+
name: 'principals',
|
|
124
|
+
message: 'New SSH Principals (comma-separated):',
|
|
125
|
+
validate: (input) => {
|
|
126
|
+
const principals = parsePrincipals(input);
|
|
127
|
+
if (principals.length === 0)
|
|
128
|
+
return 'At least one principal is required';
|
|
129
|
+
for (const p of principals) {
|
|
130
|
+
if (!isValidPrincipal(p))
|
|
131
|
+
return `Invalid principal: ${p}`;
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
},
|
|
135
|
+
}])).principals;
|
|
136
|
+
const principals = parsePrincipals(principalsInput);
|
|
137
|
+
const spinner = ora('Updating principal mapping...').start();
|
|
138
|
+
try {
|
|
139
|
+
await client.put(`/v1/ssh/principal-mappings/${mappingId}`, { principals });
|
|
140
|
+
spinner.succeed('Principal mapping updated');
|
|
141
|
+
if (options.json) {
|
|
142
|
+
output.json({ success: true, mappingId, principals });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
spinner.fail('Failed to update mapping');
|
|
147
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export async function deleteMapping(mappingId, options) {
|
|
152
|
+
if (!options.force) {
|
|
153
|
+
const { confirm } = await inquirer.prompt([{
|
|
154
|
+
type: 'confirm',
|
|
155
|
+
name: 'confirm',
|
|
156
|
+
message: `Delete principal mapping ${mappingId}?`,
|
|
157
|
+
default: false,
|
|
158
|
+
}]);
|
|
159
|
+
if (!confirm) {
|
|
160
|
+
output.info('Operation cancelled.');
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const spinner = ora('Deleting principal mapping...').start();
|
|
165
|
+
try {
|
|
166
|
+
await client.delete(`/v1/ssh/principal-mappings/${mappingId}`);
|
|
167
|
+
spinner.succeed('Principal mapping deleted');
|
|
168
|
+
if (options.json) {
|
|
169
|
+
output.json({ success: true });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
spinner.fail('Failed to delete mapping');
|
|
174
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=mappings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../../src/commands/ssh-ca/mappings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ServerGroupCreateOptions, AccessRuleOptions } from './types.js';
|
|
2
|
+
export declare function listServerGroups(options: {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
}): Promise<void>;
|
|
5
|
+
export declare function getServerGroup(groupId: string, options: {
|
|
6
|
+
json?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
export declare function createServerGroup(options: ServerGroupCreateOptions): Promise<void>;
|
|
9
|
+
export declare function deleteServerGroup(groupId: string, options: {
|
|
10
|
+
force?: boolean;
|
|
11
|
+
json?: boolean;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
export declare function setAccessRule(groupId: string, options: AccessRuleOptions): Promise<void>;
|
|
14
|
+
export declare function deleteAccessRule(groupId: string, linuxUser: string, options: {
|
|
15
|
+
force?: boolean;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
export declare function getAuthorizedPrincipals(groupId: string, options: {
|
|
19
|
+
json?: boolean;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=server-groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-groups.d.ts","sourceRoot":"","sources":["../../../src/commands/ssh-ca/server-groups.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAIV,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCjF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChG;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CxF;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BpH;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzG"}
|