To avoid coupling the Media package with TYPO3CR, we should create a new package, like Media.MetaData, only this package should be coupled with the CR.
Basically we should not touch the Media models, but the Media.MetaData should provide a service, based on an interface, to provide the meta data for a given asset, so we have a soft relation between the entity and the metadata and moving to a full node based asset storage should be really easy. That offer great flexibility, like external storage for metadata, …
The package should provide an other service for searching based on Metadata, also based on a interface to allow custom implementation, like ElasticSearch based, …
Feature wise, we should start with:
- Basic Metadata node storage based on IPTC Core (see https://www.iptc.org/std/photometadata/documentation/IPTC-CS5-FileInfo-UserGuide_6.pdf)
- Add support for IPTC Photo Metadata Standard for Image Document
- Merge the Media browser module in Neos (see RFC: Merging the Media module in Neos)
- Build the Metadata UI
- Add search based on Metadata (maybe with a connector for ElasticSearch)
- Add support for localization (not now, but for future version)
And please, stick to the standard, make it extendable is a nice to have from my POV. First we need a solid standard support.
Customize the metadata schema
From my POV, the CoreMetaData node should support the full IPTC Core standard and the Media Browser should be configurable to show only the required fields (so hide not required fields for the current project)
The implementation of the PhotoMetadata should be done in a second node type, …
Required level of flexibility
Currently I’m not sure if the Media.MetaData service should complety hide the storage (don’t return a node, but a simple DTO or just an array). Digital Asset Management require flexibility, and I see some case, where we need to sync asset from an external digital asset management tools (alfresco, …) and in this case we can use the external tools to store the metadata. Not sure if it’s too complex …
What’s next ?
Can one of you create an EPIC on Jira ?
I’m really happy to help on this area.