# TimeSafari Daily Notification Plugin - Deployment Guide **Author**: Matthew Raymer **Version**: 1.0.0 **Created**: 2025-10-08 06:24:57 UTC ## Overview This guide provides comprehensive instructions for deploying the TimeSafari Daily Notification Plugin from the SSH git repository to production environments. ## Repository Information ### SSH Git Path ``` ssh://git@173.199.124.46:222/trent_larson/daily-notification-plugin.git ``` ### Current Status - **Branch**: `master` - **Version**: `2.2.0` - **Audit Status**: ✅ **PASSED** - 2025-10-08 06:08:15 UTC - **All Phases Complete**: Package prep, dependencies, architecture, build system, platform config, service integration, testing, documentation, observability ## Deployment Prerequisites ### System Requirements - **Node.js**: 18+ (LTS recommended) - **npm**: 8+ (or compatible package manager) - **Git**: 2.30+ with SSH key access - **Build Tools**: Native build tools for target platforms ### Platform-Specific Requirements #### Android Deployment - **Android Studio**: Latest stable version - **Android SDK**: API 21+ (Android 5.0+) - **Java**: OpenJDK 11+ - **Gradle**: 7.0+ (included with Android Studio) #### iOS Deployment - **Xcode**: 14+ (latest stable) - **iOS SDK**: 13.0+ (iOS 13.0+) - **CocoaPods**: 1.11+ (for dependency management) - **macOS**: 12+ (for iOS development) #### Electron Deployment - **Electron**: 20+ (latest stable) - **Node.js**: 18+ (for Electron main process) - **Native modules**: Compatible with target Electron version ## Deployment Process ### 1. Repository Setup #### Clone Repository ```bash # Clone the repository git clone ssh://git@173.199.124.46:222/trent_larson/daily-notification-plugin.git # Navigate to project directory cd daily-notification-plugin # Verify current branch and status git status git log --oneline -5 ``` #### Verify SSH Access ```bash # Test SSH connection ssh -T git@173.199.124.46 -p 222 # Verify repository access git ls-remote origin ``` ### 2. Environment Setup #### Install Dependencies ```bash # Install all dependencies npm install # Verify installation npm run typecheck npm run lint npm test ``` #### Environment Validation ```bash # Check development environment npm run check:environment # Setup native development environment npm run setup:native ``` ### 3. Build Process #### Production Build ```bash # Clean previous builds npm run clean # Build for all platforms npm run build:all # Verify build output ls -la dist/ ``` #### Platform-Specific Builds ```bash # Build for Android npm run build:android # Build for iOS npm run build:ios # Build for Electron npm run build:electron ``` #### Quality Checks ```bash # Check bundle size npm run size:check # Check API changes npm run api:check # Generate type checksum npm run types:checksum ``` ### 4. Testing #### Automated Testing ```bash # Run all tests npm test # Run tests with coverage npm run test:coverage # Run platform-specific tests npm run test:android npm run test:ios ``` #### Manual Testing ```bash # Run manual smoke tests npm run smoke:test # Test on specific platforms npm run test:platform:android npm run test:platform:ios npm run test:platform:electron ``` ### 5. Deployment Options #### Option A: NPM Package Deployment ```bash # Build and prepare for NPM npm run build:all npm run size:check npm run api:check # Publish to NPM (if configured) npm publish ``` #### Option B: Direct Integration ```bash # Build for TimeSafari PWA integration npm run build:timesafari # Copy to TimeSafari PWA project cp -r dist/ ../timesafari-pwa/plugins/daily-notification/ ``` #### Option C: Workspace Integration ```bash # For pnpm workspace integration pnpm add file:./daily-notification-plugin # For npm workspace integration npm install ./daily-notification-plugin ``` ## Integration with TimeSafari PWA ### 1. TimeSafari PWA Setup #### Add Plugin Dependency ```bash # In TimeSafari PWA project cd /path/to/timesafari-pwa # Add plugin dependency npm install ssh://git@173.199.124.46:222/trent_larson/daily-notification-plugin.git # Or for development npm install file:../daily-notification-plugin ``` #### Configure Capacitor ```typescript // In capacitor.config.ts import { CapacitorConfig } from '@capacitor/cli'; const config: CapacitorConfig = { appId: 'app.timesafari', appName: 'TimeSafari', webDir: 'dist', plugins: { DailyNotification: { storage: 'tiered', ttlSeconds: 1800, enableETagSupport: true, enableErrorHandling: true, enablePerformanceOptimization: true } } }; export default config; ``` ### 2. TimeSafari Integration #### Initialize Plugin ```typescript // In TimeSafari PWA main.ts or app setup import { DailyNotification } from '@timesafari/daily-notification-plugin'; import { TimeSafariIntegrationService } from '@timesafari/daily-notification-plugin'; // Initialize TimeSafari integration const integrationService = TimeSafariIntegrationService.getInstance(); await integrationService.initialize({ activeDid: userDid, storageAdapter: timeSafariStorageAdapter, endorserApiBaseUrl: 'https://endorser.ch/api/v1' }); // Configure plugin await DailyNotification.configure({ storage: 'tiered', ttlSeconds: 1800, enableETagSupport: true }); ``` #### Schedule Notifications ```typescript // Schedule TimeSafari community notifications await DailyNotification.scheduleDailyNotification({ title: 'TimeSafari Community Update', body: 'You have new offers and project updates', time: '09:00', channel: 'timesafari_community_updates' }); ``` ## Deployment Verification ### 1. Post-Deployment Checks #### Functionality Verification ```bash # Test plugin initialization npm run test:integration # Test notification scheduling npm run test:notifications # Test TimeSafari integration npm run test:timesafari ``` #### Performance Verification ```bash # Check bundle size npm run size:check # Check performance metrics npm run test:performance # Check memory usage npm run test:memory ``` ### 2. Monitoring Setup #### Observability Configuration ```typescript // Configure observability in TimeSafari PWA import { observability } from '@timesafari/daily-notification-plugin'; // Set up monitoring observability.configure({ logLevel: 'INFO', enableMetrics: true, enableTracing: true, enableHealthChecks: true }); ``` #### Dashboard Setup ```bash # Import sample dashboards # See docs/observability-dashboards.md for Grafana/DataDog configurations # Set up alerting rules # See docs/observability-dashboards.md for Prometheus alerting ``` ## Troubleshooting ### Common Deployment Issues #### SSH Access Issues ```bash # Test SSH connection ssh -T git@173.199.124.46 -p 222 # Check SSH key ssh-add -l # Add SSH key if needed ssh-add ~/.ssh/id_rsa ``` #### Build Issues ```bash # Clean and rebuild npm run clean npm install npm run build:all # Check for dependency conflicts npm ls # Update dependencies npm update ``` #### Platform-Specific Issues ```bash # Android issues npm run android:clean npm run android:build # iOS issues npm run ios:clean npm run ios:build # Electron issues npm run electron:clean npm run electron:build ``` ### Support and Maintenance #### Log Analysis ```bash # Check plugin logs npm run logs:view # Analyze error logs npm run logs:analyze # Check performance logs npm run logs:performance ``` #### Health Monitoring ```bash # Check plugin health npm run health:check # Check system status npm run status:check # Check compliance status npm run compliance:check ``` ## Security Considerations ### SSH Security - **SSH Key Management**: Use strong SSH keys with proper permissions - **Access Control**: Limit SSH access to authorized users only - **Key Rotation**: Regularly rotate SSH keys - **Audit Logging**: Monitor SSH access logs ### Deployment Security - **Dependency Scanning**: Regularly scan for vulnerabilities - **Code Signing**: Sign builds for production deployment - **Access Control**: Limit deployment access to authorized personnel - **Audit Trail**: Maintain deployment audit trail ## Maintenance ### Regular Maintenance Tasks - **Dependency Updates**: Monthly dependency updates - **Security Patches**: Apply security patches promptly - **Performance Monitoring**: Monitor performance metrics - **Compliance Audits**: Quarterly compliance audits - **Documentation Updates**: Keep documentation current ### Update Process ```bash # Pull latest changes git pull origin master # Update dependencies npm update # Run tests npm test # Build and deploy npm run build:all npm run deploy ``` --- **Note**: This deployment guide should be updated as the deployment process evolves. Regular review and updates are recommended to ensure accuracy and completeness.