@assemblyline-agents/plaid 2.0.0 → 3.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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/events.d.ts +3 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +86 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
- package/skills/plaid/SKILL.md +0 -8
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Official Assembly Line Plaid connection plugin.
|
|
4
4
|
|
|
5
|
-
It connects agents to Plaid, exposing financial-data tools through Plaid's MCP server. The package exports `definePlaidConnection(options)` to declare the connection in an agent definition and an `assemblyLinePlugin` module so the Assembly Line CLI and compiler can discover the plugin's connection metadata.
|
|
5
|
+
It connects agents to Plaid, exposing financial-data tools through Plaid's MCP server. The package exports `definePlaidConnection(options)` to declare the connection in an agent definition and an `assemblyLinePlugin` module so the Assembly Line CLI and compiler can discover the plugin's connection metadata.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,4BAA4B,EAElC,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,WAAW,EAAE,4BAuCzB,CAAC"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { createHash, createPublicKey, verify } from "node:crypto";
|
|
2
|
+
import { ConnectionEventError, headerValue, parseConnectionEventJson, providerJson, requireEnvironmentValue, stringField } from "@assemblyline-agents/core";
|
|
3
|
+
export const plaidEvents = {
|
|
4
|
+
async reconcile(context) {
|
|
5
|
+
const credentials = plaidCredentials(context.env);
|
|
6
|
+
const items = itemTokens(context.resources, context.env);
|
|
7
|
+
if (!items.length)
|
|
8
|
+
return { status: "needs_setup", instructions: "Add Plaid event resources with accessTokenEnv for every Item that should wake the agent." };
|
|
9
|
+
for (const item of items) {
|
|
10
|
+
await plaid(context.fetch, credentials, "/item/webhook/update", { access_token: item.token, webhook: context.callbackUrl });
|
|
11
|
+
}
|
|
12
|
+
return { status: "active", state: { itemCount: items.length, callbackUrl: context.callbackUrl }, detail: `${items.length} Plaid Item webhook${items.length === 1 ? " is" : "s are"} active.` };
|
|
13
|
+
},
|
|
14
|
+
async remove(context) {
|
|
15
|
+
const credentials = plaidCredentials(context.env);
|
|
16
|
+
for (const item of itemTokens(context.resources, context.env)) {
|
|
17
|
+
await plaid(context.fetch, credentials, "/item/webhook/update", { access_token: item.token, webhook: "" });
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
async check(context) {
|
|
21
|
+
const credentials = plaidCredentials(context.env);
|
|
22
|
+
const items = itemTokens(context.resources, context.env);
|
|
23
|
+
if (!items.length)
|
|
24
|
+
return { status: "needs_setup", detail: "No Plaid Item resources are configured." };
|
|
25
|
+
for (const item of items) {
|
|
26
|
+
const value = await plaid(context.fetch, credentials, "/item/get", { access_token: item.token });
|
|
27
|
+
const configured = value.item && typeof value.item === "object" && !Array.isArray(value.item)
|
|
28
|
+
? stringField(value.item, "webhook")
|
|
29
|
+
: undefined;
|
|
30
|
+
if (configured !== context.callbackUrl)
|
|
31
|
+
return { status: "degraded", detail: "A Plaid Item points at a different webhook URL." };
|
|
32
|
+
}
|
|
33
|
+
return { status: "active", detail: `${items.length} Plaid Item webhook${items.length === 1 ? " is" : "s are"} active.` };
|
|
34
|
+
},
|
|
35
|
+
async ingress(request, context) {
|
|
36
|
+
const credentials = plaidCredentials(context.env);
|
|
37
|
+
await verifyPlaid(request.body, headerValue(request.headers, "plaid-verification"), context.fetch, credentials);
|
|
38
|
+
const payload = parseConnectionEventJson(request.body);
|
|
39
|
+
const type = stringField(payload, "webhook_type")?.toLowerCase();
|
|
40
|
+
if (!type)
|
|
41
|
+
throw new ConnectionEventError("Plaid webhook omitted webhook_type.");
|
|
42
|
+
const event = `${type}.changed`;
|
|
43
|
+
const eventId = createHash("sha256").update(request.body).digest("hex");
|
|
44
|
+
return { events: [{ event, eventId, payload: payload }], response: { status: 200, body: { ok: true } }, audit: { event, code: stringField(payload, "webhook_code") ?? "unknown" } };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
function plaidCredentials(env) {
|
|
48
|
+
const name = env.PLAID_ENV?.trim() || "production";
|
|
49
|
+
const baseUrl = name.startsWith("http") ? name.replace(/\/+$/u, "") : `https://${name}.plaid.com`;
|
|
50
|
+
return { baseUrl, clientId: requireEnvironmentValue(env, "PLAID_CLIENT_ID"), secret: requireEnvironmentValue(env, "PLAID_SECRET") };
|
|
51
|
+
}
|
|
52
|
+
async function plaid(fetchImpl, credentials, path, body) {
|
|
53
|
+
return providerJson(fetchImpl, `${credentials.baseUrl}${path}`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ client_id: credentials.clientId, secret: credentials.secret, ...body }) });
|
|
54
|
+
}
|
|
55
|
+
function itemTokens(resources, env) {
|
|
56
|
+
return resources.map((resource) => stringField(resource, "accessTokenEnv")).filter((name) => Boolean(name)).map((name) => ({ token: requireEnvironmentValue(env, name) }));
|
|
57
|
+
}
|
|
58
|
+
async function verifyPlaid(body, jwt, fetchImpl, credentials) {
|
|
59
|
+
if (!jwt)
|
|
60
|
+
throw new ConnectionEventError("Plaid-Verification header is missing.", 401);
|
|
61
|
+
const parts = jwt.split(".");
|
|
62
|
+
if (parts.length !== 3)
|
|
63
|
+
throw new ConnectionEventError("Plaid verification JWT is malformed.", 401);
|
|
64
|
+
let header;
|
|
65
|
+
let claims;
|
|
66
|
+
try {
|
|
67
|
+
header = JSON.parse(Buffer.from(parts[0], "base64url").toString("utf8"));
|
|
68
|
+
claims = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
throw new ConnectionEventError("Plaid verification JWT is malformed.", 401);
|
|
72
|
+
}
|
|
73
|
+
if (header.alg !== "ES256" || typeof header.kid !== "string")
|
|
74
|
+
throw new ConnectionEventError("Plaid verification JWT algorithm is invalid.", 401);
|
|
75
|
+
const keyResponse = await plaid(fetchImpl, credentials, "/webhook_verification_key/get", { key_id: header.kid });
|
|
76
|
+
const key = keyResponse.key;
|
|
77
|
+
if (!key || typeof key !== "object" || Array.isArray(key))
|
|
78
|
+
throw new ConnectionEventError("Plaid verification key is unavailable.", 401);
|
|
79
|
+
const valid = verify("sha256", Buffer.from(`${parts[0]}.${parts[1]}`), { key: createPublicKey({ key: key, format: "jwk" }), dsaEncoding: "ieee-p1363" }, Buffer.from(parts[2], "base64url"));
|
|
80
|
+
const bodyHash = createHash("sha256").update(body).digest("hex");
|
|
81
|
+
const iat = Number(claims.iat);
|
|
82
|
+
if (!valid || claims.request_body_sha256 !== bodyHash || !Number.isFinite(iat) || Math.abs(Date.now() / 1_000 - iat) > 300) {
|
|
83
|
+
throw new ConnectionEventError("Plaid webhook verification failed.", 401);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG7K,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,yEAAiN;AACtR,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { connectionPluginMetadata, defineMcpPluginConnection, definePlugin } from "@assemblyline-agents/core";
|
|
1
|
+
import { connectionPluginMetadata, defineConnectionPluginEvents, defineMcpPluginConnection, definePlugin } from "@assemblyline-agents/core";
|
|
2
|
+
import { plaidEvents } from "./events.js";
|
|
2
3
|
const PLUGIN = connectionPluginMetadata("plaid");
|
|
3
|
-
export function definePlaidConnection(options) {
|
|
4
|
+
export function definePlaidConnection(options) { const definition = defineMcpPluginConnection(PLUGIN, options); const events = defineConnectionPluginEvents(PLUGIN, options.events, plaidEvents); if (events)
|
|
5
|
+
definition.events = events; return definition; }
|
|
4
6
|
export const assemblyLinePlugin = definePlugin({ connections: [PLUGIN] });
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,YAAY,EAAmC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,YAAY,EAAmC,MAAM,2BAA2B,CAAC;AAC7K,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAE,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,OAA+B,IAAI,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM;IAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AACtR,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/plaid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@assemblyline-agents/core": "
|
|
12
|
+
"@assemblyline-agents/core": "3.0.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Official Assembly Line Plaid connection plugin.",
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
"skills"
|
|
16
|
+
"dist"
|
|
18
17
|
],
|
|
19
18
|
"engines": {
|
|
20
19
|
"node": ">=22.19.0"
|
package/skills/plaid/SKILL.md
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: plaid
|
|
3
|
-
description: Use configured read-only Plaid tools for accounts, balances, and transactions.
|
|
4
|
-
---
|
|
5
|
-
# Plaid
|
|
6
|
-
Use the `plaid` connection only when financial context is necessary. Minimize returned fields and time ranges, and avoid repeating sensitive account data.
|
|
7
|
-
|
|
8
|
-
The deployment owner configures Plaid Link, products, environments, credentials, and the MCP bridge. This plugin exposes read-only tool classes and does not set up Plaid Link.
|