Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 0 additions & 131 deletions PR_MESSAGE.md

This file was deleted.

78 changes: 0 additions & 78 deletions middleware/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,84 +55,6 @@ app.use(middlewares['com.yourorg.plugin.example']);

See [PLUGINS.md](docs/PLUGINS.md) for complete documentation on creating and using plugins.

### First-Party Plugins

The middleware package includes several production-ready first-party plugins:

#### 1. Request Logger Plugin (`@mindblock/plugin-request-logger`)

HTTP request logging middleware with configurable verbosity, path filtering, and request ID correlation.

**Features:**
- Structured request logging with timing information
- Configurable log levels (debug, info, warn, error)
- Exclude paths from logging (health checks, metrics, etc.)
- Request ID correlation and propagation
- Sensitive header filtering (automatically excludes auth, cookies, API keys)
- Color-coded terminal output
- Runtime configuration changes

**Quick Start:**
```typescript
const registry = new PluginRegistry();
await registry.init();

const logger = await registry.load('@mindblock/plugin-request-logger', {
enabled: true,
options: {
logLevel: 'info',
excludePaths: ['/health', '/metrics'],
colorize: true
}
});

app.use(logger.plugin.getMiddleware());
```

**Documentation:** See [REQUEST-LOGGER.md](docs/REQUEST-LOGGER.md)

## Lifecycle Error Handling and Timeouts

The plugin system includes comprehensive error handling and timeout management for plugin lifecycle operations.

**Features:**
- ⏱️ Configurable timeouts for each lifecycle hook
- 🔄 Automatic retry with exponential backoff
- 🎯 Four recovery strategies (retry, fail-fast, graceful, rollback)
- 📊 Execution history and diagnostics
- 🏥 Plugin health monitoring

**Quick Start:**
```typescript
import { LifecycleTimeoutManager, RecoveryStrategy } from '@mindblock/middleware';

const timeoutManager = new LifecycleTimeoutManager();

// Configure timeouts
timeoutManager.setTimeoutConfig('my-plugin', {
onLoad: 5000,
onActivate: 3000
});

// Configure recovery strategy
timeoutManager.setRecoveryConfig('my-plugin', {
strategy: RecoveryStrategy.RETRY,
maxRetries: 2,
retryDelayMs: 100,
backoffMultiplier: 2
});

// Execute hook with timeout protection
await timeoutManager.executeWithTimeout(
'my-plugin',
'onActivate',
() => plugin.onActivate(),
3000
);
```

**Documentation:** See [LIFECYCLE-TIMEOUTS.md](docs/LIFECYCLE-TIMEOUTS.md) and [LIFECYCLE-TIMEOUTS-QUICKSTART.md](docs/LIFECYCLE-TIMEOUTS-QUICKSTART.md)

### Getting Started with Plugins

To quickly start developing a plugin:
Expand Down
Loading
Loading