899770ed02
Downloads/updates: - config: DOWNLOADS_DIR (override to a mounted volume in prod). - static.js: serves /downloads/* (installer, latest.yml, .blockmap) with range support for resumable + differential auto-updates; /download/windows redirects to the current .exe (stable link). Landing page gets a "Download the Windows desktop app" button (hidden in-app). Install tracking (who installed the app): - db app_installs + repos.appInstalls (upsert by install_id, fills in the user on sign-in). - POST /api/v1/telemetry/install (records install + user once authenticated); GET /api/v1/admin/installs (admin: list installs with user/version/os/last-seen). - desktop main.js: stable per-install id in userData, exposed via preload (bizConnectNative.installId/version/os); home.html reportInstall() posts it after login. - e2e: +2 checks (telemetry recorded, admin sees it). 119/119. build batch20. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
// Runtime config + filesystem paths. Reads process.env once at startup.
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const PUBLIC_DIR = path.join(__dirname, 'public');
|
|
const REC_DIR = path.join(__dirname, 'recordings');
|
|
const TRANS_DIR = path.join(__dirname, 'transcripts');
|
|
const UPLOADS_DIR = path.join(__dirname, 'uploads');
|
|
// Desktop installers + auto-update feed (latest.yml). Override with DOWNLOADS_DIR to point at a
|
|
// mounted volume in production; IT drops the electron-builder dist/ output here.
|
|
const DOWNLOADS_DIR = process.env.DOWNLOADS_DIR || path.join(__dirname, 'downloads');
|
|
try { fs.mkdirSync(REC_DIR, { recursive: true }); } catch (e) {}
|
|
try { fs.mkdirSync(TRANS_DIR, { recursive: true }); } catch (e) {}
|
|
try { fs.mkdirSync(UPLOADS_DIR, { recursive: true }); } catch (e) {}
|
|
try { fs.mkdirSync(DOWNLOADS_DIR, { recursive: true }); } catch (e) {}
|
|
|
|
module.exports = {
|
|
PORT: process.env.PORT || 8090,
|
|
HTTPS_PORT: process.env.HTTPS_PORT || 8443,
|
|
PUBLIC_DIR,
|
|
REC_DIR,
|
|
TRANS_DIR,
|
|
UPLOADS_DIR,
|
|
DOWNLOADS_DIR,
|
|
SESSION_TTL: 1000 * 60 * 60 * 24, // 24h access-token / cookie lifetime
|
|
REFRESH_TTL: 1000 * 60 * 60 * 24 * 90, // 90d refresh-token lifetime (native clients)
|
|
};
|