# Deployment Complete ✅ ## Edge Functions Deployed All three edge functions have been successfully deployed: 1. ✅ **create-beacon** - Fixed JWT authentication, now uses standard Supabase pattern 2. ✅ **feed-personal** - Now filters beacons based on user's `beacon_enabled` preference 3. ✅ **feed-sojorn** - Now filters beacons based on user's `beacon_enabled` preference ## Database Migration Required The `beacon_enabled` column needs to be added to the `profiles` table. ### Apply Migration via Supabase Dashboard: 1. Go to: https://supabase.com/dashboard/project/zwkihedetedlatyvplyz/sql 2. Click "New Query" 3. Paste the following SQL: ```sql -- Add beacon opt-in preference to profiles table -- Users must explicitly opt-in to see beacon posts in their feeds -- Add beacon_enabled column (default FALSE = opted out) ALTER TABLE profiles ADD COLUMN IF NOT EXISTS beacon_enabled BOOLEAN NOT NULL DEFAULT FALSE; -- Add index for faster beacon filtering queries CREATE INDEX IF NOT EXISTS idx_profiles_beacon_enabled ON profiles(beacon_enabled) WHERE beacon_enabled = TRUE; -- Add comment to explain the column COMMENT ON COLUMN profiles.beacon_enabled IS 'Whether user has opted into viewing Beacon Network posts in their feeds. Beacons are always visible on the Beacon map regardless of this setting.'; ``` 4. Click "Run" 5. Verify success - you should see "Success. No rows returned" ## What This Fixes ### Before: - ❌ Beacon creation failed with JWT authentication error - ❌ All users saw beacon posts in their feeds (no opt-out) ### After: - ✅ Beacon creation works properly with automatic JWT validation - ✅ Users are opted OUT by default (beacon_enabled = FALSE) - ✅ Beacons only appear in feeds for users who opt in - ✅ Beacon map always shows all beacons regardless of preference ## Testing After applying the migration: 1. **Test Beacon Creation**: - Open Beacon Network tab - Tap on map to drop a beacon - Fill out the form and submit - Should succeed without JWT errors 2. **Test Feed Filtering (Opted Out - Default)**: - Check Following feed - should NOT see beacon posts - Check Sojorn feed - should NOT see beacon posts - Open Beacon map - SHOULD see all beacons 3. **Test Feed Filtering (Opted In)**: - Manually update your profile: `UPDATE profiles SET beacon_enabled = TRUE WHERE id = '';` - Check Following feed - SHOULD see beacon posts - Check Sojorn feed - SHOULD see beacon posts ## Next Steps To add UI for users to toggle beacon opt-in: 1. Add a settings screen 2. Add a switch for "Show Beacon Alerts in Feeds" 3. Call API service to update `profiles.beacon_enabled` ## Documentation See detailed architecture documentation: - [BEACON_SYSTEM_EXPLAINED.md](supabase/BEACON_SYSTEM_EXPLAINED.md)