@boldsec/mcp 0.1.0 → 0.2.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/dist/guide.d.ts.map +1 -1
- package/dist/guide.js +17 -6
- package/dist/guide.js.map +1 -1
- package/package.json +1 -1
package/dist/guide.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA6DlD"}
|
package/dist/guide.js
CHANGED
|
@@ -51,8 +51,15 @@ export function wiringGuide(stack) {
|
|
|
51
51
|
"a) Find how the app authenticates a request (read the repo):",
|
|
52
52
|
" look for next-auth/@auth, @supabase/ssr or supabase-js, a jwt/jose verify, or a session cookie",
|
|
53
53
|
" that maps to a user. Identify the call that yields the current user's id.",
|
|
54
|
-
"b) Find the owner field's VALUE SHAPE: open an example object route's response (or its
|
|
55
|
-
" and note
|
|
54
|
+
"b) Find the owner field's NAME and VALUE SHAPE: open an example object route's response (or its",
|
|
55
|
+
" DB model) and note BOTH (i) the exact field name that identifies the owner (e.g. ownerUserId,",
|
|
56
|
+
" owner_id, accountHolderId) and (ii) what the value looks like (e.g. usr_101, a number, a uuid).",
|
|
57
|
+
"b2) MAKE SURE BoLD CAN READ THAT OWNER FIELD. BoLD auto-detects common names (ownerId, ownerUserId,",
|
|
58
|
+
" user_id, owner_user_id, createdBy, authorId, belongsTo, tenantId, ...). If the app's owner field",
|
|
59
|
+
" is NOT one of these, you MUST set BOLD_OWNER_FIELDS to it in the app's environment, e.g.",
|
|
60
|
+
" BOLD_OWNER_FIELDS=accountHolderId (comma-separate multiple). If you skip this, BoLD cannot see",
|
|
61
|
+
" the owner and a real cross-user leak becomes INVISIBLE (it shows as a blind-spot needs-review,",
|
|
62
|
+
" NOT a catch). This is the single most common reason a real BOLA is missed, do not skip it.",
|
|
56
63
|
"c) Write a resolver returning the caller id in THAT shape. Common patterns:",
|
|
57
64
|
...RESOLVER_PATTERNS,
|
|
58
65
|
"",
|
|
@@ -67,10 +74,14 @@ export function wiringGuide(stack) {
|
|
|
67
74
|
"which can cause a FALSE alarm or hide a real one. A left-in TODO is safe (BoLD holds cross-reads",
|
|
68
75
|
"for review); a wrong resolver is not. When unsure: stop and ask, never ship a confident guess.",
|
|
69
76
|
"",
|
|
70
|
-
"## After wiring",
|
|
71
|
-
"Tell the user to make one authenticated request
|
|
72
|
-
"
|
|
73
|
-
"implies coverage of an unwired
|
|
77
|
+
"## After wiring -- VERIFY, do not assume it worked",
|
|
78
|
+
"1. Tell the user to make one authenticated request to a wrapped object route.",
|
|
79
|
+
"2. Call bold_coverage to confirm BoLD is seeing the route (it reports ONLY observed routes and",
|
|
80
|
+
" never implies coverage of an unwired one).",
|
|
81
|
+
"3. Have the user do a real cross-user read (user A reads user B's object), then check the BoLD",
|
|
82
|
+
" findings. If the finding says BLIND SPOT / 'cannot see the owner', BoLD could not read the owner",
|
|
83
|
+
" field, go back to step b2 and set BOLD_OWNER_FIELDS, then redeploy. A blind-spot needs-review is",
|
|
84
|
+
" NOT a pass; treat it as unfinished wiring and tell the user plainly it is not an all-clear.",
|
|
74
85
|
].join("\n");
|
|
75
86
|
}
|
|
76
87
|
//# sourceMappingURL=guide.js.map
|
package/dist/guide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,iBAAiB,GAAG;IACxB,yBAAyB;IACzB,wCAAwC;IACxC,6EAA6E;IAC7E,6BAA6B;IAC7B,uDAAuD;IACvD,kEAAkE;IAClE,sCAAsC;IACtC,gDAAgD;IAChD,mFAAmF;IACnF,oEAAoE;IACpE,UAAU;IACV,6BAA6B;IAC7B,2CAA2C;IAC3C,4FAA4F;CAC7F,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,SAAS,GACb,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY;QAC3C,CAAC,CAAC,kJAAkJ;QACpJ,CAAC,CAAC,+KAA+K,CAAC;IAEtL,OAAO;QACL,iEAAiE;QACjE,EAAE;QACF,iGAAiG;QACjG,gGAAgG;QAChG,wFAAwF;QACxF,EAAE;QACF,UAAU;QACV,gDAAgD;QAChD,yGAAyG;QACzG,MAAM,SAAS,EAAE;QACjB,sGAAsG;QACtG,kGAAkG;QAClG,4DAA4D;QAC5D,EAAE;QACF,uEAAuE;QACvE,kGAAkG;QAClG,mGAAmG;QACnG,sCAAsC;QACtC,EAAE;QACF,8DAA8D;QAC9D,mGAAmG;QACnG,8EAA8E;QAC9E,kGAAkG;QAClG,
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,iBAAiB,GAAG;IACxB,yBAAyB;IACzB,wCAAwC;IACxC,6EAA6E;IAC7E,6BAA6B;IAC7B,uDAAuD;IACvD,kEAAkE;IAClE,sCAAsC;IACtC,gDAAgD;IAChD,mFAAmF;IACnF,oEAAoE;IACpE,UAAU;IACV,6BAA6B;IAC7B,2CAA2C;IAC3C,4FAA4F;CAC7F,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,SAAS,GACb,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY;QAC3C,CAAC,CAAC,kJAAkJ;QACpJ,CAAC,CAAC,+KAA+K,CAAC;IAEtL,OAAO;QACL,iEAAiE;QACjE,EAAE;QACF,iGAAiG;QACjG,gGAAgG;QAChG,wFAAwF;QACxF,EAAE;QACF,UAAU;QACV,gDAAgD;QAChD,yGAAyG;QACzG,MAAM,SAAS,EAAE;QACjB,sGAAsG;QACtG,kGAAkG;QAClG,4DAA4D;QAC5D,EAAE;QACF,uEAAuE;QACvE,kGAAkG;QAClG,mGAAmG;QACnG,sCAAsC;QACtC,EAAE;QACF,8DAA8D;QAC9D,mGAAmG;QACnG,8EAA8E;QAC9E,iGAAiG;QACjG,kGAAkG;QAClG,oGAAoG;QACpG,qGAAqG;QACrG,qGAAqG;QACrG,6FAA6F;QAC7F,oGAAoG;QACpG,mGAAmG;QACnG,+FAA+F;QAC/F,6EAA6E;QAC7E,GAAG,iBAAiB;QACpB,EAAE;QACF,8FAA8F;QAC9F,+FAA+F;QAC/F,+FAA+F;QAC/F,EAAE;QACF,wCAAwC;QACxC,iGAAiG;QACjG,kGAAkG;QAClG,gGAAgG;QAChG,kGAAkG;QAClG,gGAAgG;QAChG,EAAE;QACF,oDAAoD;QACpD,+EAA+E;QAC/E,gGAAgG;QAChG,+CAA+C;QAC/C,gGAAgG;QAChG,qGAAqG;QACrG,qGAAqG;QACrG,gGAAgG;KACjG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boldsec/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "BoLD MCP server: connect, wire, and verify BoLD live BOLA/IDOR monitoring from your AI editor (Claude, Cursor, Codex). Metadata only; never reaches a verdict.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|