Backlink

Domain Management Setup Required

The domains table needs to be created in your Supabase database before you can manage domains.

Option 1: Manual Setup

1. Go to your Supabase dashboard

2. Navigate to SQL Editor

3. Run the SQL script below

Option 2: Command Line

1. Configure your Supabase credentials

2. Run the setup script

npm run setup:domains

SQL Script to Run

-- Domains table for DNS management and validation
CREATE TABLE IF NOT EXISTS domains (
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id uuid REFERENCES auth.users(id) ON DELETE CASCADE,
  domain text NOT NULL,
  status text DEFAULT 'pending' CHECK (status IN ('pending', 'validating', 'active', 'failed', 'expired')),
  
  -- DNS Configuration
  verification_token text NOT NULL DEFAULT 'blo-' || substr(gen_random_uuid()::text, 1, 12),
  required_a_record inet,
  required_cname text,
  hosting_provider text DEFAULT 'backlinkoo',
  
  -- Validation tracking
  dns_validated boolean DEFAULT false,
  txt_record_validated boolean DEFAULT false,
  a_record_validated boolean DEFAULT false,
  cname_validated boolean DEFAULT false,
  ssl_enabled boolean DEFAULT false,
  
  -- Metadata
  last_validation_attempt timestamptz,
  validation_error text,
  auto_retry_count integer DEFAULT 0,
  max_retries integer DEFAULT 10,
  
  -- Blog integration
  blog_enabled boolean DEFAULT false,
  blog_subdirectory text DEFAULT 'blog',
  pages_published integer DEFAULT 0,
  
  created_at timestamptz DEFAULT now(),
  updated_at timestamptz DEFAULT now(),
  
  UNIQUE(user_id, domain)
);

-- Enable RLS
ALTER TABLE domains ENABLE ROW LEVEL SECURITY;

-- RLS Policies
CREATE POLICY "Users can view own domains" ON domains
  FOR SELECT USING (auth.uid() = user_id);

CREATE POLICY "Users can insert own domains" ON domains
  FOR INSERT WITH CHECK (auth.uid() = user_id);

CREATE POLICY "Users can update own domains" ON domains
  FOR UPDATE USING (auth.uid() = user_id);

CREATE POLICY "Users can delete own domains" ON domains
  FOR DELETE USING (auth.uid() = user_id);

-- Indexes for performance
CREATE INDEX IF NOT EXISTS idx_domains_user_id ON domains(user_id);
CREATE INDEX IF NOT EXISTS idx_domains_status ON domains(status);
CREATE INDEX IF NOT EXISTS idx_domains_domain ON domains(domain);
CREATE INDEX IF NOT EXISTS idx_domains_validation ON domains(dns_validated, status);

What this script does:

  • Creates the domains table with all required columns
  • Sets up Row Level Security (RLS) policies for user data isolation
  • Creates indexes for optimal query performance
  • Adds automatic timestamp updates
  • Configures DNS validation tracking
Backlink

Backlink ∞ provides industry-leading link building and ranking tools for teams and agencies. Track, analyze, and acquire high‑quality backlinks with transparent reporting.

Product

Company

Resources

© 2026 Backlink ∞ — All rights reserved.
Sitemap
Backlink ∞GUARANTEED BEST PRICE
Guest Post Marketplace$150 +
Niche Edit Providers$120 +
Digital PR Campaigns$500 +
Blogger Outreach (Agency)$200 +
Marketplace Bundles$300 +
DIY Hosting + Content$80 /mo
Backlink ∞GUARANTEED BEST PRICE
Guest Post Marketplace$150 +
Niche Edit Providers$120 +
Digital PR Campaigns$500 +
Blogger Outreach (Agency)$200 +
Marketplace Bundles$300 +
DIY Hosting + Content$80 /mo

Register for Backlink ∞ to access premium backlinks, drive traffic through proven SEO strategies, and get expert guidance on building your authority online.