SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
902 B · 22 lines typescript
Raw Blame History
1/**2 * Mint an API key. Prints the plaintext ONCE; only its hash is stored.3 *   pnpm --filter @rareindex/api create-key -- --name "Research desk" --tier professional [--user usr_xxx]4 */5import { closeDb } from '@rareindex/database';6import { mintApiKey, TIERS, type Tier } from '../src/lib/keys.js';78const args = process.argv.slice(2);9const get = (flag: string) => {10  const i = args.indexOf(flag);11  return i >= 0 ? args[i + 1] : undefined;12};13const name = get('--name') ?? 'default';14const tier = (get('--tier') ?? 'free') as Tier;15if (!(tier in TIERS)) {16  console.error(`unknown tier ${tier}; choose one of ${Object.keys(TIERS).join(', ')}`);17  process.exit(1);18}19const minted = await mintApiKey({ name, tier, userId: get('--user') ?? null });20console.log(`API key created (${minted.tier}, id ${minted.id}). Store it now — it will not be shown again:\n\n  ${minted.key}\n`);21await closeDb();22