@kaitranntt/ccs 7.19.1 → 7.19.2-dev.2
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/config-auth/disable-command.d.ts +10 -0
- package/dist/commands/config-auth/disable-command.d.ts.map +1 -0
- package/dist/commands/config-auth/disable-command.js +64 -0
- package/dist/commands/config-auth/disable-command.js.map +1 -0
- package/dist/commands/config-auth/index.d.ts +14 -0
- package/dist/commands/config-auth/index.d.ts.map +1 -0
- package/dist/commands/config-auth/index.js +84 -0
- package/dist/commands/config-auth/index.js.map +1 -0
- package/dist/commands/config-auth/setup-command.d.ts +13 -0
- package/dist/commands/config-auth/setup-command.d.ts.map +1 -0
- package/dist/commands/config-auth/setup-command.js +121 -0
- package/dist/commands/config-auth/setup-command.js.map +1 -0
- package/dist/commands/config-auth/show-command.d.ts +10 -0
- package/dist/commands/config-auth/show-command.d.ts.map +1 -0
- package/dist/commands/config-auth/show-command.js +79 -0
- package/dist/commands/config-auth/show-command.js.map +1 -0
- package/dist/commands/config-auth/types.d.ts +25 -0
- package/dist/commands/config-auth/types.d.ts.map +1 -0
- package/dist/commands/config-auth/types.js +8 -0
- package/dist/commands/config-auth/types.js.map +1 -0
- package/dist/commands/config-command.d.ts.map +1 -1
- package/dist/commands/config-command.js +37 -1
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +2 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +6 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +41 -1
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +22 -0
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +12 -1
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/ui/assets/accounts-Be6b-nwn.js +1 -0
- package/dist/ui/assets/{alert-dialog-CnDvl5IB.js → alert-dialog-CM5u0JHs.js} +1 -1
- package/dist/ui/assets/api-mj8kMJz1.js +1 -0
- package/dist/ui/assets/{auth-section-DbZac9VD.js → auth-section-nFosGq6Z.js} +1 -1
- package/dist/ui/assets/{charts-CJC4bH8P.js → charts-BBPXh0Ar.js} +1 -1
- package/dist/ui/assets/cliproxy-DlHYA8zi.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-CP-dhv4O.js → cliproxy-control-panel-wKdIZ6WV.js} +1 -1
- package/dist/ui/assets/{code-highlight-DKN39ySy.js → code-highlight-BRUf_pqB.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-w5D52_lL.js → confirm-dialog-BcIEdkmr.js} +1 -1
- package/dist/ui/assets/copilot-CK7anGeR.js +4 -0
- package/dist/ui/assets/{form-utils-kUVlZZAO.js → form-utils-C-pVd1--.js} +1 -1
- package/dist/ui/assets/globalenv-section-BgoWz-A2.js +1 -0
- package/dist/ui/assets/{health-BaRdlHhs.js → health-Clpm6LpQ.js} +1 -1
- package/dist/ui/assets/icons-WqZToXEO.js +1 -0
- package/dist/ui/assets/{index-BuLI32Lk.js → index-B3Y_vbPs.js} +1 -1
- package/dist/ui/assets/index-C3Ezj6Tb.js +1 -0
- package/dist/ui/assets/index-CDRTPpUQ.js +47 -0
- package/dist/ui/assets/index-CNsISHN_.css +1 -0
- package/dist/ui/assets/{index-CAdQ23xy.js → index-fYt7TJz8.js} +1 -1
- package/dist/ui/assets/{notifications-dJQY2-U6.js → notifications-B2HqRBj7.js} +1 -1
- package/dist/ui/assets/{radix-ui-CBgg0XeO.js → radix-ui-CFOhsBGh.js} +4 -4
- package/dist/ui/assets/{react-vendor-B_CU-WTZ.js → react-vendor-CNOkPC89.js} +2 -2
- package/dist/ui/assets/shared-C95GV4af.js +1 -0
- package/dist/ui/assets/{switch-Kx7oj3ow.js → switch-CUS7UF_z.js} +1 -1
- package/dist/ui/assets/{tanstack-CxYN0q6L.js → tanstack-U3Rle5gh.js} +1 -1
- package/dist/ui/index.html +9 -9
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +5 -0
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/middleware/auth-middleware.d.ts +27 -0
- package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -0
- package/dist/web-server/middleware/auth-middleware.js +116 -0
- package/dist/web-server/middleware/auth-middleware.js.map +1 -0
- package/dist/web-server/routes/auth-routes.d.ts +7 -0
- package/dist/web-server/routes/auth-routes.d.ts.map +1 -0
- package/dist/web-server/routes/auth-routes.js +108 -0
- package/dist/web-server/routes/auth-routes.js.map +1 -0
- package/dist/web-server/routes/index.d.ts.map +1 -1
- package/dist/web-server/routes/index.js +3 -0
- package/dist/web-server/routes/index.js.map +1 -1
- package/package.json +6 -1
- package/dist/ui/assets/accounts-CJISzCiC.js +0 -1
- package/dist/ui/assets/api-DP559Tqr.js +0 -1
- package/dist/ui/assets/card-nbrHgs37.js +0 -1
- package/dist/ui/assets/cliproxy-ssaB44zs.js +0 -3
- package/dist/ui/assets/copilot-DsYQqfFs.js +0 -4
- package/dist/ui/assets/globalenv-section-Bli3PW-y.js +0 -1
- package/dist/ui/assets/icons-CZDQWWm2.js +0 -1
- package/dist/ui/assets/index-B7MyxZLG.js +0 -47
- package/dist/ui/assets/index-BX0IVNt5.css +0 -1
- package/dist/ui/assets/index-DIrZx85u.js +0 -1
- package/dist/ui/assets/shared-CNbeCoBd.js +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Auth Disable Command
|
|
3
|
+
*
|
|
4
|
+
* Disable dashboard authentication with confirmation.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Handle disable command - disable auth with confirmation
|
|
8
|
+
*/
|
|
9
|
+
export declare function handleDisable(): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=disable-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-command.d.ts","sourceRoot":"","sources":["../../../src/commands/config-auth/disable-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDnD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Auth Disable Command
|
|
4
|
+
*
|
|
5
|
+
* Disable dashboard authentication with confirmation.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.handleDisable = void 0;
|
|
9
|
+
const prompt_1 = require("../../utils/prompt");
|
|
10
|
+
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
11
|
+
const ui_1 = require("../../utils/ui");
|
|
12
|
+
/**
|
|
13
|
+
* Handle disable command - disable auth with confirmation
|
|
14
|
+
*/
|
|
15
|
+
async function handleDisable() {
|
|
16
|
+
await (0, ui_1.initUI)();
|
|
17
|
+
console.log('');
|
|
18
|
+
console.log((0, ui_1.header)('Disable Dashboard Auth'));
|
|
19
|
+
console.log('');
|
|
20
|
+
const config = (0, unified_config_loader_1.getDashboardAuthConfig)();
|
|
21
|
+
// Check if already disabled
|
|
22
|
+
if (!config.enabled) {
|
|
23
|
+
console.log((0, ui_1.info)('Dashboard authentication is already disabled.'));
|
|
24
|
+
console.log('');
|
|
25
|
+
console.log((0, ui_1.dim)(' To enable: ccs config auth setup'));
|
|
26
|
+
console.log('');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Check for ENV override
|
|
30
|
+
if (process.env.CCS_DASHBOARD_AUTH_ENABLED) {
|
|
31
|
+
console.log((0, ui_1.warn)('CCS_DASHBOARD_AUTH_ENABLED environment variable is set.'));
|
|
32
|
+
console.log((0, ui_1.info)('Disabling in config.yaml, but ENV var will still override.'));
|
|
33
|
+
console.log('');
|
|
34
|
+
}
|
|
35
|
+
// Confirm before disabling
|
|
36
|
+
console.log((0, ui_1.warn)('This will disable login protection for the dashboard.'));
|
|
37
|
+
console.log((0, ui_1.info)('Anyone with network access will be able to view the dashboard.'));
|
|
38
|
+
console.log('');
|
|
39
|
+
const confirmed = await prompt_1.InteractivePrompt.confirm('Disable authentication?', {
|
|
40
|
+
default: false, // Safe default
|
|
41
|
+
});
|
|
42
|
+
if (!confirmed) {
|
|
43
|
+
console.log('');
|
|
44
|
+
console.log((0, ui_1.info)('Cancelled. Authentication remains enabled.'));
|
|
45
|
+
console.log('');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Disable auth
|
|
49
|
+
const fullConfig = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
|
|
50
|
+
fullConfig.dashboard_auth = {
|
|
51
|
+
enabled: false,
|
|
52
|
+
username: fullConfig.dashboard_auth?.username ?? '',
|
|
53
|
+
password_hash: fullConfig.dashboard_auth?.password_hash ?? '',
|
|
54
|
+
session_timeout_hours: fullConfig.dashboard_auth?.session_timeout_hours ?? 24,
|
|
55
|
+
};
|
|
56
|
+
(0, unified_config_loader_1.saveUnifiedConfig)(fullConfig);
|
|
57
|
+
console.log('');
|
|
58
|
+
console.log((0, ui_1.ok)('Dashboard authentication disabled'));
|
|
59
|
+
console.log('');
|
|
60
|
+
console.log((0, ui_1.info)('Credentials preserved - re-enable with: ccs config auth setup'));
|
|
61
|
+
console.log('');
|
|
62
|
+
}
|
|
63
|
+
exports.handleDisable = handleDisable;
|
|
64
|
+
//# sourceMappingURL=disable-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-command.js","sourceRoot":"","sources":["../../../src/commands/config-auth/disable-command.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,+CAAuD;AACvD,8EAI4C;AAC5C,uCAAqE;AAErE;;GAEG;AACI,KAAK,UAAU,aAAa;IACjC,MAAM,IAAA,WAAM,GAAE,CAAC;IAEf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,WAAM,EAAC,wBAAwB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAA,8CAAsB,GAAE,CAAC;IAExC,4BAA4B;IAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,+CAA+C,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAA,QAAG,EAAC,sCAAsC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,yBAAyB;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,yDAAyD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,4DAA4D,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,uDAAuD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,gEAAgE,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,MAAM,0BAAiB,CAAC,OAAO,CAAC,yBAAyB,EAAE;QAC3E,OAAO,EAAE,KAAK,EAAE,eAAe;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,4CAA4C,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,IAAA,iDAAyB,GAAE,CAAC;IAC/C,UAAU,CAAC,cAAc,GAAG;QAC1B,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,IAAI,EAAE;QACnD,aAAa,EAAE,UAAU,CAAC,cAAc,EAAE,aAAa,IAAI,EAAE;QAC7D,qBAAqB,EAAE,UAAU,CAAC,cAAc,EAAE,qBAAqB,IAAI,EAAE;KAC9E,CAAC;IAEF,IAAA,yCAAiB,EAAC,UAAU,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,mCAAmC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,+DAA+D,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAzDD,sCAyDC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Auth Commands (Facade)
|
|
3
|
+
*
|
|
4
|
+
* CLI interface for managing dashboard authentication.
|
|
5
|
+
* Commands: setup, show, disable
|
|
6
|
+
*
|
|
7
|
+
* Implementation follows auth-commands.ts pattern.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Route config auth command to appropriate handler
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleConfigAuthCommand(args: string[]): Promise<void>;
|
|
13
|
+
export type { ConfigAuthContext, AuthSetupResult, AuthStatusInfo } from './types';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config-auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiDH;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B3E;AAGD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Auth Commands (Facade)
|
|
4
|
+
*
|
|
5
|
+
* CLI interface for managing dashboard authentication.
|
|
6
|
+
* Commands: setup, show, disable
|
|
7
|
+
*
|
|
8
|
+
* Implementation follows auth-commands.ts pattern.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.handleConfigAuthCommand = void 0;
|
|
12
|
+
const ui_1 = require("../../utils/ui");
|
|
13
|
+
// Import command handlers
|
|
14
|
+
const setup_command_1 = require("./setup-command");
|
|
15
|
+
const show_command_1 = require("./show-command");
|
|
16
|
+
const disable_command_1 = require("./disable-command");
|
|
17
|
+
/**
|
|
18
|
+
* Show help for config auth commands
|
|
19
|
+
*/
|
|
20
|
+
async function showHelp() {
|
|
21
|
+
await (0, ui_1.initUI)();
|
|
22
|
+
console.log('');
|
|
23
|
+
console.log((0, ui_1.header)('Dashboard Auth Management'));
|
|
24
|
+
console.log('');
|
|
25
|
+
console.log((0, ui_1.subheader)('Usage'));
|
|
26
|
+
console.log(` ${(0, ui_1.color)('ccs config auth', 'command')} <command>`);
|
|
27
|
+
console.log('');
|
|
28
|
+
console.log((0, ui_1.subheader)('Commands'));
|
|
29
|
+
console.log(` ${(0, ui_1.color)('setup', 'command')} Configure username and password`);
|
|
30
|
+
console.log(` ${(0, ui_1.color)('show', 'command')} Display current auth status`);
|
|
31
|
+
console.log(` ${(0, ui_1.color)('disable', 'command')} Disable authentication`);
|
|
32
|
+
console.log('');
|
|
33
|
+
console.log((0, ui_1.subheader)('Examples'));
|
|
34
|
+
console.log(` ${(0, ui_1.dim)('# Interactive setup wizard')}`);
|
|
35
|
+
console.log(` ${(0, ui_1.color)('ccs config auth setup', 'command')}`);
|
|
36
|
+
console.log('');
|
|
37
|
+
console.log(` ${(0, ui_1.dim)('# Check current status')}`);
|
|
38
|
+
console.log(` ${(0, ui_1.color)('ccs config auth show', 'command')}`);
|
|
39
|
+
console.log('');
|
|
40
|
+
console.log(` ${(0, ui_1.dim)('# Disable authentication')}`);
|
|
41
|
+
console.log(` ${(0, ui_1.color)('ccs config auth disable', 'command')}`);
|
|
42
|
+
console.log('');
|
|
43
|
+
console.log((0, ui_1.subheader)('Environment Variables'));
|
|
44
|
+
console.log(' These override config.yaml values:');
|
|
45
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_AUTH_ENABLED', 'command')} Enable/disable (true/false)`);
|
|
46
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_USERNAME', 'command')} Username`);
|
|
47
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_PASSWORD_HASH', 'command')} Bcrypt hash`);
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log((0, ui_1.subheader)('Documentation'));
|
|
50
|
+
console.log(' https://ccs.kaitran.ca/features/dashboard-auth');
|
|
51
|
+
console.log('');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Route config auth command to appropriate handler
|
|
55
|
+
*/
|
|
56
|
+
async function handleConfigAuthCommand(args) {
|
|
57
|
+
// Default to help if no subcommand
|
|
58
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h' || args[0] === 'help') {
|
|
59
|
+
await showHelp();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const command = args[0];
|
|
63
|
+
switch (command) {
|
|
64
|
+
case 'setup':
|
|
65
|
+
await (0, setup_command_1.handleSetup)();
|
|
66
|
+
break;
|
|
67
|
+
case 'show':
|
|
68
|
+
case 'status':
|
|
69
|
+
await (0, show_command_1.handleShow)();
|
|
70
|
+
break;
|
|
71
|
+
case 'disable':
|
|
72
|
+
await (0, disable_command_1.handleDisable)();
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
await (0, ui_1.initUI)();
|
|
76
|
+
console.log((0, ui_1.fail)(`Unknown command: ${command}`));
|
|
77
|
+
console.log('');
|
|
78
|
+
console.log('Run for help:');
|
|
79
|
+
console.log(` ${(0, ui_1.color)('ccs config auth --help', 'command')}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.handleConfigAuthCommand = handleConfigAuthCommand;
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config-auth/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Auth Setup Command
|
|
3
|
+
*
|
|
4
|
+
* Interactive wizard for configuring dashboard authentication.
|
|
5
|
+
* Prompts for username and password, hashes password with bcrypt,
|
|
6
|
+
* and saves to config.yaml.
|
|
7
|
+
*/
|
|
8
|
+
import type { AuthSetupResult } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Handle setup command - interactive wizard
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleSetup(): Promise<AuthSetupResult>;
|
|
13
|
+
//# sourceMappingURL=setup-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-command.d.ts","sourceRoot":"","sources":["../../../src/commands/config-auth/setup-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqB/C;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAgG5D"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Auth Setup Command
|
|
4
|
+
*
|
|
5
|
+
* Interactive wizard for configuring dashboard authentication.
|
|
6
|
+
* Prompts for username and password, hashes password with bcrypt,
|
|
7
|
+
* and saves to config.yaml.
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.handleSetup = void 0;
|
|
14
|
+
const bcrypt_1 = __importDefault(require("bcrypt"));
|
|
15
|
+
const prompt_1 = require("../../utils/prompt");
|
|
16
|
+
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
17
|
+
const ui_1 = require("../../utils/ui");
|
|
18
|
+
const BCRYPT_ROUNDS = 10;
|
|
19
|
+
const MIN_PASSWORD_LENGTH = 8;
|
|
20
|
+
/**
|
|
21
|
+
* Validate username (non-empty, alphanumeric with underscores)
|
|
22
|
+
*/
|
|
23
|
+
function validateUsername(value) {
|
|
24
|
+
if (!value || value.trim().length === 0) {
|
|
25
|
+
return 'Username cannot be empty';
|
|
26
|
+
}
|
|
27
|
+
if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(value)) {
|
|
28
|
+
return 'Username must start with letter, contain only letters/numbers/underscores/hyphens';
|
|
29
|
+
}
|
|
30
|
+
if (value.length < 3) {
|
|
31
|
+
return 'Username must be at least 3 characters';
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Handle setup command - interactive wizard
|
|
37
|
+
*/
|
|
38
|
+
async function handleSetup() {
|
|
39
|
+
await (0, ui_1.initUI)();
|
|
40
|
+
console.log('');
|
|
41
|
+
console.log((0, ui_1.header)('Dashboard Auth Setup'));
|
|
42
|
+
console.log('');
|
|
43
|
+
console.log((0, ui_1.info)('Configure username and password for dashboard access.'));
|
|
44
|
+
console.log((0, ui_1.dim)(' Password will be hashed with bcrypt before storage.'));
|
|
45
|
+
console.log('');
|
|
46
|
+
// Check for ENV overrides
|
|
47
|
+
if (process.env.CCS_DASHBOARD_AUTH_ENABLED ||
|
|
48
|
+
process.env.CCS_DASHBOARD_USERNAME ||
|
|
49
|
+
process.env.CCS_DASHBOARD_PASSWORD_HASH) {
|
|
50
|
+
console.log((0, ui_1.warn)('Environment variables detected - they will override config values:'));
|
|
51
|
+
if (process.env.CCS_DASHBOARD_AUTH_ENABLED) {
|
|
52
|
+
console.log(` CCS_DASHBOARD_AUTH_ENABLED=${process.env.CCS_DASHBOARD_AUTH_ENABLED}`);
|
|
53
|
+
}
|
|
54
|
+
if (process.env.CCS_DASHBOARD_USERNAME) {
|
|
55
|
+
console.log(` CCS_DASHBOARD_USERNAME=${process.env.CCS_DASHBOARD_USERNAME}`);
|
|
56
|
+
}
|
|
57
|
+
if (process.env.CCS_DASHBOARD_PASSWORD_HASH) {
|
|
58
|
+
console.log(' CCS_DASHBOARD_PASSWORD_HASH=***');
|
|
59
|
+
}
|
|
60
|
+
console.log('');
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
// Prompt for username
|
|
64
|
+
console.log((0, ui_1.subheader)('Username'));
|
|
65
|
+
const username = await prompt_1.InteractivePrompt.input('Enter username', {
|
|
66
|
+
validate: validateUsername,
|
|
67
|
+
});
|
|
68
|
+
console.log('');
|
|
69
|
+
// Prompt for password
|
|
70
|
+
console.log((0, ui_1.subheader)('Password'));
|
|
71
|
+
console.log((0, ui_1.dim)(` Minimum ${MIN_PASSWORD_LENGTH} characters`));
|
|
72
|
+
const password = await prompt_1.InteractivePrompt.password('Enter password');
|
|
73
|
+
// Validate password length
|
|
74
|
+
if (password.length < MIN_PASSWORD_LENGTH) {
|
|
75
|
+
console.log('');
|
|
76
|
+
console.log((0, ui_1.fail)(`Password must be at least ${MIN_PASSWORD_LENGTH} characters`));
|
|
77
|
+
return { success: false, error: 'Password too short' };
|
|
78
|
+
}
|
|
79
|
+
// Confirm password
|
|
80
|
+
const confirmPassword = await prompt_1.InteractivePrompt.password('Confirm password');
|
|
81
|
+
if (password !== confirmPassword) {
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log((0, ui_1.fail)('Passwords do not match'));
|
|
84
|
+
return { success: false, error: 'Password mismatch' };
|
|
85
|
+
}
|
|
86
|
+
console.log('');
|
|
87
|
+
console.log((0, ui_1.info)('Hashing password...'));
|
|
88
|
+
// Hash password
|
|
89
|
+
const passwordHash = await bcrypt_1.default.hash(password, BCRYPT_ROUNDS);
|
|
90
|
+
// Load existing config and update
|
|
91
|
+
const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
|
|
92
|
+
config.dashboard_auth = {
|
|
93
|
+
enabled: true,
|
|
94
|
+
username,
|
|
95
|
+
password_hash: passwordHash,
|
|
96
|
+
session_timeout_hours: config.dashboard_auth?.session_timeout_hours ?? 24,
|
|
97
|
+
};
|
|
98
|
+
// Save config
|
|
99
|
+
(0, unified_config_loader_1.saveUnifiedConfig)(config);
|
|
100
|
+
console.log('');
|
|
101
|
+
console.log((0, ui_1.ok)('Dashboard authentication configured'));
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log((0, ui_1.info)('Settings saved to ~/.ccs/config.yaml'));
|
|
104
|
+
console.log((0, ui_1.info)(`Username: ${username}`));
|
|
105
|
+
console.log((0, ui_1.info)(`Session timeout: ${config.dashboard_auth.session_timeout_hours} hours`));
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log((0, ui_1.dim)(' Start dashboard: ccs config'));
|
|
108
|
+
console.log((0, ui_1.dim)(' Show status: ccs config auth show'));
|
|
109
|
+
console.log((0, ui_1.dim)(' Disable auth: ccs config auth disable'));
|
|
110
|
+
console.log('');
|
|
111
|
+
return { success: true, username };
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const err = error;
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log((0, ui_1.fail)(`Setup failed: ${err.message}`));
|
|
117
|
+
return { success: false, error: err.message };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.handleSetup = handleSetup;
|
|
121
|
+
//# sourceMappingURL=setup-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../../src/commands/config-auth/setup-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-command.d.ts","sourceRoot":"","sources":["../../../src/commands/config-auth/show-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAwDhD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Auth Show Command
|
|
4
|
+
*
|
|
5
|
+
* Display current dashboard authentication status.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.handleShow = void 0;
|
|
9
|
+
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
10
|
+
const ui_1 = require("../../utils/ui");
|
|
11
|
+
/**
|
|
12
|
+
* Get auth status info with ENV override detection
|
|
13
|
+
*/
|
|
14
|
+
function getAuthStatus() {
|
|
15
|
+
const config = (0, unified_config_loader_1.getDashboardAuthConfig)();
|
|
16
|
+
return {
|
|
17
|
+
enabled: config.enabled,
|
|
18
|
+
configured: !!(config.username && config.password_hash),
|
|
19
|
+
username: config.username,
|
|
20
|
+
sessionTimeoutHours: config.session_timeout_hours ?? 24,
|
|
21
|
+
envOverride: {
|
|
22
|
+
enabled: process.env.CCS_DASHBOARD_AUTH_ENABLED !== undefined,
|
|
23
|
+
username: process.env.CCS_DASHBOARD_USERNAME !== undefined,
|
|
24
|
+
passwordHash: process.env.CCS_DASHBOARD_PASSWORD_HASH !== undefined,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Handle show command - display current auth status
|
|
30
|
+
*/
|
|
31
|
+
async function handleShow() {
|
|
32
|
+
await (0, ui_1.initUI)();
|
|
33
|
+
console.log('');
|
|
34
|
+
console.log((0, ui_1.header)('Dashboard Auth Status'));
|
|
35
|
+
console.log('');
|
|
36
|
+
const status = getAuthStatus();
|
|
37
|
+
// Status section
|
|
38
|
+
console.log((0, ui_1.subheader)('Configuration'));
|
|
39
|
+
if (status.enabled) {
|
|
40
|
+
console.log((0, ui_1.ok)('Authentication: Enabled'));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.log((0, ui_1.info)('Authentication: Disabled'));
|
|
44
|
+
}
|
|
45
|
+
if (status.configured) {
|
|
46
|
+
console.log((0, ui_1.ok)(`Username: ${status.username}`));
|
|
47
|
+
console.log((0, ui_1.info)(`Session timeout: ${status.sessionTimeoutHours} hours`));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log((0, ui_1.warn)('Not configured - run `ccs config auth setup`'));
|
|
51
|
+
}
|
|
52
|
+
console.log('');
|
|
53
|
+
// ENV override section
|
|
54
|
+
const hasEnvOverride = status.envOverride.enabled || status.envOverride.username || status.envOverride.passwordHash;
|
|
55
|
+
if (hasEnvOverride) {
|
|
56
|
+
console.log((0, ui_1.subheader)('Environment Overrides'));
|
|
57
|
+
console.log((0, ui_1.warn)('The following ENV vars override config.yaml:'));
|
|
58
|
+
if (status.envOverride.enabled) {
|
|
59
|
+
const value = process.env.CCS_DASHBOARD_AUTH_ENABLED;
|
|
60
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_AUTH_ENABLED', 'command')}=${value}`);
|
|
61
|
+
}
|
|
62
|
+
if (status.envOverride.username) {
|
|
63
|
+
const value = process.env.CCS_DASHBOARD_USERNAME;
|
|
64
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_USERNAME', 'command')}=${value}`);
|
|
65
|
+
}
|
|
66
|
+
if (status.envOverride.passwordHash) {
|
|
67
|
+
console.log(` ${(0, ui_1.color)('CCS_DASHBOARD_PASSWORD_HASH', 'command')}=***`);
|
|
68
|
+
}
|
|
69
|
+
console.log('');
|
|
70
|
+
}
|
|
71
|
+
// Help section
|
|
72
|
+
console.log((0, ui_1.subheader)('Commands'));
|
|
73
|
+
console.log((0, ui_1.dim)(' ccs config auth setup Configure authentication'));
|
|
74
|
+
console.log((0, ui_1.dim)(' ccs config auth disable Disable authentication'));
|
|
75
|
+
console.log((0, ui_1.dim)(' ccs config Open dashboard'));
|
|
76
|
+
console.log('');
|
|
77
|
+
}
|
|
78
|
+
exports.handleShow = handleShow;
|
|
79
|
+
//# sourceMappingURL=show-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-command.js","sourceRoot":"","sources":["../../../src/commands/config-auth/show-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Auth Command Types
|
|
3
|
+
*
|
|
4
|
+
* Shared interfaces for dashboard authentication CLI commands.
|
|
5
|
+
*/
|
|
6
|
+
export interface ConfigAuthContext {
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface AuthSetupResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
username?: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AuthStatusInfo {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
configured: boolean;
|
|
17
|
+
username: string;
|
|
18
|
+
sessionTimeoutHours: number;
|
|
19
|
+
envOverride: {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
username: boolean;
|
|
22
|
+
passwordHash: boolean;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/config-auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/config-auth/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-command.d.ts","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"config-command.d.ts","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuEH;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EvE"}
|
|
@@ -6,6 +6,29 @@
|
|
|
6
6
|
* Ensures CLIProxy service is running for dashboard features.
|
|
7
7
|
* Usage: ccs config [--port PORT] [--dev]
|
|
8
8
|
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
9
32
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
34
|
};
|
|
@@ -50,10 +73,16 @@ function parseArgs(args) {
|
|
|
50
73
|
*/
|
|
51
74
|
function showHelp() {
|
|
52
75
|
console.log('');
|
|
53
|
-
console.log('Usage: ccs config [options]');
|
|
76
|
+
console.log('Usage: ccs config [command] [options]');
|
|
54
77
|
console.log('');
|
|
55
78
|
console.log('Open web-based configuration dashboard');
|
|
56
79
|
console.log('');
|
|
80
|
+
console.log('Commands:');
|
|
81
|
+
console.log(' auth Manage dashboard authentication');
|
|
82
|
+
console.log(' auth setup Configure username and password');
|
|
83
|
+
console.log(' auth show Display current auth status');
|
|
84
|
+
console.log(' auth disable Disable authentication');
|
|
85
|
+
console.log('');
|
|
57
86
|
console.log('Options:');
|
|
58
87
|
console.log(' --port, -p PORT Specify server port (default: auto-detect)');
|
|
59
88
|
console.log(' --dev Development mode with Vite HMR');
|
|
@@ -63,12 +92,19 @@ function showHelp() {
|
|
|
63
92
|
console.log(' ccs config Auto-detect available port');
|
|
64
93
|
console.log(' ccs config --port 3000 Use specific port');
|
|
65
94
|
console.log(' ccs config --dev Development mode with hot reload');
|
|
95
|
+
console.log(' ccs config auth setup Configure dashboard login');
|
|
66
96
|
console.log('');
|
|
67
97
|
}
|
|
68
98
|
/**
|
|
69
99
|
* Handle config command
|
|
70
100
|
*/
|
|
71
101
|
async function handleConfigCommand(args) {
|
|
102
|
+
// Route subcommands before dashboard launch
|
|
103
|
+
if (args[0] === 'auth') {
|
|
104
|
+
const { handleConfigAuthCommand } = await Promise.resolve().then(() => __importStar(require('./config-auth')));
|
|
105
|
+
await handleConfigAuthCommand(args.slice(1));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
72
108
|
await (0, ui_1.initUI)();
|
|
73
109
|
const options = parseArgs(args);
|
|
74
110
|
const verbose = options.dev || false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"config-command.js","sourceRoot":"","sources":["../../src/commands/config-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-command.d.ts","sourceRoot":"","sources":["../../src/commands/help-command.ts"],"names":[],"mappings":"AAqFA;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"help-command.d.ts","sourceRoot":"","sources":["../../src/commands/help-command.ts"],"names":[],"mappings":"AAqFA;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+PvD"}
|
|
@@ -209,6 +209,8 @@ Run ${(0, ui_1.color)('ccs config', 'command')} for web dashboard`.trim();
|
|
|
209
209
|
['ccs doctor', 'Run health check and diagnostics'],
|
|
210
210
|
['ccs cleanup', 'Remove old CLIProxy logs'],
|
|
211
211
|
['ccs config', 'Open web configuration dashboard'],
|
|
212
|
+
['ccs config auth setup', 'Configure dashboard login'],
|
|
213
|
+
['ccs config auth show', 'Show dashboard auth status'],
|
|
212
214
|
['ccs config --port 3000', 'Use specific port'],
|
|
213
215
|
['ccs sync', 'Sync delegation commands and skills'],
|
|
214
216
|
['ccs update', 'Update CCS to latest version'],
|