ISHRemote icon indicating copy to clipboard operation
ISHRemote copied to clipboard

Add support for IShField ValueType Label coming over API 2.5 in 15.1/Alf1

Open ddemeyer opened this issue 1 year ago • 1 comments

One of the UX improvements in Tridion Docs 15.1/Alf1 release is the availability of a User's Display Name throughout user interfaces. Technically this means that the public API had to be extended in a non-breaking way to support delivering these values. The choice was made to add a new valuetype attribute on the the <ishfields> metadata containers in API 2.5 called Label.

User Display Name can now be returned on User Card Reference fields. So where you used to be able to retrieve Value/Element/Id on fields like FAUTHOR or FTRANSLATOR, you can now also request the non-unique Label (the user's display name)

ValueType Value
User Value ddemeyer
User Element VUSERDDEMEYER
User Id 45665
User Label (new since 15.1/Alf1) Dave De Meyer

Same idea works to retrieve Logical Object Titles on Logical Content Object Reference fields. So where you used to be able to retrieve Value/Element/Id on fields like FMASTERREF (root DITA Map on a Publication Version) or FISHRESOURCES (library DITA Topics on a Publication Version), you can now also request the non-unique title (the object's FTITLE field)

ValueType Value
Map Value GUID-A...Z
Map Element GUID-A...Z
Map Id 45465
Map Label (new since 15.1/Alf1) Release Notes Root Map

For ISHRemote it means that the following things need to be reviewed

  • [ ] Set-IshMetadataField should probably throw as no write operation is allowed as Dave De Meyer is not a unique identifier (while value ddemeyer or element VUSERDDEMEYER is guaranteed to be unique).
  • [ ] Set-IshMetadataFilterField should probably throw as filtering is not implemented on a lookup field (like FISHUSERDISPLAYNAME and FTITLE).
  • [ ] Set-IshRequestedMetadataField should work
  • [ ] Set-IshRequiredCurrentMetadataField should probably throw as value checks is not implemented on a lookup field (like FISHUSERDISPLAYNAME and FTITLE).
  • [ ] Get-IshMetadataField should work
  • [ ] $ishSession.DefaultRequestedMetadata should be verified to potentially add Label by default, but this only for 15.1/Alf. What happens if you use Label on 15.0 and lower instances - throw?
  • [ ] $ishSession.StrictMetadataPreference variations could explicitly or silently remove Label usage depending on the target instance server version

ddemeyer avatar Feb 29 '24 17:02 ddemeyer

Put more thought into it...

  • DisplayName can already be done, with a lookup over Find-IshUser explicitly asking for the FISHDISPLAYNAME field in the PowerShell process perhaps a post-routine over Add-Member cmdlet
  • Title on Content Object card references like FISHRESOURCES on a publication, this is an edge case

Mostly concerned that this would complicate the code that much that switching to future public OpenApi without little-to-none breaking changes might become harder instead of easier - what is -ValueType Label worth on OpenApi, nothing really, it is implicit.

ddemeyer avatar Mar 14 '24 13:03 ddemeyer