Testing & CI
Make outbound HTTP in your test suite boring again
Tests that reach real third-party APIs fail for reasons unrelated to your code. A relay gives CI one stable endpoint, one key per pipeline and a record showing exactly what a red build requested.
Where it goes wrong
Flaky suites usually blame the network: a fetch with no timeout, a sandbox endpoint that rate-limits, a credential pasted into a workflow file. Debugging then means reproducing a request nobody wrote down.
What Backfire handles
- One endpoint and one key per CI pipeline, revocable without touching test code.
- Enforced timeouts turn a hung dependency into a failed assertion instead of a stuck job.
- Every call is logged with status and duration, so a failing run has evidence attached.
- Refused calls — blocked target, bad key, rate limit — cost nothing.
The request
example
const CALLS = [];
async function callUpstream(path) {
const envelope = await (await fetch('https://backfireapi.base44.app/functions/forward', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.BACKFIRE_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ url: path, method: 'GET', timeout_ms: 5000 }),
})).json();
CALLS.push({ path, result: envelope.ok ? envelope.upstream.status : envelope.error.code });
if (!envelope.ok) throw new Error(envelope.error.code);
return envelope.body;
}
afterAll(() => console.log(CALLS)); // what this run actually requestedAll use cases
Questions about this
Keep reading
Try it with 5,000 free trips.
No card, no subscription, and the balance never expires.

