alengo/sulu-contact-account-extra-bundle
Adds a configurable Additional Data tab to Sulu CMS contacts and accounts, storing custom fields as a JSON column with no extra tables. Includes a generic GET/PUT REST API, built-in entities, and zero-config registration.
PrependExtensionInterface, reducing boilerplate for basic use cases. This is ideal for projects where rapid iteration is prioritized over strict separation of concerns. The 1.1.0 release does not change this behavior.additionalData) simplifies schema management but introduces trade-offs in querying/validation. This is suitable for projects where structured queries on custom fields are rare.GET/PUT) are minimalistic, focusing on JSON blob serialization. This works for simple CRUD but may not support complex validation or nested resources out of the box. No API surface changes in this release.composer.json constraint (likely ^7.0 || ^8.0) before assuming a non-breaking upgrade; a constraint bump that drops 7.x would be a breaking platform change for existing deployments.composer update --with-all-dependencies) in a staging branch rather than a targeted bundle-only bump.co_contacts/co_accounts tables remains low-risk but requires downtime during migration. Rollback strategies should be tested. Unchanged in 1.1.0.WHERE additionalData->>'externalId' = '123'), which is inefficient in a JSON column?contact_additional_data.xml, account_additional_data.xml) be version-controlled and deployed?Contact/Account entities, or is the bundle’s auto-registration sufficient?additionalData->>'priority'), requiring database-specific functions?composer.json before sizing the runtime upgrade.Contact/Account entities and forms to identify conflicts or overlaps with the bundle’s auto-registered resources.^1.1 in a branch and run a full composer update --with-all-dependencies to surface transitive conflicts early.config/bundles.php and import routes in sulu_admin.yaml.additionalData JSON column.config/forms/ (e.g., contact_additional_data.xml).tab_title, entity_class) if needed.Entity\Contact/Entity\Account classes that extend Sulu’s base entities. If the project already extends these, merge conflicts may arise. Use the entity_class config to override.composer.json constraint and CI matrix to determine whether Symfony 7 support is retained.GET/PUT) for data retrieval and updates.Keep the Symfony upgrade and the feature rollout as two separate changes so a framework regression is not entangled with a CMS integration fault.
composer.json rather than floating on dev-main.additionalData column (e.g., adding constraints) may require new migrations. Plan for backward compatibility if the column is used by other systems.additionalData for high-volume entities.additionalData->>'status' = 'active') may be slow. Use database-specific functions (e.g., PostgreSQL’s jsonb operators) or denormalize critical fields. The 1.1.0 release makes no performance claims.GET/PUT) are not explicitly optimized for high throughput. Load-test if used in high-traffic scenarios (e.g., bulk contact updates).composer update conflict where Sulu core or a sibling bundle caps Symfony below 8. Surface this in a branch before touching the integration branch.additionalData JSON during migration could break entities. Test rollback and data recovery procedures.PUT endpoints could allow data corruption. Add rate limiting or authentication checks if exposed to external systems.additionalData via API or UI are possible. Implement soft deletes or audit logs for critical fields.jsonb vs. json in PostgreSQL).How can I help you explore Laravel packages today?