Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Requirements

The DAM will have a concept of originals, where the file you upload is kept as an original that you can revert an asset back to later on.

...

For full requirements please refer to UX spec Digital asset management

Alternative 1 - Separate workspaces

Assets in one workspace, originals in another.

...

(minus) Streaming the original requires supporting an additional workspace

Alternative 2 - Separated by path

Assets under /assets and originals under /originals

...

(minus) The hierarchy of assets start at level 1, creating a special case for the topmost folder. I.e. an asset shown in the root of DAM is not in the root of the workspace. This needs to be taken into account in code accessing the workspace.

Alternative 3 - Mixed in the same tree

Since an asset refers to exactly one master we could have a tree of folders and originals with the assets as sub nodes of the original.

...

(minus) Uploading a new file into an asset will change its node path

 

Alternative 4 - Subnode on Asset

When an asset is edited, copy the resource subnode to a new subnode on the Asset.

...

  • Resource node of asset is updated after upload and edit in FileItemWrapperImpl.populateJcrItemProperty() This could be the place to check if an original exists yet, and copy the resource there if not, before saving the changes.
  • Upload saving happens in AbstactUploadFileField.uploadFinished() with fileItem.updateProperties() and fileItem.populateJcrItemProperty()

Node types

The original and the asset will use different node types.

mgnl:asset

Has a property linking to the original.

...

Can have any property on it representing its meta data.

mgnl:original

Identical to asset except it has no link to an original and does not keep meta data.

Potentially has a content node containing the binary data. Depends on the provider.

Additionally

Q: What is the id/name of an original? Is it important at all?

...

We must remove the original when the last asset linking to it is removed

 

 

Future improvements

Reuse of content when asset and original is identical to reduce the size of the repository

...