OptionalasnOptionalenableEnable RDAP lookups for ASN enrichment. Default: true.
Set to false to skip outbound RDAP network calls entirely.
OptionalenableEnable reputation scoring (requires licenseKey for full signals)
OptionalimpossibleMinimum km/h speed that triggers impossible-travel alert. Default: 900
OptionallicensePolar license key that unlocks Pro or Enterprise tier features.
| Tier | Price | Device limit | Servers |
|---|---|---|---|
| Free | $0/mo | 10,000 | — |
| Pro | $49/mo | Unlimited | 1 server |
| Enterprise | $299/mo | Unlimited | Unlimited |
VPN/proxy detection and extended history require Pro or Enterprise.
Obtain a key at https://polar.sh and configure POLAR_ORGANIZATION_ID
and POLAR_BENEFIT_IDS in src/libs/license.ts.
OptionalmaxMax IP snapshots kept per deviceId in memory. Default: 50 (10 without key)
OptionalmaxmindPath to GeoLite2-City.mmdb or GeoIP2-City.mmdb
OptionalproxyPaths to plain-text CIDR files for VPN/proxy ranges (one CIDR per line)
OptionalstorageCustom storage backend. Defaults to the built-in in-memory store.
Use createSqliteIpStorage, createPostgresIpStorage, or
createRedisIpStorage to supply a persistent backend.
The IpStorage interface is synchronous (in-memory, SQLite).
For async backends (Postgres, Redis) initialise them separately and
wrap in an adapter that satisfies IpStorage, or use them standalone
via their own AsyncIpStorage interface.
OptionaltorURL to fetch Tor exit node list from. Default: Tor Project bulk list
Path to GeoLite2-ASN.mmdb or GeoIP2-ASN.mmdb