Skip to main content

Initialization

The init() function starts Border protection. Call it once at application startup.

Basic Usage

import { init } from "@dotsetlabs/border";

init();

Configuration Options

init({
  // Domains that bypass all scanning
  allowedDomains: ["localhost", "127.0.0.1", "api.internal.com"],
  
  // Per-destination policies
  destinationPolicies: [
    { domain: "*.stripe.com", allowedPiiTypes: ["credit_card", "email"] },
    { domain: "*.openai.com", blockedPiiTypes: ["ssn", "credit_card"] },
  ],
  
  // Detection sensitivity
  sensitivity: "medium", // "low" | "medium" | "high" | "paranoid"
  
  // Dry-run mode (log but don't redact)
  dryRun: false,
  
  // Block requests to unknown domains
  blockUnknownDomains: false,
  
  // Enable debug logging
  debug: false,
});

Options Reference

OptionTypeDefaultDescription
allowedDomainsstring[]["localhost"]Domains that bypass all scanning
destinationPoliciesDestinationPolicy[][]Per-domain PII rules
sensitivitySensitivityLevel"medium"Detection aggressiveness
dryRunbooleanfalseLog without modifying requests
blockUnknownDomainsbooleanfalseBlock unlisted domains
debugbooleanfalseVerbose logging
detectApiKeysbooleantrueEnable API key detection

Sensitivity Levels

LevelBehavior
lowOnly high-confidence detections (Luhn-validated cards, formatted SSNs)
mediumBalanced detection (default)
highMore aggressive, may have false positives
paranoidMaximum detection

Lifecycle

import { init, shutdown, isActive, getPolicy } from "@dotsetlabs/border";

// Start protection
init({ dryRun: true });

// Check status
console.log(isActive()); // true

// Get current policy
const policy = getPolicy();
console.log(policy.sensitivity); // "medium"

// Stop protection (useful for testing)
shutdown();
console.log(isActive()); // false

Reinitializing

Calling init() again automatically shuts down the previous instance:
init({ sensitivity: "low" });
// Later...
init({ sensitivity: "high" }); // Previous hooks are removed first

Next Steps