brightspace-mcp-server 1.6.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -7
- package/build/api/client.d.ts +5 -3
- package/build/api/client.d.ts.map +1 -1
- package/build/api/client.js +71 -79
- package/build/api/client.js.map +1 -1
- package/build/api/errors.d.ts +4 -0
- package/build/api/errors.d.ts.map +1 -1
- package/build/api/errors.js +7 -0
- package/build/api/errors.js.map +1 -1
- package/build/auth/auth-cooldown.d.ts +16 -0
- package/build/auth/auth-cooldown.d.ts.map +1 -0
- package/build/auth/auth-cooldown.js +47 -0
- package/build/auth/auth-cooldown.js.map +1 -0
- package/build/auth/auth-lock.d.ts +7 -0
- package/build/auth/auth-lock.d.ts.map +1 -0
- package/build/auth/auth-lock.js +114 -0
- package/build/auth/auth-lock.js.map +1 -0
- package/build/auth/auth-runner.d.ts +17 -7
- package/build/auth/auth-runner.d.ts.map +1 -1
- package/build/auth/auth-runner.js +122 -26
- package/build/auth/auth-runner.js.map +1 -1
- package/build/auth/browser-auth.d.ts +19 -67
- package/build/auth/browser-auth.d.ts.map +1 -1
- package/build/auth/browser-auth.js +258 -574
- package/build/auth/browser-auth.js.map +1 -1
- package/build/auth/browser-state-store.d.ts +19 -0
- package/build/auth/browser-state-store.d.ts.map +1 -0
- package/build/auth/browser-state-store.js +101 -0
- package/build/auth/browser-state-store.js.map +1 -0
- package/build/auth/credential-store.d.ts +29 -0
- package/build/auth/credential-store.d.ts.map +1 -0
- package/build/auth/credential-store.js +233 -0
- package/build/auth/credential-store.js.map +1 -0
- package/build/auth/encrypted-store.d.ts +25 -0
- package/build/auth/encrypted-store.d.ts.map +1 -0
- package/build/auth/encrypted-store.js +61 -0
- package/build/auth/encrypted-store.js.map +1 -0
- package/build/auth/legacy-profile.d.ts +3 -0
- package/build/auth/legacy-profile.d.ts.map +1 -0
- package/build/auth/legacy-profile.js +41 -0
- package/build/auth/legacy-profile.js.map +1 -0
- package/build/auth/legacy-state.d.ts +14 -0
- package/build/auth/legacy-state.d.ts.map +1 -0
- package/build/auth/legacy-state.js +107 -0
- package/build/auth/legacy-state.js.map +1 -0
- package/build/auth/purdue-sso.d.ts +18 -36
- package/build/auth/purdue-sso.d.ts.map +1 -1
- package/build/auth/purdue-sso.js +165 -192
- package/build/auth/purdue-sso.js.map +1 -1
- package/build/auth/session-store.d.ts +16 -38
- package/build/auth/session-store.d.ts.map +1 -1
- package/build/auth/session-store.js +157 -152
- package/build/auth/session-store.js.map +1 -1
- package/build/auth/sso-flow.d.ts +14 -3
- package/build/auth/sso-flow.d.ts.map +1 -1
- package/build/auth/sso-flow.js +16 -1
- package/build/auth/sso-flow.js.map +1 -1
- package/build/auth/suny-sso.d.ts +3 -2
- package/build/auth/suny-sso.d.ts.map +1 -1
- package/build/auth/suny-sso.js +15 -24
- package/build/auth/suny-sso.js.map +1 -1
- package/build/auth/token-manager.d.ts +10 -3
- package/build/auth/token-manager.d.ts.map +1 -1
- package/build/auth/token-manager.js +62 -26
- package/build/auth/token-manager.js.map +1 -1
- package/build/auth/token-mint.d.ts +2 -2
- package/build/auth/token-mint.d.ts.map +1 -1
- package/build/auth/token-mint.js +31 -9
- package/build/auth/token-mint.js.map +1 -1
- package/build/auth-cli.d.ts +1 -7
- package/build/auth-cli.d.ts.map +1 -1
- package/build/auth-cli.js +29 -73
- package/build/auth-cli.js.map +1 -1
- package/build/index.js +8 -4
- package/build/index.js.map +1 -1
- package/build/setup.js +14 -8
- package/build/setup.js.map +1 -1
- package/build/types/index.d.ts +6 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/utils/config-store.d.ts +1 -0
- package/build/utils/config-store.d.ts.map +1 -1
- package/build/utils/config-store.js +3 -0
- package/build/utils/config-store.js.map +1 -1
- package/build/utils/config.d.ts +2 -1
- package/build/utils/config.d.ts.map +1 -1
- package/build/utils/config.js +30 -10
- package/build/utils/config.js.map +1 -1
- package/build/utils/secure-config.d.ts +6 -0
- package/build/utils/secure-config.d.ts.map +1 -0
- package/build/utils/secure-config.js +57 -0
- package/build/utils/secure-config.js.map +1 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/auth/browser-auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/auth/browser-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
import type { BrowserContext } from "playwright";
|
|
7
|
+
import { type SecureStoreOptions } from "./encrypted-store.js";
|
|
8
|
+
export type BrowserState = Awaited<ReturnType<BrowserContext["storageState"]>>;
|
|
9
|
+
export declare class BrowserStateStore {
|
|
10
|
+
private readonly sessionDir;
|
|
11
|
+
private readonly options;
|
|
12
|
+
private readonly file;
|
|
13
|
+
private readonly legacyFile;
|
|
14
|
+
constructor(sessionDir: string, options?: SecureStoreOptions);
|
|
15
|
+
private storeError;
|
|
16
|
+
load(): Promise<BrowserState | undefined>;
|
|
17
|
+
save(state: BrowserState): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=browser-state-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-state-store.d.ts","sourceRoot":"","sources":["../../src/auth/browser-state-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAuD,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEpH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAY/E,qBAAa,iBAAiB;IAIhB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHzE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEP,UAAU,EAAE,MAAM,EAAmB,OAAO,GAAE,kBAAuB;IAKlG,OAAO,CAAC,UAAU;IAKZ,IAAI,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAqCzC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAc/C"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import * as path from "node:path";
|
|
8
|
+
import { SessionStoreError } from "../utils/errors.js";
|
|
9
|
+
import { NativeCredentialStoreError } from "./credential-store.js";
|
|
10
|
+
import { readEncryptedRecord, saveEncryptedRecord, trashFile } from "./encrypted-store.js";
|
|
11
|
+
function validState(value) {
|
|
12
|
+
const state = value;
|
|
13
|
+
return !!state && Array.isArray(state.cookies) && Array.isArray(state.origins)
|
|
14
|
+
&& state.cookies.every((cookie) => cookie && typeof cookie.name === "string" && typeof cookie.value === "string"
|
|
15
|
+
&& typeof cookie.domain === "string" && typeof cookie.path === "string" && Number.isFinite(cookie.expires)
|
|
16
|
+
&& typeof cookie.httpOnly === "boolean" && typeof cookie.secure === "boolean" && ["Strict", "Lax", "None"].includes(cookie.sameSite))
|
|
17
|
+
&& state.origins.every((origin) => origin && typeof origin.origin === "string" && Array.isArray(origin.localStorage)
|
|
18
|
+
&& origin.localStorage.every((item) => item && typeof item.name === "string" && typeof item.value === "string"));
|
|
19
|
+
}
|
|
20
|
+
export class BrowserStateStore {
|
|
21
|
+
sessionDir;
|
|
22
|
+
options;
|
|
23
|
+
file;
|
|
24
|
+
legacyFile;
|
|
25
|
+
constructor(sessionDir, options = {}) {
|
|
26
|
+
this.sessionDir = sessionDir;
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.file = path.join(sessionDir, "storage-state.encrypted.json");
|
|
29
|
+
this.legacyFile = path.join(sessionDir, "storage-state.json");
|
|
30
|
+
}
|
|
31
|
+
storeError(action, error) {
|
|
32
|
+
if (error instanceof NativeCredentialStoreError)
|
|
33
|
+
throw error;
|
|
34
|
+
throw new SessionStoreError(`Failed to ${action} browser session. Existing session data was preserved.`, error instanceof Error ? error : new Error(String(error)));
|
|
35
|
+
}
|
|
36
|
+
async load() {
|
|
37
|
+
try {
|
|
38
|
+
let contents;
|
|
39
|
+
let legacy = false;
|
|
40
|
+
try {
|
|
41
|
+
contents = await fs.readFile(this.file, "utf8");
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error.code !== "ENOENT")
|
|
45
|
+
throw error;
|
|
46
|
+
try {
|
|
47
|
+
contents = await fs.readFile(this.legacyFile, "utf8");
|
|
48
|
+
legacy = true;
|
|
49
|
+
}
|
|
50
|
+
catch (legacyError) {
|
|
51
|
+
if (legacyError.code === "ENOENT")
|
|
52
|
+
return undefined;
|
|
53
|
+
throw legacyError;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const state = legacy ? JSON.parse(contents) : await readEncryptedRecord(this.sessionDir, JSON.parse(contents), "browser-state", this.options);
|
|
57
|
+
if (!validState(state))
|
|
58
|
+
throw new Error("Invalid saved browser state.");
|
|
59
|
+
if (legacy) {
|
|
60
|
+
await this.save(state);
|
|
61
|
+
await trashFile(this.legacyFile, this.options);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// A prior migration can have committed encryption before Trash failed.
|
|
65
|
+
try {
|
|
66
|
+
const leftover = JSON.parse(await fs.readFile(this.legacyFile, "utf8"));
|
|
67
|
+
if (!validState(leftover))
|
|
68
|
+
throw new Error("Invalid legacy browser state was preserved.");
|
|
69
|
+
await trashFile(this.legacyFile, this.options);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error.code !== "ENOENT")
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return state;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
this.storeError("load", error);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async save(state) {
|
|
83
|
+
try {
|
|
84
|
+
if (!validState(state))
|
|
85
|
+
throw new Error("Invalid browser state.");
|
|
86
|
+
try {
|
|
87
|
+
const current = JSON.parse(await fs.readFile(this.file, "utf8"));
|
|
88
|
+
await readEncryptedRecord(this.sessionDir, current, "browser-state", this.options);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.code !== "ENOENT")
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
await saveEncryptedRecord(this.sessionDir, this.file, "browser-state", state, this.options);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
this.storeError("save", error);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=browser-state-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-state-store.js","sourceRoot":"","sources":["../../src/auth/browser-state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
export interface CredentialBackend {
|
|
7
|
+
getPassword(service: string, account: string): Promise<string | null>;
|
|
8
|
+
setPassword(service: string, account: string, password: string): Promise<void>;
|
|
9
|
+
deletePassword(service: string, account: string): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare class NativeCredentialStoreError extends Error {
|
|
12
|
+
readonly code = "NATIVE_CREDENTIAL_STORE_UNAVAILABLE";
|
|
13
|
+
constructor(message?: string, cause?: unknown);
|
|
14
|
+
}
|
|
15
|
+
export interface SecretToolResult {
|
|
16
|
+
code: number;
|
|
17
|
+
stdout: string;
|
|
18
|
+
stderr: string;
|
|
19
|
+
}
|
|
20
|
+
export type SecretToolRunner = (args: string[], secret?: string) => Promise<SecretToolResult>;
|
|
21
|
+
/** Use libsecret directly: the native Node binding silently falls back to kernel keys. */
|
|
22
|
+
export declare function createLinuxCredentialBackend(run?: SecretToolRunner): CredentialBackend;
|
|
23
|
+
export declare function assertNativeCredentialStoreAvailable(platform?: NodeJS.Platform, probe?: () => Promise<void>): Promise<void>;
|
|
24
|
+
export declare const nativeCredentialBackend: CredentialBackend;
|
|
25
|
+
export declare function getStoredPassword(baseUrl: string, username: string, backend?: CredentialBackend): Promise<string | null>;
|
|
26
|
+
export declare function setStoredPassword(baseUrl: string, username: string, password: string, backend?: CredentialBackend): Promise<void>;
|
|
27
|
+
/** The canonical session directory stays stable when DHCP changes the hostname. */
|
|
28
|
+
export declare function getSessionEncryptionKey(sessionDir: string, backend?: CredentialBackend, create?: boolean): Promise<Buffer>;
|
|
29
|
+
//# sourceMappingURL=credential-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../src/auth/credential-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,yCAAyC;gBAE1C,OAAO,SAAuH,EAAE,KAAK,CAAC,EAAE,OAAO;CAI5J;AAED,MAAM,WAAW,gBAAgB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAClF,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAqC9F,0FAA0F;AAC1F,wBAAgB,4BAA4B,CAAC,GAAG,GAAE,gBAAgC,GAAG,iBAAiB,CAiCrG;AAID,wBAAsB,oCAAoC,CAAC,QAAQ,kBAAmB,EAAE,KAAK,sBAE5F,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhB;AAYD,eAAO,MAAM,uBAAuB,EAAE,iBA4BrC,CAAC;AAOF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAA2C,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEvJ;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAA2C,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhK;AASD,mFAAmF;AACnF,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,iBAA2C,EAAE,MAAM,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CtJ"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
7
|
+
import * as fs from "node:fs/promises";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
import { spawn } from "node:child_process";
|
|
10
|
+
import { acquireProcessLock, AuthenticationInProgressError } from "./auth-lock.js";
|
|
11
|
+
const SERVICE = "brightspace-mcp-server";
|
|
12
|
+
const LINUX_GUIDANCE = "Linux requires secret-tool and an unlocked Secret Service. Install libsecret-tools (Debian/Ubuntu) or your distribution's libsecret tools, unlock the desktop keyring, then retry. Temporary kernel key storage is not supported.";
|
|
13
|
+
export class NativeCredentialStoreError extends Error {
|
|
14
|
+
code = "NATIVE_CREDENTIAL_STORE_UNAVAILABLE";
|
|
15
|
+
constructor(message = "The native credential store is locked or unavailable. Unlock your operating system credential store and try again.", cause) {
|
|
16
|
+
super(message, { cause });
|
|
17
|
+
this.name = "NativeCredentialStoreError";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** No shell, no secret arguments, and no command diagnostics in surfaced errors. */
|
|
21
|
+
async function runSecretTool(args, secret) {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
const child = spawn("secret-tool", args, { stdio: ["pipe", "pipe", "pipe"] });
|
|
24
|
+
const stdout = [];
|
|
25
|
+
const stderr = [];
|
|
26
|
+
let bytes = 0;
|
|
27
|
+
let done = false;
|
|
28
|
+
const fail = () => {
|
|
29
|
+
if (done)
|
|
30
|
+
return;
|
|
31
|
+
done = true;
|
|
32
|
+
clearTimeout(timer);
|
|
33
|
+
child.kill();
|
|
34
|
+
reject(new NativeCredentialStoreError(LINUX_GUIDANCE));
|
|
35
|
+
};
|
|
36
|
+
const timer = setTimeout(fail, 30_000);
|
|
37
|
+
child.on("error", fail);
|
|
38
|
+
child.stdin.on("error", fail);
|
|
39
|
+
const collect = (chunks, chunk) => {
|
|
40
|
+
bytes += chunk.length;
|
|
41
|
+
if (bytes > 64 * 1024)
|
|
42
|
+
fail();
|
|
43
|
+
else
|
|
44
|
+
chunks.push(chunk);
|
|
45
|
+
};
|
|
46
|
+
child.stdout.on("data", (chunk) => collect(stdout, chunk));
|
|
47
|
+
child.stderr.on("data", (chunk) => collect(stderr, chunk));
|
|
48
|
+
child.on("close", (code) => {
|
|
49
|
+
if (done)
|
|
50
|
+
return;
|
|
51
|
+
done = true;
|
|
52
|
+
clearTimeout(timer);
|
|
53
|
+
resolve({ code: code ?? -1, stdout: Buffer.concat(stdout).toString("utf8"), stderr: Buffer.concat(stderr).toString("utf8") });
|
|
54
|
+
});
|
|
55
|
+
child.stdin.end(secret ?? "");
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/** Use libsecret directly: the native Node binding silently falls back to kernel keys. */
|
|
59
|
+
export function createLinuxCredentialBackend(run = runSecretTool) {
|
|
60
|
+
const attributes = (service, account) => ["service", service, "username", account];
|
|
61
|
+
const assertAbsent = async (service, account) => {
|
|
62
|
+
const result = await run(["search", "--all", ...attributes(service, account)]);
|
|
63
|
+
// A cancelled unlock can make lookup return the same exit code as absence.
|
|
64
|
+
// Search without unlocking must also show no matching item before accepting absence.
|
|
65
|
+
if (result.code !== 0 || result.stdout !== "" || result.stderr !== "")
|
|
66
|
+
throw new NativeCredentialStoreError(LINUX_GUIDANCE);
|
|
67
|
+
};
|
|
68
|
+
return {
|
|
69
|
+
async getPassword(service, account) {
|
|
70
|
+
const result = await run(["lookup", ...attributes(service, account)]);
|
|
71
|
+
if (result.code === 0 && result.stderr === "") {
|
|
72
|
+
// secret-tool adds a newline only for a TTY. Piped output is the exact secret.
|
|
73
|
+
return result.stdout;
|
|
74
|
+
}
|
|
75
|
+
if (result.code === 1 && result.stdout === "" && result.stderr === "") {
|
|
76
|
+
await assertAbsent(service, account);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
throw new NativeCredentialStoreError(LINUX_GUIDANCE);
|
|
80
|
+
},
|
|
81
|
+
async setPassword(service, account, password) {
|
|
82
|
+
// secret-tool's stdin reader uses an 8192-byte buffer.
|
|
83
|
+
if (Buffer.byteLength(password, "utf8") >= 8192)
|
|
84
|
+
throw new NativeCredentialStoreError("The credential exceeds secret-tool's supported size.");
|
|
85
|
+
const result = await run(["store", "--label=Brightspace MCP", "--collection=default", ...attributes(service, account)], password);
|
|
86
|
+
if (result.code !== 0 || result.stderr !== "")
|
|
87
|
+
throw new NativeCredentialStoreError(LINUX_GUIDANCE);
|
|
88
|
+
},
|
|
89
|
+
async deletePassword(service, account) {
|
|
90
|
+
const result = await run(["clear", ...attributes(service, account)]);
|
|
91
|
+
if ((result.code !== 0 && result.code !== 1) || result.stdout !== "" || result.stderr !== "")
|
|
92
|
+
throw new NativeCredentialStoreError(LINUX_GUIDANCE);
|
|
93
|
+
await assertAbsent(service, account);
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const linuxCredentialBackend = createLinuxCredentialBackend();
|
|
98
|
+
export async function assertNativeCredentialStoreAvailable(platform = process.platform, probe = async () => {
|
|
99
|
+
await linuxCredentialBackend.getPassword("brightspace-mcp-server-availability-probe", "probe");
|
|
100
|
+
}) {
|
|
101
|
+
if (platform !== "linux")
|
|
102
|
+
return;
|
|
103
|
+
try {
|
|
104
|
+
await probe();
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (error instanceof NativeCredentialStoreError)
|
|
108
|
+
throw error;
|
|
109
|
+
throw new NativeCredentialStoreError(LINUX_GUIDANCE);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function nativeEntry(service, account) {
|
|
113
|
+
try {
|
|
114
|
+
const { AsyncEntry } = await import("@napi-rs/keyring");
|
|
115
|
+
return new AsyncEntry(service, account);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof NativeCredentialStoreError)
|
|
119
|
+
throw error;
|
|
120
|
+
throw new NativeCredentialStoreError(undefined, error);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export const nativeCredentialBackend = {
|
|
124
|
+
async getPassword(service, account) {
|
|
125
|
+
try {
|
|
126
|
+
if (process.platform === "linux")
|
|
127
|
+
return await linuxCredentialBackend.getPassword(service, account);
|
|
128
|
+
return (await (await nativeEntry(service, account)).getPassword()) ?? null;
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (error instanceof NativeCredentialStoreError)
|
|
132
|
+
throw error;
|
|
133
|
+
throw new NativeCredentialStoreError(undefined, error);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
async setPassword(service, account, password) {
|
|
137
|
+
try {
|
|
138
|
+
if (process.platform === "linux")
|
|
139
|
+
return await linuxCredentialBackend.setPassword(service, account, password);
|
|
140
|
+
await (await nativeEntry(service, account)).setPassword(password);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (error instanceof NativeCredentialStoreError)
|
|
144
|
+
throw error;
|
|
145
|
+
throw new NativeCredentialStoreError(undefined, error);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
async deletePassword(service, account) {
|
|
149
|
+
try {
|
|
150
|
+
if (process.platform === "linux")
|
|
151
|
+
return await linuxCredentialBackend.deletePassword(service, account);
|
|
152
|
+
await (await nativeEntry(service, account)).deletePassword();
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
if (error instanceof NativeCredentialStoreError)
|
|
156
|
+
throw error;
|
|
157
|
+
throw new NativeCredentialStoreError(undefined, error);
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
function passwordAccount(baseUrl, username) {
|
|
162
|
+
const identity = JSON.stringify([new URL(baseUrl).origin, username]);
|
|
163
|
+
return `password:${createHash("sha256").update(identity).digest("hex")}`;
|
|
164
|
+
}
|
|
165
|
+
export async function getStoredPassword(baseUrl, username, backend = nativeCredentialBackend) {
|
|
166
|
+
return backend.getPassword(SERVICE, passwordAccount(baseUrl, username));
|
|
167
|
+
}
|
|
168
|
+
export async function setStoredPassword(baseUrl, username, password, backend = nativeCredentialBackend) {
|
|
169
|
+
const account = passwordAccount(baseUrl, username);
|
|
170
|
+
await backend.setPassword(SERVICE, account, password);
|
|
171
|
+
if (await backend.getPassword(SERVICE, account) !== password) {
|
|
172
|
+
throw new NativeCredentialStoreError("The saved password could not be verified in the native credential store. Existing configuration was preserved.");
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function decodeKey(value) {
|
|
176
|
+
if (!/^[a-f0-9]{64}$/i.test(value)) {
|
|
177
|
+
throw new NativeCredentialStoreError("The saved session encryption key is invalid. Restore its native credential store entry before retrying.");
|
|
178
|
+
}
|
|
179
|
+
return Buffer.from(value, "hex");
|
|
180
|
+
}
|
|
181
|
+
/** The canonical session directory stays stable when DHCP changes the hostname. */
|
|
182
|
+
export async function getSessionEncryptionKey(sessionDir, backend = nativeCredentialBackend, create = true) {
|
|
183
|
+
await fs.mkdir(sessionDir, { recursive: true, mode: 0o700 });
|
|
184
|
+
const canonicalDir = await fs.realpath(sessionDir);
|
|
185
|
+
const account = `session-key:${createHash("sha256").update(canonicalDir).digest("hex")}`;
|
|
186
|
+
const existing = await backend.getPassword(SERVICE, account);
|
|
187
|
+
if (existing !== null)
|
|
188
|
+
return decodeKey(existing);
|
|
189
|
+
if (!create) {
|
|
190
|
+
throw new NativeCredentialStoreError("The session encryption key is missing from the native credential store. Existing encrypted session data was preserved. Restore the native credential store entry before retrying.");
|
|
191
|
+
}
|
|
192
|
+
// Only initialization is serialized. Native secret stores do not provide CAS.
|
|
193
|
+
let release;
|
|
194
|
+
for (let attempt = 0; attempt < 100; attempt++) {
|
|
195
|
+
try {
|
|
196
|
+
release = await acquireProcessLock(path.join(canonicalDir, ".keyring-key-init.lock"));
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
if (!(error instanceof AuthenticationInProgressError) || attempt === 99)
|
|
201
|
+
throw error;
|
|
202
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
const current = await backend.getPassword(SERVICE, account);
|
|
207
|
+
if (current !== null)
|
|
208
|
+
return decodeKey(current);
|
|
209
|
+
// Creating a replacement key would orphan other encrypted files in this directory.
|
|
210
|
+
for (const name of ["storage-state.encrypted.json", "session.json"]) {
|
|
211
|
+
try {
|
|
212
|
+
const contents = await fs.readFile(path.join(canonicalDir, name), "utf8");
|
|
213
|
+
if (name === "storage-state.encrypted.json" || JSON.parse(contents).version === 2) {
|
|
214
|
+
throw new NativeCredentialStoreError("The session encryption key is missing, but encrypted authentication state still exists. Restore the native credential store entry before retrying. Saved data was preserved.");
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (error.code !== "ENOENT")
|
|
219
|
+
throw error;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
const key = randomBytes(32).toString("hex");
|
|
223
|
+
await backend.setPassword(SERVICE, account, key);
|
|
224
|
+
if (await backend.getPassword(SERVICE, account) !== key) {
|
|
225
|
+
throw new NativeCredentialStoreError("The session encryption key could not be verified in the native credential store. No session data was written.");
|
|
226
|
+
}
|
|
227
|
+
return decodeKey(key);
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
await release?.();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=credential-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/auth/credential-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
import type { EncryptedData } from "../types/index.js";
|
|
7
|
+
import { writeFileAtomic } from "../utils/atomic-write.js";
|
|
8
|
+
import { type CredentialBackend } from "./credential-store.js";
|
|
9
|
+
export interface SecureStoreOptions {
|
|
10
|
+
backend?: CredentialBackend;
|
|
11
|
+
/** Allows migration failures to be tested without changing real secrets. */
|
|
12
|
+
write?: typeof writeFileAtomic;
|
|
13
|
+
trash?: (file: string) => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface EncryptedRecord {
|
|
16
|
+
version: 2;
|
|
17
|
+
kind: "session" | "browser-state";
|
|
18
|
+
encrypted: EncryptedData;
|
|
19
|
+
}
|
|
20
|
+
export declare function encrypt(plaintext: string, key: Buffer, aad?: string): EncryptedData;
|
|
21
|
+
export declare function decrypt(encrypted: EncryptedData, key: Buffer, aad?: string): string;
|
|
22
|
+
export declare function readEncryptedRecord<T>(sessionDir: string, record: EncryptedRecord, kind: EncryptedRecord["kind"], options: SecureStoreOptions): Promise<T>;
|
|
23
|
+
export declare function saveEncryptedRecord(sessionDir: string, file: string, kind: EncryptedRecord["kind"], value: unknown, options: SecureStoreOptions): Promise<void>;
|
|
24
|
+
export declare function trashFile(file: string, options: SecureStoreOptions): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=encrypted-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypted-store.d.ts","sourceRoot":"","sources":["../../src/auth/encrypted-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,eAAe,CAAC;IAC/B,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,CAMnF;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnF;AAMD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAIhK;AAED,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAerK;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brightspace MCP Server
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT. See LICENSE file for details.
|
|
5
|
+
*/
|
|
6
|
+
import * as crypto from "node:crypto";
|
|
7
|
+
import * as fs from "node:fs/promises";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
import { writeFileAtomic } from "../utils/atomic-write.js";
|
|
10
|
+
import { getSessionEncryptionKey } from "./credential-store.js";
|
|
11
|
+
export function encrypt(plaintext, key, aad) {
|
|
12
|
+
const iv = crypto.randomBytes(12);
|
|
13
|
+
const cipher = crypto.createCipheriv("aes-256-gcm", key, iv);
|
|
14
|
+
if (aad)
|
|
15
|
+
cipher.setAAD(Buffer.from(aad));
|
|
16
|
+
const data = Buffer.concat([cipher.update(plaintext, "utf8"), cipher.final()]);
|
|
17
|
+
return { iv: iv.toString("hex"), authTag: cipher.getAuthTag().toString("hex"), data: data.toString("hex") };
|
|
18
|
+
}
|
|
19
|
+
export function decrypt(encrypted, key, aad) {
|
|
20
|
+
if (!encrypted || !/^[a-f0-9]{24}$/i.test(encrypted.iv) || !/^[a-f0-9]{32}$/i.test(encrypted.authTag) || !/^(?:[a-f0-9]{2})+$/i.test(encrypted.data)) {
|
|
21
|
+
throw new Error("Invalid encrypted authentication state.");
|
|
22
|
+
}
|
|
23
|
+
const decipher = crypto.createDecipheriv("aes-256-gcm", key, Buffer.from(encrypted.iv, "hex"));
|
|
24
|
+
if (aad)
|
|
25
|
+
decipher.setAAD(Buffer.from(aad));
|
|
26
|
+
decipher.setAuthTag(Buffer.from(encrypted.authTag, "hex"));
|
|
27
|
+
return Buffer.concat([decipher.update(Buffer.from(encrypted.data, "hex")), decipher.final()]).toString("utf8");
|
|
28
|
+
}
|
|
29
|
+
function associatedData(kind) {
|
|
30
|
+
return `brightspace-mcp-server:2:${kind}`;
|
|
31
|
+
}
|
|
32
|
+
export async function readEncryptedRecord(sessionDir, record, kind, options) {
|
|
33
|
+
if (record.version !== 2 || record.kind !== kind)
|
|
34
|
+
throw new Error("Unsupported encrypted authentication state format.");
|
|
35
|
+
const key = await getSessionEncryptionKey(sessionDir, options.backend, false);
|
|
36
|
+
return JSON.parse(decrypt(record.encrypted, key, associatedData(kind)));
|
|
37
|
+
}
|
|
38
|
+
export async function saveEncryptedRecord(sessionDir, file, kind, value, options) {
|
|
39
|
+
const key = await getSessionEncryptionKey(sessionDir, options.backend);
|
|
40
|
+
const plaintext = JSON.stringify(value);
|
|
41
|
+
const record = { version: 2, kind, encrypted: encrypt(plaintext, key, associatedData(kind)) };
|
|
42
|
+
if (decrypt(record.encrypted, key, associatedData(kind)) !== plaintext)
|
|
43
|
+
throw new Error("Encrypted state verification failed.");
|
|
44
|
+
await fs.mkdir(path.dirname(file), { recursive: true, mode: 0o700 });
|
|
45
|
+
await (options.write ?? writeFileAtomic)(file, JSON.stringify(record), {
|
|
46
|
+
mode: 0o600,
|
|
47
|
+
renameImpl: async (from, to) => {
|
|
48
|
+
await readEncryptedRecord(sessionDir, JSON.parse(await fs.readFile(from, "utf8")), kind, options);
|
|
49
|
+
await fs.rename(from, to);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
// Verify the actual saved ciphertext before a caller retires legacy state.
|
|
53
|
+
await readEncryptedRecord(sessionDir, JSON.parse(await fs.readFile(file, "utf8")), kind, options);
|
|
54
|
+
}
|
|
55
|
+
export async function trashFile(file, options) {
|
|
56
|
+
if (options.trash)
|
|
57
|
+
return options.trash(file);
|
|
58
|
+
const { default: trash } = await import("trash");
|
|
59
|
+
await trash(file);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=encrypted-store.js.map
|