v12.40.14
🆕 Changelog
Added
- New credit system for usage tracking with
capgo_credits_stepstable and related endpoints - Bundle deployment history tracking with link and comment fields
- API endpoints for organization CRUD operations
- Device custom ID mode support
- Table counts tracking for major database tables
- Hindi language support
- Retention configuration for app versions (limited to 2 years maximum)
- Snippet functionality for app settings
- Price calculator for service costs
- New stats API endpoints with backend-powered graphs
- Subkey system for API keys with organization and app-level restrictions
- Captcha protection for login, password reset, and new user invitations
- Event tracking system for onboarding completion
- Filtering and search functionality for apps dashboard
- Revert to built-in version capability for channels
- Mass bundle deletion feature
- API key creation with organization/app limitations
- Bundle metadata REST endpoint with link and comment support
- Deploy history screen in channel view
- Verification system for D1 database replication
- Account deletion process with RLS policies and cron job automation
- Composite indexes for manifest table optimization
- Webhook secret configuration support
- Observability with sampling for analytics
Changed
- Migrated manifest data to dedicated table for improved performance
- Updated bundle upload to support external URLs with validation
- Improved channel override logic for device retrieval
- Enhanced API key management with type selection and organization filtering
- Refactored stats calculation to use backend API instead of frontend processing
- Switched to UTC for all stats calculations
- Updated device ID handling to always use lowercase
- Improved bundle link/unlink user experience
- Replaced Netlify references with backend deployment configuration
- Updated Supabase anon keys and environment configurations
- Migrated to JSON format for Wrangler configuration
- Enhanced organization dropdown interaction and selection feedback
- Improved password validation rules (minimum 6 characters, one special character required)
- Streamlined error handling with httpError middleware
- Updated Stripe API to version 2025-07-30
- Improved queue system using PGMQ for better reliability
- Enhanced rate limiting across public API endpoints
- Switched to Hyperdrive for database connections in production
Fixed
- Resolved RLS security issues for organization access
- Corrected retention SQL queries and calculations
- Fixed dashboard totals calculation with undefined values
- Resolved channel deletion constraints to prevent deletion when devices are linked
- Corrected device version handling by replacing version ID with version name
- Fixed compatibility version checks and display
- Resolved stats return type issues
- Fixed bundle page set channel functionality
- Corrected Cloudflare Workers testing setup for improved reliability
- Resolved race conditions in bundle operations
- Fixed subscription failure handling in Stripe events
- Corrected MAU (Monthly Active Users) calculation logic
- Fixed dark mode design issues across multiple components
- Resolved API key deletion and update operations
- Fixed mobile design layouts and responsive issues
- Corrected device table filtering and display
- Fixed SQL query performance issues with proper indexing
- Resolved channel_devices schema ownership issues
- Fixed bundle deletion to properly unlink from channels
- Corrected stats event reporting for old plugin versions
- Fixed security vulnerabilities in API authentication
- Resolved TypeScript type checking errors
- Fixed test suite execution speed and reliability
- Corrected storage and bandwidth graph units (converted to MB)
- Fixed email notification system issues
- Resolved iOS and Android build configuration problems
Removed
- Deprecated Netlify deployment configuration and references
- Old pgmq queue system (temporarily removed pending Supabase fix)
- Legacy trigger system
- Unused blog service files
- Redundant encryption key system
- Old Supabase Functions deployment in favor of Cloudflare Workers
- Unnecessary console.log statements in backend code
- Deprecated
is_org_adminand related legacy functions - Old bucket ID system
- Signature column from version tables
- Service worker implementation
- Obsolete
update_liteendpoint references - Deprecated Element Plus UI components
Security
- Enhanced RLS policies to prevent unauthorized organization access
- Added API key security checks with organization/app restrictions
- Implemented captcha protection for authentication flows
- Added rate limiting to prevent abuse of public endpoints
- Improved authentication token validation
- Enhanced file access security with proper permission checks
- Added CORS header restrictions for API requests
- Implemented proper schema references in database queries to prevent cross-tenant data access
- Added checksum validation for bundle uploads
- Enhanced device authentication with proper API key validation
🔗 Full Changelog: v11.3.70...v12.40.14