Skip to content

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 keys
  • sk_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.

Next Steps ​

Released under the MIT License.