@kaitranntt/ccs 7.19.1 → 7.19.2-dev.1

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.
Files changed (86) hide show
  1. package/dist/commands/config-auth/disable-command.d.ts +10 -0
  2. package/dist/commands/config-auth/disable-command.d.ts.map +1 -0
  3. package/dist/commands/config-auth/disable-command.js +64 -0
  4. package/dist/commands/config-auth/disable-command.js.map +1 -0
  5. package/dist/commands/config-auth/index.d.ts +14 -0
  6. package/dist/commands/config-auth/index.d.ts.map +1 -0
  7. package/dist/commands/config-auth/index.js +84 -0
  8. package/dist/commands/config-auth/index.js.map +1 -0
  9. package/dist/commands/config-auth/setup-command.d.ts +13 -0
  10. package/dist/commands/config-auth/setup-command.d.ts.map +1 -0
  11. package/dist/commands/config-auth/setup-command.js +121 -0
  12. package/dist/commands/config-auth/setup-command.js.map +1 -0
  13. package/dist/commands/config-auth/show-command.d.ts +10 -0
  14. package/dist/commands/config-auth/show-command.d.ts.map +1 -0
  15. package/dist/commands/config-auth/show-command.js +79 -0
  16. package/dist/commands/config-auth/show-command.js.map +1 -0
  17. package/dist/commands/config-auth/types.d.ts +25 -0
  18. package/dist/commands/config-auth/types.d.ts.map +1 -0
  19. package/dist/commands/config-auth/types.js +8 -0
  20. package/dist/commands/config-auth/types.js.map +1 -0
  21. package/dist/commands/config-command.d.ts.map +1 -1
  22. package/dist/commands/config-command.js +37 -1
  23. package/dist/commands/config-command.js.map +1 -1
  24. package/dist/commands/help-command.d.ts.map +1 -1
  25. package/dist/commands/help-command.js +2 -0
  26. package/dist/commands/help-command.js.map +1 -1
  27. package/dist/config/unified-config-loader.d.ts +6 -1
  28. package/dist/config/unified-config-loader.d.ts.map +1 -1
  29. package/dist/config/unified-config-loader.js +41 -1
  30. package/dist/config/unified-config-loader.js.map +1 -1
  31. package/dist/config/unified-config-types.d.ts +22 -0
  32. package/dist/config/unified-config-types.d.ts.map +1 -1
  33. package/dist/config/unified-config-types.js +12 -1
  34. package/dist/config/unified-config-types.js.map +1 -1
  35. package/dist/ui/assets/accounts-BalhEi_Q.js +1 -0
  36. package/dist/ui/assets/{alert-dialog-CnDvl5IB.js → alert-dialog-BihHyQWt.js} +1 -1
  37. package/dist/ui/assets/api-DfXVyQ9q.js +1 -0
  38. package/dist/ui/assets/{auth-section-DbZac9VD.js → auth-section-2VOlqT5f.js} +1 -1
  39. package/dist/ui/assets/{charts-CJC4bH8P.js → charts-BBPXh0Ar.js} +1 -1
  40. package/dist/ui/assets/cliproxy-D7dRdfxQ.js +3 -0
  41. package/dist/ui/assets/{cliproxy-control-panel-CP-dhv4O.js → cliproxy-control-panel-BmdGbwrb.js} +1 -1
  42. package/dist/ui/assets/{code-highlight-DKN39ySy.js → code-highlight-BRUf_pqB.js} +1 -1
  43. package/dist/ui/assets/{confirm-dialog-w5D52_lL.js → confirm-dialog-mqF6YOLY.js} +1 -1
  44. package/dist/ui/assets/copilot-2sX-I5wM.js +4 -0
  45. package/dist/ui/assets/{form-utils-kUVlZZAO.js → form-utils-C-pVd1--.js} +1 -1
  46. package/dist/ui/assets/globalenv-section-BxLXeomI.js +1 -0
  47. package/dist/ui/assets/{health-BaRdlHhs.js → health-BNmfbrDj.js} +1 -1
  48. package/dist/ui/assets/icons-WqZToXEO.js +1 -0
  49. package/dist/ui/assets/index-CNsISHN_.css +1 -0
  50. package/dist/ui/assets/index-Dn2mUxH5.js +47 -0
  51. package/dist/ui/assets/{index-BuLI32Lk.js → index-NRrX9V9T.js} +1 -1
  52. package/dist/ui/assets/{index-CAdQ23xy.js → index-Ukp0OKvb.js} +1 -1
  53. package/dist/ui/assets/index-rYsMzAsc.js +1 -0
  54. package/dist/ui/assets/{notifications-dJQY2-U6.js → notifications-B2HqRBj7.js} +1 -1
  55. package/dist/ui/assets/{radix-ui-CBgg0XeO.js → radix-ui-CFOhsBGh.js} +4 -4
  56. package/dist/ui/assets/{react-vendor-B_CU-WTZ.js → react-vendor-CNOkPC89.js} +2 -2
  57. package/dist/ui/assets/shared-CT1Buk-w.js +1 -0
  58. package/dist/ui/assets/{switch-Kx7oj3ow.js → switch-Cyuniy_w.js} +1 -1
  59. package/dist/ui/assets/{tanstack-CxYN0q6L.js → tanstack-U3Rle5gh.js} +1 -1
  60. package/dist/ui/index.html +9 -9
  61. package/dist/web-server/index.d.ts.map +1 -1
  62. package/dist/web-server/index.js +5 -0
  63. package/dist/web-server/index.js.map +1 -1
  64. package/dist/web-server/middleware/auth-middleware.d.ts +27 -0
  65. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -0
  66. package/dist/web-server/middleware/auth-middleware.js +116 -0
  67. package/dist/web-server/middleware/auth-middleware.js.map +1 -0
  68. package/dist/web-server/routes/auth-routes.d.ts +7 -0
  69. package/dist/web-server/routes/auth-routes.d.ts.map +1 -0
  70. package/dist/web-server/routes/auth-routes.js +108 -0
  71. package/dist/web-server/routes/auth-routes.js.map +1 -0
  72. package/dist/web-server/routes/index.d.ts.map +1 -1
  73. package/dist/web-server/routes/index.js +3 -0
  74. package/dist/web-server/routes/index.js.map +1 -1
  75. package/package.json +6 -1
  76. package/dist/ui/assets/accounts-CJISzCiC.js +0 -1
  77. package/dist/ui/assets/api-DP559Tqr.js +0 -1
  78. package/dist/ui/assets/card-nbrHgs37.js +0 -1
  79. package/dist/ui/assets/cliproxy-ssaB44zs.js +0 -3
  80. package/dist/ui/assets/copilot-DsYQqfFs.js +0 -4
  81. package/dist/ui/assets/globalenv-section-Bli3PW-y.js +0 -1
  82. package/dist/ui/assets/icons-CZDQWWm2.js +0 -1
  83. package/dist/ui/assets/index-B7MyxZLG.js +0 -47
  84. package/dist/ui/assets/index-BX0IVNt5.css +0 -1
  85. package/dist/ui/assets/index-DIrZx85u.js +0 -1
  86. 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,10 @@
1
+ /**
2
+ * Config Auth Show Command
3
+ *
4
+ * Display current dashboard authentication status.
5
+ */
6
+ /**
7
+ * Handle show command - display current auth status
8
+ */
9
+ export declare function handleShow(): Promise<void>;
10
+ //# sourceMappingURL=show-command.d.ts.map
@@ -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":";AAAA;;;;GAIG;;;AAEH,8EAA4E;AAC5E,uCAAuF;AAGvF;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG,IAAA,8CAAsB,GAAE,CAAC;IAExC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;QACvD,WAAW,EAAE;YACX,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,SAAS;YAC7D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,SAAS;YAC1D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,SAAS;SACpE;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAA,WAAM,GAAE,CAAC;IAEf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,WAAM,EAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,eAAe,CAAC,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,yBAAyB,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,0BAA0B,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,IAAA,OAAE,EAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,oBAAoB,MAAM,CAAC,mBAAmB,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,8CAA8C,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,uBAAuB;IACvB,MAAM,cAAc,GAClB,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;IAE/F,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,uBAAuB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAA,SAAI,EAAC,8CAA8C,CAAC,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,4BAA4B,EAAE,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,wBAAwB,EAAE,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,UAAK,EAAC,6BAA6B,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,IAAA,cAAS,EAAC,UAAU,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,IAAA,QAAG,EAAC,sDAAsD,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,IAAA,QAAG,EAAC,oDAAoD,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,IAAA,QAAG,EAAC,4CAA4C,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAxDD,gCAwDC"}
@@ -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,8 @@
1
+ "use strict";
2
+ /**
3
+ * Config Auth Command Types
4
+ *
5
+ * Shared interfaces for dashboard authentication CLI commands.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -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;AAgEH;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEvE"}
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":"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"}
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,CA6PvD"}
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'],