Skip to content

Commit d9cf3ae

Browse files
authored
Merge pull request #58 from reqcore-inc/fix/stale-applirank-env-vars
Fix/stale-applirank-env-vars
2 parents 9f141f9 + 1a3aa32 commit d9cf3ae

2 files changed

Lines changed: 48 additions & 4 deletions

File tree

nuxt.config.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,18 @@ export default defineNuxtConfig({
5959
/** When set, the dashboard shows a read-only demo banner for this org slug */
6060
demoOrgSlug: process.env.DEMO_ORG_SLUG || (isRailwayPreview ? 'reqcore-demo' : ''),
6161
/** Public live-demo account email used to prefill sign-in */
62-
liveDemoEmail:
63-
process.env.LIVE_DEMO_EMAIL
64-
|| process.env.DEMO_EMAIL
65-
|| 'demo@reqcore.com',
62+
liveDemoEmail: (() => {
63+
const email =
64+
process.env.LIVE_DEMO_EMAIL
65+
|| process.env.DEMO_EMAIL
66+
|| 'demo@reqcore.com'
67+
// Guard against stale applirank.com domain from old env vars
68+
if (email.endsWith('@applirank.com')) {
69+
console.warn('[config] Stale demo email detected (applirank.com domain) — falling back to demo@reqcore.com')
70+
return 'demo@reqcore.com'
71+
}
72+
return email
73+
})(),
6674
/** Public URL for hosted plan upsell CTA shown in preview mode modals */
6775
hostedPlanUrl: process.env.NUXT_PUBLIC_HOSTED_PLAN_URL || 'https://reqcore.com',
6876
/** Public live-demo secret used to prefill sign-in */

server/scripts/seed.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ const DEMO_PASSWORD = process.env.DEMO_PASSWORD ?? 'demo1234'
5050
const DEMO_ORG_NAME = 'Reqcore Demo'
5151
const DEMO_ORG_SLUG = 'reqcore-demo'
5252

53+
// Legacy values from the old applirank.com domain — cleaned up on seed
54+
const LEGACY_DEMO_EMAIL = 'demo@applirank.com'
55+
const LEGACY_ORG_SLUG = 'applirank-demo'
56+
5357
// ─────────────────────────────────────────────
5458
// Database connection
5559
// ─────────────────────────────────────────────
@@ -358,6 +362,38 @@ function generateResponses(jobIndex: number, candidateIndex: number): Record<str
358362
async function seed() {
359363
console.log('🌱 Seeding Reqcore demo data...\n')
360364

365+
// ─────────────────────────────────────────────
366+
// Clean up legacy applirank.com seed data
367+
// ─────────────────────────────────────────────
368+
const [legacyOrg] = await db
369+
.select({ id: schema.organization.id })
370+
.from(schema.organization)
371+
.where(eq(schema.organization.slug, LEGACY_ORG_SLUG))
372+
.limit(1)
373+
374+
const [legacyUser] = await db
375+
.select({ id: schema.user.id })
376+
.from(schema.user)
377+
.where(eq(schema.user.email, LEGACY_DEMO_EMAIL))
378+
.limit(1)
379+
380+
if (legacyOrg || legacyUser) {
381+
console.log('🧹 Removing legacy applirank.com demo data...')
382+
383+
if (legacyOrg) {
384+
// All child tables (jobs, candidates, applications, members, etc.) have
385+
// onDelete: 'cascade' so deleting the org removes everything beneath it.
386+
await db.delete(schema.organization).where(eq(schema.organization.id, legacyOrg.id))
387+
console.log(` ✅ Deleted legacy org: ${LEGACY_ORG_SLUG}`)
388+
}
389+
390+
if (legacyUser) {
391+
// sessions and accounts also cascade from the user row
392+
await db.delete(schema.user).where(eq(schema.user.id, legacyUser.id))
393+
console.log(` ✅ Deleted legacy user: ${LEGACY_DEMO_EMAIL}`)
394+
}
395+
}
396+
361397
// Check if demo org already exists
362398
const existingOrg = await db
363399
.select()

0 commit comments

Comments
 (0)