Major Features:
- Multi-project governance with Rule Manager web UI
- Project Manager for organizing governance across projects
- Variable substitution system (${VAR_NAME} in rules)
- Claude.md analyzer for instruction extraction
- Rule quality scoring and optimization
Admin UI Components:
- /admin/rule-manager.html - Full-featured rule management interface
- /admin/project-manager.html - Multi-project administration
- /admin/claude-md-migrator.html - Import rules from Claude.md files
- Dashboard enhancements for governance analytics
Backend Implementation:
- Controllers: projects, rules, variables
- Models: Project, VariableValue, enhanced GovernanceRule
- Routes: /api/projects, /api/rules with full CRUD
- Services: ClaudeMdAnalyzer, RuleOptimizer, VariableSubstitution
- Utilities: mongoose helpers
Documentation:
- User guides for Rule Manager and Projects
- Complete API documentation (PROJECTS_API, RULES_API)
- Phase 3 planning and architecture diagrams
- Test results and error analysis
- Coding best practices summary
Testing & Scripts:
- Integration tests for projects API
- Unit tests for variable substitution
- Database migration scripts
- Seed data generation
- Test token generator
Key Capabilities:
✅ UNIVERSAL scope rules apply across all projects
✅ PROJECT_SPECIFIC rules override for individual projects
✅ Variable substitution per-project (e.g., ${DB_PORT} → 27017)
✅ Real-time validation and quality scoring
✅ Advanced filtering and search
✅ Import from existing Claude.md files
Technical Details:
- MongoDB-backed governance persistence
- RESTful API with Express
- JWT authentication for admin endpoints
- CSP-compliant frontend (no inline handlers)
- Responsive Tailwind UI
This implements Phase 3 architecture as documented in planning docs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
31 lines
768 B
JavaScript
31 lines
768 B
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Generate Test JWT Token
|
|
* Creates a valid JWT token for testing Rule Manager API
|
|
*/
|
|
|
|
require('dotenv').config();
|
|
const jwt = require('jsonwebtoken');
|
|
|
|
const JWT_SECRET = process.env.JWT_SECRET;
|
|
const JWT_EXPIRY = process.env.JWT_EXPIRY || '7d';
|
|
|
|
// Admin user from database
|
|
const payload = {
|
|
userId: '68e3a6fb21af2fd194bf4b50',
|
|
email: 'admin@tractatus.local',
|
|
role: 'admin'
|
|
};
|
|
|
|
const token = jwt.sign(payload, JWT_SECRET, {
|
|
expiresIn: JWT_EXPIRY,
|
|
audience: 'tractatus-admin',
|
|
issuer: 'tractatus'
|
|
});
|
|
|
|
console.log('\n=== Test JWT Token ===\n');
|
|
console.log('Token:', token);
|
|
console.log('\nUse in Authorization header:');
|
|
console.log(`Authorization: Bearer ${token}`);
|
|
console.log('\nExpires in:', JWT_EXPIRY);
|
|
console.log('');
|