v12.40.3
🆕 Changelog
Added
- Support for Cloudflare Workers as primary API deployment platform handling 99% of traffic
- Cloudflare Workers testing infrastructure with dedicated test commands and scripts
- D1 database integration with sync verification and replication system
- Apple App Site Association for deep linking
- Custom device ID mode support across device management endpoints
- Organization-level API functionality with CRUD operations
- Statistics API endpoints with backend aggregation and date range filtering
- Events API for tracking user actions and system events
- Bundle metadata endpoint for retrieving version information
- Channel override logic for device-specific update routing
- Composite indexes for manifest and app_versions tables for performance optimization
- Table counts tracking for apps, channels, devices, and other core entities
- Monthly email reporting system for usage statistics
- Price calculator tool for subscription cost estimation
- Credits system in database for billing management
- Hindi language support
- Reload button functionality in UI components
- Chart visualizations for events by version, bundle uploads, and app-level metrics
- Notification settings with snake_case column names and default values
- First name, last name, and country fields to user registration
- Organization dropdown with improved interaction and selection feedback
- Scan page functionality for mobile platforms
- Device comparison logic for tracking changes
- Mass bundle delete capability with UI confirmation
- Deploy history screen in channel management
- Dedicated components for delete organization dialog
- Onboarding event tracking for completion monitoring
- VueDatePicker integration with custom theming
- Memory Bank documentation and project brief
- Playwright test framework with E2E test coverage
- Security tests for authentication and authorization
- Nightly database reset workflow for development environment
- Price updates reflected in seed data
Changed
- Migrated stats calculation system to use backend API instead of frontend processing
- Switched to UTC-based date calculations for statistics
- Updated stats endpoint to use D1 database for improved performance
- Replaced direct header access with
get_apikey_headerfunction in SQL migrations - Consolidated imports across backend files for cleaner code structure
- Improved error handling with
serializeErrorfunction replacing JSON.stringify - Enhanced subscription handling and logging in Stripe webhook events
- Refactored device version handling to use version name instead of version ID
- Updated bundle URL generation to prevent query params on signed URLs
- Improved logging to use
cloudlogErrfor better error tracking - Optimized
update_app_versions_retentionfunction with batch processing - Enhanced channel self-management with D1 support
- Streamlined event handling by removing unused imports and improving middleware
- Updated health check endpoints to use HTTP GET method
- Migrated manifest data to dedicated table for better data organization
- Improved API key management with organization and app-level restrictions
- Enhanced table component with server-side pagination and search
- Refactored subscription status checks with
is_good_planconditions - Updated PostgrestVersion to 13.0.4
- Migrated from petite-vue-i18n to vue-i18n for better internationalization
- Improved dashboard totals calculation handling undefined values
- Enhanced mobile design and responsive layouts across components
- Updated button and dropdown styles for consistency
- Improved tab and navigation design patterns
- Switched to daisy UI classes with 'd-' prefix
- Enhanced organization storage management with localStorage
- Updated CLI test utilities with better dependency handling
- Improved queue processing with PGMQ integration
- Refactored file upload system with TUS protocol support
- Enhanced device tracking with lowercase device ID normalization
- Updated dashboard to show app filtering and search functionality
- Improved chart grid colors and tooltip behavior
- Enhanced password validation rules (minimum 6 characters with special character)
- Updated test infrastructure to run in parallel for faster execution
- Migrated to JSON configuration for wrangler settings
- Improved error messages and user feedback across forms
- Enhanced bundle link/unlink UX with better dialogues
Fixed
- Cloudflare Workers test stability issues by commenting out unstable tests
- Search path configuration in database queries
- Webhook secret handling in environment configuration
- Stats action enum with 'blocked_by_server_url' value
- Health check endpoint methods for Cloudflare Workers
- Channel_self endpoint to prevent spam attempts
- Git rebase interactive commands by avoiding
-iflag - Stripe API version compatibility (updated to 2025-07-30.basil)
- Bundle display issues showing encryption status
- Device POST endpoint authentication and authorization
- Stats return type consistency across endpoints
- Manifest replication and synchronization issues
- Queue consumer stability and message handling
- Account deletion flow with proper RLS policies
- Two-factor authentication for admin users and password reset
- API key deletion and update operations
- Channel deletion constraints to prevent removal when devices linked
- User invitation acceptance with proper data insertion
- Version meta table creation and management
- Duplicate code issues identified by SonarCloud
- Security issues with API key exposure and logging
- Concurrency issues in test execution
- Storage bundle download filename handling
- Login redirect flow to preserve intended destination
- Organization dropdown showing correct membership
- Device table display and filtering issues
- Bundle page channel assignment functionality
- Captcha integration on login and password reset pages
- Native package compatibility checks for channel bundle assignments
- Subscription failure handling and status updates
- Rate limiting implementation for public API endpoints
- File upload with proper chunk size handling
- Stats calculation for trial users and canceled subscriptions
- Mobile design issues across multiple pages
- Date picker styling and interaction patterns
- Language translations and placeholders across multiple locales
- Test execution speed with optimized database operations
- CLI test reliability with proper environment setup
- Android and iOS build configurations
- Deployment script environment variable handling
- Supabase connection handling to prevent pool exhaustion
Security
- Implemented Row Level Security (RLS) policies for organization access
- Added API key validation and scope restrictions
- Enhanced authentication checks for statistics endpoints
- Implemented captcha validation on registration, login, and password reset
- Added rate limiting for API endpoints to prevent abuse
- Improved secret management by removing hardcoded values from tests
- Enhanced CORS header configuration for API requests
- Added organization-level access controls for sensitive operations
- Implemented safeguards to prevent removal of last super admin from organization
- Added validation to prevent bundle uploads exceeding plan limits
- Improved error handling to avoid exposing sensitive information
- Enhanced webhook signature verification for Stripe events
- Added XSS protection measures in user-generated content
- Implemented proper permission checks before allowing account deletion
- Added constraints to prevent channel deletion when devices are linked
Removed
- Deprecated update endpoint functionality
- Old queue system in favor of PGMQ
- Legacy trigger functions no longer needed
- Plunk email service integration
- SW (Service Worker) functionality
- Old encryption key system
- Scraper functionality
- Backend charts functionality
- ElementPlus components (switched to Konsta)
- Unnecessary blank lines in multiple UI components
- Deprecated
get_identityfunction - Old API key verification system
- Legacy billing email and customer ID fields
- Obsolete legal flag from user settings
- Duplicate migration statements
- Console.log statements from backend code
- Hyperdrive configuration (temporarily)
- Old update_lite endpoint (replaced with new version)
- Deprecated domain configuration files
- Unused Stunning service
- Old blog service integration
- Redundant error test cases
- Obsolete create organization test
- Deprecated fields from channel_devices schema
- Unused "wrappers" extension from base SQL
Deprecated
- Direct Supabase storage access patterns (migrating to R2)
- Version ID references (migrating to version name)
- Old stats calculation methods (moving to backend API)
- Legacy encryption methods (transitioning to new system)
- Manual device ID handling (switching to normalized lowercase)
🔗 Full Changelog: v11.3.70...v12.40.3