← Back to thomasbedell.com

Security

Last updated: July 26, 2026

Thomas has spent thirty-five years securing other people's infrastructure, so it would be poor form not to explain how this one is put together. This page describes the actual measures protecting thomasbedell.com and Ava, its AI assistant — no more and no less.

Reporting a vulnerability? Email info@thomasbedell.com with "Security" in the subject line. See Responsible disclosure below.

1. Architecture

The site is a static set of files served by nginx from a container running on Google Cloud Run. Ava's backend runs as a separate process inside that same container, reachable only over the container's own loopback interface — it is never exposed to the internet directly. nginx proxies the small set of paths under /api/ava/ to it and nothing else.

Keeping Ava in-process with the site means requests to her are same-origin: no cross-origin API surface, and no credentials in the browser.

2. Credentials

3. Transport and delivery

All traffic is served over HTTPS with TLS terminated by Google's edge; the managed certificate is renewed automatically. Requests to www are permanently redirected to the canonical host. Connections from Ava's backend to the AI, speech, email, and CRM providers are made over TLS.

4. Handling untrusted input

Everything arriving from a browser is treated as hostile until proven otherwise:

5. AI-specific safeguards

An AI assistant introduces risks a static page does not. The ones that matter here are handled as follows:

6. Data minimisation

What is collected, and who processes it, is set out in full in the Privacy Policy.

7. Monitoring

Inquiries and delivery failures are written to structured application logs, so a lead is never lost silently if an email or CRM provider is unavailable. Logs are reviewed when something misbehaves and are retained on the schedule described in the privacy policy. Application logs deliberately record inquiry contents — please keep sensitive information out of the chat.

8. Dependencies

Ava's backend runs on a deliberately small dependency tree — the official Google GenAI SDK and a WebSocket client — to keep the supply-chain surface narrow. Dependencies are pinned by lockfile so a build is reproducible, and the container is rebuilt to pick up base-image and dependency patches.

9. What this page does not claim

Being straight about the boundaries matters more than a longer list:

Engagements with Thomas are governed by their own agreements, which is where security obligations for actual client work belong — not here.

10. Responsible disclosure

Reports of genuine security issues are welcome and will be taken seriously.

There is no paid bug bounty, but credit is gladly given to anyone who reports a real issue in good faith.

11. Contact

Thomas Bedell
14100 Walsingham Road #3637, Largo, Florida 33774, United States
info@thomasbedell.com
(727) 557-6260