btw this is what claude said when i asked:
Yes, None is correct for this specific architecture. Don't pick iOS apps — it'll break Books search. Here's why:
Where the request to Google Books actually comes from:
iOS app → Supabase Edge Function (google-books-search) → Google Books API
The HTTP request to Google's servers originates from Supabase's Deno runtime, not from your iOS device. The "iOS apps" restriction tells Google "only accept requests where the bundle ID + iOS app signature matches" — but our request doesn't come from an iOS app at all. It would 403 on every call.
Why None is fine here:
The key lives in Supabase function secrets — it never ships in your iOS bundle. There's nothing to extract from a decompiled IPA.
The Edge Function gates on a valid Supabase session (an attacker would need a real signed-in account to even invoke it).
Per-user rate limit (60/min) caps abuse blast radius even if someone scripted it.
The "Books API only" restriction you already set means a leaked key can't bill against more expensive APIs.
The GCC warning is generic — Google can't tell whether your key sits in a server-side secret store or in a client bundle. It defaults to "warn." For a key behind an authenticated server-side proxy with API + rate restrictions, the warning is overcautious.
The only restriction option that would meaningfully apply is "IP addresses" — restrict to Supabase's egress IPs. But Supabase Edge Functions run on Deno Deploy/Cloudflare with rotating IPs that aren't published as stable CIDR ranges, so it's not practical.
So: leave Application restrictions as None, keep API restrictions as Books API only, hit Save. You're done.