@HeyJoel HeyJoel released this Sep 6, 2018 · 47 commits to master since this release

Assets 2

Due to a tagging mishap, v0.4 was skipped. Please use 0.4.1 instead.


  • #154 Update to .NET 2.1
  • #223 Ability to define the sort order for non-orderable custom entities
  • #221 Ability to reference the ambient VisualEditor mode
  • #220 Custom Entity: Duplicate
  • #214 Default custom entity ordering differences between queries
  • #217 Add mailto links to the default sanitization ruleset
  • #206 Custom Entity Permissions: Easily add new permissions to roles after initialization
  • #87 Improve Page Querying outside of the admin panel
  • #229 Duplicate pages: Does not duplicate block content
  • #67 Page/Entities version numbers to be stored in database
  • #237 Data mode attributes: throw errors when placed on wrong types


  • #234 Template.Region.WrapWithTag: editor does not render for single-block regions
  • #230 MessageAggregator: Publish message on transaction complete
  • #228 Custom Entity: Block data needs to be partitioned by page
  • #227 PageBlockTypes: Missing unique index on filename
  • #225 Increase the size of the CustomEntityModelType field in the PageTemplate table to account for longer namespaces
  • #222 Can't open select boxes for custom entities that have relations on other custom entities

Breaking Changes:

  • ApiResponseHelper.SimpleQueryResponse now returns a 404 status code if the result is null.
  • IEntityFrameworkSqlExecutor: All sync operations have been removed
  • PropertyBuilderExtensions has been moved to Cofoundry.Core.EntityFramework namespace.
  • IDatabase is no longer injected, use ICofoundryDatabase.
  • ModelBuilder.UseDefaultConfig has been replaced with HasAppSchema because since the migration to EF Core no other configuration was being performed here other than setting the default schema.
  • Removed the generic versions of IOrderableCustomEntityDefinition and ICustomizedTermCustomEntityDefinition. Use the non-generic versions instead alongside the generic ICustomEntityDefinition<TDataModel>. The generic versions were a shortcut, but I think it's better to be explicit here so we don't have multiple ways of doing things which can be confusing.
  • VisualEditorMode has been moved from the Cofoundry.Web project to the Cofoundry.Domain project.
  • VisualEditorMode.Draft has been renamed VisualEditorMode.Preview
  • SortDirection naming has been changed from Ascending/Descending to be Default/Resversed to better describe the behaviour, this is because for publish/create date sorting the default behaviour is latest first which is not technically ascending ordering.
  • CustomEntityDetails, CustomEntitySummary: HasDraft property has been renamed HasDraftVersion, IsPublished property replaced with IPublishableEntity.IsPublished() to be consistent with similar classes.
  • GetCustomEntitySummariesByIdRangeQuery no longer accepts PublishStatusQuery filtering, ensuring consistency with other uses of CustomEntitySummary and PageSummary. For an equivalent publish-status-aware query, use GetCustomEntityRenderSummariesByIdRangeQuery
  • OpenGraphData.Image has been changed from an ImageAssetSummary to an ImageAssetRenderDetails object.
  • PageRepository.GetPageSummariesByPageIdAsync was named incorrectly and has been renamed PageRepository.GetPageSummariesByIdRangeAsync
  • AddCustomEntityVersionPageBlockCommand: PageTemplateId property has been removed and PageId has been added in it's place.
  • IQueryable<CustomEntityVersion>.FilterByActive has been renamed `FilterActive for consistency with similar methods.
  • IQueryable<CustomEntityPublishStatusQuery>.FilterByActive has been renamed FilterActive() for consistency with similar methods.
  • The default ordering for custom entities that don't use IOrderableCustomEntityDefinition is now by Title. You can change this by implementing ISortedCustomEntityDefinition on your custom entity definition.