fix: move API keys to .env.local, remove localStorage dual system

Single source of truth: OPENAI_API_KEY in .env.local. Deleted the
apiKeyService class/singleton that stored keys in localStorage.
All server code reads process.env directly. FirstRunModal and
Settings now show .env.local instructions instead of key input.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
“BeeRad”
2026-02-06 11:46:41 +11:00
co-authored by Claude Opus 4.6
parent 49ff3678a3
commit 3b04a1bad0
9 changed files with 121 additions and 411 deletions
+3 -10
View File
@@ -1,5 +1,6 @@
import { openai as openaiProvider } from '@ai-sdk/openai';
import { generateText } from 'ai';
import { hasValidOpenAiKey } from '../storage/apiKeys';
export interface DescriptionInput {
title: string;
@@ -15,16 +16,8 @@ export interface DescriptionInput {
dimensions?: string[];
}
/**
* Check if we have a valid OpenAI API key configured.
* Checks both environment variable and validates format.
*/
export function hasValidOpenAiKey(): boolean {
const key = process.env.OPENAI_API_KEY;
if (!key || key === 'your-openai-api-key-here') return false;
// Valid OpenAI keys start with sk- or sk-proj-
return key.startsWith('sk-') && key.length > 20;
}
// Re-export for backwards compatibility — canonical source is ../storage/apiKeys
export { hasValidOpenAiKey } from '../storage/apiKeys';
/**
* Generate a simple fallback description without AI.