Releases: QuentinDav/schema-bundle
Releases · QuentinDav/schema-bundle
Initial Release
QD Schema Bundle v1.0.0 - Initial Release
We're excited to announce the first stable release of QD Schema Bundle! 🚀
What is QD Schema Bundle?
QD Schema Bundle transforms your Symfony application's database schema into an interactive, collaborative documentation platform. Built specifically for Symfony and Doctrine ORM, it provides a beautiful Vue 3 interface for teams to explore, document, and track schema evolution over time.
Key Features
Automatic Schema Extraction
- Automatically reads Doctrine entity metadata
- Zero configuration required
- Works out of the box with any Symfony + Doctrine project
Interactive Visualizations
- ER Diagrams: Beautiful entity-relationship diagrams with Vue Flow
- Automatic Layout: Smart graph layout with ELK.js
- Multiple Views: Switch between graph, cards, and list views
- Smart Search: Quickly find entities by name or namespace
- Relation Highlighting: Visualize entity relationships interactively
Release Management
- Semantic Versioning: Automatic version suggestions based on changes
- Schema Snapshots: Capture complete schema state at any point in time
- Change Tracking: Detailed diffs showing added, removed, and modified entities
- Release Timeline: Beautiful timeline view with temporal grouping
- Release Comparison: Side-by-side comparison of any two releases
Collaboration Features
- Entity Comments: Discuss schema decisions with your team
- @Mentions: Tag team members in comments
- System Comments: Auto-generated comments for schema changes
- User Management: Role-based access with
ROLE_QD_EDIT
Export & Documentation
- Markdown Export: Generate beautiful documentation from releases
- Complete Schema Snapshots: Full entity details in exported docs
- SVG/PNG Export: Export ER diagrams as images
Security
- Authorization Controls: Only authors or admins can delete comments
- Entity Validation: Validates entity FQCN against Doctrine metadata
- Role-Based Access: Built-in
ROLE_QD_EDITandROLE_ADMINsupport - SQL Injection Protection: Parameterized queries throughout
Technical Highlights
Backend (PHP 8.1+)
- Modern PHP: PHP 8.1+ with typed properties and readonly classes
- Symfony 6.4+ & 7.0+: Full compatibility with latest Symfony versions
- Doctrine ORM 3.5+: Leverages Doctrine metadata for schema extraction
- DTOs with Validation: Type-safe API requests with Symfony Validator
- Transaction Safety: All schema operations are transaction-safe
- Comprehensive Logging: Error logging with PSR-3 Logger
Frontend (Vue 3)
- Vue 3 Composition API: Modern reactive framework
- Pinia State Management: Centralized state with Pinia stores
- Vue Flow: Interactive node-based diagrams
- ELK.js: Automatic graph layout engine
- Vite: Lightning-fast development and optimized builds
- Responsive Design: Works beautifully on all screen sizes
Code Quality
- PHPUnit Tests: Test coverage for critical services
- DTOs: Input validation for all API endpoints
- PSR-12: Code follows PHP standards
- No Dependencies Bloat: Minimal required dependencies
Installation
composer require qd/schema-bundleThen follow the installation guide in the README.
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/schema-doc/api/schema |
GET | Get current live schema |
/schema-doc/api/releases |
GET | List all releases |
/schema-doc/api/releases |
POST | Create new release |
/schema-doc/api/releases/{id} |
GET | Get release details |
/schema-doc/api/releases/compare/{id1}/{id2} |
GET | Compare two releases |
/schema-doc/api/releases/{id}/export/markdown |
GET | Export as markdown |
/schema-doc/api/comments |
GET/POST/DELETE | Manage comments |
/schema-doc/api/users |
GET | Get users with ROLE_QD_EDIT |
/schema-doc/api/snapshots/entity/{fqcn} |
GET | Get entity history |
What's Included
Core Components
- ✅ Schema extraction service
- ✅ Diff computation service
- ✅ Versioning service with semantic version detection
- ✅ Snapshot service with transaction support
- ✅ Release management with full CRUD
- ✅ Comment system with author tracking
- ✅ User role management
Frontend Views
- ✅ Interactive schema graph with zoom/pan
- ✅ Entity cards view
- ✅ Entity list view
- ✅ Release timeline with filtering
- ✅ Release comparison view
- ✅ Entity history view
- ✅ Comment sidebar
CLI Commands
- ✅
qd:schema:install- Install bundle database tables
Requirements
- PHP 8.1 or higher
- Symfony 6.4 or 7.0+
- Doctrine ORM 3.5+
- Node.js (for frontend development only)
Documentation
Full documentation is available in the README.
Acknowledgments
Built with love using:
- Symfony - The PHP framework
- Doctrine ORM - Database abstraction
- Vue 3 - Progressive JavaScript framework
- Vue Flow - Interactive diagrams
- ELK.js - Graph layout
- Pinia - State management
- Vite - Frontend tooling
What's Next?
Check out our roadmap for upcoming features:
- Field-level comments
- Custom metadata fields
- Webhooks for integrations
- Export to Doctrine migrations
- Dark mode
- Advanced filtering
Support & Contributing
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Contributing: See CONTRIBUTING
License
QD Schema Bundle is open-source software licensed under the MIT License.
Made with ❤️ by Quentin David
⭐ If you find this bundle useful, please give it a star on GitHub!