tru-mcp 1.1.0 → 1.1.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.
- package/dist/tools/setup_content.js +1 -1
- package/dist/tools/setup_content.js.map +1 -1
- package/dist/tools/setup_guide.js +56 -137
- package/dist/tools/setup_guide.js.map +1 -1
- package/dist/tools/validate_integration.js +48 -7
- package/dist/tools/validate_integration.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ export const OWL_BANNER = `
|
|
|
21
21
|
export const SECTIONS = [
|
|
22
22
|
{ number: 1, name: "Register", milestones: ["authenticate", "scan_codebase", "register_app", "api_key_saved"] },
|
|
23
23
|
{ number: 2, name: "Payments", milestones: ["stripe_oauth_started", "stripe_connected", "products_synced", "products_configured", "products_skipped"] },
|
|
24
|
-
{ number: 3, name: "Integration", milestones: ["add_middleware", "choose_billing_model", "
|
|
24
|
+
{ number: 3, name: "Integration", milestones: ["add_middleware", "choose_billing_model", "validate_integration"] },
|
|
25
25
|
{ number: 4, name: "Go Live", milestones: ["validate_discovery"] },
|
|
26
26
|
];
|
|
27
27
|
// ─── Shared code snippets ────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_content.js","sourceRoot":"","sources":["../../src/tools/setup_content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAEpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxF,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,MAAM,CAAC,MAAM,UAAU,GAAG;;;;iBAIT,OAAO;;;OAGjB,CAAC;AAUR,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE;IAC/G,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE;IACvJ,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"setup_content.js","sourceRoot":"","sources":["../../src/tools/setup_content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { getAppDetails } from "tru-cli/api-client";
|
|
3
3
|
import { getStoredApp } from "tru-cli/config";
|
|
4
|
-
import { BASE_URL,
|
|
4
|
+
import { BASE_URL, computeSectionStatuses, formatStatusTable, } from "./setup_content.js";
|
|
5
5
|
// ─── Section content generators ──────────────────────────────────
|
|
6
6
|
function section1_Register() {
|
|
7
7
|
return `## Phase 1: Register — "You exist on tru"
|
|
@@ -193,92 +193,86 @@ Then continue to the next section.
|
|
|
193
193
|
|
|
194
194
|
### Next
|
|
195
195
|
|
|
196
|
-
Payments are wired up — charges flow directly to your Stripe account. Next:
|
|
196
|
+
Payments are wired up — charges flow directly to your Stripe account. Next: add tru() to your endpoints.
|
|
197
197
|
|
|
198
198
|
Call \`dev_setup_guide(section: 3)\` to continue.`;
|
|
199
199
|
}
|
|
200
200
|
function section3_Provisioning() {
|
|
201
201
|
return `## Phase 3: Integration — "Your endpoints accept agent payments"
|
|
202
202
|
|
|
203
|
-
**Why this matters:** This is the actual integration — adding \`
|
|
203
|
+
**Why this matters:** This is the actual integration — adding \`tru()\` to your endpoints so they accept payments and choosing how you want to charge.
|
|
204
204
|
|
|
205
|
-
### Step 1: Add tru
|
|
205
|
+
### Step 1: Add tru() to your endpoints
|
|
206
206
|
|
|
207
|
-
Find the API endpoints you want to monetize
|
|
207
|
+
Find the API endpoints you want to monetize. Add one line — \`tru()\` — before your handler:
|
|
208
208
|
|
|
209
209
|
\`\`\`javascript
|
|
210
|
-
import {
|
|
210
|
+
import { tru } from 'tru-402';
|
|
211
211
|
|
|
212
212
|
app.post('/api/generate',
|
|
213
|
-
|
|
213
|
+
tru({ amount: (req) => getPrice(req.body.model) }),
|
|
214
214
|
(req, res) => {
|
|
215
|
-
// req.tru = { email, name, userId
|
|
215
|
+
// req.tru = { email, name, userId }
|
|
216
|
+
// Authenticated user — no API key needed
|
|
216
217
|
res.json({ result: generate(req) });
|
|
217
218
|
}
|
|
218
219
|
);
|
|
219
220
|
\`\`\`
|
|
220
221
|
|
|
221
|
-
|
|
222
|
+
That's it. One line. No provision endpoint, no webhook secrets, no login forms.
|
|
223
|
+
|
|
224
|
+
\`tru()\` handles everything:
|
|
225
|
+
- **Authentication** — users sign in via Stripe Link (10 seconds)
|
|
226
|
+
- **Payment tracking** — usage is recorded and settled daily
|
|
227
|
+
- **Identity** — your handler receives \`req.tru\` with the verified user
|
|
228
|
+
|
|
229
|
+
The \`amount\` can be a fixed number or a function that returns the price based on the request (model, resolution, etc.). Read the request body to determine the cost.
|
|
230
|
+
|
|
231
|
+
**Existing users are not affected.** Requests with existing auth (API keys, Bearer tokens, session cookies) pass through automatically. Only unauthenticated requests hit the 402 payment flow. If the app has a custom auth check:
|
|
222
232
|
|
|
223
233
|
\`\`\`javascript
|
|
224
|
-
|
|
225
|
-
amount:
|
|
226
|
-
passthrough: (req) => req.headers['x-
|
|
234
|
+
tru({
|
|
235
|
+
amount: (req) => getPrice(req.body.model),
|
|
236
|
+
passthrough: (req) => req.headers['x-api-key'] != null,
|
|
227
237
|
})
|
|
228
238
|
\`\`\`
|
|
229
239
|
|
|
230
240
|
Report your milestone: \`reportSetupProgress({ milestone: "add_middleware" })\`
|
|
231
241
|
|
|
232
|
-
### Step 2:
|
|
242
|
+
### Step 2: Set your pricing
|
|
233
243
|
|
|
234
|
-
**Use AskUserQuestion** to
|
|
244
|
+
**Use AskUserQuestion** to understand how the app charges:
|
|
235
245
|
|
|
236
|
-
question: "How
|
|
237
|
-
header: "
|
|
246
|
+
question: "How is your API priced?\\n\\nI need to know so I can configure the amount function in tru(). This determines what users pay per request."
|
|
247
|
+
header: "Pricing"
|
|
238
248
|
options:
|
|
239
|
-
- label: "
|
|
240
|
-
description: "
|
|
241
|
-
- label: "
|
|
242
|
-
description: "
|
|
243
|
-
- label: "
|
|
244
|
-
description: "
|
|
245
|
-
|
|
246
|
-
**If they choose "Fixed price"**, the middleware is already set up correctly with a static amount. No changes needed.
|
|
247
|
-
|
|
248
|
-
**If they choose "Free credits then pay"**, update the middleware to use an async \`amount\` function. The \`amount\` function receives \`req\` with \`req.tru\` already populated (identity-first), so it can look up the user's balance:
|
|
249
|
-
|
|
250
|
-
\`\`\`javascript
|
|
251
|
-
trux({
|
|
252
|
-
amount: async (req) => {
|
|
253
|
-
if (!req.tru) return 0.05; // price shown in 402 challenge
|
|
254
|
-
const user = await db.getUser(req.tru.email);
|
|
255
|
-
return user?.credits > 0 ? 0 : 0.05; // free while credits last
|
|
256
|
-
}
|
|
257
|
-
})
|
|
258
|
-
\`\`\`
|
|
259
|
-
|
|
260
|
-
When amount is \`0\`: tru still requires identity (user must sign up via Stripe Link), but charges nothing. The request passes through and the app's handler decrements a credit.
|
|
261
|
-
|
|
262
|
-
When amount is \`> 0\`: tru tracks the usage and settles it daily — one Stripe charge per user per day.
|
|
249
|
+
- label: "Same price for every request"
|
|
250
|
+
description: "e.g. $0.002 per generation"
|
|
251
|
+
- label: "Price varies by model or parameters"
|
|
252
|
+
description: "e.g. different costs for different AI models"
|
|
253
|
+
- label: "I'll explain"
|
|
254
|
+
description: ""
|
|
263
255
|
|
|
264
|
-
|
|
256
|
+
Based on their answer, configure the \`amount\` parameter in the \`tru()\` call:
|
|
265
257
|
|
|
266
|
-
**If
|
|
258
|
+
**If same price:** use a number: \`tru({ amount: 0.002 })\`
|
|
267
259
|
|
|
260
|
+
**If variable:** use a function that reads the request to determine the price:
|
|
268
261
|
\`\`\`javascript
|
|
269
|
-
|
|
262
|
+
tru({
|
|
270
263
|
amount: (req) => {
|
|
271
|
-
|
|
272
|
-
|
|
264
|
+
const model = req.body.model || 'default';
|
|
265
|
+
const prices = { 'flux': 0.003, 'sdxl': 0.001, 'premium': 0.01 };
|
|
266
|
+
return prices[model] || 0.002;
|
|
273
267
|
}
|
|
274
268
|
})
|
|
275
269
|
\`\`\`
|
|
276
270
|
|
|
277
|
-
The amount function can be sync or async. When \`req.tru\` is not set (first 402 challenge
|
|
271
|
+
The amount function can be sync or async. When \`req.tru\` is not set (first 402 challenge), return a default/representative price — this is what appears in the 402 response to give users an idea of the cost.
|
|
278
272
|
|
|
279
273
|
Report your milestone: \`reportSetupProgress({ milestone: "choose_billing_model" })\`
|
|
280
274
|
|
|
281
|
-
### Step
|
|
275
|
+
### Step 3: Free trial (optional)
|
|
282
276
|
|
|
283
277
|
**Use AskUserQuestion** to ask about free trials:
|
|
284
278
|
|
|
@@ -299,104 +293,28 @@ If they choose a dollar amount, convert to cents and call:
|
|
|
299
293
|
dev_update_app(free_trial_cents: 500)
|
|
300
294
|
\`\`\`
|
|
301
295
|
|
|
302
|
-
If they type a custom amount, parse the number, convert to cents (multiply by 100), then call dev_update_app.
|
|
303
|
-
|
|
304
|
-
**How it works for the developer:** Your code returns the normal price per request. tru checks if the user has trial credit remaining. If yes, tru deducts from the trial — no paid usage is recorded. When the trial runs out, tru starts recording paid usage and settling daily. The developer does not need to track credits or change their pricing logic.
|
|
305
|
-
|
|
306
|
-
### Step 3: Build the provision endpoint
|
|
307
|
-
|
|
308
|
-
When a new user signs up through tru, tru calls your provision endpoint with their verified identity. Your app creates an account and returns credentials. This is how users go from "I just signed up" to "I have an account" — instantly.
|
|
309
|
-
|
|
310
|
-
Register it with tru:
|
|
311
|
-
|
|
312
|
-
\`\`\`
|
|
313
|
-
dev_set_provision_url(provision_url: "http://localhost:PORT/api/tru/provision")
|
|
314
|
-
\`\`\`
|
|
315
|
-
|
|
316
|
-
Use the actual URL where the endpoint will run (localhost during development, production URL later).
|
|
317
|
-
|
|
318
|
-
When a user is provisioned, tru sends their verified info plus any purchases they've made:
|
|
319
|
-
|
|
320
|
-
\`\`\`json
|
|
321
|
-
{
|
|
322
|
-
"email": "user@example.com",
|
|
323
|
-
"name": "Jane Doe",
|
|
324
|
-
"tru_user_id": "user@example.com",
|
|
325
|
-
"purchases": [
|
|
326
|
-
{
|
|
327
|
-
"charge_id": "uuid",
|
|
328
|
-
"amount_cents": 499,
|
|
329
|
-
"currency": "usd",
|
|
330
|
-
"type": "recurring",
|
|
331
|
-
"interval": "month",
|
|
332
|
-
"description": "Pro plan",
|
|
333
|
-
"status": "approved",
|
|
334
|
-
"product": {
|
|
335
|
-
"id": "uuid",
|
|
336
|
-
"name": "Pro Plan",
|
|
337
|
-
"stripe_product_id": "prod_xyz",
|
|
338
|
-
"stripe_price_id": "price_abc"
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
]
|
|
342
|
-
}
|
|
343
|
-
\`\`\`
|
|
344
|
-
|
|
345
|
-
The \`purchases\` array is only present when the user has approved charges — fully backwards compatible.
|
|
346
|
-
|
|
347
|
-
**If the developer chose "Free credits then pay"**, the provision endpoint should grant initial credits:
|
|
348
|
-
|
|
349
|
-
\`\`\`javascript
|
|
350
|
-
app.post('/api/tru/provision', (req, res) => {
|
|
351
|
-
if (!verifyTruSignature(req.headers['x-tru-signature'], req.rawBody)) {
|
|
352
|
-
return res.status(401).json({ error: 'Invalid signature' });
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
const { email, name } = req.body;
|
|
356
|
-
const existing = findAccountByEmail(email);
|
|
357
|
-
if (existing) {
|
|
358
|
-
return res.json({ api_key: existing.apiKey, account_id: existing.id });
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// Create account with free credits
|
|
362
|
-
const account = createAccount(email, name);
|
|
363
|
-
account.balance_cents = 25; // $0.25 free (5 requests at $0.05)
|
|
364
|
-
res.json({ api_key: account.apiKey, account_id: account.id });
|
|
365
|
-
});
|
|
366
|
-
\`\`\`
|
|
367
|
-
|
|
368
|
-
One account per verified identity — free credits can't be abused because tru verifies identity via Stripe Link (real email + real card on file).
|
|
369
|
-
|
|
370
|
-
**Important:** tru does not retry failed provision calls. Make the endpoint **idempotent** — if called twice with the same email, return the existing account instead of creating a duplicate.
|
|
371
|
-
|
|
372
|
-
${SIGNATURE_VERIFICATION_SETUP}
|
|
373
|
-
|
|
374
|
-
**For the standard provision endpoint (fixed price or dynamic pricing):**
|
|
375
|
-
|
|
376
|
-
${PROVISION_ENDPOINT_CODE}
|
|
377
|
-
|
|
378
|
-
The \`TRU_APP_SECRET\` used for signature verification is the app secret you saved to \`.env\` in Phase 1. The code reads it from \`process.env.TRU_APP_SECRET\`. If you saved it correctly in Phase 1, no additional secret setup is needed here.
|
|
379
|
-
|
|
380
|
-
**Checkpoint:** Tell the developer: "I've built your provision endpoint. Restart your server if it doesn't auto-reload, then I'll test it." After the server is running, send a test POST to the provision endpoint to confirm it responds (a 401 from signature verification is fine — it means the endpoint exists and is checking signatures correctly). If it returns 404 or connection refused, help the developer fix the issue before continuing.
|
|
296
|
+
If they type a custom amount, parse the number, convert to cents (multiply by 100), then call dev_update_app.
|
|
381
297
|
|
|
382
298
|
### Step 4: Validate
|
|
383
299
|
|
|
384
|
-
Tell the developer: "Restart your server if it doesn't auto-reload, then I'll
|
|
300
|
+
Tell the developer: "Restart your server if it doesn't auto-reload, then I'll run validation. I'll test two things:
|
|
301
|
+
|
|
302
|
+
1. That unauthenticated requests get a 402 response (tru is working)
|
|
303
|
+
2. That requests WITH an API key DON'T get 402 (existing users aren't affected)
|
|
385
304
|
|
|
386
|
-
|
|
305
|
+
For the second test, I'll send a request with a dummy API key. Your server will probably return 401 (invalid key) — that's expected and correct. It just proves that tru() let the request through instead of blocking it with a 402."
|
|
387
306
|
|
|
388
|
-
|
|
307
|
+
Run \`dev_validate(service_name)\` to verify:
|
|
389
308
|
- App registered with API key
|
|
390
309
|
- Stripe connected
|
|
391
|
-
-
|
|
392
|
-
-
|
|
393
|
-
- Charge creation works
|
|
310
|
+
- \`tru()\` returns 402 on unauthenticated requests
|
|
311
|
+
- Existing auth (API keys) bypasses tru()
|
|
394
312
|
|
|
395
|
-
|
|
313
|
+
Fix any issues. Re-run until all checks pass.
|
|
396
314
|
|
|
397
315
|
### Next
|
|
398
316
|
|
|
399
|
-
Your endpoints now accept agent payments
|
|
317
|
+
Your endpoints now accept agent payments. Next: go live.
|
|
400
318
|
|
|
401
319
|
Call \`dev_setup_guide(section: 4)\` to finish up.`;
|
|
402
320
|
}
|
|
@@ -409,7 +327,7 @@ Explain to the developer how tru works now that they've set it up:
|
|
|
409
327
|
|
|
410
328
|
"Here's what you just built. It's simple and elegant:
|
|
411
329
|
|
|
412
|
-
1. **\`
|
|
330
|
+
1. **\`tru()\` wraps your existing endpoints.** Any request without a tru identity gets a 402 Payment Required response. Existing users with API keys are completely unaffected — they pass right through.
|
|
413
331
|
|
|
414
332
|
2. **The 402 response is self-documenting.** It contains step-by-step instructions that any AI agent can follow — create a login session, authenticate the user, and retry. The agent doesn't need to know about tru in advance. The protocol IS the documentation.
|
|
415
333
|
|
|
@@ -437,9 +355,9 @@ Use AskUserQuestion:
|
|
|
437
355
|
|
|
438
356
|
If they say yes:
|
|
439
357
|
1. Search the codebase for documentation files: README.md, docs.html, docs/, openapi.json, or any file that looks like API documentation
|
|
440
|
-
2. Read the \`
|
|
358
|
+
2. Read the \`tru()\` configuration from the code to get the actual per-request price
|
|
441
359
|
3. Add a "Pricing" section with:
|
|
442
|
-
- The per-request price (from their
|
|
360
|
+
- The per-request price (from their tru config)
|
|
443
361
|
- Free trial amount if configured (from the app's free_trial_cents)
|
|
444
362
|
- How new users get started ("call any endpoint — the API returns payment instructions automatically")
|
|
445
363
|
- How existing users authenticate ("pass your API key via X-API-Key header")
|
|
@@ -484,6 +402,7 @@ If they say yes:
|
|
|
484
402
|
Share these links with the developer:
|
|
485
403
|
- **Your tru dashboard:** [${BASE_URL}/admin](${BASE_URL}/admin) — manage your app, view charges, monitor activity
|
|
486
404
|
- **App settings:** [${BASE_URL}/admin/settings](${BASE_URL}/admin/settings) — update app profile, switch Stripe modes, manage API keys
|
|
405
|
+
- **FAQ:** [${BASE_URL}/faq](${BASE_URL}/faq) — how billing, trials, settlement, and auto-upgrade work
|
|
487
406
|
|
|
488
407
|
If the developer connected in **test mode**, remind them: "You're running in test mode — great for testing the full flow with card \`4242424242424242\`. When you're ready for real payments, just ask me to run \`dev_connect_stripe\` in live mode and I'll help you switch."
|
|
489
408
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_guide.js","sourceRoot":"","sources":["../../src/tools/setup_guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,QAAQ,EAER,
|
|
1
|
+
{"version":3,"file":"setup_guide.js","sourceRoot":"","sources":["../../src/tools/setup_guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -282,9 +282,9 @@ async function checkFrontend(websiteUrl, serviceName, app) {
|
|
|
282
282
|
}
|
|
283
283
|
export const validateIntegrationTool = {
|
|
284
284
|
name: "dev_validate",
|
|
285
|
-
description: "Validate an app's tru integration. Checks platform config (registration, Stripe
|
|
286
|
-
"
|
|
287
|
-
"
|
|
285
|
+
description: "Validate an app's tru integration. Checks platform config (registration, Stripe), " +
|
|
286
|
+
"verifies tru() returns 402 on unauthenticated requests, confirms API key auth passes through, " +
|
|
287
|
+
"and returns a checklist with pass/fail per check and actionable fixes for failures.",
|
|
288
288
|
inputSchema: {
|
|
289
289
|
service_name: z
|
|
290
290
|
.string()
|
|
@@ -343,7 +343,51 @@ export const validateIntegrationTool = {
|
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
345
|
const allDetectedSteps = ["validate_integration"];
|
|
346
|
-
// Section 2:
|
|
346
|
+
// Section 2: tru() endpoint checks
|
|
347
|
+
// Test that unauthenticated requests return 402
|
|
348
|
+
if (app?.website) {
|
|
349
|
+
try {
|
|
350
|
+
// Try common API endpoints to find one protected by tru()
|
|
351
|
+
const testPaths = ['/api/generate', '/api/v1/generate', '/api/create', '/api/run'];
|
|
352
|
+
let found402 = false;
|
|
353
|
+
for (const path of testPaths) {
|
|
354
|
+
try {
|
|
355
|
+
const res = await fetch(new URL(path, app.website).href, {
|
|
356
|
+
method: 'POST',
|
|
357
|
+
headers: { 'Content-Type': 'application/json' },
|
|
358
|
+
body: JSON.stringify({}),
|
|
359
|
+
});
|
|
360
|
+
if (res.status === 402) {
|
|
361
|
+
const body = await res.json().catch(() => ({}));
|
|
362
|
+
allChecks.push(pass("402 response", `${path} returns 402 with payment instructions`));
|
|
363
|
+
found402 = true;
|
|
364
|
+
// Test that requests with auth headers bypass tru() (don't get 402)
|
|
365
|
+
const authRes = await fetch(new URL(path, app.website).href, {
|
|
366
|
+
method: 'POST',
|
|
367
|
+
headers: { 'Content-Type': 'application/json', 'X-API-Key': 'validation_passthrough_test' },
|
|
368
|
+
body: JSON.stringify({}),
|
|
369
|
+
});
|
|
370
|
+
if (authRes.status !== 402) {
|
|
371
|
+
allChecks.push(pass("Existing auth passthrough", `Requests with API keys bypass payment (got ${authRes.status}). Existing users won't be affected.`));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
allChecks.push(fail("Existing auth passthrough", `Requests with X-API-Key header still got 402. Add passthrough: (req) => req.headers['x-api-key'] != null to your tru() config.`));
|
|
375
|
+
}
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
catch { /* endpoint doesn't exist, try next */ }
|
|
380
|
+
}
|
|
381
|
+
if (!found402) {
|
|
382
|
+
allChecks.push(fail("402 response", "No endpoint returned 402. Make sure tru() is added to at least one API endpoint."));
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
387
|
+
allChecks.push(fail("402 response", `Could not reach app: ${message}`));
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
// Provision endpoint (optional — not required for per-request billing)
|
|
347
391
|
const provisionUrl = fullApp.provision_url;
|
|
348
392
|
const webhookSecret = fullApp.webhook_secret;
|
|
349
393
|
if (provisionUrl) {
|
|
@@ -353,9 +397,6 @@ export const validateIntegrationTool = {
|
|
|
353
397
|
allDetectedSteps.push("build_provision");
|
|
354
398
|
}
|
|
355
399
|
}
|
|
356
|
-
else if (!appDetailError) {
|
|
357
|
-
allChecks.push(fail("Provision URL", "No provision_url registered. After building the provision endpoint, register it: `dev_set_provision_url(provision_url: \"http://...\")`."));
|
|
358
|
-
}
|
|
359
400
|
// Section 2b: Charge creation test
|
|
360
401
|
if (app?.stripe_connected) {
|
|
361
402
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_integration.js","sourceRoot":"","sources":["../../src/tools/validate_integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate_integration.js","sourceRoot":"","sources":["../../src/tools/validate_integration.ts"],"names":[],"mappings":"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"}
|