SPB Git

spb/rareindex

Public
902 B · 22 lines typescript
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
Files · 8fd03303eebf7df7e6b85f13b512e86dd3eab467
Menu

Theme