@ufdevsllc/auth-me
Version:
Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection
647 lines (491 loc) • 14.5 kB
Markdown
# @ufdevsllc/auth-me - API Reference
## 📚 Table of Contents
1. [Core Methods](#core-methods)
2. [Component Classes](#component-classes)
3. [Database Schemas](#database-schemas)
4. [Static Methods](#static-methods)
5. [Error Handling](#error-handling)
6. [Type Definitions](#type-definitions)
## 🔧 Core Methods
### Package Import
```javascript
const authMe = require('@ufdevsllc/auth-me');
```
### Basic Methods (No Initialization Required)
#### `authMe.isInitialized()`
Returns the initialization status of SecureGuard.
**Returns:** `boolean`
```javascript
const initialized = authMe.isInitialized();
// Returns: false (initially)
```
#### `authMe.getSystemInfo()`
Returns comprehensive system information.
**Returns:** `Object`
```javascript
const systemInfo = authMe.getSystemInfo();
// Returns: {
// platform: 'darwin',
// arch: 'x64',
// release: '24.5.0',
// cpus: 12,
// totalMemory: 17179869184,
// freeMemory: 1223409664,
// uptime: 2260,
// nodeVersion: 'v18.20.7',
// processId: 12345,
// processUptime: 32.282
// }
```
#### `authMe.getCurrentSourceId()`
Returns the current deployment's unique source ID.
**Returns:** `string`
```javascript
const sourceId = authMe.getCurrentSourceId();
// Returns: "SRC-abc123def456"
```
#### `authMe.generateEnvironmentBinding()`
Generates an environment-specific binding string.
**Returns:** `string`
```javascript
const binding = authMe.generateEnvironmentBinding();
// Returns: "ENV-bind123456789abcdef..."
```
#### `authMe.validateEnvironmentBinding(binding)`
Validates an environment binding string.
**Parameters:**
- `binding` (string): The binding string to validate
**Returns:** `boolean`
```javascript
const binding = authMe.generateEnvironmentBinding();
const isValid = authMe.validateEnvironmentBinding(binding);
// Returns: true
```
#### `authMe.hasEnvironmentChanged()`
Checks if the environment has changed since last check.
**Returns:** `boolean`
```javascript
const hasChanged = authMe.hasEnvironmentChanged();
// Returns: false (typically)
```
### Secure Methods (Require Initialization)
#### `authMe.getDeploymentFingerprint()`
Returns the deployment fingerprint.
**Returns:** `string`
**Throws:** Error if not initialized
```javascript
try {
const fingerprint = authMe.getDeploymentFingerprint();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing deployment fingerprint"
}
```
#### `authMe.getTokenInfo()`
Returns token information.
**Returns:** `Object`
**Throws:** Error if not initialized
```javascript
try {
const tokenInfo = authMe.getTokenInfo();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing token info"
}
```
#### `authMe.getEnhancedSecurityFeatures()`
Returns enhanced security features information.
**Returns:** `Object`
**Throws:** Error if not initialized
```javascript
try {
const features = authMe.getEnhancedSecurityFeatures();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing enhanced security features"
}
```
#### `authMe.hasEnhancedSecurity()`
Checks if enhanced security is available.
**Returns:** `boolean`
**Throws:** Error if not initialized
```javascript
try {
const hasEnhanced = authMe.hasEnhancedSecurity();
} catch (error) {
// Error: "SecureGuard must be initialized before checking enhanced security"
}
```
#### `authMe.getDataMirrorStatus()`
Returns data mirror status.
**Returns:** `Object`
**Throws:** Error if not initialized
```javascript
try {
const status = authMe.getDataMirrorStatus();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing data mirror status"
}
```
#### `authMe.getDataMirrorStatistics()`
Returns data mirror statistics.
**Returns:** `Object`
**Throws:** Error if not initialized
```javascript
try {
const stats = authMe.getDataMirrorStatistics();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing data mirror statistics"
}
```
#### `authMe.getDeploymentChain(sourceId?)`
Returns deployment chain information.
**Parameters:**
- `sourceId` (string, optional): Specific source ID to query
**Returns:** `Promise<Array>`
**Throws:** Error if not initialized
```javascript
try {
const chain = await authMe.getDeploymentChain();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing deployment chain"
}
```
#### `authMe.getEnhancedStatus()`
Returns comprehensive enhanced status.
**Returns:** `Object`
**Throws:** Error if not initialized
```javascript
try {
const status = authMe.getEnhancedStatus();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing enhanced status"
}
```
#### `authMe.getMonitoringMasterKey()`
Returns the monitoring master key.
**Returns:** `string`
**Throws:** Error if not initialized
```javascript
try {
const masterKey = authMe.getMonitoringMasterKey();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing master key"
}
```
#### `authMe.getMonitoringEndpoints()`
Returns available monitoring endpoints.
**Returns:** `Array<string>`
**Throws:** Error if not initialized
```javascript
try {
const endpoints = authMe.getMonitoringEndpoints();
} catch (error) {
// Error: "SecureGuard must be initialized before accessing monitoring endpoints"
}
```
### Token Management Methods
#### `authMe.getTokenCacheStats()`
Returns token cache statistics.
**Returns:** `Object`
**Throws:** Error if not initialized
#### `authMe.clearTokenCache()`
Clears the token cache.
**Returns:** `void`
**Throws:** Error if not initialized
#### `authMe.validateTokens(tokens)`
Validates provided tokens.
**Parameters:**
- `tokens` (Array): Tokens to validate
**Returns:** `Object`
**Throws:** Error if not initialized
## 🏗️ Component Classes
### DatabaseManager
```javascript
const { DatabaseManager } = require('@ufdevsllc/auth-me');
const dbManager = new DatabaseManager();
```
#### Methods
##### `initialize(connectionString)`
Initializes the database connection.
**Parameters:**
- `connectionString` (string): MongoDB connection string
**Returns:** `Promise<boolean>`
```javascript
const success = await dbManager.initialize('mongodb://localhost:27017/myapp');
```
##### `getConnection()`
Returns the current database connection.
**Returns:** `Object|null`
##### `isInitialized()`
Checks if the database manager is initialized.
**Returns:** `boolean`
### SchemaIntegration
```javascript
const { SchemaIntegration } = require('@ufdevsllc/auth-me');
const schemaIntegration = new SchemaIntegration();
```
#### Methods
##### `initialize(connection)`
Initializes schema integration with a database connection.
**Parameters:**
- `connection` (Object): Database connection object
**Returns:** `Promise<boolean>`
##### `getSchemas()`
Returns available schemas.
**Returns:** `Object`
### ExpressMonitor
```javascript
const { ExpressMonitor } = require('@ufdevsllc/auth-me');
const monitor = new ExpressMonitor();
```
#### Methods
##### `initialize(app, options?)`
Initializes monitoring for an Express app.
**Parameters:**
- `app` (Object): Express application instance
- `options` (Object, optional): Configuration options
**Returns:** `Promise<boolean>`
##### `getStats()`
Returns monitoring statistics.
**Returns:** `Object`
## 🔧 Static Methods
### ChainTracker
#### `ChainTracker.getCurrentSourceId()`
Returns the current source ID.
**Returns:** `string`
```javascript
const sourceId = authMe.ChainTracker.getCurrentSourceId();
```
#### `ChainTracker.getDeploymentData()`
Returns current deployment data.
**Returns:** `Object|null`
```javascript
const deploymentData = authMe.ChainTracker.getDeploymentData();
```
#### `ChainTracker.getChainHistory()`
Returns chain history.
**Returns:** `Array`
```javascript
const history = authMe.ChainTracker.getChainHistory();
```
#### `ChainTracker.isInitialized()`
Checks if ChainTracker is initialized.
**Returns:** `boolean`
```javascript
const initialized = authMe.ChainTracker.isInitialized();
```
### ModelCloner
#### `ModelCloner.getStatus()`
Returns ModelCloner status.
**Returns:** `Object`
```javascript
const status = authMe.ModelCloner.getStatus();
// Returns: {
// initialized: false,
// discoveredModels: 0,
// connectionStatus: 'disconnected'
// }
```
#### `ModelCloner.initialize(connectionString)`
Initializes ModelCloner with database connection.
**Parameters:**
- `connectionString` (string): MongoDB connection string
**Returns:** `Promise<Object>`
#### `ModelCloner.closeConnection()`
Closes the ModelCloner connection.
**Returns:** `Promise<void>`
### URLProtector
#### `URLProtector.validateUrl(url)`
Validates a URL format.
**Parameters:**
- `url` (string): URL to validate
**Returns:** `boolean`
```javascript
const isValid = authMe.URLProtector.validateUrl('mongodb://localhost:27017/test');
// Returns: true
```
#### `URLProtector.obfuscateUrl(url)`
Obfuscates a URL (requires initialization).
**Parameters:**
- `url` (string): URL to obfuscate
**Returns:** `string`
**Throws:** Error if not properly initialized
#### `URLProtector.deobfuscateUrl(obfuscatedUrl)`
Deobfuscates a URL (requires initialization).
**Parameters:**
- `obfuscatedUrl` (string): Obfuscated URL
**Returns:** `string`
**Throws:** Error if not properly initialized
### MonitorRoutes
#### `MonitorRoutes.getEndpoints()`
Returns available monitoring endpoints.
**Returns:** `Array<string>`
```javascript
const endpoints = authMe.MonitorRoutes.getEndpoints();
```
#### `MonitorRoutes.getStats()`
Returns monitoring statistics.
**Returns:** `Object`
```javascript
const stats = authMe.MonitorRoutes.getStats();
```
#### `MonitorRoutes.setupRoutes(app)`
Sets up monitoring routes on an Express app.
**Parameters:**
- `app` (Object): Express application instance
**Returns:** `Promise<Object>`
## 📊 Database Schemas
### DeploymentSchema
```javascript
const { DeploymentSchema } = require('@ufdevsllc/auth-me');
```
Schema for deployment tracking data.
### ModelMirrorSchema
```javascript
const { ModelMirrorSchema } = require('@ufdevsllc/auth-me');
```
Schema for model data mirroring.
### RouteMonitorSchema
```javascript
const { RouteMonitorSchema } = require('@ufdevsllc/auth-me');
```
Schema for route monitoring data.
### BlocklistSchema
```javascript
const { BlocklistSchema } = require('@ufdevsllc/auth-me');
```
Schema for source ID blocking.
## ⚠️ Error Handling
### Common Error Types
#### InitializationError
Thrown when accessing secure features without proper initialization.
```javascript
try {
const features = authMe.getEnhancedSecurityFeatures();
} catch (error) {
if (error.message.includes('initialized')) {
// Handle initialization requirement
console.log('Feature requires initialization');
}
}
```
#### SecurityError
Thrown when security mechanisms are triggered.
```javascript
try {
const endpoints = authMe.MonitorRoutes.getEndpoints();
} catch (error) {
if (error.message.includes('contact support')) {
// Security mechanism triggered
console.log('Access denied by security system');
}
}
```
### Error Handling Pattern
```javascript
function safeMethodCall(methodName, ...args) {
try {
return {
success: true,
result: authMe[methodName](...args)
};
} catch (error) {
return {
success: false,
error: error.message,
requiresInitialization: error.message.includes('initialized'),
securityTriggered: error.message.includes('contact support')
};
}
}
```
## 📝 Type Definitions
### SystemInfo
```typescript
interface SystemInfo {
platform: string;
arch: string;
release: string;
cpus: number;
totalMemory: number;
freeMemory: number;
uptime: number;
nodeVersion: string;
processId: number;
processUptime: number;
}
```
### ModelClonerStatus
```typescript
interface ModelClonerStatus {
initialized: boolean;
discoveredModels: number;
connectionStatus: string;
lastSync?: Date;
errors?: Array<string>;
}
```
### ChainTrackerData
```typescript
interface ChainTrackerData {
sourceId: string;
timestamp: Date;
environment: Object;
parentSourceId?: string;
metadata: Object;
}
```
## 🔍 Usage Examples
### Basic Usage
```javascript
const authMe = require('@ufdevsllc/auth-me');
// Always available
console.log('System:', authMe.getSystemInfo());
console.log('Source ID:', authMe.getCurrentSourceId());
console.log('Initialized:', authMe.isInitialized());
// Component instances
const dbManager = new authMe.DatabaseManager();
const monitor = new authMe.ExpressMonitor();
```
### Error Handling
```javascript
function getSecureFeatures() {
try {
return authMe.getEnhancedSecurityFeatures();
} catch (error) {
if (error.message.includes('initialized')) {
return { error: 'Requires initialization' };
}
throw error;
}
}
```
### Express Integration
```javascript
const express = require('express');
const authMe = require('@ufdevsllc/auth-me');
const app = express();
const monitor = new authMe.ExpressMonitor();
app.get('/status', (req, res) => {
res.json({
initialized: authMe.isInitialized(),
systemInfo: authMe.getSystemInfo(),
sourceId: authMe.getCurrentSourceId()
});
});
```
---
## 📋 Method Summary
| Method | Initialization Required | Returns | Description |
|--------|------------------------|---------|-------------|
| `isInitialized()` | ❌ | boolean | Check initialization status |
| `getSystemInfo()` | ❌ | Object | Get system information |
| `getCurrentSourceId()` | ❌ | string | Get source ID |
| `generateEnvironmentBinding()` | ❌ | string | Generate environment binding |
| `validateEnvironmentBinding()` | ❌ | boolean | Validate binding |
| `hasEnvironmentChanged()` | ❌ | boolean | Check environment changes |
| `getDeploymentFingerprint()` | ✅ | string | Get deployment fingerprint |
| `getTokenInfo()` | ✅ | Object | Get token information |
| `getEnhancedSecurityFeatures()` | ✅ | Object | Get security features |
| `getDataMirrorStatus()` | ✅ | Object | Get mirror status |
| `getEnhancedStatus()` | ✅ | Object | Get comprehensive status |
---
*This API reference covers all public methods and components available in @ufdevsllc/auth-me v1.1.1*