thumbgate 1.27.11 → 1.27.13
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/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +2 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +2 -4
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/adapters/policy-engine/ethicore-guardian-client.js +68 -0
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
- package/bin/cli.js +78 -259
- package/config/builtin-lessons.json +23 -0
- package/config/gate-templates.json +0 -228
- package/config/gates/claim-verification.json +0 -18
- package/package.json +35 -25
- package/public/assets/brand/thumbgate-logo-transparent.svg +22 -0
- package/public/assets/brand/thumbgate-mark-inline-v3.svg +19 -0
- package/public/assets/brand/thumbgate-mark.svg +11 -5
- package/public/blog.html +0 -30
- package/public/brand/thumbgate-mark.svg +9 -5
- package/public/chatgpt-app.html +2 -2
- package/public/compare.html +2 -1
- package/public/dashboard.html +1 -1
- package/public/federal.html +1 -1
- package/public/index.html +95 -216
- package/public/learn.html +59 -35
- package/public/lessons.html +1 -1
- package/public/numbers.html +2 -2
- package/public/pro.html +7 -7
- package/scripts/aws-blocks-guardrails.js +228 -0
- package/scripts/cli-schema.js +22 -10
- package/scripts/dashboard-chat.js +2 -1
- package/scripts/document-intake.js +1 -49
- package/scripts/durability/step.js +3 -3
- package/scripts/gate-stats.js +5 -11
- package/scripts/gemini-embedding-policy.js +2 -1
- package/scripts/hook-stop-anti-claim.js +116 -184
- package/scripts/hosted-config.js +0 -12
- package/scripts/llm-client.js +187 -5
- package/scripts/plausible-domain-config.js +3 -1
- package/scripts/seo-gsd.js +240 -1
- package/scripts/tool-registry.js +2 -2
- package/scripts/vector-store.js +44 -0
- package/scripts/workspace-evolver.js +62 -2
- package/src/api/server.js +340 -131
- package/public/assets/brand/thumbgate-mark-inline.svg +0 -15
- package/public/compare/adopt-ai.html +0 -219
- package/public/compare/agentix-labs.html +0 -197
- package/public/compare/ai-experience-orchestration.html +0 -216
- package/public/compare/anthropic-claude-for-legal.html +0 -260
- package/public/compare/anthropic-containment.html +0 -280
- package/public/compare/arcade.html +0 -175
- package/public/compare/arcjet.html +0 -239
- package/public/compare/bumblebee.html +0 -307
- package/public/compare/claude-code-hooks.html +0 -294
- package/public/compare/databricks-unity-ai-gateway.html +0 -215
- package/public/compare/fallow.html +0 -351
- package/public/compare/heidi.html +0 -233
- package/public/compare/mem0.html +0 -342
- package/public/compare/oak-and-sparrow-gatekeeper.html +0 -289
- package/public/compare/rein.html +0 -236
- package/public/compare/sigmashake.html +0 -256
- package/public/compare/speclock.html +0 -342
- package/public/guides/agent-harness-optimization.html +0 -342
- package/public/guides/agentic-web-governance.html +0 -406
- package/public/guides/ai-agent-governance-sprint.html +0 -415
- package/public/guides/ai-agent-pre-action-approval-gates.html +0 -401
- package/public/guides/ai-agent-workflow-migration-checklist.html +0 -392
- package/public/guides/ai-deployment-readiness.html +0 -415
- package/public/guides/ai-mode-ads-agent-governance.html +0 -401
- package/public/guides/ai-search-topical-presence.html +0 -342
- package/public/guides/autoresearch-agent-safety.html +0 -342
- package/public/guides/background-agent-governance.html +0 -358
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +0 -363
- package/public/guides/browser-automation-safety.html +0 -342
- package/public/guides/chatgpt-ads-trust.html +0 -353
- package/public/guides/claude-code-feedback.html +0 -339
- package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
- package/public/guides/claude-code-skills-guardrails.html +0 -343
- package/public/guides/claude-desktop.html +0 -356
- package/public/guides/code-knowledge-graph-guardrails.html +0 -365
- package/public/guides/codex-cli-guardrails.html +0 -339
- package/public/guides/cursor-agent-guardrails.html +0 -339
- package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
- package/public/guides/database-agent-safety.html +0 -406
- package/public/guides/deepseek-v4-runtime-guardrails.html +0 -346
- package/public/guides/developer-machine-supply-chain-guardrails.html +0 -358
- package/public/guides/gcp-mcp-guardrails.html +0 -147
- package/public/guides/gemini-cli-feedback-memory.html +0 -339
- package/public/guides/gpt-5-5-model-evaluation.html +0 -358
- package/public/guides/internal-ai-engineering-stack-guardrails.html +0 -348
- package/public/guides/long-running-agent-context-management.html +0 -346
- package/public/guides/mcp-tool-governance.html +0 -401
- package/public/guides/multica-thumbgate-setup.html +0 -134
- package/public/guides/native-messaging-host-security.html +0 -342
- package/public/guides/policy-engine-pre-action-gates.html +0 -346
- package/public/guides/pre-action-checks.html +0 -342
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +0 -342
- package/public/guides/prompt-tricks-to-workflow-rules.html +0 -365
- package/public/guides/proxy-pointer-rag-guardrails.html +0 -352
- package/public/guides/rag-precision-tuning-guardrails.html +0 -352
- package/public/guides/reasoning-compression-guardrails.html +0 -346
- package/public/guides/relational-knowledge-ai-recommendations.html +0 -342
- package/public/guides/roo-code-alternative-cline.html +0 -339
- package/public/guides/semantic-programmatic-seo-guardrails.html +0 -352
- package/public/guides/seo-agent-skills-guardrails.html +0 -344
- package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -342
- package/public/learn/ac-dc-runtime-enforcement.html +0 -277
- package/public/learn/agent-harness-pattern.html +0 -181
- package/public/learn/agent-identity-connector-governance.html +0 -146
- package/public/learn/agent-swarms-shared-gates.html +0 -173
- package/public/learn/agentic-enterprise-context-brain.html +0 -117
- package/public/learn/agentic-os-team-governance.html +0 -146
- package/public/learn/ai-agent-governance.html +0 -158
- package/public/learn/ai-agent-persistent-memory.html +0 -211
- package/public/learn/anthropomorphic-claim-gates.html +0 -180
- package/public/learn/background-agent-control-layer.html +0 -184
- package/public/learn/claude-code-goal-with-rubrics.html +0 -205
- package/public/learn/codex-role-plugins-need-governance.html +0 -125
- package/public/learn/cost-aware-agent-gate-routing.html +0 -173
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +0 -157
- package/public/learn/deterministic-agent-workflows.html +0 -185
- package/public/learn/feedback-loop-vs-decision-layer.html +0 -283
- package/public/learn/from-prototype-to-production.html +0 -223
- package/public/learn/learn.css +0 -51
- package/public/learn/mcp-pre-action-checks-explained.html +0 -172
- package/public/learn/pretix-stripe-connect-marketplaces.html +0 -161
- package/public/learn/regulated-agent-execution-boundary.html +0 -196
- package/public/learn/spec-driven-development.html +0 -168
- package/public/learn/stop-ai-agent-force-push.html +0 -134
- package/public/learn/vibe-coding-safety-net.html +0 -142
- package/scripts/reddit-browser-notification-watch.js +0 -230
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Developer Machine Supply Chain Guardrails | ThumbGate Guide</title>
|
|
7
|
-
<meta name="description" content="Developer laptops and CI runners hold tokens, package-manager trust, and one-shot CLI install paths. ThumbGate turns that local execution risk into pre-actio..." />
|
|
8
|
-
<meta property="og:title" content="Developer Machine Supply Chain Guardrails | ThumbGate Guide" />
|
|
9
|
-
<meta property="og:description" content="Developer laptops and CI runners hold tokens, package-manager trust, and one-shot CLI install paths. ThumbGate turns that local execution risk into pre-actio..." />
|
|
10
|
-
<meta property="og:type" content="article" />
|
|
11
|
-
<meta property="og:url" content="https://thumbgate.ai/guides/developer-machine-supply-chain-guardrails" />
|
|
12
|
-
<link rel="canonical" href="https://thumbgate.ai/guides/developer-machine-supply-chain-guardrails" />
|
|
13
|
-
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
-
<link rel="icon" type="image/svg+xml" href="/thumbgate-icon.png" />
|
|
15
|
-
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
-
<meta property="og:image" content="/og.png" />
|
|
17
|
-
<style>
|
|
18
|
-
:root {
|
|
19
|
-
--bg: #0a0a0b;
|
|
20
|
-
--bg-raised: #111113;
|
|
21
|
-
--bg-card: #161618;
|
|
22
|
-
--line: #222225;
|
|
23
|
-
--text: #e8e8ec;
|
|
24
|
-
--muted: #8b8b96;
|
|
25
|
-
--cyan: #22d3ee;
|
|
26
|
-
--green: #4ade80;
|
|
27
|
-
--red: #f87171;
|
|
28
|
-
}
|
|
29
|
-
* { box-sizing: border-box; }
|
|
30
|
-
body {
|
|
31
|
-
margin: 0;
|
|
32
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
33
|
-
background: var(--bg);
|
|
34
|
-
color: var(--text);
|
|
35
|
-
line-height: 1.65;
|
|
36
|
-
}
|
|
37
|
-
a { color: var(--cyan); text-decoration: none; }
|
|
38
|
-
a:hover { text-decoration: underline; }
|
|
39
|
-
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
40
|
-
.topbar {
|
|
41
|
-
position: sticky;
|
|
42
|
-
top: 0;
|
|
43
|
-
z-index: 20;
|
|
44
|
-
backdrop-filter: blur(12px);
|
|
45
|
-
background: rgba(10, 10, 11, 0.88);
|
|
46
|
-
border-bottom: 1px solid var(--line);
|
|
47
|
-
}
|
|
48
|
-
.topbar .container {
|
|
49
|
-
display: flex;
|
|
50
|
-
justify-content: space-between;
|
|
51
|
-
align-items: center;
|
|
52
|
-
padding-top: 14px;
|
|
53
|
-
padding-bottom: 14px;
|
|
54
|
-
}
|
|
55
|
-
.brand {
|
|
56
|
-
font-weight: 700;
|
|
57
|
-
color: var(--text);
|
|
58
|
-
display: inline-flex;
|
|
59
|
-
align-items: center;
|
|
60
|
-
gap: 8px;
|
|
61
|
-
text-decoration: none;
|
|
62
|
-
}
|
|
63
|
-
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
64
|
-
.hero { padding: 72px 0 32px; }
|
|
65
|
-
.eyebrow {
|
|
66
|
-
display: inline-flex;
|
|
67
|
-
align-items: center;
|
|
68
|
-
gap: 8px;
|
|
69
|
-
padding: 6px 12px;
|
|
70
|
-
border-radius: 999px;
|
|
71
|
-
border: 1px solid rgba(34, 211, 238, 0.22);
|
|
72
|
-
background: rgba(34, 211, 238, 0.1);
|
|
73
|
-
color: var(--cyan);
|
|
74
|
-
text-transform: uppercase;
|
|
75
|
-
letter-spacing: 0.08em;
|
|
76
|
-
font-size: 12px;
|
|
77
|
-
font-weight: 700;
|
|
78
|
-
}
|
|
79
|
-
h1 {
|
|
80
|
-
font-size: clamp(34px, 5vw, 56px);
|
|
81
|
-
line-height: 1.06;
|
|
82
|
-
letter-spacing: -0.04em;
|
|
83
|
-
margin: 16px 0;
|
|
84
|
-
max-width: 760px;
|
|
85
|
-
}
|
|
86
|
-
.hero p {
|
|
87
|
-
max-width: 720px;
|
|
88
|
-
color: var(--muted);
|
|
89
|
-
font-size: 18px;
|
|
90
|
-
}
|
|
91
|
-
.signal-row {
|
|
92
|
-
display: flex;
|
|
93
|
-
flex-wrap: wrap;
|
|
94
|
-
gap: 12px;
|
|
95
|
-
margin: 28px 0 0;
|
|
96
|
-
}
|
|
97
|
-
.signal-pill {
|
|
98
|
-
display: inline-flex;
|
|
99
|
-
align-items: center;
|
|
100
|
-
gap: 8px;
|
|
101
|
-
padding: 10px 14px;
|
|
102
|
-
border-radius: 999px;
|
|
103
|
-
border: 1px solid var(--line);
|
|
104
|
-
background: var(--bg-raised);
|
|
105
|
-
font-weight: 600;
|
|
106
|
-
font-size: 14px;
|
|
107
|
-
}
|
|
108
|
-
.signal-pill.up {
|
|
109
|
-
border-color: rgba(74, 222, 128, 0.28);
|
|
110
|
-
color: #b8f7c8;
|
|
111
|
-
background: rgba(74, 222, 128, 0.1);
|
|
112
|
-
}
|
|
113
|
-
.signal-pill.down {
|
|
114
|
-
border-color: rgba(248, 113, 113, 0.28);
|
|
115
|
-
color: #ffc0c0;
|
|
116
|
-
background: rgba(248, 113, 113, 0.1);
|
|
117
|
-
}
|
|
118
|
-
.grid {
|
|
119
|
-
display: grid;
|
|
120
|
-
grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
|
|
121
|
-
gap: 24px;
|
|
122
|
-
padding-bottom: 72px;
|
|
123
|
-
}
|
|
124
|
-
.card, .detail-section, .sidebar-card {
|
|
125
|
-
background: var(--bg-card);
|
|
126
|
-
border: 1px solid var(--line);
|
|
127
|
-
border-radius: 16px;
|
|
128
|
-
}
|
|
129
|
-
.card { padding: 24px; }
|
|
130
|
-
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
131
|
-
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
132
|
-
.detail-section p { color: var(--muted); }
|
|
133
|
-
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
134
|
-
.card h2 { margin-top: 0; }
|
|
135
|
-
.sidebar {
|
|
136
|
-
display: flex;
|
|
137
|
-
flex-direction: column;
|
|
138
|
-
gap: 18px;
|
|
139
|
-
}
|
|
140
|
-
.sidebar-card {
|
|
141
|
-
padding: 20px;
|
|
142
|
-
}
|
|
143
|
-
/* Only the first sidebar card sticks. Stacking multiple stickies at the
|
|
144
|
-
same top offset makes them overlap each other on scroll. The related-
|
|
145
|
-
pages card flows normally below. */
|
|
146
|
-
.sidebar-card:first-child {
|
|
147
|
-
position: sticky;
|
|
148
|
-
top: 84px;
|
|
149
|
-
max-height: calc(100vh - 104px);
|
|
150
|
-
overflow-y: auto;
|
|
151
|
-
-webkit-overflow-scrolling: touch;
|
|
152
|
-
}
|
|
153
|
-
.proof-links {
|
|
154
|
-
display: flex;
|
|
155
|
-
flex-wrap: wrap;
|
|
156
|
-
gap: 12px;
|
|
157
|
-
margin-top: 16px;
|
|
158
|
-
}
|
|
159
|
-
.cta-button {
|
|
160
|
-
display: inline-flex;
|
|
161
|
-
align-items: center;
|
|
162
|
-
justify-content: center;
|
|
163
|
-
margin-top: 18px;
|
|
164
|
-
padding: 12px 16px;
|
|
165
|
-
border-radius: 10px;
|
|
166
|
-
background: var(--cyan);
|
|
167
|
-
color: #071116;
|
|
168
|
-
font-weight: 700;
|
|
169
|
-
text-decoration: none;
|
|
170
|
-
}
|
|
171
|
-
.faq-item {
|
|
172
|
-
border-top: 1px solid var(--line);
|
|
173
|
-
padding: 14px 0;
|
|
174
|
-
}
|
|
175
|
-
.faq-item summary {
|
|
176
|
-
cursor: pointer;
|
|
177
|
-
font-weight: 600;
|
|
178
|
-
}
|
|
179
|
-
.faq-item p {
|
|
180
|
-
color: var(--muted);
|
|
181
|
-
}
|
|
182
|
-
.related-card {
|
|
183
|
-
display: block;
|
|
184
|
-
padding: 14px;
|
|
185
|
-
border-radius: 12px;
|
|
186
|
-
border: 1px solid var(--line);
|
|
187
|
-
background: var(--bg-raised);
|
|
188
|
-
margin-top: 12px;
|
|
189
|
-
color: var(--text);
|
|
190
|
-
}
|
|
191
|
-
.related-label {
|
|
192
|
-
display: block;
|
|
193
|
-
color: var(--muted);
|
|
194
|
-
font-size: 12px;
|
|
195
|
-
text-transform: uppercase;
|
|
196
|
-
letter-spacing: 0.08em;
|
|
197
|
-
margin-bottom: 4px;
|
|
198
|
-
}
|
|
199
|
-
@media (max-width: 860px) {
|
|
200
|
-
.grid {
|
|
201
|
-
grid-template-columns: 1fr;
|
|
202
|
-
}
|
|
203
|
-
.sidebar-card:first-child {
|
|
204
|
-
position: static;
|
|
205
|
-
max-height: none;
|
|
206
|
-
overflow: visible;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
</style>
|
|
210
|
-
<script type="application/ld+json">
|
|
211
|
-
{
|
|
212
|
-
"@context": "https://schema.org",
|
|
213
|
-
"@type": "TechArticle",
|
|
214
|
-
"headline": "Stop AI Assistants From Amplifying Supply-Chain Attacks.",
|
|
215
|
-
"description": "Developer laptops and CI runners hold tokens, package-manager trust, and one-shot CLI install paths. ThumbGate turns that local execution risk into pre-actio...",
|
|
216
|
-
"about": [
|
|
217
|
-
"claude code masterclass guardrails",
|
|
218
|
-
"cursor prevent repeated mistakes",
|
|
219
|
-
"claude code prevent repeated mistakes",
|
|
220
|
-
"codex cli guardrails"
|
|
221
|
-
],
|
|
222
|
-
"url": "https://thumbgate.ai/guides/developer-machine-supply-chain-guardrails",
|
|
223
|
-
"publisher": {
|
|
224
|
-
"@type": "Organization",
|
|
225
|
-
"name": "ThumbGate",
|
|
226
|
-
"url": "https://thumbgate.ai"
|
|
227
|
-
},
|
|
228
|
-
"mainEntityOfPage": "https://thumbgate.ai/guides/developer-machine-supply-chain-guardrails"
|
|
229
|
-
}
|
|
230
|
-
</script>
|
|
231
|
-
<script type="application/ld+json">
|
|
232
|
-
{
|
|
233
|
-
"@context": "https://schema.org",
|
|
234
|
-
"@type": "FAQPage",
|
|
235
|
-
"mainEntity": [
|
|
236
|
-
{
|
|
237
|
-
"@type": "Question",
|
|
238
|
-
"name": "Does ThumbGate replace secrets scanning?",
|
|
239
|
-
"acceptedAnswer": {
|
|
240
|
-
"@type": "Answer",
|
|
241
|
-
"text": "No. Secrets scanners tell you what leaked. ThumbGate blocks or checkpoints the agent behavior that can create or amplify the leak before execution."
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
"@type": "Question",
|
|
246
|
-
"name": "Which supply-chain gate should teams enable first?",
|
|
247
|
-
"acceptedAnswer": {
|
|
248
|
-
"@type": "Answer",
|
|
249
|
-
"text": "Start with one-shot CLI installers and package lifecycle scripts because those paths can execute before a human sees the diff."
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
"@type": "Question",
|
|
254
|
-
"name": "Can this work with existing incident-response tools?",
|
|
255
|
-
"acceptedAnswer": {
|
|
256
|
-
"@type": "Answer",
|
|
257
|
-
"text": "Yes. Use scanner, EDR, and incident-response findings as evidence, then turn the repeated local action pattern into a ThumbGate pre-action rule."
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
]
|
|
261
|
-
}
|
|
262
|
-
</script>
|
|
263
|
-
</head>
|
|
264
|
-
<body>
|
|
265
|
-
<div class="topbar">
|
|
266
|
-
<div class="container">
|
|
267
|
-
<a class="brand" href="/"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
268
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
269
|
-
</div>
|
|
270
|
-
</div>
|
|
271
|
-
|
|
272
|
-
<main class="container">
|
|
273
|
-
<section class="hero">
|
|
274
|
-
<div class="eyebrow">guide | developer machine supply chain guardrails</div>
|
|
275
|
-
<h1>Stop AI Assistants From Amplifying Supply-Chain Attacks.</h1>
|
|
276
|
-
<p>Developer laptops and CI runners hold tokens, package-manager trust, and one-shot CLI install paths. ThumbGate turns that local execution risk into pre-action gates before an agent runs npm, PyPI, Docker, or shell commands that can expose credentials.</p>
|
|
277
|
-
<div class="signal-row">
|
|
278
|
-
<div class="signal-pill up">👍 Thumbs up reinforces good behavior</div>
|
|
279
|
-
<div class="signal-pill down">👎 Thumbs down blocks repeated mistakes</div>
|
|
280
|
-
</div>
|
|
281
|
-
</section>
|
|
282
|
-
|
|
283
|
-
<section class="grid">
|
|
284
|
-
<div>
|
|
285
|
-
<div class="card">
|
|
286
|
-
<h2>Why this page exists</h2>
|
|
287
|
-
<ul><li>Secrets scanners find leaks; ThumbGate blocks the agent behavior that creates or amplifies them.</li><li>Supply Chain Safety templates should start with package lifecycle scripts, untrusted one-shot CLI installers, dependency autofixes, and credential exposure assessment.</li><li>This is complementary to GitGuardian, endpoint security, and incident response because it governs the next local action.</li></ul>
|
|
288
|
-
</div>
|
|
289
|
-
|
|
290
|
-
<section class="detail-section">
|
|
291
|
-
<h2>Why developer machines are now the blast radius</h2>
|
|
292
|
-
<p>A compromised package does not need to break production directly. It can read .env, .npmrc, .pypirc, Docker config, SSH keys, and cloud tokens while an AI coding assistant repeats the trusted-looking command across more repos.</p><p>The high-ROI control is local and specific: detect risky execution before it runs, require review where exposure is plausible, and promote every missed incident into a durable ThumbGate rule.</p>
|
|
293
|
-
|
|
294
|
-
</section>
|
|
295
|
-
<section class="detail-section">
|
|
296
|
-
<h2>High-ROI gate templates</h2>
|
|
297
|
-
|
|
298
|
-
<ul><li>Block package lifecycle secret harvest: stop install, postinstall, prepare, and similar scripts from reading local credential surfaces.</li><li>Review untrusted CLI before execution: block curl-to-shell flows, unknown npx commands, uvx, and pipx run until the source and permissions are reviewed.</li><li>Checkpoint dependency bot autofix: warn before Dependabot, Renovate, audit-fix, Docker pull, or broad package updates expand the trusted code surface.</li><li>Require credential exposure assessment: force an answer about what credential lived where, what executed, and whether rotation is required.</li></ul>
|
|
299
|
-
</section>
|
|
300
|
-
<section class="detail-section">
|
|
301
|
-
<h2>Where this creates revenue</h2>
|
|
302
|
-
<p>This is a strong security wedge for teams that already run scanners but still let agents execute local install/update commands. The offer is not "replace your scanner"; it is "connect scanner and incident lessons to pre-action enforcement."</p><p>For the Workflow Hardening Sprint, pick one concrete local-risk pattern: package lifecycle scripts, one-shot installers, dependency bot autofixes, or unresolved credential exposure after a suspected compromise.</p>
|
|
303
|
-
|
|
304
|
-
</section>
|
|
305
|
-
<div class="detail-section">
|
|
306
|
-
<h2>FAQ</h2>
|
|
307
|
-
|
|
308
|
-
<details class="faq-item">
|
|
309
|
-
<summary>Does ThumbGate replace secrets scanning?</summary>
|
|
310
|
-
<p>No. Secrets scanners tell you what leaked. ThumbGate blocks or checkpoints the agent behavior that can create or amplify the leak before execution.</p>
|
|
311
|
-
</details>
|
|
312
|
-
<details class="faq-item">
|
|
313
|
-
<summary>Which supply-chain gate should teams enable first?</summary>
|
|
314
|
-
<p>Start with one-shot CLI installers and package lifecycle scripts because those paths can execute before a human sees the diff.</p>
|
|
315
|
-
</details>
|
|
316
|
-
<details class="faq-item">
|
|
317
|
-
<summary>Can this work with existing incident-response tools?</summary>
|
|
318
|
-
<p>Yes. Use scanner, EDR, and incident-response findings as evidence, then turn the repeated local action pattern into a ThumbGate pre-action rule.</p>
|
|
319
|
-
</details>
|
|
320
|
-
</div>
|
|
321
|
-
</div>
|
|
322
|
-
|
|
323
|
-
<aside class="sidebar">
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
<div class="sidebar-card">
|
|
329
|
-
<h2>GSD execution brief</h2>
|
|
330
|
-
<p>This page was prioritized because it captures high-intent demand around developer machine supply chain guardrails and feeds directly into ThumbGate's proof-led conversion path.</p>
|
|
331
|
-
<p><strong>Opportunity score:</strong> 83</p>
|
|
332
|
-
<p><strong>Primary persona:</strong> engineering-lead</p>
|
|
333
|
-
<p><strong>Keyword cluster:</strong> claude code masterclass guardrails, cursor prevent repeated mistakes, claude code prevent repeated mistakes, codex cli guardrails</p>
|
|
334
|
-
<p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
|
|
335
|
-
<div class="proof-links"><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/proof/automation/report.json" target="_blank" rel="noopener">Automation proof</a><a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub repository</a></div>
|
|
336
|
-
<a class="cta-button" href="/checkout/pro?utm_source=website&utm_medium=seo_page&utm_campaign=guides_developer-machine-supply-chain-guardrails&cta_placement=seo_brief&plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
|
|
337
|
-
</div>
|
|
338
|
-
<div class="sidebar-card">
|
|
339
|
-
<h2>Related pages</h2>
|
|
340
|
-
|
|
341
|
-
<a class="related-card" href="/guides/pre-action-checks">
|
|
342
|
-
<span class="related-label">Related page</span>
|
|
343
|
-
<strong>What Are Pre-Action Checks?</strong>
|
|
344
|
-
</a>
|
|
345
|
-
<a class="related-card" href="/guides/code-knowledge-graph-guardrails">
|
|
346
|
-
<span class="related-label">Related page</span>
|
|
347
|
-
<strong>Code Graphs Are Context. ThumbGate Is Execution Control.</strong>
|
|
348
|
-
</a>
|
|
349
|
-
<a class="related-card" href="/guides/best-tools-stop-ai-agents-breaking-production">
|
|
350
|
-
<span class="related-label">Related page</span>
|
|
351
|
-
<strong>Best Tools to Stop AI Agents From Breaking Production</strong>
|
|
352
|
-
</a>
|
|
353
|
-
</div>
|
|
354
|
-
</aside>
|
|
355
|
-
</section>
|
|
356
|
-
</main>
|
|
357
|
-
</body>
|
|
358
|
-
</html>
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>BigQuery, Spanner, AlloyDB Agent Guardrails: Gating Google's Agentic Data Cloud MCP Calls</title>
|
|
7
|
-
<meta name="description" content="Google's Agentic Data Cloud exposes BigQuery, Spanner, AlloyDB, and Cloud SQL as MCP tool calls that any agent can trigger. IAM does not know what you thumbs-down'd last week. ThumbGate's local lesson DB does." />
|
|
8
|
-
<meta property="og:title" content="BigQuery, Spanner, AlloyDB Agent Guardrails: Gating Google's Agentic Data Cloud MCP Calls" />
|
|
9
|
-
<meta property="og:description" content="Google's Agentic Data Cloud exposes BigQuery, Spanner, AlloyDB, and Cloud SQL as MCP tool calls that any agent can trigger. IAM does not know what you thumbs-down'd last week. ThumbGate's local lesson DB does." />
|
|
10
|
-
<meta property="og:type" content="article" />
|
|
11
|
-
<meta property="og:url" content="https://thumbgate.ai/guides/gcp-mcp-guardrails" />
|
|
12
|
-
<link rel="canonical" href="https://thumbgate.ai/guides/gcp-mcp-guardrails" />
|
|
13
|
-
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
-
<link rel="icon" type="image/svg+xml" href="/thumbgate-icon.png" />
|
|
15
|
-
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
-
<meta property="og:image" content="/og.png" />
|
|
17
|
-
<script type="application/ld+json">
|
|
18
|
-
{
|
|
19
|
-
"@context": "https://schema.org",
|
|
20
|
-
"@type": "TechArticle",
|
|
21
|
-
"headline": "BigQuery, Spanner, AlloyDB Agent Guardrails: Gating Google's Agentic Data Cloud MCP Calls",
|
|
22
|
-
"description": "Google's Agentic Data Cloud exposes BigQuery, Spanner, AlloyDB, and Cloud SQL as MCP tool calls that any agent can trigger. IAM does not know what you thumbs-down'd last week. ThumbGate's local lesson DB does.",
|
|
23
|
-
"author": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
|
|
24
|
-
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
25
|
-
"datePublished": "2026-04-22",
|
|
26
|
-
"dateModified": "2026-04-22",
|
|
27
|
-
"mainEntityOfPage": "https://thumbgate.ai/guides/gcp-mcp-guardrails"
|
|
28
|
-
}
|
|
29
|
-
</script>
|
|
30
|
-
<style>
|
|
31
|
-
:root { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --red: #f87171; }
|
|
32
|
-
* { box-sizing: border-box; }
|
|
33
|
-
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
|
|
34
|
-
a { color: var(--cyan); text-decoration: none; } a:hover { text-decoration: underline; }
|
|
35
|
-
.container { max-width: 820px; margin: 0 auto; padding: 0 24px; }
|
|
36
|
-
.topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10,10,11,0.88); border-bottom: 1px solid var(--line); }
|
|
37
|
-
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px; }
|
|
38
|
-
.brand { font-weight: 700; color: var(--text); text-decoration: none; }
|
|
39
|
-
h1 { font-size: clamp(30px, 5vw, 46px); line-height: 1.15; margin: 40px 0 16px; }
|
|
40
|
-
h2 { font-size: 24px; margin: 36px 0 12px; color: var(--cyan); }
|
|
41
|
-
h3 { font-size: 18px; margin: 24px 0 8px; }
|
|
42
|
-
p, li { font-size: 17px; color: var(--text); }
|
|
43
|
-
.muted { color: var(--muted); }
|
|
44
|
-
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
|
|
45
|
-
pre { background: var(--bg-card); border: 1px solid var(--line); border-radius: 10px; padding: 16px; overflow-x: auto; }
|
|
46
|
-
code.inline { background: var(--bg-card); padding: 2px 6px; border-radius: 4px; color: var(--cyan); }
|
|
47
|
-
.eyebrow { display: inline-block; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34,211,238,0.22); background: rgba(34,211,238,0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
|
|
48
|
-
.cta { display: inline-block; background: var(--cyan); color: #000; padding: 14px 22px; border-radius: 10px; font-weight: 700; margin: 24px 0; }
|
|
49
|
-
article { padding: 24px 0 80px; }
|
|
50
|
-
footer { border-top: 1px solid var(--line); padding: 32px 0; color: var(--muted); font-size: 14px; }
|
|
51
|
-
</style>
|
|
52
|
-
</head>
|
|
53
|
-
<body>
|
|
54
|
-
<header class="topbar">
|
|
55
|
-
<div class="container">
|
|
56
|
-
<a class="brand" href="/">ThumbGate</a>
|
|
57
|
-
<nav><a href="/guides/">Guides</a> · <a href="https://github.com/IgorGanapolsky/ThumbGate">GitHub</a></nav>
|
|
58
|
-
</div>
|
|
59
|
-
</header>
|
|
60
|
-
|
|
61
|
-
<main class="container">
|
|
62
|
-
<article>
|
|
63
|
-
<span class="eyebrow">Cloud Next 2026</span>
|
|
64
|
-
<h1>BigQuery, Spanner, AlloyDB Agent Guardrails: Gating Google's Agentic Data Cloud MCP Calls</h1>
|
|
65
|
-
<p class="muted">Google Cloud Next 2026 shipped the Agentic Data Cloud: BigQuery, Spanner, AlloyDB, Cloud SQL, and Looker are all exposed as MCP tool calls, and the Data Agent Kit drops those tools into Claude Code, Codex, Gemini CLI, and VS Code on day one. Existing IAM policies gate who can call what. They do not gate what your agent already learned not to do.</p>
|
|
66
|
-
|
|
67
|
-
<h2>What changed on April 22, 2026</h2>
|
|
68
|
-
<p>Google announced the Agentic Data Cloud at Cloud Next. Three pieces matter for anyone running an AI coding agent:</p>
|
|
69
|
-
<ul>
|
|
70
|
-
<li><strong>Knowledge Catalog remote MCP</strong> — semantic metadata for every table, column, and warehouse surface, exposed through an MCP server.</li>
|
|
71
|
-
<li><strong>Core-engine MCP</strong> — BigQuery, Spanner, AlloyDB, and Cloud SQL each speak MCP directly. Your agent can query, mutate, and describe tables through a standard tool-call wire.</li>
|
|
72
|
-
<li><strong>Data Agent Kit</strong> — a portable set of MCP tools and IDE extensions that drop into VS Code, Claude Code, Gemini CLI, and Codex.</li>
|
|
73
|
-
</ul>
|
|
74
|
-
<p>Net effect: every schema is now a surface your agent can call. The blast radius of a single bad tool call just grew by the width of your cloud warehouse.</p>
|
|
75
|
-
|
|
76
|
-
<h2>Why IAM is not the answer</h2>
|
|
77
|
-
<p>IAM and VPC Service Controls gate <em>who</em> can call an operation. They do not gate <em>what you already taught your agent not to do.</em> An agent running under a service account with <code class="inline">bigquery.tables.delete</code> has permission to drop the table. IAM will not stop it. Your "don't drop prod tables" thumbs-down from last Tuesday lives in a lesson, not a role.</p>
|
|
78
|
-
<p>The role-based layer and the feedback-based layer are orthogonal. IAM protects the tenant. ThumbGate protects the session.</p>
|
|
79
|
-
|
|
80
|
-
<h2>What ThumbGate gates at the MCP boundary</h2>
|
|
81
|
-
<p>ThumbGate runs as an MCP server next to your agent and maintains a local SQLite lesson database at <code class="inline">.thumbgate/memory.sqlite</code>. Every thumbs-down becomes a row. On every subsequent tool call, ThumbGate's <code class="inline">gate_check</code> intercepts the proposed call and blocks known-bad patterns before execution. For Google's Agentic Data Cloud surfaces, the high-value patterns are:</p>
|
|
82
|
-
<ul>
|
|
83
|
-
<li><strong>BigQuery destructive DDL</strong> — <code class="inline">DROP TABLE</code>, <code class="inline">DROP DATASET</code>, <code class="inline">TRUNCATE TABLE</code>, <code class="inline">ALTER TABLE ... DROP COLUMN</code> on any dataset matching <code class="inline">prod_*</code>.</li>
|
|
84
|
-
<li><strong>BigQuery unscoped DML</strong> — <code class="inline">DELETE FROM <table> WHERE 1=1</code>, <code class="inline">UPDATE</code> without a <code class="inline">WHERE</code>, any mutation whose predicate did not match the previous <code class="inline">SELECT COUNT(*)</code>.</li>
|
|
85
|
-
<li><strong>Spanner schema mutations</strong> — <code class="inline">DROP TABLE</code>, <code class="inline">DROP INDEX</code>, schema change DDL on labeled-prod instances.</li>
|
|
86
|
-
<li><strong>AlloyDB / Cloud SQL</strong> — <code class="inline">TRUNCATE</code>, unscoped <code class="inline">DELETE</code>, extension drops, <code class="inline">gcloud sql instances delete</code>, <code class="inline">gcloud sql instances patch ... --no-backup</code>.</li>
|
|
87
|
-
<li><strong>IAM escalation</strong> — <code class="inline">gcloud projects add-iam-policy-binding</code> granting <code class="inline">roles/owner</code> or <code class="inline">roles/iam.serviceAccountTokenCreator</code> from an agent session.</li>
|
|
88
|
-
</ul>
|
|
89
|
-
|
|
90
|
-
<h2>Install alongside your Google Cloud agent</h2>
|
|
91
|
-
<p>The Data Agent Kit ships into Claude Code, Codex, Gemini CLI, and VS Code — every one of those is a first-class ThumbGate-supported agent. One install per agent:</p>
|
|
92
|
-
<pre><code># Claude Code (most common path for BigQuery work)
|
|
93
|
-
npx thumbgate init --agent claude-code
|
|
94
|
-
|
|
95
|
-
# Codex
|
|
96
|
-
npx thumbgate init --agent codex
|
|
97
|
-
|
|
98
|
-
# Gemini CLI
|
|
99
|
-
npx thumbgate init --agent gemini</code></pre>
|
|
100
|
-
<p>The installer writes the MCP server config, wires the PreToolUse hook, creates <code class="inline">.thumbgate/memory.sqlite</code>, and prints every file it touched so you can roll back.</p>
|
|
101
|
-
|
|
102
|
-
<h2>Zero-Friction Enterprise Vertex AI Setup</h2>
|
|
103
|
-
<p>For enterprise teams, configure ThumbGate to route checks securely through Vertex AI using compliant Gemini models inside your corporate VPC with zero friction:</p>
|
|
104
|
-
<pre><code>npx thumbgate setup-vertex</code></pre>
|
|
105
|
-
<p>This automatically detects your active gcloud session, enables the Vertex AI API in your project, and writes the secure credentials to your local <code>.env</code> file. No manual console configurations required.</p>
|
|
106
|
-
|
|
107
|
-
<h2>Teach it a BigQuery lesson</h2>
|
|
108
|
-
<p>The first time your agent proposes <code class="inline">DROP TABLE prod_events</code>, capture the thumbs-down with zero friction:</p>
|
|
109
|
-
<pre><code>npx thumbgate capture down "destructive DDL on a prod BigQuery table" "require explicit confirmation before any DROP on prod_* datasets" --tags="bigquery,ddl,prod"</code></pre>
|
|
110
|
-
<p>Every future agent session — Claude Code, Codex, Gemini CLI, tomorrow morning's autopilot run — now checks this lesson against proposed tool calls before firing them.</p>
|
|
111
|
-
|
|
112
|
-
<h2>Knowledge Catalog vs. ThumbGate memory</h2>
|
|
113
|
-
<p>Google's Knowledge Catalog and the Agent Platform Memory Bank are different memory classes from ThumbGate's lesson DB:</p>
|
|
114
|
-
<ul>
|
|
115
|
-
<li><strong>Knowledge Catalog</strong> — semantic metadata about your data. "This column is PII, this table holds transactions."</li>
|
|
116
|
-
<li><strong>Memory Bank</strong> — conversational recall for the agent. "The user prefers Python over SQL."</li>
|
|
117
|
-
<li><strong>ThumbGate lesson DB</strong> — tool-call behavior memory. "Never <code class="inline">DROP TABLE</code> on prod after last Tuesday's thumbs-down."</li>
|
|
118
|
-
</ul>
|
|
119
|
-
<p>All three coexist. None replaces the others.</p>
|
|
120
|
-
|
|
121
|
-
<a class="cta" href="https://github.com/IgorGanapolsky/ThumbGate">Install ThumbGate →</a>
|
|
122
|
-
|
|
123
|
-
<h2>FAQ</h2>
|
|
124
|
-
<h3>Does ThumbGate need a separate "Google" adapter?</h3>
|
|
125
|
-
<p>No. The Data Agent Kit drops into Claude Code, Codex, Gemini CLI, and VS Code, all of which are first-class ThumbGate-supported agents. Install ThumbGate against your CLI of choice and the gate runs against every MCP call — including the ones Google just added.</p>
|
|
126
|
-
|
|
127
|
-
<h3>Does the gate add latency on BigQuery queries?</h3>
|
|
128
|
-
<p>The gate reads a local SQLite row and runs a pattern match. Typical overhead is under 5 ms per proposed tool call, measured against an empty warm cache. Your BigQuery query itself is still bounded by Google's SLA, not ours.</p>
|
|
129
|
-
|
|
130
|
-
<h3>What happens on an autopilot / scheduled run?</h3>
|
|
131
|
-
<p>The gate runs on every tool call regardless of origin. Whether Claude Code fired it from your terminal, an autopilot job triggered it at 9am, or Gemini CLI ran it from a CI hook — the PreToolUse hook still checks the lesson DB first.</p>
|
|
132
|
-
|
|
133
|
-
<h3>Does ThumbGate send my query text to any external service?</h3>
|
|
134
|
-
<p>No. The lesson DB is local SQLite. The gate check is local. No outbound network call is required for enforcement.</p>
|
|
135
|
-
|
|
136
|
-
<h3>Can I use ThumbGate with Google's Agent Platform (managed agents)?</h3>
|
|
137
|
-
<p>ThumbGate gates tool calls at the agent process that speaks MCP. For managed Agent Platform agents that run inside Google, the equivalent enforcement lives in IAM and VPC Service Controls. ThumbGate is the local-development and self-hosted companion — run it wherever your agent's process is under your control.</p>
|
|
138
|
-
</article>
|
|
139
|
-
</main>
|
|
140
|
-
|
|
141
|
-
<footer>
|
|
142
|
-
<div class="container">
|
|
143
|
-
<p>ThumbGate — pre-action checks for AI coding agents. <a href="https://github.com/IgorGanapolsky/ThumbGate">GitHub</a> · <a href="/">Home</a></p>
|
|
144
|
-
</div>
|
|
145
|
-
</footer>
|
|
146
|
-
</body>
|
|
147
|
-
</html>
|