Glossary
Terms and definitions used in Go Bananas! documentation.
A
AES-GCM
Advanced Encryption Standard with Galois/Counter Mode. The encryption algorithm used to protect tenant provider API keys (Gemini and OpenAI) at rest in the D1 database. Each provider's key is encrypted independently in tenant_provider_credentials.
Allowed Models
A per-tenant list (allowed_models column) controlling which providers a tenant can route requests to. Set by admins; the frontend ModelSelector and backend validateModelForTenant both filter against it. Unknown or disallowed model_id values fall back to the tenant's default.
API Key
A secret token used to authenticate requests. Go Bananas! uses two formats:
sk_live_*- Production keyssk_test_*- Test/development keys
Aspect Ratio
The proportional relationship between image width and height. Supported ratios: square (1:1), portrait (3:4), landscape (4:3), 16:9, 9:16.
Authorization Code
A short-lived token (10 minutes) issued by the OAuth authorization endpoint after user consent. Exchanged for access and refresh tokens at the token endpoint.
Access Token
An OAuth token used to authenticate MCP requests (/mcp, or the legacy /sse). Go Bananas! access tokens are valid for 1 hour and are passed in the Authorization: Bearer header.
B
Base Prompt
The core description of a character's appearance, stored with the character definition and automatically included in all generations using that character.
Batch Operations
API endpoints that operate on multiple resources at once, such as bulk delete or batch generation.
C
Character
A saved visual identity in Go Bananas!. Characters include a base prompt, optional reference images, and can be used across multiple sessions for consistent appearance.
Character Reference System
The feature allowing users to save character definitions once and generate consistent images across unlimited sessions without repeating descriptions.
Cloudflare Workers
Serverless compute platform that runs Go Bananas!'s backend code at edge locations worldwide.
Continue Editing
An MCP tool that edits the most recent image in a session without specifying an image ID, enabling natural conversational workflows.
D
D1 Database
Cloudflare's serverless SQL database (SQLite) used to store Go Bananas!'s metadata, user data, and relationships.
Durable Objects
Cloudflare's stateful serverless objects. Go Bananas! uses them to maintain MCP session state during request processing.
E
Edit Depth
The number of edits applied to an image. Original images have depth 0, first edits have depth 1, etc.
Edit Lineage
The chain of parent-child relationships between original and edited images, tracked via parent_image_id.
Encryption Key
A 256-bit (64 hex character) key used for AES-GCM encryption of sensitive data like tenant provider API keys (both Gemini and OpenAI).
G
Gemini API
Google's generative AI API. One of two image-generation backends supported by Go Bananas!; the other is OpenAI. Supports Flash Lite (fastest, default), Flash (general purpose), and Pro (high quality) models.
Gemini Flash Lite
Google's fastest image generation model (gemini-flash-lite-image), branded as Nano Banana 2 Lite in Go Bananas!. Default model for new tenants. Optimized for 1K output, low latency, and low cost. 30s default timeout.
Gemini Flash
Google's versatile image generation model (gemini-flash-image), branded as Nano Banana 2 in Go Bananas!. Supports up to 14 reference images, 1K/2K/4K tiers, Google Search grounding, and 16,384 character prompts. 60s default timeout.
Gemini Pro
Google's high-quality image generation model (gemini-pro-image), branded as Go Bananas! Pro. Supports up to 14 reference images (6 high-fidelity), 16,384 character prompts, 1K/2K/4K resolution tiers, Google Search grounding, and thinking mode. 120s default timeout.
I
Image ID
A unique numeric identifier for each image in the D1 database, used to reference specific images for editing or retrieval.
K
KV (Key-Value) Store
Cloudflare's distributed key-value storage. Used by Go Bananas! for caching and tenant configuration.
M
MCP (Model Context Protocol)
An open protocol for connecting AI models to external tools and data sources. Go Bananas! implements an MCP server with 53 tools.
MCP Client
Software that connects to MCP servers, such as Claude Desktop, Cursor, or custom implementations.
MCP Tool
A function exposed via MCP that AI models can invoke. Each tool has a name, description, and input schema.
Model ID
The string identifier passed in model_id to select which provider/model handles a generation. Currently six: gemini-flash-lite-image (default), gemini-flash-image, gemini-pro-image, openai-gpt-image-2, openai-gpt-image-2.5-flare, openai-gpt-image-2.5-sunburst.
Model Registry
The single source of truth for supported image-generation models, in src/models/registry.ts. Each entry declares the provider, API model ID, capabilities (max ref images, supported aspect ratios, output formats, quality levels, size constraints), and default timeout. Adding a model is a registry edit + a provider client.
Multi-Tenant
Architecture where a single deployment serves multiple isolated customers (tenants), each with their own data and configuration.
N
Negative Prompt
Instructions for what to avoid in generated images, such as "blurry, low quality, watermarks".
O
OAuth 2.1
The latest OAuth specification used by Go Bananas! for secure authentication. Requires PKCE for all authorization flows and supports dynamic client registration.
OAuth Client
An application registered with Go Bananas! to use OAuth authentication. Clients receive a client_id and optionally a client_secret.
OpenAI gpt-image-2
OpenAI's flagship image-generation model (openai-gpt-image-2, snapshot gpt-image-2-2026-04-21). Best-in-class text rendering and prompt adherence. Supports low/medium/high/auto quality tiers, PNG/JPEG/WebP output with output_compression, sizes up to 3,840px edge (multiples of 16, ≤3:1 aspect), 16 reference images, and 32,000 character prompts. 240s default timeout. Routes through /v1/images/generations and /v1/images/edits.
OpenAI GPT Image 2.5
OpenAI's GPT Image 2.5 models, in two variants: Flare (openai-gpt-image-2.5-flare, fast everyday generation) and Sunburst (openai-gpt-image-2.5-sunburst, precise generation and editing). Same size limits, formats, 16 reference images and 32,000 character prompts as GPT Image 2, plus xhigh/max quality and transparent backgrounds (PNG or WebP). 240s default timeout. See OpenAI GPT Image 2.5.
P
PKCE (Proof Key for Code Exchange)
A security extension to OAuth that prevents authorization code interception attacks. Go Bananas! requires PKCE with the S256 (SHA-256) challenge method.
Parent Image ID
Reference to the source image for an edit operation, creating the edit lineage chain.
Product Reference
A saved product image that can be used to generate consistent marketing images across multiple scenes.
Prompt
Text description provided to the AI model describing the desired image content.
Q
Quota
Usage limits assigned to each tenant, typically measured in monthly storage (MB) or number of images.
R
R2 Bucket
Cloudflare's S3-compatible object storage used to store generated images and thumbnails.
R2 Key
The unique path to an object in R2 storage, formatted as {tenant_id}/{date}/{operation}-{uuid}.{ext}.
Rate Limit
Maximum number of requests allowed per time period (typically per minute) to prevent abuse.
Reference Image
An existing image provided as input to guide generation or editing, used for style reference or character consistency.
Refresh Token
A long-lived OAuth token (30 days) used to obtain new access tokens without re-authentication. Go Bananas! implements refresh token rotation for security.
Refresh Token Rotation
A security practice where each refresh token can only be used once. When a refresh token is used, a new one is issued and the old one is invalidated.
S
Scene Prompt
Description of the scene/context when generating with a character, combined with the character's base prompt.
Session
A grouping of related image operations, tracked with a session ID. Sessions maintain state like the last generated image.
Session ID
Unique identifier for a session, typically formatted as sess_{uuid}.
SSE (Server-Sent Events)
A web protocol for server-to-client streaming. Used as the legacy MCP transport (deprecated in favor of HTTP).
Streamable HTTP
The recommended MCP transport protocol, using standard HTTP POST requests with streaming responses.
Style Preset
A saved combination of prompt prefix, negative prompt, system instruction, and aspect ratio that can be applied to generations.
System Instruction
High-level guidance for the AI model's behavior, such as "Professional photography style" or "Watercolor painting".
SynthID
Google's invisible watermarking technology embedded in generated images for identification.
T
Tenant
A customer account in the multi-tenant system. Each tenant has isolated data, API keys, and configuration.
Tenant ID
Unique identifier for a tenant, typically a URL-safe string like acme-corp.
Thumbnail
A smaller version of an image (200x200 pixels) generated automatically for gallery displays.
Token
In AI context, a unit of text processing. Prompt lengths and context windows are measured in tokens.
Token Family
A group of OAuth refresh tokens derived from a single authorization. If token theft is detected (reuse of a rotated token), the entire family is revoked.
U
Upload
Process of providing an external image (from URL) to Go Bananas! for editing.
Usage Logs
Records of API operations used for analytics, billing, and quota enforcement.
W
Worker
A Cloudflare Worker - the serverless function that processes Go Bananas! requests.
Wrangler
Cloudflare's CLI tool for developing and deploying Workers projects.
Z
Zod
TypeScript schema validation library used throughout Go Bananas! for input validation.