You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.2 KiB
3.2 KiB
External Integrations
Analysis Date: 2026-01-09
APIs & External Services
AI Image Generation - Google Gemini:
- SDK/Client:
@google/genai1.30.0 -package.json - Route:
src/app/api/generate/route.ts(5-minute timeout) - Models:
gemini-2.5-flash-image,gemini-3-pro-image-preview - Internal names:
nano-banana,nano-banana-pro - Auth:
GEMINI_API_KEYenv var - Features: Aspect ratio, resolution (2K/4K), Google Search tool
AI Text Generation - Google Gemini:
- Route:
src/app/api/llm/route.ts(1-minute timeout) - Models:
gemini-2.5-flash,gemini-3-flash-preview,gemini-3-pro-preview - Auth:
GEMINI_API_KEYenv var - Features: Temperature, max tokens, multimodal (text + images)
AI Text Generation - OpenAI (Optional):
- Route:
src/app/api/llm/route.ts - Models:
gpt-4.1-mini,gpt-4.1-nano - Endpoint:
https://api.openai.com/v1/chat/completions - Auth:
OPENAI_API_KEYenv var (optional) - Features: Temperature, max tokens, multimodal support
Data Storage
File System (Server-side):
- Workflow JSON files -
src/app/api/workflow/route.ts - Generated images as PNG -
src/app/api/save-generation/route.ts - Auto-creates
inputs/andgenerations/subdirectories - Uses
fs/promisesfor async file operations
LocalStorage (Client-side):
node-banana-workflow-configs- Project metadata and file pathsnode-banana-workflow-costs- Cost tracking per workflownode-banana-nanoBanana-defaults- Sticky generation settings- Reference:
src/store/workflowStore.ts
Caching:
- None (all database queries, no Redis)
Authentication & Identity
Auth Provider:
- None - Local-first application
- API keys stored in environment variables only
Monitoring & Observability
Custom Logging:
- Logger:
src/utils/logger.ts(client),src/utils/logger-server.ts(server) - Session-based logging with unique session IDs
- Structured JSON format with timestamps
- Categories: workflow, node execution, API calls, file operations
- Privacy: Truncates prompts (200 chars), sanitizes image data
- Server persistence:
src/app/api/logs/route.ts - Rotation: Keeps last 10 sessions
Error Tracking:
- Console logging only (no Sentry/external service)
Analytics:
- None
CI/CD & Deployment
Hosting:
- Local development primary use case
- Compatible with Vercel for production deployment
CI Pipeline:
- None configured (no GitHub Actions workflows found)
Environment Configuration
Development:
- Required:
GEMINI_API_KEY - Optional:
OPENAI_API_KEY - Secrets location:
.env.local(gitignored) - Reference:
.env.example
Production:
- Same env vars as development
- No staging environment configured
Webhooks & Callbacks
Incoming:
- None
Outgoing:
- None
API Timeout Configuration
| Route | Timeout | Purpose |
|---|---|---|
/api/generate |
5 min | Image generation via Gemini |
/api/llm |
1 min | Text generation (Google/OpenAI) |
/api/workflow |
Default | Save/load workflow files |
| Other routes | Default | Various operations |
Request Body Size Limits
- Server Actions body limit: 50MB -
next.config.ts - Supports large image payloads in workflows
Integration audit: 2026-01-09 Update when adding/removing external services