- Add detailed deployment guide for SSH git deployment - Add deployment summary with key information and commands - Add deployment checklist for pre/post deployment verification - Include SSH git path and repository information - Add integration instructions for TimeSafari PWA - Add troubleshooting and maintenance guidance - Add rollback plan and emergency procedures SSH Git Path: ssh://git@173.199.124.46:222/trent_larson/daily-notification-plugin.git Version: 2.2.0 - Production Ready
435 lines
8.6 KiB
Markdown
435 lines
8.6 KiB
Markdown
# 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.
|