@grackle-ai/auth 0.115.0 → 0.115.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.
@@ -0,0 +1,38 @@
1
+ /** Claims embedded in a channel-capability token payload. */
2
+ export interface ChannelTokenClaims {
3
+ /** Channel URI this token grants access to, e.g. `grackle:/sessions/<id>`. */
4
+ chan: string;
5
+ /** Verbs permitted on the channel, e.g. `["send_input"]`. */
6
+ verbs: string[];
7
+ /** Grant ID (links the token to its persisted, revocable grant row). */
8
+ jti: string;
9
+ /** Issued-at time (epoch seconds). */
10
+ iat: number;
11
+ /** Expiry time (epoch seconds). */
12
+ exp: number;
13
+ }
14
+ /**
15
+ * Create a channel-capability token signed with the provided secret.
16
+ *
17
+ * The token grants a specific set of verbs on a single channel URI and is
18
+ * bound to a grant ID (`jti`) so it can be revoked independently of expiry.
19
+ *
20
+ * @param claims - Channel, verbs, and grant ID. `iat`/`exp` are set automatically.
21
+ * @param signingSecret - Secret used to HMAC-sign the token (the server API key).
22
+ * @param ttlMs - Token time-to-live in milliseconds (default: 365 days).
23
+ * @returns The signed opaque token string (`<payload>.<signature>`).
24
+ */
25
+ export declare function createChannelToken(claims: Pick<ChannelTokenClaims, "chan" | "verbs" | "jti">, signingSecret: string, ttlMs?: number): string;
26
+ /**
27
+ * Verify a channel token's signature, structure, and expiry.
28
+ *
29
+ * Uses constant-time comparison for the HMAC signature. Revocation is NOT
30
+ * checked here (the in-token `jti` must be checked against the persisted,
31
+ * revocable grant row by the caller).
32
+ *
33
+ * @param token - The token string to verify.
34
+ * @param signingSecret - The secret used to verify the HMAC signature.
35
+ * @returns The decoded claims if valid, or `undefined` if verification fails.
36
+ */
37
+ export declare function verifyChannelToken(token: string, signingSecret: string): ChannelTokenClaims | undefined;
38
+ //# sourceMappingURL=channel-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-token.d.ts","sourceRoot":"","sources":["../src/channel-token.ts"],"names":[],"mappings":"AAWA,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,EAC1D,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAuB,GAC7B,MAAM,CAYR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAwDvG"}
@@ -0,0 +1,108 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ /**
3
+ * Default channel-token time-to-live: 365 days in milliseconds.
4
+ *
5
+ * Channel tokens back stable external webhook URLs (e.g. pasted into n8n), so
6
+ * they are long-lived by default; the real kill switch is grant revocation
7
+ * (persisted), not expiry.
8
+ */
9
+ const DEFAULT_TTL_MS = 365 * 24 * 60 * 60 * 1000;
10
+ /** Encode a buffer as base64url (no padding). */
11
+ function toBase64Url(buf) {
12
+ return buf.toString("base64url");
13
+ }
14
+ /** Decode a base64url string to a Buffer. */
15
+ function fromBase64Url(str) {
16
+ return Buffer.from(str, "base64url");
17
+ }
18
+ /** Compute HMAC-SHA256 signature over a payload string. */
19
+ function sign(payload, secret) {
20
+ return createHmac("sha256", secret).update(payload).digest();
21
+ }
22
+ /**
23
+ * Create a channel-capability token signed with the provided secret.
24
+ *
25
+ * The token grants a specific set of verbs on a single channel URI and is
26
+ * bound to a grant ID (`jti`) so it can be revoked independently of expiry.
27
+ *
28
+ * @param claims - Channel, verbs, and grant ID. `iat`/`exp` are set automatically.
29
+ * @param signingSecret - Secret used to HMAC-sign the token (the server API key).
30
+ * @param ttlMs - Token time-to-live in milliseconds (default: 365 days).
31
+ * @returns The signed opaque token string (`<payload>.<signature>`).
32
+ */
33
+ export function createChannelToken(claims, signingSecret, ttlMs = DEFAULT_TTL_MS) {
34
+ const now = Math.floor(Date.now() / 1000);
35
+ const payload = {
36
+ chan: claims.chan,
37
+ verbs: [...claims.verbs],
38
+ jti: claims.jti,
39
+ iat: now,
40
+ exp: now + Math.floor(ttlMs / 1000),
41
+ };
42
+ const payloadEncoded = toBase64Url(Buffer.from(JSON.stringify(payload), "utf8"));
43
+ const signature = toBase64Url(sign(payloadEncoded, signingSecret));
44
+ return `${payloadEncoded}.${signature}`;
45
+ }
46
+ /**
47
+ * Verify a channel token's signature, structure, and expiry.
48
+ *
49
+ * Uses constant-time comparison for the HMAC signature. Revocation is NOT
50
+ * checked here (the in-token `jti` must be checked against the persisted,
51
+ * revocable grant row by the caller).
52
+ *
53
+ * @param token - The token string to verify.
54
+ * @param signingSecret - The secret used to verify the HMAC signature.
55
+ * @returns The decoded claims if valid, or `undefined` if verification fails.
56
+ */
57
+ export function verifyChannelToken(token, signingSecret) {
58
+ const dotIndex = token.indexOf(".");
59
+ if (dotIndex === -1 || dotIndex === 0 || dotIndex === token.length - 1) {
60
+ return undefined;
61
+ }
62
+ // Reject tokens with multiple dots.
63
+ if (token.indexOf(".", dotIndex + 1) !== -1) {
64
+ return undefined;
65
+ }
66
+ const payloadEncoded = token.slice(0, dotIndex);
67
+ const signatureEncoded = token.slice(dotIndex + 1);
68
+ // Verify signature using constant-time comparison.
69
+ const expectedSignature = sign(payloadEncoded, signingSecret);
70
+ let actualSignature;
71
+ try {
72
+ actualSignature = fromBase64Url(signatureEncoded);
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ if (expectedSignature.length !== actualSignature.length) {
78
+ return undefined;
79
+ }
80
+ if (!timingSafeEqual(expectedSignature, actualSignature)) {
81
+ return undefined;
82
+ }
83
+ // Decode and parse payload.
84
+ let claims;
85
+ try {
86
+ const payloadStr = fromBase64Url(payloadEncoded).toString("utf8");
87
+ claims = JSON.parse(payloadStr);
88
+ }
89
+ catch {
90
+ return undefined;
91
+ }
92
+ // Validate claim types to prevent bypass via crafted payloads.
93
+ if (typeof claims.chan !== "string" ||
94
+ !Array.isArray(claims.verbs) ||
95
+ !claims.verbs.every((v) => typeof v === "string") ||
96
+ typeof claims.jti !== "string" ||
97
+ !Number.isFinite(claims.iat) ||
98
+ !Number.isFinite(claims.exp)) {
99
+ return undefined;
100
+ }
101
+ // Check expiry (exp must be strictly greater than both iat and now).
102
+ const now = Math.floor(Date.now() / 1000);
103
+ if (claims.exp <= now || claims.exp <= claims.iat) {
104
+ return undefined;
105
+ }
106
+ return claims;
107
+ }
108
+ //# sourceMappingURL=channel-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-token.js","sourceRoot":"","sources":["../src/channel-token.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export type { OAuthTokenClaims } from "./oauth-token.js";
9
9
  export { OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS, createOAuthAccessToken, verifyOAuthAccessToken, } from "./oauth-token.js";
10
10
  export type { ScopedTokenClaims } from "./scoped-token.js";
11
11
  export { createScopedToken, verifyScopedToken, revokeTask, isRevokedTask, pruneRevocations, clearRevocations, } from "./scoped-token.js";
12
+ export type { ChannelTokenClaims } from "./channel-token.js";
13
+ export { createChannelToken, verifyChannelToken, } from "./channel-token.js";
12
14
  export type { AuthContext } from "./auth-context.js";
13
15
  export { authenticateMcpRequest } from "./auth-middleware.js";
14
16
  export { WEB_CONTENT_SECURITY_POLICY, setSecurityHeaders } from "./security-headers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { generatePairingCode, redeemPairingCode, clearPairing, startPairingClean
8
8
  export { registerClient, getClient, createAuthorizationCode, consumeAuthorizationCode, createRefreshToken, consumeRefreshToken, computeCodeChallenge, verifyCodeChallenge, clearOAuthState, startOAuthCleanup, stopOAuthCleanup, } from "./oauth.js";
9
9
  export { OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS, createOAuthAccessToken, verifyOAuthAccessToken, } from "./oauth-token.js";
10
10
  export { createScopedToken, verifyScopedToken, revokeTask, isRevokedTask, pruneRevocations, clearRevocations, } from "./scoped-token.js";
11
+ export { createChannelToken, verifyChannelToken, } from "./channel-token.js";
11
12
  // ─── Auth Middleware ────────────────────────────────────────
12
13
  export { authenticateMcpRequest } from "./auth-middleware.js";
13
14
  // ─── Security Headers ──────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,+DAA+D;AAC/D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAK3B,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,8DAA8D;AAC9D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,+DAA+D;AAC/D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,+DAA+D;AAC/D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAK5B,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,8DAA8D;AAC9D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/auth",
3
- "version": "0.115.0",
3
+ "version": "0.115.1",
4
4
  "description": "Authentication and authorization primitives for Grackle",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,7 +29,7 @@
29
29
  "dist/"
30
30
  ],
31
31
  "dependencies": {
32
- "@grackle-ai/common": "0.115.0"
32
+ "@grackle-ai/common": "0.115.1"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@rushstack/heft": "1.2.7",