Basic Usage Examples

Common patterns and examples for using the Lightning Logs SDK.

Complete Example
import { LightningLogsClient } from '@lightning-logs/sdk'
import { createClient } from '@supabase/supabase-js'

// Initialize clients
const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)

const client = new LightningLogsClient({
  baseURL: process.env.NEXT_PUBLIC_SUPABASE_URL!,
  apiKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
  getAuthToken: async () => {
    const { data: { session } } = await supabase.auth.getSession()
    return session?.access_token || null
  }
})

// Ingest logs
await client.logs.ingest([
  {
    ts: new Date().toISOString(),
    level: 'info',
    msg: 'User logged in',
    service: 'api'
  }
])

// Search logs
const results = await client.logs.search({
  tsFrom: '2025-01-15T00:00:00Z',
  tsTo: '2025-01-15T23:59:59Z',
  query: "level = 'error'"
})

console.log(`Found ${results.data.length} errors`)