Take the community feedback survey now.
Take the community feedback survey now.
While debugging why certain IList<Items> properties weren't appearing in the ContentGraph schema, I traced the issue to the ListPropertyConverterProvider class.
In the Resolve method of ListPropertyConverterProvider, there's a type check that determines whether a property should be converted:
public IPropertyConverter Resolve(PropertyData propertyData)
{
return !(propertyData is PropertyCollection) ? null : ...
}
The issue: When propertyData represents an IList<T> property, it's not recognized as a PropertyCollection. The type check fails, the method returns null, and consequently no converter is assigned to handle this property type.
Without a valid IPropertyConverter, these properties are excluded from the ContentGraph schema entirely. They don't appear in the GraphQL API and cannot be queried.
Is this a bug or a missing implementation?
It seems counterintuitive that list-based properties would be explicitly filtered out. The ListPropertyConverter exists and appears designed to handle collection types, but the resolver prevents it from ever being used for IList<T> properties.
Should IList<T> properties be supported, or is this intentional behavior that requires a workaround (e.g., using PropertyCollection or implementing a custom IPropertyConverterProvider)?
Hi all,
we are using Optimizely CMS 12 with Optimizely Graph and have a content type that contains a list property based on
PropertyList<T>:In the CMS editor this works fine, but in Optimizely Graph the
Itemsproperty does not appear in the schema after a full sync, so we cannot query it via GraphQL.My questions:
Is
PropertyList<T>/IList<T>with a POCO (orT : IContent) officially supported for Optimizely Graph schema generation?If not, is there any recommended pattern (e.g. Conventions API, block-based model, custom data sync) to make these list items available in Graph?
Is there any plan on the roadmap to support
IList<T>/PropertyList<T>directly in Optimizely Graph, or should we avoid this pattern for headless use cases?We tried adding it over
Thanks in advance for any guidance or best practices!