opencode-account-manager 0.6.8 → 0.6.9
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/README.md +36 -4
- package/README_VI.md +36 -4
- package/dist/cli.js +50 -8
- package/dist/cli.js.map +1 -1
- package/dist/core/config-store.d.ts +10 -0
- package/dist/core/config-store.d.ts.map +1 -1
- package/dist/core/config-store.js +34 -0
- package/dist/core/config-store.js.map +1 -1
- package/dist/core/health-oauth.d.ts +16 -0
- package/dist/core/health-oauth.d.ts.map +1 -1
- package/dist/core/health-oauth.js +74 -1
- package/dist/core/health-oauth.js.map +1 -1
- package/dist/tui/Dashboard.d.ts.map +1 -1
- package/dist/tui/Dashboard.js +10 -0
- package/dist/tui/Dashboard.js.map +1 -1
- package/docs/ROADMAP.md +6 -1
- package/package.json +1 -1
- package/src/cli.ts +55 -9
- package/src/core/config-store.ts +37 -0
- package/src/core/health-oauth.ts +82 -1
- package/src/tui/Dashboard.tsx +13 -1
package/README.md
CHANGED
|
@@ -102,10 +102,12 @@ opencode-account-manager
|
|
|
102
102
|
ocam list
|
|
103
103
|
|
|
104
104
|
# Export accounts (encrypted by default)
|
|
105
|
-
ocam export -o backup.ocam
|
|
105
|
+
ocam export -o backup.ocam
|
|
106
|
+
# Or with env variable (non-interactive)
|
|
107
|
+
OCAM_EXPORT_PASSWORD="your-password" ocam export -o backup.ocam
|
|
106
108
|
|
|
107
|
-
# Export as plain JSON (
|
|
108
|
-
ocam export -o backup.json --plain
|
|
109
|
+
# Export as plain JSON (requires acknowledgment)
|
|
110
|
+
ocam export -o backup.json --plain --i-understand
|
|
109
111
|
|
|
110
112
|
# Import accounts
|
|
111
113
|
ocam import backup.ocam
|
|
@@ -126,7 +128,11 @@ ocam check --force
|
|
|
126
128
|
ocam --help
|
|
127
129
|
```
|
|
128
130
|
|
|
129
|
-
> **Security
|
|
131
|
+
> **Security Notes**:
|
|
132
|
+
> - CLI export defaults to encrypted format (AES-256-GCM)
|
|
133
|
+
> - Password can be set via `OCAM_EXPORT_PASSWORD` env var or interactive prompt
|
|
134
|
+
> - `--password` flag has been removed for security (avoid exposing passwords in shell history)
|
|
135
|
+
> - Plain export requires both `--plain` and `--i-understand` flags
|
|
130
136
|
|
|
131
137
|
**Health Check OAuth Config**
|
|
132
138
|
Set OAuth client credentials via environment variables:
|
|
@@ -136,6 +142,11 @@ OCAM_OAUTH_CLIENT_ID=...
|
|
|
136
142
|
OCAM_OAUTH_CLIENT_SECRET=...
|
|
137
143
|
OCAM_OAUTH_TOKEN_ENDPOINT=https://oauth2.googleapis.com/token
|
|
138
144
|
```
|
|
145
|
+
|
|
146
|
+
**Security Configuration**
|
|
147
|
+
- **OAuth Endpoint Allowlist**: Only `https://oauth2.googleapis.com/token` is allowed by default
|
|
148
|
+
- **Custom Endpoints**: Set `OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT=true` to use non-standard endpoints
|
|
149
|
+
- **clientSecret Storage**: OCAM warns if `clientSecret` is stored in config file (use env var instead)
|
|
139
150
|
|
|
140
151
|
---
|
|
141
152
|
|
|
@@ -238,6 +249,27 @@ Warning: Failed to parse ocam-config.json - ...
|
|
|
238
249
|
|
|
239
250
|
These warnings appear on CLI startup and help identify configuration issues.
|
|
240
251
|
|
|
252
|
+
### Security Warnings
|
|
253
|
+
|
|
254
|
+
**clientSecret in Config File**
|
|
255
|
+
```
|
|
256
|
+
Warning: OAuth clientSecret should not be stored in ocam-config.json.
|
|
257
|
+
Please use OCAM_OAUTH_CLIENT_SECRET environment variable instead.
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Custom OAuth Endpoint Not Allowed**
|
|
261
|
+
```
|
|
262
|
+
Warning: Custom OAuth token endpoint "..." is not in the allowlist.
|
|
263
|
+
Set OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT=true to allow custom endpoints.
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Plain Text Export Warning**
|
|
267
|
+
```
|
|
268
|
+
⚠️ WARNING: Exporting in PLAIN TEXT format.
|
|
269
|
+
Your account credentials will be visible in the output file.
|
|
270
|
+
This is insecure and should only be used for testing/development.
|
|
271
|
+
```
|
|
272
|
+
|
|
241
273
|
---
|
|
242
274
|
|
|
243
275
|
## Documentation
|
package/README_VI.md
CHANGED
|
@@ -102,10 +102,12 @@ opencode-account-manager
|
|
|
102
102
|
ocam list
|
|
103
103
|
|
|
104
104
|
# Export accounts (mã hóa mặc định)
|
|
105
|
-
ocam export -o backup.ocam
|
|
105
|
+
ocam export -o backup.ocam
|
|
106
|
+
# Hoặc dùng biến môi trường (non-interactive)
|
|
107
|
+
OCAM_EXPORT_PASSWORD="your-password" ocam export -o backup.ocam
|
|
106
108
|
|
|
107
|
-
# Export dạng plain JSON (
|
|
108
|
-
ocam export -o backup.json --plain
|
|
109
|
+
# Export dạng plain JSON (cần xác nhận)
|
|
110
|
+
ocam export -o backup.json --plain --i-understand
|
|
109
111
|
|
|
110
112
|
# Import accounts
|
|
111
113
|
ocam import backup.ocam
|
|
@@ -126,7 +128,11 @@ ocam check --force
|
|
|
126
128
|
ocam --help
|
|
127
129
|
```
|
|
128
130
|
|
|
129
|
-
> **Lưu ý bảo mật**:
|
|
131
|
+
> **Lưu ý bảo mật**:
|
|
132
|
+
> - CLI export mặc định dùng mã hóa (AES-256-GCM)
|
|
133
|
+
> - Mật khẩu có thể nhập qua biến môi trường `OCAM_EXPORT_PASSWORD` hoặc prompt tương tác
|
|
134
|
+
> - Flag `--password` đã bị xóa để bảo mật (tránh lộ mật khẩu trong shell history)
|
|
135
|
+
> - Export dạng plain cần cả hai flag `--plain` và `--i-understand`
|
|
130
136
|
|
|
131
137
|
**Cấu hình OAuth cho Health Check**
|
|
132
138
|
Thiết lập credentials qua biến môi trường:
|
|
@@ -136,6 +142,11 @@ OCAM_OAUTH_CLIENT_ID=...
|
|
|
136
142
|
OCAM_OAUTH_CLIENT_SECRET=...
|
|
137
143
|
OCAM_OAUTH_TOKEN_ENDPOINT=https://oauth2.googleapis.com/token
|
|
138
144
|
```
|
|
145
|
+
|
|
146
|
+
**Cấu hình bảo mật**
|
|
147
|
+
- **OAuth Endpoint Allowlist**: Chỉ cho phép `https://oauth2.googleapis.com/token` mặc định
|
|
148
|
+
- **Custom Endpoints**: Đặt `OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT=true` để dùng endpoint khác
|
|
149
|
+
- **clientSecret Storage**: OCAM cảnh báo nếu `clientSecret` lưu trong file config (nên dùng biến môi trường)
|
|
139
150
|
|
|
140
151
|
---
|
|
141
152
|
|
|
@@ -238,6 +249,27 @@ Warning: Failed to parse ocam-config.json - ...
|
|
|
238
249
|
|
|
239
250
|
Các cảnh báo này xuất hiện khi khởi động CLI và giúp xác định vấn đề cấu hình.
|
|
240
251
|
|
|
252
|
+
### Cảnh báo bảo mật
|
|
253
|
+
|
|
254
|
+
**clientSecret trong file Config**
|
|
255
|
+
```
|
|
256
|
+
Warning: OAuth clientSecret should not be stored in ocam-config.json.
|
|
257
|
+
Please use OCAM_OAUTH_CLIENT_SECRET environment variable instead.
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Custom OAuth Endpoint không được cho phép**
|
|
261
|
+
```
|
|
262
|
+
Warning: Custom OAuth token endpoint "..." is not in the allowlist.
|
|
263
|
+
Set OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT=true to allow custom endpoints.
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Cảnh báo Export Plain Text**
|
|
267
|
+
```
|
|
268
|
+
⚠️ WARNING: Exporting in PLAIN TEXT format.
|
|
269
|
+
Your account credentials will be visible in the output file.
|
|
270
|
+
This is insecure and should only be used for testing/development.
|
|
271
|
+
```
|
|
272
|
+
|
|
241
273
|
---
|
|
242
274
|
|
|
243
275
|
## Tài liệu
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const readline_1 = __importDefault(require("readline"));
|
|
8
9
|
const commander_1 = require("commander");
|
|
9
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
11
|
const accounts_1 = require("./core/accounts");
|
|
@@ -94,6 +95,16 @@ function checkAndPrintConfigWarnings() {
|
|
|
94
95
|
if (appConfigError) {
|
|
95
96
|
console.error(chalk_1.default.yellow(`Warning: Failed to parse ocam-config.json - ${appConfigError.message}`));
|
|
96
97
|
}
|
|
98
|
+
// Check for clientSecret in config (security warning)
|
|
99
|
+
const clientSecretWarning = (0, config_store_1.checkOAuthClientSecretInConfig)();
|
|
100
|
+
if (clientSecretWarning) {
|
|
101
|
+
console.error(chalk_1.default.yellow(clientSecretWarning));
|
|
102
|
+
}
|
|
103
|
+
// Check for custom OAuth endpoint without allow flag
|
|
104
|
+
const customEndpointWarning = (0, config_store_1.checkCustomOAuthEndpointWarning)();
|
|
105
|
+
if (customEndpointWarning) {
|
|
106
|
+
console.error(chalk_1.default.yellow(customEndpointWarning));
|
|
107
|
+
}
|
|
97
108
|
// Clear errors after reporting
|
|
98
109
|
(0, opencode_config_1.clearLastOpencodeConfigError)();
|
|
99
110
|
(0, config_store_1.clearLastConfigError)();
|
|
@@ -176,14 +187,31 @@ program
|
|
|
176
187
|
process.stdout.write("\n");
|
|
177
188
|
printHealthCheckResult(result);
|
|
178
189
|
});
|
|
190
|
+
function promptPassword() {
|
|
191
|
+
return new Promise((resolve, reject) => {
|
|
192
|
+
const rl = readline_1.default.createInterface({
|
|
193
|
+
input: process.stdin,
|
|
194
|
+
output: process.stdout,
|
|
195
|
+
});
|
|
196
|
+
rl.question("Enter encryption password: ", (password) => {
|
|
197
|
+
rl.close();
|
|
198
|
+
if (!password || password.trim().length === 0) {
|
|
199
|
+
reject(new Error("Password cannot be empty"));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
resolve(password.trim());
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
}
|
|
179
207
|
program
|
|
180
208
|
.command("export")
|
|
181
209
|
.description("Export accounts to a portable JSON file")
|
|
182
210
|
.option("--plugin-path <path>", "Path to plugin accounts file")
|
|
183
211
|
.option("-o, --out <path>", "Output file path")
|
|
184
|
-
.option("
|
|
185
|
-
.option("--
|
|
186
|
-
.action((options) => {
|
|
212
|
+
.option("--plain", "Export as plain JSON without encryption (requires --i-understand)")
|
|
213
|
+
.option("--i-understand", "Acknowledge security risk of plain text export")
|
|
214
|
+
.action(async (options) => {
|
|
187
215
|
checkAndPrintConfigWarnings();
|
|
188
216
|
const pluginPath = (0, paths_1.getPluginAccountsPath)(options.pluginPath);
|
|
189
217
|
const file = safeReadPluginFile(pluginPath);
|
|
@@ -192,9 +220,11 @@ program
|
|
|
192
220
|
return;
|
|
193
221
|
}
|
|
194
222
|
const isPlain = options.plain === true;
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
223
|
+
const hasAcknowledgment = options.iUnderstand === true;
|
|
224
|
+
// Plain export requires explicit acknowledgment
|
|
225
|
+
if (isPlain && !hasAcknowledgment) {
|
|
226
|
+
console.log(chalk_1.default.red("Error: Plain text export requires --i-understand flag to acknowledge security risks."));
|
|
227
|
+
console.log(chalk_1.default.yellow("Warning: Plain text export will expose your account credentials in the output file."));
|
|
198
228
|
process.exit(1);
|
|
199
229
|
}
|
|
200
230
|
// Determine output file path
|
|
@@ -205,15 +235,27 @@ program
|
|
|
205
235
|
// Plain text export with warning
|
|
206
236
|
console.log(chalk_1.default.yellow("\n⚠️ WARNING: Exporting in PLAIN TEXT format."));
|
|
207
237
|
console.log(chalk_1.default.yellow(" Your account credentials will be visible in the output file."));
|
|
208
|
-
console.log(chalk_1.default.yellow("
|
|
238
|
+
console.log(chalk_1.default.yellow(" This is insecure and should only be used for testing/development.\n"));
|
|
209
239
|
const exportFile = (0, accounts_1.buildPortableExport)(file.accounts);
|
|
210
240
|
(0, utils_1.writeJsonFile)(outPath, exportFile);
|
|
211
241
|
console.log(chalk_1.default.green(`Exported ${file.accounts.length} accounts to ${outPath}`));
|
|
212
242
|
}
|
|
213
243
|
else {
|
|
244
|
+
// Encrypted export - get password from env or prompt
|
|
245
|
+
let password = process.env.OCAM_EXPORT_PASSWORD;
|
|
246
|
+
if (!password) {
|
|
247
|
+
try {
|
|
248
|
+
password = await promptPassword();
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
console.log(chalk_1.default.red("Error: Password is required for encrypted export."));
|
|
252
|
+
console.log(chalk_1.default.gray("Tip: Set OCAM_EXPORT_PASSWORD environment variable to avoid interactive prompt."));
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
214
256
|
// Encrypted export
|
|
215
257
|
const portableData = (0, accounts_1.buildPortableExport)(file.accounts);
|
|
216
|
-
const encryptedData = (0, crypto_1.encrypt)(portableData,
|
|
258
|
+
const encryptedData = (0, crypto_1.encrypt)(portableData, password);
|
|
217
259
|
const encryptedExport = {
|
|
218
260
|
version: 1,
|
|
219
261
|
format: "encrypted",
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,16 @@ export declare function normalizeHealthKey(email: string): string;
|
|
|
55
55
|
export declare function getHealthSettings(): Required<HealthSettings>;
|
|
56
56
|
export declare function updateHealthSettings(partial: HealthSettings): void;
|
|
57
57
|
export declare function getHealthOAuthConfig(): HealthOAuthConfig | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Check if clientSecret is stored in config file (security risk)
|
|
60
|
+
* Returns warning message if found, undefined otherwise
|
|
61
|
+
*/
|
|
62
|
+
export declare function checkOAuthClientSecretInConfig(): string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Check if custom OAuth endpoint is configured but not allowed
|
|
65
|
+
* Returns warning message if custom endpoint is blocked, undefined otherwise
|
|
66
|
+
*/
|
|
67
|
+
export declare function checkCustomOAuthEndpointWarning(): string | undefined;
|
|
58
68
|
export declare function updateHealthOAuthConfig(partial: HealthOAuthConfig): void;
|
|
59
69
|
export declare function getHealthCache(): Record<string, AccountHealthResult>;
|
|
60
70
|
export declare function getCachedHealth(email: string, ttlMs?: number): AccountHealthResult | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;AAQjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAsCD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAetC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAWnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,cAAc,CAAC,CAQ5D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlE;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAGpE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAOnE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,GAAG,SAAS,CAiBpE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAQxE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAGpE;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,mBAAmB,GAAG,SAAS,CAQjC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAUpF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAY1D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AA2BD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAmDnD"}
|
|
@@ -47,6 +47,8 @@ exports.normalizeHealthKey = normalizeHealthKey;
|
|
|
47
47
|
exports.getHealthSettings = getHealthSettings;
|
|
48
48
|
exports.updateHealthSettings = updateHealthSettings;
|
|
49
49
|
exports.getHealthOAuthConfig = getHealthOAuthConfig;
|
|
50
|
+
exports.checkOAuthClientSecretInConfig = checkOAuthClientSecretInConfig;
|
|
51
|
+
exports.checkCustomOAuthEndpointWarning = checkCustomOAuthEndpointWarning;
|
|
50
52
|
exports.updateHealthOAuthConfig = updateHealthOAuthConfig;
|
|
51
53
|
exports.getHealthCache = getHealthCache;
|
|
52
54
|
exports.getCachedHealth = getCachedHealth;
|
|
@@ -58,6 +60,7 @@ const fs = __importStar(require("fs"));
|
|
|
58
60
|
const path = __importStar(require("path"));
|
|
59
61
|
const os = __importStar(require("os"));
|
|
60
62
|
const utils_1 = require("./utils");
|
|
63
|
+
const health_oauth_1 = require("./health-oauth");
|
|
61
64
|
// ============================================================================
|
|
62
65
|
// Error State
|
|
63
66
|
// ============================================================================
|
|
@@ -212,6 +215,37 @@ function getHealthOAuthConfig() {
|
|
|
212
215
|
const config = readConfig();
|
|
213
216
|
return config.health?.oauth;
|
|
214
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Check if clientSecret is stored in config file (security risk)
|
|
220
|
+
* Returns warning message if found, undefined otherwise
|
|
221
|
+
*/
|
|
222
|
+
function checkOAuthClientSecretInConfig() {
|
|
223
|
+
const config = readConfig();
|
|
224
|
+
const oauthConfig = config.health?.oauth;
|
|
225
|
+
if (oauthConfig?.clientSecret) {
|
|
226
|
+
return "Warning: OAuth clientSecret should not be stored in ocam-config.json. Please use OCAM_OAUTH_CLIENT_SECRET environment variable instead.";
|
|
227
|
+
}
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Check if custom OAuth endpoint is configured but not allowed
|
|
232
|
+
* Returns warning message if custom endpoint is blocked, undefined otherwise
|
|
233
|
+
*/
|
|
234
|
+
function checkCustomOAuthEndpointWarning() {
|
|
235
|
+
const config = readConfig();
|
|
236
|
+
const oauthConfig = config.health?.oauth;
|
|
237
|
+
const envEndpoint = process.env.OCAM_OAUTH_TOKEN_ENDPOINT;
|
|
238
|
+
const configEndpoint = oauthConfig?.tokenEndpoint;
|
|
239
|
+
// Check env variable first (takes precedence)
|
|
240
|
+
if (envEndpoint) {
|
|
241
|
+
return (0, health_oauth_1.getCustomEndpointWarning)(envEndpoint);
|
|
242
|
+
}
|
|
243
|
+
// Then check config
|
|
244
|
+
if (configEndpoint) {
|
|
245
|
+
return (0, health_oauth_1.getCustomEndpointWarning)(configEndpoint);
|
|
246
|
+
}
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
215
249
|
function updateHealthOAuthConfig(partial) {
|
|
216
250
|
const config = readConfig();
|
|
217
251
|
const health = config.health || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import { AccountHealthResult, HealthOAuthConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Check if custom endpoints are allowed via environment variable
|
|
4
|
+
*/
|
|
5
|
+
export declare function isCustomEndpointAllowed(): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Validate if a token endpoint is in the allowlist
|
|
8
|
+
*/
|
|
9
|
+
export declare function isTokenEndpointAllowed(endpoint: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Get the list of allowed token endpoints for display
|
|
12
|
+
*/
|
|
13
|
+
export declare function getAllowedTokenEndpoints(): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Get warning message if custom endpoint is configured but not allowed
|
|
16
|
+
*/
|
|
17
|
+
export declare function getCustomEndpointWarning(configuredEndpoint?: string): string | undefined;
|
|
2
18
|
export declare function isOAuthHealthCheckConfigured(): boolean;
|
|
3
19
|
export declare function buildOAuthRequestBody(refreshToken: string, config: HealthOAuthConfig): string;
|
|
4
20
|
export declare function checkAccountHealthOAuth(refreshToken: string): Promise<AccountHealthResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-oauth.d.ts","sourceRoot":"","sources":["../../src/core/health-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"health-oauth.d.ts","sourceRoot":"","sources":["../../src/core/health-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AA0BjB;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAchE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyBxF;AAgBD,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AA4DD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAQ7F;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC,CA8F9B"}
|
|
@@ -3,6 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isCustomEndpointAllowed = isCustomEndpointAllowed;
|
|
7
|
+
exports.isTokenEndpointAllowed = isTokenEndpointAllowed;
|
|
8
|
+
exports.getAllowedTokenEndpoints = getAllowedTokenEndpoints;
|
|
9
|
+
exports.getCustomEndpointWarning = getCustomEndpointWarning;
|
|
6
10
|
exports.isOAuthHealthCheckConfigured = isOAuthHealthCheckConfigured;
|
|
7
11
|
exports.buildOAuthRequestBody = buildOAuthRequestBody;
|
|
8
12
|
exports.checkAccountHealthOAuth = checkAccountHealthOAuth;
|
|
@@ -10,10 +14,72 @@ const https_1 = __importDefault(require("https"));
|
|
|
10
14
|
const config_store_1 = require("./config-store");
|
|
11
15
|
const DEFAULT_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
|
|
12
16
|
const REQUEST_TIMEOUT_MS = 10000;
|
|
17
|
+
// Allowlist for OAuth token endpoints (security)
|
|
18
|
+
const ALLOWED_TOKEN_ENDPOINTS = [
|
|
19
|
+
"https://oauth2.googleapis.com/token",
|
|
20
|
+
];
|
|
21
|
+
// Environment variable to allow custom endpoints
|
|
22
|
+
const ALLOW_CUSTOM_ENDPOINT_ENV = "OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT";
|
|
23
|
+
/**
|
|
24
|
+
* Check if custom endpoints are allowed via environment variable
|
|
25
|
+
*/
|
|
26
|
+
function isCustomEndpointAllowed() {
|
|
27
|
+
const envValue = process.env[ALLOW_CUSTOM_ENDPOINT_ENV];
|
|
28
|
+
return envValue === "true" || envValue === "1";
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate if a token endpoint is in the allowlist
|
|
32
|
+
*/
|
|
33
|
+
function isTokenEndpointAllowed(endpoint) {
|
|
34
|
+
// Always allow default endpoint
|
|
35
|
+
if (endpoint === DEFAULT_TOKEN_ENDPOINT) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
// Check allowlist
|
|
39
|
+
if (ALLOWED_TOKEN_ENDPOINTS.includes(endpoint)) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
// Check if custom endpoints are allowed via env
|
|
43
|
+
if (isCustomEndpointAllowed()) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the list of allowed token endpoints for display
|
|
50
|
+
*/
|
|
51
|
+
function getAllowedTokenEndpoints() {
|
|
52
|
+
return [...ALLOWED_TOKEN_ENDPOINTS];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get warning message if custom endpoint is configured but not allowed
|
|
56
|
+
*/
|
|
57
|
+
function getCustomEndpointWarning(configuredEndpoint) {
|
|
58
|
+
if (!configuredEndpoint) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const endpoint = configuredEndpoint.trim();
|
|
62
|
+
// Skip if it's the default endpoint
|
|
63
|
+
if (endpoint === DEFAULT_TOKEN_ENDPOINT) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
// Skip if it's in the allowlist
|
|
67
|
+
if (ALLOWED_TOKEN_ENDPOINTS.includes(endpoint)) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
// Check if custom endpoints are allowed
|
|
71
|
+
if (isCustomEndpointAllowed()) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
return `Warning: Custom OAuth token endpoint "${endpoint}" is not in the allowlist. ` +
|
|
75
|
+
`Set ${ALLOW_CUSTOM_ENDPOINT_ENV}=true to allow custom endpoints. ` +
|
|
76
|
+
`Allowed endpoints: ${ALLOWED_TOKEN_ENDPOINTS.join(", ")}`;
|
|
77
|
+
}
|
|
13
78
|
function resolveOAuthConfig() {
|
|
14
79
|
const config = (0, config_store_1.getHealthOAuthConfig)() || {};
|
|
15
80
|
const clientId = process.env.OCAM_OAUTH_CLIENT_ID || config.clientId;
|
|
16
|
-
|
|
81
|
+
// SECURITY: Only read clientSecret from environment variable, never from config file
|
|
82
|
+
const clientSecret = process.env.OCAM_OAUTH_CLIENT_SECRET;
|
|
17
83
|
const tokenEndpoint = process.env.OCAM_OAUTH_TOKEN_ENDPOINT || config.tokenEndpoint;
|
|
18
84
|
if (!clientId || !clientSecret)
|
|
19
85
|
return undefined;
|
|
@@ -101,6 +167,13 @@ async function checkAccountHealthOAuth(refreshToken) {
|
|
|
101
167
|
message: "Token endpoint must use HTTPS protocol",
|
|
102
168
|
});
|
|
103
169
|
}
|
|
170
|
+
// Enforce allowlist for token endpoints
|
|
171
|
+
if (!isTokenEndpointAllowed(tokenEndpoint)) {
|
|
172
|
+
return buildResult("not_configured", "oauth", {
|
|
173
|
+
message: `Token endpoint "${tokenEndpoint}" is not in the allowlist. ` +
|
|
174
|
+
`Set ${ALLOW_CUSTOM_ENDPOINT_ENV}=true to allow custom endpoints.`,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
104
177
|
const body = buildOAuthRequestBody(refreshToken, config);
|
|
105
178
|
return new Promise((resolve) => {
|
|
106
179
|
const request = https_1.default.request(tokenEndpoint, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-oauth.js","sourceRoot":"","sources":["../../src/core/health-oauth.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"health-oauth.js","sourceRoot":"","sources":["../../src/core/health-oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/tui/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAoCnD,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAaD,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/tui/Dashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAoCnD,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAaD,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,cAAc,qBAsoBvD"}
|
package/dist/tui/Dashboard.js
CHANGED
|
@@ -98,6 +98,16 @@ function Dashboard({ pluginPath }) {
|
|
|
98
98
|
else {
|
|
99
99
|
setConfigError(null);
|
|
100
100
|
}
|
|
101
|
+
// Check for clientSecret in config (security warning)
|
|
102
|
+
const clientSecretWarning = (0, config_store_1.checkOAuthClientSecretInConfig)();
|
|
103
|
+
if (clientSecretWarning) {
|
|
104
|
+
setConfigError(clientSecretWarning);
|
|
105
|
+
}
|
|
106
|
+
// Check for custom OAuth endpoint without allow flag
|
|
107
|
+
const customEndpointWarning = (0, config_store_1.checkCustomOAuthEndpointWarning)();
|
|
108
|
+
if (customEndpointWarning) {
|
|
109
|
+
setConfigError(customEndpointWarning);
|
|
110
|
+
}
|
|
101
111
|
};
|
|
102
112
|
const loadAccounts = () => {
|
|
103
113
|
const file = safeReadPluginFile(resolvedPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../src/tui/Dashboard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../src/tui/Dashboard.tsx"],"names":[],"mappings":"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"}
|
package/docs/ROADMAP.md
CHANGED
|
@@ -75,10 +75,15 @@
|
|
|
75
75
|
|
|
76
76
|
### v0.6.5 - Security & CLI Improvements (Current)
|
|
77
77
|
- [x] **Encrypted Export Default** - CLI export now defaults to encrypted format
|
|
78
|
-
- [x] **Password
|
|
78
|
+
- [x] **Password Prompt** - Interactive password prompt or use `OCAM_EXPORT_PASSWORD` env var
|
|
79
|
+
- [x] **Removed --password Flag** - No longer accepts `--password` on command line (security)
|
|
80
|
+
- [x] **Plain Export Acknowledgment** - Plain export requires both `--plain` and `--i-understand` flags
|
|
79
81
|
- [x] **Plaintext Warning** - Security warning shown when exporting without encryption
|
|
80
82
|
- [x] **Config Parse Warnings** - CLI warns when opencode.json or ocam-config.json fails to parse
|
|
81
83
|
- [x] **ExportedFrom Field** - Portable export now includes `exportedFrom: "opencode-account-manager"`
|
|
84
|
+
- [x] **OAuth Endpoint Allowlist** - Only allows `https://oauth2.googleapis.com/token` by default
|
|
85
|
+
- [x] **Custom Endpoint Override** - Set `OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT=true` to allow custom endpoints
|
|
86
|
+
- [x] **clientSecret Warning** - Warns when clientSecret is stored in config file (should use env var)
|
|
82
87
|
|
|
83
88
|
### v0.6.4 - Account Health Check
|
|
84
89
|
- [x] **Health Check Cache** - TTL + cooldown stored in ocam-config.json
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import path from "path";
|
|
4
|
+
import readline from "readline";
|
|
4
5
|
import { Command } from "commander";
|
|
5
6
|
import chalk from "chalk";
|
|
6
7
|
import {
|
|
@@ -20,7 +21,7 @@ import { checkAccountsHealth, HealthCheckResult } from "./core/health-orchestrat
|
|
|
20
21
|
import { AccountHealthStatus, EncryptedExportFile } from "./core/types";
|
|
21
22
|
import { version } from "../package.json";
|
|
22
23
|
import { getLastOpencodeConfigError, clearLastOpencodeConfigError } from "./core/opencode-config";
|
|
23
|
-
import { getLastConfigError, clearLastConfigError } from "./core/config-store";
|
|
24
|
+
import { getLastConfigError, clearLastConfigError, checkOAuthClientSecretInConfig, checkCustomOAuthEndpointWarning } from "./core/config-store";
|
|
24
25
|
import { encrypt } from "./core/crypto";
|
|
25
26
|
|
|
26
27
|
function formatTimestamp(timestamp?: number): string {
|
|
@@ -114,6 +115,18 @@ function checkAndPrintConfigWarnings(): void {
|
|
|
114
115
|
console.error(chalk.yellow(`Warning: Failed to parse ocam-config.json - ${appConfigError.message}`));
|
|
115
116
|
}
|
|
116
117
|
|
|
118
|
+
// Check for clientSecret in config (security warning)
|
|
119
|
+
const clientSecretWarning = checkOAuthClientSecretInConfig();
|
|
120
|
+
if (clientSecretWarning) {
|
|
121
|
+
console.error(chalk.yellow(clientSecretWarning));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Check for custom OAuth endpoint without allow flag
|
|
125
|
+
const customEndpointWarning = checkCustomOAuthEndpointWarning();
|
|
126
|
+
if (customEndpointWarning) {
|
|
127
|
+
console.error(chalk.yellow(customEndpointWarning));
|
|
128
|
+
}
|
|
129
|
+
|
|
117
130
|
// Clear errors after reporting
|
|
118
131
|
clearLastOpencodeConfigError();
|
|
119
132
|
clearLastConfigError();
|
|
@@ -209,14 +222,32 @@ program
|
|
|
209
222
|
printHealthCheckResult(result);
|
|
210
223
|
});
|
|
211
224
|
|
|
225
|
+
function promptPassword(): Promise<string> {
|
|
226
|
+
return new Promise((resolve, reject) => {
|
|
227
|
+
const rl = readline.createInterface({
|
|
228
|
+
input: process.stdin,
|
|
229
|
+
output: process.stdout,
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
rl.question("Enter encryption password: ", (password) => {
|
|
233
|
+
rl.close();
|
|
234
|
+
if (!password || password.trim().length === 0) {
|
|
235
|
+
reject(new Error("Password cannot be empty"));
|
|
236
|
+
} else {
|
|
237
|
+
resolve(password.trim());
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
212
243
|
program
|
|
213
244
|
.command("export")
|
|
214
245
|
.description("Export accounts to a portable JSON file")
|
|
215
246
|
.option("--plugin-path <path>", "Path to plugin accounts file")
|
|
216
247
|
.option("-o, --out <path>", "Output file path")
|
|
217
|
-
.option("
|
|
218
|
-
.option("--
|
|
219
|
-
.action((options) => {
|
|
248
|
+
.option("--plain", "Export as plain JSON without encryption (requires --i-understand)")
|
|
249
|
+
.option("--i-understand", "Acknowledge security risk of plain text export")
|
|
250
|
+
.action(async (options) => {
|
|
220
251
|
checkAndPrintConfigWarnings();
|
|
221
252
|
const pluginPath = getPluginAccountsPath(options.pluginPath);
|
|
222
253
|
const file = safeReadPluginFile(pluginPath);
|
|
@@ -227,10 +258,12 @@ program
|
|
|
227
258
|
}
|
|
228
259
|
|
|
229
260
|
const isPlain = options.plain === true;
|
|
261
|
+
const hasAcknowledgment = options.iUnderstand === true;
|
|
230
262
|
|
|
231
|
-
//
|
|
232
|
-
if (
|
|
233
|
-
console.log(chalk.red("Error:
|
|
263
|
+
// Plain export requires explicit acknowledgment
|
|
264
|
+
if (isPlain && !hasAcknowledgment) {
|
|
265
|
+
console.log(chalk.red("Error: Plain text export requires --i-understand flag to acknowledge security risks."));
|
|
266
|
+
console.log(chalk.yellow("Warning: Plain text export will expose your account credentials in the output file."));
|
|
234
267
|
process.exit(1);
|
|
235
268
|
}
|
|
236
269
|
|
|
@@ -243,15 +276,28 @@ program
|
|
|
243
276
|
// Plain text export with warning
|
|
244
277
|
console.log(chalk.yellow("\n⚠️ WARNING: Exporting in PLAIN TEXT format."));
|
|
245
278
|
console.log(chalk.yellow(" Your account credentials will be visible in the output file."));
|
|
246
|
-
console.log(chalk.yellow("
|
|
279
|
+
console.log(chalk.yellow(" This is insecure and should only be used for testing/development.\n"));
|
|
247
280
|
|
|
248
281
|
const exportFile = buildPortableExport(file.accounts);
|
|
249
282
|
writeJsonFile(outPath, exportFile);
|
|
250
283
|
console.log(chalk.green(`Exported ${file.accounts.length} accounts to ${outPath}`));
|
|
251
284
|
} else {
|
|
285
|
+
// Encrypted export - get password from env or prompt
|
|
286
|
+
let password = process.env.OCAM_EXPORT_PASSWORD;
|
|
287
|
+
|
|
288
|
+
if (!password) {
|
|
289
|
+
try {
|
|
290
|
+
password = await promptPassword();
|
|
291
|
+
} catch (err) {
|
|
292
|
+
console.log(chalk.red("Error: Password is required for encrypted export."));
|
|
293
|
+
console.log(chalk.gray("Tip: Set OCAM_EXPORT_PASSWORD environment variable to avoid interactive prompt."));
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
252
298
|
// Encrypted export
|
|
253
299
|
const portableData = buildPortableExport(file.accounts);
|
|
254
|
-
const encryptedData = encrypt(portableData,
|
|
300
|
+
const encryptedData = encrypt(portableData, password);
|
|
255
301
|
|
|
256
302
|
const encryptedExport: EncryptedExportFile = {
|
|
257
303
|
version: 1,
|
package/src/core/config-store.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
HealthSettings,
|
|
9
9
|
} from "./types";
|
|
10
10
|
import { toLowerTrim } from "./utils";
|
|
11
|
+
import { getCustomEndpointWarning } from "./health-oauth";
|
|
11
12
|
|
|
12
13
|
// ============================================================================
|
|
13
14
|
// Types
|
|
@@ -207,6 +208,42 @@ export function getHealthOAuthConfig(): HealthOAuthConfig | undefined {
|
|
|
207
208
|
return config.health?.oauth;
|
|
208
209
|
}
|
|
209
210
|
|
|
211
|
+
/**
|
|
212
|
+
* Check if clientSecret is stored in config file (security risk)
|
|
213
|
+
* Returns warning message if found, undefined otherwise
|
|
214
|
+
*/
|
|
215
|
+
export function checkOAuthClientSecretInConfig(): string | undefined {
|
|
216
|
+
const config = readConfig();
|
|
217
|
+
const oauthConfig = config.health?.oauth;
|
|
218
|
+
if (oauthConfig?.clientSecret) {
|
|
219
|
+
return "Warning: OAuth clientSecret should not be stored in ocam-config.json. Please use OCAM_OAUTH_CLIENT_SECRET environment variable instead.";
|
|
220
|
+
}
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Check if custom OAuth endpoint is configured but not allowed
|
|
226
|
+
* Returns warning message if custom endpoint is blocked, undefined otherwise
|
|
227
|
+
*/
|
|
228
|
+
export function checkCustomOAuthEndpointWarning(): string | undefined {
|
|
229
|
+
const config = readConfig();
|
|
230
|
+
const oauthConfig = config.health?.oauth;
|
|
231
|
+
const envEndpoint = process.env.OCAM_OAUTH_TOKEN_ENDPOINT;
|
|
232
|
+
const configEndpoint = oauthConfig?.tokenEndpoint;
|
|
233
|
+
|
|
234
|
+
// Check env variable first (takes precedence)
|
|
235
|
+
if (envEndpoint) {
|
|
236
|
+
return getCustomEndpointWarning(envEndpoint);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Then check config
|
|
240
|
+
if (configEndpoint) {
|
|
241
|
+
return getCustomEndpointWarning(configEndpoint);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
|
|
210
247
|
export function updateHealthOAuthConfig(partial: HealthOAuthConfig): void {
|
|
211
248
|
const config = readConfig();
|
|
212
249
|
const health = config.health || {};
|
package/src/core/health-oauth.ts
CHANGED
|
@@ -9,6 +9,14 @@ import { getHealthOAuthConfig } from "./config-store";
|
|
|
9
9
|
const DEFAULT_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
|
|
10
10
|
const REQUEST_TIMEOUT_MS = 10000;
|
|
11
11
|
|
|
12
|
+
// Allowlist for OAuth token endpoints (security)
|
|
13
|
+
const ALLOWED_TOKEN_ENDPOINTS = [
|
|
14
|
+
"https://oauth2.googleapis.com/token",
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
// Environment variable to allow custom endpoints
|
|
18
|
+
const ALLOW_CUSTOM_ENDPOINT_ENV = "OCAM_OAUTH_ALLOW_CUSTOM_ENDPOINT";
|
|
19
|
+
|
|
12
20
|
interface OAuthErrorResponse {
|
|
13
21
|
error?: string;
|
|
14
22
|
error_description?: string;
|
|
@@ -21,10 +29,75 @@ interface OAuthSuccessResponse {
|
|
|
21
29
|
token_type?: string;
|
|
22
30
|
}
|
|
23
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Check if custom endpoints are allowed via environment variable
|
|
34
|
+
*/
|
|
35
|
+
export function isCustomEndpointAllowed(): boolean {
|
|
36
|
+
const envValue = process.env[ALLOW_CUSTOM_ENDPOINT_ENV];
|
|
37
|
+
return envValue === "true" || envValue === "1";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Validate if a token endpoint is in the allowlist
|
|
42
|
+
*/
|
|
43
|
+
export function isTokenEndpointAllowed(endpoint: string): boolean {
|
|
44
|
+
// Always allow default endpoint
|
|
45
|
+
if (endpoint === DEFAULT_TOKEN_ENDPOINT) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
// Check allowlist
|
|
49
|
+
if (ALLOWED_TOKEN_ENDPOINTS.includes(endpoint)) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
// Check if custom endpoints are allowed via env
|
|
53
|
+
if (isCustomEndpointAllowed()) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get the list of allowed token endpoints for display
|
|
61
|
+
*/
|
|
62
|
+
export function getAllowedTokenEndpoints(): string[] {
|
|
63
|
+
return [...ALLOWED_TOKEN_ENDPOINTS];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get warning message if custom endpoint is configured but not allowed
|
|
68
|
+
*/
|
|
69
|
+
export function getCustomEndpointWarning(configuredEndpoint?: string): string | undefined {
|
|
70
|
+
if (!configuredEndpoint) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const endpoint = configuredEndpoint.trim();
|
|
75
|
+
|
|
76
|
+
// Skip if it's the default endpoint
|
|
77
|
+
if (endpoint === DEFAULT_TOKEN_ENDPOINT) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Skip if it's in the allowlist
|
|
82
|
+
if (ALLOWED_TOKEN_ENDPOINTS.includes(endpoint)) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Check if custom endpoints are allowed
|
|
87
|
+
if (isCustomEndpointAllowed()) {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return `Warning: Custom OAuth token endpoint "${endpoint}" is not in the allowlist. ` +
|
|
92
|
+
`Set ${ALLOW_CUSTOM_ENDPOINT_ENV}=true to allow custom endpoints. ` +
|
|
93
|
+
`Allowed endpoints: ${ALLOWED_TOKEN_ENDPOINTS.join(", ")}`;
|
|
94
|
+
}
|
|
95
|
+
|
|
24
96
|
function resolveOAuthConfig(): HealthOAuthConfig | undefined {
|
|
25
97
|
const config = getHealthOAuthConfig() || {};
|
|
26
98
|
const clientId = process.env.OCAM_OAUTH_CLIENT_ID || config.clientId;
|
|
27
|
-
|
|
99
|
+
// SECURITY: Only read clientSecret from environment variable, never from config file
|
|
100
|
+
const clientSecret = process.env.OCAM_OAUTH_CLIENT_SECRET;
|
|
28
101
|
const tokenEndpoint = process.env.OCAM_OAUTH_TOKEN_ENDPOINT || config.tokenEndpoint;
|
|
29
102
|
if (!clientId || !clientSecret) return undefined;
|
|
30
103
|
return {
|
|
@@ -130,6 +203,14 @@ export async function checkAccountHealthOAuth(
|
|
|
130
203
|
message: "Token endpoint must use HTTPS protocol",
|
|
131
204
|
});
|
|
132
205
|
}
|
|
206
|
+
|
|
207
|
+
// Enforce allowlist for token endpoints
|
|
208
|
+
if (!isTokenEndpointAllowed(tokenEndpoint)) {
|
|
209
|
+
return buildResult("not_configured", "oauth", {
|
|
210
|
+
message: `Token endpoint "${tokenEndpoint}" is not in the allowlist. ` +
|
|
211
|
+
`Set ${ALLOW_CUSTOM_ENDPOINT_ENV}=true to allow custom endpoints.`,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
133
214
|
const body = buildOAuthRequestBody(refreshToken, config);
|
|
134
215
|
|
|
135
216
|
return new Promise<AccountHealthResult>((resolve) => {
|
package/src/tui/Dashboard.tsx
CHANGED
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
getLastOpencodeConfigError,
|
|
31
31
|
clearLastOpencodeConfigError,
|
|
32
32
|
} from "../core/opencode-config";
|
|
33
|
-
import { getLastConfigError, clearLastConfigError } from "../core/config-store";
|
|
33
|
+
import { getLastConfigError, clearLastConfigError, checkOAuthClientSecretInConfig, checkCustomOAuthEndpointWarning } from "../core/config-store";
|
|
34
34
|
import { checkAccountsHealth } from "../core/health-orchestrator";
|
|
35
35
|
import { getHealthCache, normalizeHealthKey } from "../core/config-store";
|
|
36
36
|
|
|
@@ -105,6 +105,18 @@ export function Dashboard({ pluginPath }: DashboardProps) {
|
|
|
105
105
|
} else {
|
|
106
106
|
setConfigError(null);
|
|
107
107
|
}
|
|
108
|
+
|
|
109
|
+
// Check for clientSecret in config (security warning)
|
|
110
|
+
const clientSecretWarning = checkOAuthClientSecretInConfig();
|
|
111
|
+
if (clientSecretWarning) {
|
|
112
|
+
setConfigError(clientSecretWarning);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Check for custom OAuth endpoint without allow flag
|
|
116
|
+
const customEndpointWarning = checkCustomOAuthEndpointWarning();
|
|
117
|
+
if (customEndpointWarning) {
|
|
118
|
+
setConfigError(customEndpointWarning);
|
|
119
|
+
}
|
|
108
120
|
};
|
|
109
121
|
|
|
110
122
|
const loadAccounts = () => {
|