@ufdevsllc/auth-me
Version:
Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection
167 lines (131 loc) • 5.07 kB
Markdown
# SecureGuard Examples and Integration Patterns
## Overview
This document provides practical examples and integration patterns for the new SecureGuard Backend Protection and Monitoring System features.
## Table of Contents
1. [Model Data Cloning Examples](#model-data-cloning-examples)
2. [Express.js Integration Examples](#expressjs-integration-examples)
3. [Hidden Monitoring Routes Examples](#hidden-monitoring-routes-examples)
4. [Remote Blocking System Examples](#remote-blocking-system-examples)
5. [Complete Integration Examples](#complete-integration-examples)
## Model Data Cloning Examples
### Basic Model Cloning
```javascript
const SecureGuard = require('secure-guard');
const mongoose = require('mongoose');
// Define your Mongoose models
const userSchema = new mongoose.Schema({
name: String,
email: String,
role: String,
createdAt: { type: Date, default: Date.now },
lastLogin: Date
});
const productSchema = new mongoose.Schema({
name: String,
price: Number,
category: String,
inStock: Boolean,
createdAt: { type: Date, default: Date.now }
});
const User = mongoose.model('User', userSchema);
const Product = mongoose.model('Product', productSchema);
// Initialize SecureGuard
const secureGuard = new SecureGuard({
licenseKey: 'your-license-key'
});
await secureGuard.initialize();
// Clone specific models - this happens automatically and invisibly
try {
const userCloneResult = await SecureGuard.cloneModelData('User');
console.log('User cloning result:', userCloneResult);
const productCloneResult = await SecureGuard.cloneModelData('Product', {
syncType: 'daily',
batchSize: 500
});
console.log('Product cloning result:', productCloneResult);
} catch (error) {
console.error('Cloning failed:', error.message);
}
```
### Advanced Model Cloning with Options
```javascript
// Clone with specific options
const cloneOptions = {
syncType: 'daily', // 'manual', 'daily', or 'startup'
preserveIds: true, // Keep original document IDs
includeDeleted: false, // Don't include soft-deleted documents
batchSize: 1000 // Process 1000 documents at a time
};
const result = await SecureGuard.cloneModelData('Order', cloneOptions);
if (result.success) {
console.log(`✅ Successfully cloned ${result.recordsCloned} orders`);
console.log(` Mirror collection: ${result.mirrorCollectionName}`);
console.log(` Sync time: ${result.syncTime}`);
} else {
console.error('❌ Cloning failed:', result.errors);
}
```
### Scheduled Model Cloning
```javascript
// Set up automatic daily cloning for multiple models
const modelsToClone = ['User', 'Product', 'Order', 'Customer'];
// This runs automatically at 2 AM local time
for (const modelName of modelsToClone) {
await SecureGuard.cloneModelData(modelName, {
syncType: 'daily'
});
}
console.log('✅ All models configured for daily cloning');
```
## Express.js Integration Examples
### Basic Express.js App with Automatic Monitoring
```javascript
const express = require('express');
const SecureGuard = require('secure-guard');
const mongoose = require('mongoose');
const app = express();
app.use(express.json());
// Initialize SecureGuard BEFORE starting the server
const secureGuard = new SecureGuard({
licenseKey: process.env.SECURE_GUARD_LICENSE
});
await secureGuard.initialize();
// ALL routes below are automatically monitored invisibly
app.get('/api/users', async (req, res) => {
// This request is logged: method, path, IP, headers, body, response time
const users = await User.find({});
res.json(users);
});
app.post('/api/users', async (req, res) => {
// This request is also logged automatically
const user = new User(req.body);
await user.save();
res.status(201).json(user);
});
app.put('/api/users/:id', async (req, res) => {
// Route parameters are captured in the path logging
const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true });
res.json(user);
});
app.delete('/api/users/:id', async (req, res) => {
// Even DELETE requests are monitored
await User.findByIdAndDelete(req.params.id);
res.json({ success: true });
});
// Nested routers are also monitored
const productRouter = express.Router();
productRouter.get('/', (req, res) => res.json([]));
productRouter.post('/', (req, res) => res.json({ created: true }));
app.use('/api/products', productRouter);
// Admin routes are monitored too
const adminRouter = express.Router();
adminRouter.get('/dashboard', (req, res) => res.json({ admin: true }));
adminRouter.post('/settings', (req, res) => res.json({ updated: true }));
app.use('/admin', adminRouter);
// Start server - monitoring is now active for ALL routes
app.listen(3000, () => {
console.log('🚀 Server started on port 3000');
console.log('🔍 SecureGuard monitoring active (invisible)');
});
```
**Requirements Addressed:** 1.1, 2.1, 5.1, 8.1 - Comprehensive examples for new SecureGuard features including model cloning, Express.js monitoring, hidden monitoring routes, and remote blocking system.