Conversation
- Add "metadata": true flag to entity JSON schemas - MigrationBuilder emits metadata JSON NULL column when flagged - EntityBuilder emits public ?array $metadata = null; property when flagged - SchemaValidator validates metadata is boolean - BaseRepository: getMeta, setMeta, getAllMeta with assertMetaKey guard - CoreSchemaManager: auto-creates tenant_fields table on boot - TenantFieldRegistry: register, fieldsFor, remove, validate for per-tenant custom field definitions - Full test coverage for all new behaviour
Register, list, and remove per-tenant custom field definitions from the command line using TenantFieldRegistry.
- Add keywords, homepage, and author to composer.json for Packagist discoverability - Remove "publication pending" note from README (package is ready to publish) - Add field:add, field:list, field:remove to CLI reference table - Add Dynamic Schema Extension section with usage examples
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
- FieldListCommand: cover required-label branch and catch block - FieldRemoveCommand: cover catch block on registry exception - TenantFieldRegistry: cover float/bool/unknown assertValueType branches
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
"metadata": trueflag in entity JSON schema emits ametadata JSON NULLcolumn andgetMeta/setMeta/getAllMetamethods onBaseRepositorytenant_fieldsregistry table (auto-created byCoreSchemaManager) to store per-tenant custom field definitionsTenantFieldRegistryclass for CRUD on field definitions, scoped by tenant IDfield:add,field:list,field:removecomposer.json(keywords, homepage, authors)Test plan
vendor/bin/phpunitpasses greenvendor/bin/phpstan analyseclean at level 8php bin/ef field:add accounts vat_number string --tenant=beta --label="VAT Number"registers fieldphp bin/ef field:list accounts --tenant=betalists registered fieldphp bin/ef field:remove 1 --tenant=betaremoves fieldgetMeta/setMeta/getAllMetawork on a metadata-enabled entitysharedanddatabasetenancy strategies work with metadata