GATES
Install GATES
Install irondome-gates and prepare its server dependencies, PostgreSQL connection and IronDome API key.
On this page
Use GATES only in trusted server code. It requires Node.js 22 or later, ESM, PostgreSQL and an IronDome API key. Keep the key and database credentials out of browser bundles.
Install from npm
npm install irondome-gates pg
Use irondome-gates@0.1.0 to pin this release explicitly. Commit your application's lockfile. The package exports its public modules, TypeScript declarations and SQL migrations.
To build a local artifact from a reviewed repository checkout:
npm ci --ignore-scripts --no-audit --no-fund
npm run package:smoke
npm pack
In your application's directory, install the generated archive:
npm install /absolute/path/to/irondome-gates-0.1.0.tgz
npm install pg
Do not copy src/ files individually or edit generated dist/ files.
Better Auth integrations also require the qualified peer version:
npm install better-auth@1.7.7
Auth0 and Supabase consumers do not need Better Auth. The package bundles its exact Mail Canon, TR46 and Punycode runtime dependencies. PostgreSQL and your provider SDK remain application dependencies.
Confirm the installed package
Run this from an ESM application:
node --input-type=module -e "import { prepareEmail } from 'irondome-gates'; console.log(prepareEmail('alex+trial@gmail.com').canonical)"
Expected output:
alex@gmail.com
This check is local and makes no API call. It verifies module loading and the built-in canonicalizer, not your database, provider hooks or IronDome credentials.
Keep secrets server-side
Store the IronDome API key in your deployment's secret store. The provider guides name the additional secrets they need. Do not put production credentials into examples, screenshots or checked-in .env files.
Next, prepare PostgreSQL, then follow the quickstart for Better Auth, Auth0 or Supabase.