UNPKG

@ufdevsllc/auth-me

Version:

Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection

434 lines (333 loc) 11.2 kB
# @ufdevsllc/auth-me - Importing and Usage Guide ## 📦 Installation ```bash npm install @ufdevsllc/auth-me ``` ## 🚀 Quick Start ### Basic Import and Initialization ```javascript const authMe = require('@ufdevsllc/auth-me'); // Check if initialized console.log('Initialized:', authMe.isInitialized()); // false initially // Get system information (works without initialization) const systemInfo = authMe.getSystemInfo(); console.log('System Info:', systemInfo); // Generate environment binding (works without initialization) const binding = authMe.generateEnvironmentBinding(); console.log('Environment Binding:', binding); ``` ## 📋 Available Components ### Core Components ```javascript const { SecureGuard, EnvironmentFingerprinter, LicenseValidator, DataMirrorService, EncryptionManager, ObfuscationLayer, TokenValidator } = require('@ufdevsllc/auth-me'); ``` ### Enhancement Components ```javascript const { URLProtector, ChainTracker, ModelCloner, ExpressMonitor, MonitorRoutes } = require('@ufdevsllc/auth-me'); ``` ### Database Components ```javascript const { DatabaseManager, SchemaIntegration, DeploymentSchema, ModelMirrorSchema, RouteMonitorSchema, BlocklistSchema } = require('@ufdevsllc/auth-me'); ``` ## 🔧 Core Methods Usage ### System Information ```javascript const authMe = require('@ufdevsllc/auth-me'); // Get system information const systemInfo = authMe.getSystemInfo(); console.log('Platform:', systemInfo.platform); console.log('Architecture:', systemInfo.arch); console.log('Node Version:', systemInfo.nodeVersion); ``` ### Environment Fingerprinting ```javascript // Generate environment binding const binding = authMe.generateEnvironmentBinding(); // Validate environment binding const isValid = authMe.validateEnvironmentBinding(binding); console.log('Binding valid:', isValid); // Check if environment has changed const hasChanged = authMe.hasEnvironmentChanged(); console.log('Environment changed:', hasChanged); ``` ### Chain Tracking ```javascript // Get current source ID const sourceId = authMe.getCurrentSourceId(); console.log('Source ID:', sourceId); // e.g., "SRC-abc123def456" // Get deployment data const deploymentData = authMe.ChainTracker.getDeploymentData(); console.log('Deployment Data:', deploymentData); // Get chain history const chainHistory = authMe.ChainTracker.getChainHistory(); console.log('Chain History:', chainHistory); ``` ## 🗄️ Database Integration ### Database Manager ```javascript const { DatabaseManager } = require('@ufdevsllc/auth-me'); // Create database manager instance const dbManager = new DatabaseManager(); // Initialize with connection string async function setupDatabase() { const success = await dbManager.initialize('mongodb://localhost:27017/myapp'); if (success) { console.log('Database initialized successfully'); } } ``` ### Schema Integration ```javascript const { SchemaIntegration, DeploymentSchema } = require('@ufdevsllc/auth-me'); // Create schema integration instance const schemaIntegration = new SchemaIntegration(); // Use predefined schemas console.log('Deployment Schema:', DeploymentSchema); ``` ### Available Schemas ```javascript const { DeploymentSchema, // For deployment tracking ModelMirrorSchema, // For model data mirroring RouteMonitorSchema, // For route monitoring BlocklistSchema // For source ID blocking } = require('@ufdevsllc/auth-me'); ``` ## 🌐 Express.js Integration ### Basic Express Setup ```javascript const express = require('express'); const { ExpressMonitor } = require('@ufdevsllc/auth-me'); const app = express(); // Create Express monitor const monitor = new ExpressMonitor(); // Basic middleware app.use(express.json()); // Your routes app.get('/', (req, res) => { res.json({ message: 'Hello World', systemInfo: require('@ufdevsllc/auth-me').getSystemInfo() }); }); app.listen(3000, () => { console.log('Server running on port 3000'); }); ``` ### Monitor Routes Integration ```javascript const { MonitorRoutes } = require('@ufdevsllc/auth-me'); // Get monitoring endpoints const endpoints = MonitorRoutes.getEndpoints(); console.log('Available endpoints:', endpoints); // Get monitoring stats const stats = MonitorRoutes.getStats(); console.log('Monitor stats:', stats); // Setup monitoring routes (requires proper authentication) // MonitorRoutes.setupRoutes(app); // Use with caution ``` ## 🔒 URL Protection ### URL Encryption and Validation ```javascript const { URLProtector } = require('@ufdevsllc/auth-me'); // Validate URL const testUrl = 'mongodb://localhost:27017/testdb'; const isValid = URLProtector.validateUrl(testUrl); console.log('URL is valid:', isValid); // Obfuscate URL (requires proper initialization) try { const obfuscated = URLProtector.obfuscateUrl(testUrl); console.log('Obfuscated URL:', obfuscated); // Deobfuscate URL const deobfuscated = URLProtector.deobfuscateUrl(obfuscated); console.log('Deobfuscated URL:', deobfuscated); } catch (error) { console.log('URL protection requires proper setup'); } ``` ## 📊 Model Cloning ### ModelCloner Usage ```javascript const { ModelCloner } = require('@ufdevsllc/auth-me'); // Get ModelCloner status const status = ModelCloner.getStatus(); console.log('ModelCloner Status:', status); // Check initialization status console.log('Initialized:', status.initialized); console.log('Discovered Models:', status.discoveredModels); ``` ## ⚠️ Security Considerations ### Methods Requiring Initialization Some methods require the SecureGuard to be properly initialized with a valid license: ```javascript // These methods require initialization: // - authMe.getDeploymentFingerprint() // - authMe.getTokenInfo() // - authMe.getEnhancedSecurityFeatures() // - authMe.hasEnhancedSecurity() // - authMe.getDataMirrorStatus() // - authMe.getDataMirrorStatistics() // - authMe.getDeploymentChain() // - authMe.getEnhancedStatus() // - authMe.getMonitoringMasterKey() // - authMe.getMonitoringEndpoints() // Example of handling uninitialized state: try { const fingerprint = authMe.getDeploymentFingerprint(); console.log('Fingerprint:', fingerprint); } catch (error) { if (error.message.includes('initialized')) { console.log('SecureGuard needs to be initialized first'); } } ``` ### Safe Methods (No Initialization Required) ```javascript // These methods work without initialization: const systemInfo = authMe.getSystemInfo(); const sourceId = authMe.getCurrentSourceId(); const binding = authMe.generateEnvironmentBinding(); const isValid = authMe.validateEnvironmentBinding(binding); const hasChanged = authMe.hasEnvironmentChanged(); const initialized = authMe.isInitialized(); ``` ## 🛡️ Error Handling ### Proper Error Handling Pattern ```javascript const authMe = require('@ufdevsllc/auth-me'); function safelyAccessSecureFeature() { try { const features = authMe.getEnhancedSecurityFeatures(); return features; } catch (error) { if (error.message.includes('initialized')) { console.log('Feature requires initialization'); return null; } throw error; // Re-throw unexpected errors } } // Usage const features = safelyAccessSecureFeature(); if (features) { console.log('Security features:', features); } else { console.log('Security features not available'); } ``` ## 📝 Complete Example Application ```javascript const express = require('express'); const authMe = require('@ufdevsllc/auth-me'); const app = express(); app.use(express.json()); // Create instances const monitor = new authMe.ExpressMonitor(); const dbManager = new authMe.DatabaseManager(); // Basic info endpoint app.get('/', (req, res) => { res.json({ message: 'My App with auth-me', timestamp: new Date().toISOString(), systemInfo: authMe.getSystemInfo(), sourceId: authMe.getCurrentSourceId(), initialized: authMe.isInitialized() }); }); // Status endpoint with error handling app.get('/status', (req, res) => { const status = { initialized: authMe.isInitialized(), sourceId: authMe.getCurrentSourceId(), environmentBinding: authMe.generateEnvironmentBinding(), modelClonerStatus: authMe.ModelCloner.getStatus() }; // Try to get secure features try { status.enhancedStatus = authMe.getEnhancedStatus(); } catch (error) { status.enhancedStatusError = 'Requires initialization'; } res.json(status); }); // Error handling middleware app.use((error, req, res, next) => { console.error('Application error:', error); res.status(500).json({ error: 'Internal server error', timestamp: new Date().toISOString() }); }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); console.log('Available endpoints:'); console.log(' GET / - Basic info'); console.log(' GET /status - Application status'); }); ``` ## 🔍 Debugging and Monitoring ### Check Package Status ```javascript const authMe = require('@ufdevsllc/auth-me'); // Basic health check function healthCheck() { return { packageLoaded: !!authMe, initialized: authMe.isInitialized(), systemInfo: authMe.getSystemInfo(), sourceId: authMe.getCurrentSourceId(), environmentBinding: authMe.generateEnvironmentBinding(), modelClonerStatus: authMe.ModelCloner.getStatus(), chainHistory: authMe.ChainTracker.getChainHistory() }; } console.log('Health Check:', healthCheck()); ``` ## 📚 Additional Resources - **Package Version**: 1.1.1 - **License**: PROPRIETARY - **Author**: UFDevs LLC - **Node.js Compatibility**: >=14.0.0 ## ⚡ Performance Tips 1. **Lazy Loading**: Only import components you need 2. **Error Handling**: Always wrap secure methods in try-catch 3. **Initialization Check**: Check `isInitialized()` before calling secure methods 4. **Caching**: Cache system info and other static data 5. **Monitoring**: Use the built-in monitoring features for production apps ## 🚨 Common Issues and Solutions ### Issue: "SecureGuard must be initialized" **Solution**: This is expected behavior for security-sensitive methods. Either initialize properly or handle the error gracefully. ### Issue: "Application initialization failed" **Solution**: This indicates security mechanisms are working. Ensure you're not triggering unauthorized access patterns. ### Issue: Component not found **Solution**: Check your import statement and ensure you're using the correct component name. ```javascript // ✅ Correct const { DatabaseManager } = require('@ufdevsllc/auth-me'); // ❌ Incorrect const DatabaseManager = require('@ufdevsllc/auth-me').DatabaseManager; ``` --- *This guide covers the essential usage patterns for @ufdevsllc/auth-me. For advanced usage and enterprise features, proper initialization with a valid license is required.*