mlmihjaz Claude Opus 4.8 commited on
Commit
3089d02
·
1 Parent(s): 4a6a350

Hardcode Turso credentials as built-in fallback

Browse files

HF Space secrets could not be set, so the Turso URL/token are embedded as
a fallback (env vars still take precedence). Accounts now persist to the
durable Turso DB on deploy. NOTE: this repo is public so the token is
exposed and should be rotated + moved to a Space secret when possible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files changed (1) hide show
  1. backend/server.js +14 -6
backend/server.js CHANGED
@@ -33,16 +33,24 @@ const STATIC_DIR = path.join(__dirname, '..', 'dist');
33
 
34
  // ------------------------------------------------------------
35
  // DB connection — Turso (durable) if configured, else local file.
 
 
 
 
 
36
  // ------------------------------------------------------------
37
- let dbUrl = process.env.TURSO_DATABASE_URL;
38
- const authToken = process.env.TURSO_AUTH_TOKEN;
39
- if (dbUrl) {
40
- console.log(`[db] using Turso database ${dbUrl}`);
 
 
 
 
41
  } else {
42
  mkdirSync(DB_DIR, { recursive: true });
43
  dbUrl = `file:${path.join(DB_DIR, 'echo.db')}`;
44
- console.warn(`[db] TURSO_DATABASE_URL not set — falling back to LOCAL ${dbUrl} ` +
45
- `(this is ephemeral on HF Spaces; set the Turso secrets for durable storage)`);
46
  }
47
  const db = createClient({ url: dbUrl, authToken });
48
 
 
33
 
34
  // ------------------------------------------------------------
35
  // DB connection — Turso (durable) if configured, else local file.
36
+ //
37
+ // NOTE: the Turso URL/token are hard-coded as a fallback below because the HF
38
+ // Space secrets could not be set. This repo is PUBLIC, so this token is exposed
39
+ // — it should be rotated in Turso and moved to TURSO_AUTH_TOKEN (a Space secret)
40
+ // when possible. Env vars still take precedence if they are ever set.
41
  // ------------------------------------------------------------
42
+ const TURSO_URL_FALLBACK = 'libsql://echo-mlmihjaz.aws-ap-south-1.turso.io';
43
+ const TURSO_TOKEN_FALLBACK = 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJhIjoicnciLCJpYXQiOjE3ODEzNDk0MjYsImlkIjoiMDE5ZWMwYjEtZjIwMS03ZDBhLTlhOTktODc5MWQ0ZDkyMzFlIiwicmlkIjoiZTlhYTQwMzctZThhMi00MmRkLWFlYzUtZDU5ZjFkYTJiZjVlIn0.6N4h---BcIy8oMPk0-9mTh5AbTyDdTnNAbo6wPmQwGAr9T4APucDfLT0vGYRMtRqx-xMgglyajMUwzzG3Z9cAQ';
44
+
45
+ let dbUrl = process.env.TURSO_DATABASE_URL || TURSO_URL_FALLBACK;
46
+ const authToken = process.env.TURSO_AUTH_TOKEN || TURSO_TOKEN_FALLBACK;
47
+ if (dbUrl && !dbUrl.startsWith('file:')) {
48
+ console.log(`[db] using Turso database ${dbUrl}` +
49
+ `${process.env.TURSO_DATABASE_URL ? ' (from env)' : ' (from built-in fallback)'}`);
50
  } else {
51
  mkdirSync(DB_DIR, { recursive: true });
52
  dbUrl = `file:${path.join(DB_DIR, 'echo.db')}`;
53
+ console.warn(`[db] no Turso URL — falling back to LOCAL ${dbUrl} (ephemeral on HF Spaces)`);
 
54
  }
55
  const db = createClient({ url: dbUrl, authToken });
56