native-update 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +36 -22
- package/docs/CHANGELOG.md +168 -0
- package/docs/EXAMPLE_APPS_SIMPLIFICATION_PLAN.md +384 -0
- package/docs/EXAMPLE_APPS_SIMPLIFICATION_TRACKER.md +390 -0
- package/docs/MARKETING_WEBSITE_PLAN.md +659 -0
- package/docs/MARKETING_WEBSITE_TRACKER.md +661 -0
- package/docs/ROADMAP.md +143 -0
- package/docs/SECURITY.md +356 -0
- package/docs/api/API.md +557 -0
- package/docs/api/FEATURES.md +414 -0
- package/docs/guides/key-management.md +1 -1
- package/docs/plans/PLANNING_COMPLETE_SUMMARY.md +361 -0
- package/docs/plans/TASK_1_ANDROID_EXAMPLE_APP.md +401 -0
- package/docs/plans/TASK_2_API_ENDPOINTS.md +856 -0
- package/docs/plans/TASK_2_DASHBOARD_UI_UX.md +820 -0
- package/docs/plans/TASK_2_DATABASE_SCHEMA.md +704 -0
- package/docs/plans/TASK_2_GOOGLE_DRIVE_INTEGRATION.md +646 -0
- package/docs/plans/TASK_2_SAAS_ARCHITECTURE.md +587 -0
- package/docs/plans/TASK_2_USER_AUTHENTICATION.md +600 -0
- package/docs/reports/AUDIT_SUMMARY_2025-12-26.md +203 -0
- package/docs/reports/COMPLETE_VERIFICATION.md +106 -0
- package/docs/reports/EVENT_FLOW_VERIFICATION.md +80 -0
- package/docs/reports/EXAMPLE_APPS_SIMPLIFICATION_COMPLETE.md +369 -0
- package/docs/reports/FINAL_STATUS.md +122 -0
- package/docs/reports/FINAL_VERIFICATION_CHECKLIST.md +425 -0
- package/docs/reports/MARKETING_WEBSITE_COMPLETE.md +466 -0
- package/docs/reports/PACKAGE_COMPLETENESS_REPORT.md +130 -0
- package/docs/reports/PRODUCTION_STATUS.md +115 -0
- package/docs/reports/PROJECT_RESTRUCTURE_2025-12-27.md +287 -0
- package/docs/reports/PROJECT_RESTRUCTURE_FINAL_SUMMARY.md +464 -0
- package/docs/reports/PUBLISHING_VERIFICATION.md +144 -0
- package/docs/reports/RELEASE_READY_SUMMARY.md +99 -0
- package/docs/tracking/IMPLEMENTATION_TRACKER.md +303 -0
- package/package.json +2 -3
- package/backend-template/README.md +0 -56
- package/backend-template/package.json +0 -20
- package/backend-template/server.js +0 -121
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
# Capacitor Native Update - Features
|
|
2
|
+
|
|
3
|
+
This document outlines all the features that will be implemented in the Capacitor Native Update plugin.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Capacitor Native Update plugin provides a comprehensive solution for managing app updates across three key areas:
|
|
8
|
+
|
|
9
|
+
1. **Live Updates (OTA)** - Deploy web assets instantly without app store approval
|
|
10
|
+
2. **Native App Updates** - Manage app store updates with native UI
|
|
11
|
+
3. **App Reviews** - Request user reviews at optimal moments
|
|
12
|
+
|
|
13
|
+
## 1. Live Update Features (OTA)
|
|
14
|
+
|
|
15
|
+
### Bundle Management
|
|
16
|
+
|
|
17
|
+
- **Download Management**
|
|
18
|
+
- Progressive download with resume capability
|
|
19
|
+
- Background download support
|
|
20
|
+
- Bandwidth throttling options
|
|
21
|
+
- Delta updates (only download changed files)
|
|
22
|
+
- Bundle size optimization
|
|
23
|
+
|
|
24
|
+
- **Version Control**
|
|
25
|
+
- Semantic versioning support (major.minor.patch)
|
|
26
|
+
- Bundle version separate from native app version
|
|
27
|
+
- Version compatibility checks
|
|
28
|
+
- Minimum native version requirements
|
|
29
|
+
|
|
30
|
+
- **Storage Management**
|
|
31
|
+
- Multiple bundle storage
|
|
32
|
+
- Automatic cleanup of old bundles
|
|
33
|
+
- Configurable retention policies
|
|
34
|
+
- Bundle size limits
|
|
35
|
+
|
|
36
|
+
### Update Strategies
|
|
37
|
+
|
|
38
|
+
- **Immediate Update**
|
|
39
|
+
- Force update on app launch
|
|
40
|
+
- Block app usage until update completes
|
|
41
|
+
- Show progress indicator
|
|
42
|
+
|
|
43
|
+
- **Background Update**
|
|
44
|
+
- Download in background
|
|
45
|
+
- Apply on next app restart
|
|
46
|
+
- Silent updates without user interaction
|
|
47
|
+
|
|
48
|
+
- **Manual Update**
|
|
49
|
+
- Programmatic control over update process
|
|
50
|
+
- Custom update UI support
|
|
51
|
+
- User-triggered updates
|
|
52
|
+
|
|
53
|
+
### Rollback & Recovery
|
|
54
|
+
|
|
55
|
+
- **Automatic Rollback**
|
|
56
|
+
- Detect failed updates
|
|
57
|
+
- Automatic revert to previous version
|
|
58
|
+
- Crash detection after update
|
|
59
|
+
|
|
60
|
+
- **Manual Rollback**
|
|
61
|
+
- Programmatic rollback to specific versions
|
|
62
|
+
- Keep multiple versions for safety
|
|
63
|
+
|
|
64
|
+
- **Update Confirmation**
|
|
65
|
+
- "Ready" confirmation mechanism
|
|
66
|
+
- Grace period before confirming update
|
|
67
|
+
- Telemetry on update success
|
|
68
|
+
|
|
69
|
+
### Update Channels
|
|
70
|
+
|
|
71
|
+
- **Multiple Channels**
|
|
72
|
+
- Production, staging, development
|
|
73
|
+
- Beta testing channels
|
|
74
|
+
- A/B testing support
|
|
75
|
+
- Geographic targeting
|
|
76
|
+
|
|
77
|
+
- **Channel Management**
|
|
78
|
+
- Dynamic channel switching
|
|
79
|
+
- Channel-specific configurations
|
|
80
|
+
- User segmentation
|
|
81
|
+
|
|
82
|
+
### Security Features (Following Capacitor Security Guidelines)
|
|
83
|
+
|
|
84
|
+
- **Encryption**
|
|
85
|
+
- End-to-end encryption for bundles
|
|
86
|
+
- AES-256-GCM encryption with authenticated encryption
|
|
87
|
+
- Secure key management using platform keystores
|
|
88
|
+
- Never embed encryption keys in code
|
|
89
|
+
|
|
90
|
+
- **Signature Verification**
|
|
91
|
+
- Public key bundle signing (RSA-2048 minimum)
|
|
92
|
+
- RSA/ECDSA signature support
|
|
93
|
+
- Certificate pinning for update servers
|
|
94
|
+
- Signature timestamp validation
|
|
95
|
+
|
|
96
|
+
- **Integrity Checks**
|
|
97
|
+
- SHA-256 checksum validation (minimum)
|
|
98
|
+
- SHA-512 support for enhanced security
|
|
99
|
+
- Bundle tampering detection
|
|
100
|
+
- Secure manifest files with nested signatures
|
|
101
|
+
- File size validation to prevent resource exhaustion
|
|
102
|
+
|
|
103
|
+
- **Network Security**
|
|
104
|
+
- HTTPS enforcement (no HTTP fallback)
|
|
105
|
+
- Certificate validation and pinning
|
|
106
|
+
- Secure TLS configuration (TLS 1.2+)
|
|
107
|
+
- Update server whitelist support
|
|
108
|
+
|
|
109
|
+
- **Storage Security**
|
|
110
|
+
- Temporary files in secure directories
|
|
111
|
+
- Immediate cleanup of failed downloads
|
|
112
|
+
- File permissions set to app-only access
|
|
113
|
+
- Secure storage for sensitive configuration
|
|
114
|
+
|
|
115
|
+
- **Input Validation**
|
|
116
|
+
- Sanitize all JavaScript inputs
|
|
117
|
+
- Path traversal prevention
|
|
118
|
+
- URL validation and whitelist checking
|
|
119
|
+
- Version string format validation
|
|
120
|
+
|
|
121
|
+
### Analytics & Monitoring
|
|
122
|
+
|
|
123
|
+
- **Update Metrics**
|
|
124
|
+
- Download success rates
|
|
125
|
+
- Update application rates
|
|
126
|
+
- Rollback frequencies
|
|
127
|
+
- Performance impact metrics
|
|
128
|
+
|
|
129
|
+
- **Error Tracking**
|
|
130
|
+
- Detailed error logging
|
|
131
|
+
- Network failure handling
|
|
132
|
+
- Storage error management
|
|
133
|
+
|
|
134
|
+
## 2. Native App Update Features
|
|
135
|
+
|
|
136
|
+
### Update Detection
|
|
137
|
+
|
|
138
|
+
- **Version Checking**
|
|
139
|
+
- Check current vs available versions
|
|
140
|
+
- Version code and name comparison
|
|
141
|
+
- Update availability detection
|
|
142
|
+
- Update size information
|
|
143
|
+
|
|
144
|
+
- **Update Priority**
|
|
145
|
+
- Critical updates (must update)
|
|
146
|
+
- Recommended updates
|
|
147
|
+
- Optional updates
|
|
148
|
+
- Custom priority levels
|
|
149
|
+
|
|
150
|
+
### Update Types
|
|
151
|
+
|
|
152
|
+
- **Immediate Updates**
|
|
153
|
+
- Blocking UI during update
|
|
154
|
+
- Force update for critical fixes
|
|
155
|
+
- Update progress tracking
|
|
156
|
+
- Automatic app restart
|
|
157
|
+
|
|
158
|
+
- **Flexible Updates**
|
|
159
|
+
- Background download
|
|
160
|
+
- User-controlled installation
|
|
161
|
+
- Download progress notifications
|
|
162
|
+
- Install at convenient time
|
|
163
|
+
|
|
164
|
+
### Platform Integration
|
|
165
|
+
|
|
166
|
+
- **Android Features**
|
|
167
|
+
- Google Play Core integration
|
|
168
|
+
- In-app update API support
|
|
169
|
+
- Play Store navigation
|
|
170
|
+
- Update state persistence
|
|
171
|
+
|
|
172
|
+
- **iOS Features**
|
|
173
|
+
- App Store version checking
|
|
174
|
+
- iTunes API integration
|
|
175
|
+
- App Store redirect
|
|
176
|
+
- Version comparison logic
|
|
177
|
+
|
|
178
|
+
### Update UI
|
|
179
|
+
|
|
180
|
+
- **Native Dialogs**
|
|
181
|
+
- Platform-specific update prompts
|
|
182
|
+
- Customizable messaging
|
|
183
|
+
- Localization support
|
|
184
|
+
- Action button customization
|
|
185
|
+
|
|
186
|
+
- **Custom UI Support**
|
|
187
|
+
- Programmatic update flow
|
|
188
|
+
- Custom dialog integration
|
|
189
|
+
- Progress indicators
|
|
190
|
+
- Update postponement
|
|
191
|
+
|
|
192
|
+
## 3. App Review Features
|
|
193
|
+
|
|
194
|
+
### Review Prompts
|
|
195
|
+
|
|
196
|
+
- **In-App Reviews**
|
|
197
|
+
- Native review dialogs
|
|
198
|
+
- No app switching required
|
|
199
|
+
- Platform-optimized experience
|
|
200
|
+
- Fallback mechanisms
|
|
201
|
+
|
|
202
|
+
- **Smart Triggering**
|
|
203
|
+
- Optimal timing detection
|
|
204
|
+
- User engagement tracking
|
|
205
|
+
- Positive experience detection
|
|
206
|
+
- Configurable triggers
|
|
207
|
+
|
|
208
|
+
### Rate Limiting
|
|
209
|
+
|
|
210
|
+
- **Platform Limits**
|
|
211
|
+
- iOS: Maximum 3 times per year
|
|
212
|
+
- Android: Quota management
|
|
213
|
+
- Custom rate limiting
|
|
214
|
+
- User preference tracking
|
|
215
|
+
|
|
216
|
+
- **Intelligent Scheduling**
|
|
217
|
+
- Avoid review fatigue
|
|
218
|
+
- Track previous requests
|
|
219
|
+
- User sentiment analysis
|
|
220
|
+
- Conditional triggering
|
|
221
|
+
|
|
222
|
+
### Analytics
|
|
223
|
+
|
|
224
|
+
- **Review Metrics**
|
|
225
|
+
- Request success rates
|
|
226
|
+
- User interaction tracking
|
|
227
|
+
- Conversion metrics
|
|
228
|
+
- Platform-specific analytics
|
|
229
|
+
|
|
230
|
+
## 4. Configuration & Management
|
|
231
|
+
|
|
232
|
+
### Plugin Configuration
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
{
|
|
236
|
+
// Live Update Configuration
|
|
237
|
+
liveUpdate: {
|
|
238
|
+
appId: string;
|
|
239
|
+
serverUrl: string;
|
|
240
|
+
channel: string;
|
|
241
|
+
autoUpdate: boolean;
|
|
242
|
+
updateStrategy: 'immediate' | 'background' | 'manual';
|
|
243
|
+
publicKey?: string;
|
|
244
|
+
checkInterval?: number;
|
|
245
|
+
allowEmulator?: boolean;
|
|
246
|
+
},
|
|
247
|
+
|
|
248
|
+
// App Update Configuration
|
|
249
|
+
appUpdate: {
|
|
250
|
+
minimumVersion?: string;
|
|
251
|
+
updatePriority?: number;
|
|
252
|
+
storeUrl?: {
|
|
253
|
+
android?: string;
|
|
254
|
+
ios?: string;
|
|
255
|
+
};
|
|
256
|
+
checkOnAppStart?: boolean;
|
|
257
|
+
},
|
|
258
|
+
|
|
259
|
+
// App Review Configuration
|
|
260
|
+
appReview: {
|
|
261
|
+
minimumDaysSinceInstall?: number;
|
|
262
|
+
minimumDaysSinceLastPrompt?: number;
|
|
263
|
+
minimumLaunchCount?: number;
|
|
264
|
+
customTriggers?: string[];
|
|
265
|
+
debugMode?: boolean;
|
|
266
|
+
},
|
|
267
|
+
|
|
268
|
+
// Security Configuration
|
|
269
|
+
security: {
|
|
270
|
+
enforceHttps?: boolean; // Default: true
|
|
271
|
+
certificatePinning?: {
|
|
272
|
+
enabled: boolean;
|
|
273
|
+
certificates: string[]; // SHA256 fingerprints
|
|
274
|
+
maxAge?: number;
|
|
275
|
+
};
|
|
276
|
+
requireSignature?: boolean; // Default: true
|
|
277
|
+
validateChecksums?: boolean; // Default: true
|
|
278
|
+
maxBundleSize?: number; // Default: 50MB
|
|
279
|
+
allowedUpdateServers?: string[]; // Whitelist
|
|
280
|
+
secureStorage?: boolean; // Default: true
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Error Handling
|
|
286
|
+
|
|
287
|
+
- Comprehensive error codes without exposing system details
|
|
288
|
+
- User-friendly error messages
|
|
289
|
+
- Detailed internal logging (without sensitive data)
|
|
290
|
+
- Recovery strategies for common failures
|
|
291
|
+
- Fallback mechanisms for degraded functionality
|
|
292
|
+
- Security event logging and monitoring
|
|
293
|
+
|
|
294
|
+
### Testing Support
|
|
295
|
+
|
|
296
|
+
- Debug mode for development (disabled in production)
|
|
297
|
+
- Update simulation with mock servers
|
|
298
|
+
- Force update triggers (development only)
|
|
299
|
+
- Review prompt testing
|
|
300
|
+
- Security testing tools
|
|
301
|
+
- Malformed bundle testing
|
|
302
|
+
- Certificate validation testing
|
|
303
|
+
|
|
304
|
+
## 5. Web Platform Support
|
|
305
|
+
|
|
306
|
+
### Progressive Web Apps
|
|
307
|
+
|
|
308
|
+
- Service worker integration
|
|
309
|
+
- Cache management
|
|
310
|
+
- Update notifications
|
|
311
|
+
- Background sync
|
|
312
|
+
|
|
313
|
+
### Web Fallbacks
|
|
314
|
+
|
|
315
|
+
- Graceful degradation
|
|
316
|
+
- Feature detection
|
|
317
|
+
- Browser compatibility
|
|
318
|
+
- Update simulations
|
|
319
|
+
|
|
320
|
+
## 6. Security Implementation Details
|
|
321
|
+
|
|
322
|
+
### Platform-Specific Security
|
|
323
|
+
|
|
324
|
+
#### iOS Security
|
|
325
|
+
|
|
326
|
+
- **Keychain Services** for storing encryption keys and sensitive data
|
|
327
|
+
- **App Transport Security** enforcement (no HTTP allowed)
|
|
328
|
+
- **Code signing** validation for update bundles
|
|
329
|
+
- **Sandbox validation** for all file operations
|
|
330
|
+
- **Entitlements** properly configured for network access
|
|
331
|
+
|
|
332
|
+
#### Android Security
|
|
333
|
+
|
|
334
|
+
- **Android Keystore** for cryptographic key storage
|
|
335
|
+
- **Network Security Config** for certificate pinning
|
|
336
|
+
- **Runtime permissions** for storage and network access
|
|
337
|
+
- **ProGuard/R8** obfuscation for release builds
|
|
338
|
+
- **SafetyNet** integration for device attestation
|
|
339
|
+
|
|
340
|
+
### Security Protocols
|
|
341
|
+
|
|
342
|
+
- **Update Protocol**
|
|
343
|
+
1. HTTPS request with certificate validation
|
|
344
|
+
2. Server authentication via API keys
|
|
345
|
+
3. Bundle download with progress tracking
|
|
346
|
+
4. Checksum verification (SHA-256/512)
|
|
347
|
+
5. Signature verification (RSA/ECDSA)
|
|
348
|
+
6. Secure extraction to temporary directory
|
|
349
|
+
7. Validation of bundle contents
|
|
350
|
+
8. Atomic installation with rollback capability
|
|
351
|
+
|
|
352
|
+
- **Key Management**
|
|
353
|
+
- Public keys distributed with app
|
|
354
|
+
- Private keys secured on update server
|
|
355
|
+
- Key rotation support with versioning
|
|
356
|
+
- Hardware-backed key storage when available
|
|
357
|
+
|
|
358
|
+
### Threat Mitigation
|
|
359
|
+
|
|
360
|
+
- **Man-in-the-Middle**: Certificate pinning, HTTPS enforcement
|
|
361
|
+
- **Bundle Tampering**: Cryptographic signatures, checksums
|
|
362
|
+
- **Downgrade Attacks**: Version validation, no downgrades by default
|
|
363
|
+
- **Path Traversal**: Input sanitization, sandboxed operations
|
|
364
|
+
- **Resource Exhaustion**: File size limits, timeout controls
|
|
365
|
+
- **Replay Attacks**: Timestamp validation, nonce usage
|
|
366
|
+
|
|
367
|
+
## 7. Performance Optimizations
|
|
368
|
+
|
|
369
|
+
### Resource Management
|
|
370
|
+
|
|
371
|
+
- Memory efficient downloads with streaming
|
|
372
|
+
- Disk space pre-check before download
|
|
373
|
+
- CPU usage optimization with background threads
|
|
374
|
+
- Battery awareness (defer updates on low battery)
|
|
375
|
+
- Network state monitoring
|
|
376
|
+
|
|
377
|
+
### Network Optimization
|
|
378
|
+
|
|
379
|
+
- Intelligent retry with exponential backoff
|
|
380
|
+
- Connection type detection (WiFi preferred)
|
|
381
|
+
- Bandwidth throttling options
|
|
382
|
+
- CDN support with geographic distribution
|
|
383
|
+
- Resume capability for interrupted downloads
|
|
384
|
+
- Delta update support to minimize download size
|
|
385
|
+
|
|
386
|
+
## 8. Compliance and Privacy
|
|
387
|
+
|
|
388
|
+
### Data Protection
|
|
389
|
+
|
|
390
|
+
- GDPR compliance with data minimization
|
|
391
|
+
- No personal data collection in update process
|
|
392
|
+
- Anonymous usage statistics (opt-in)
|
|
393
|
+
- Secure data transmission and storage
|
|
394
|
+
- Right to erasure support
|
|
395
|
+
|
|
396
|
+
### App Store Compliance
|
|
397
|
+
|
|
398
|
+
- iOS App Store guidelines compliance
|
|
399
|
+
- Google Play Store policy adherence
|
|
400
|
+
- Transparent update notifications
|
|
401
|
+
- User consent for major updates
|
|
402
|
+
- No code injection or dynamic frameworks
|
|
403
|
+
|
|
404
|
+
## 9. Future Enhancements
|
|
405
|
+
|
|
406
|
+
### Planned Features
|
|
407
|
+
|
|
408
|
+
- Machine learning for optimal update timing
|
|
409
|
+
- Predictive pre-loading
|
|
410
|
+
- Peer-to-peer update distribution
|
|
411
|
+
- Advanced A/B testing framework
|
|
412
|
+
- Custom update UI components
|
|
413
|
+
- Update scheduling APIs
|
|
414
|
+
- Differential compression algorithms
|
|
@@ -277,7 +277,7 @@ cat intermediate.crt root.crt > chain.pem
|
|
|
277
277
|
|
|
278
278
|
- Review [Security Best Practices](./security-best-practices.md)
|
|
279
279
|
- Implement [Bundle Signing](../BUNDLE_SIGNING.md)
|
|
280
|
-
- Set up [
|
|
280
|
+
- Set up [Deployment Guide](./deployment-guide.md) for production deployment
|
|
281
281
|
|
|
282
282
|
---
|
|
283
283
|
|