All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
6.0.0 (2024-11-20)
6.0.0-preview001 (2024-08-29)
5.1.0 (2024-11-20)
5.0.0 (2024-6-26)
- Simpler project structure
- You now only need to reference the
Nikcio.UHeadless
package to get started as all packages are now merged into one.
- You now only need to reference the
- New defaults for Queries and Models
- The new defaults are now simpler and limited to the most common useable queries and models.
- Authorization by default
- New defaults will include authorization by default which will help ensure you're not exposing too much data.
- Easier to use Typed properties
- This release brings typed or previously 'Named properties' to the forefront and makes them easier to use.
- Typed properties are now available everywhere it makes sense. (See the feature section for more details)
- Cleaner setup with new bootstrapping.
- The new bootstrapping is simpler and more intuitive.
Getting started with version 5.0.0
- Typed properties are now available everywhere it makes sense.
- Use the
TypedPropertes
class for Content items/Media items and Member items - Use the
TypedNestedContentProperties
class for Nested Content items - Use the
TypedBlockListContentProperties
class for Block List items (Content) - Use the
TypedBlockListSettingsProperties
class for Block List items (Settings) - Use the
TypedBlockGridContentProperties
class for Block Grid items (Content) - Use the
TypedBlockGridSettingsProperties
class for Block Grid items (Settings)
- Use the
- New defaults for Queries and Models
- Queries
- Use
ContentAtRootQuery
to get content at the root of your Umbraco site. - Use
ContentByContentTypeQuery
to get content by content type. - Use
ContentByGuidQuery
to get content by guid. - Use
ContentByIdQuery
to get content by id. - Use
ContentByRouteQuery
to get content by route.- Includes built-in support for the Umbraco automatic redirects.
- Use
ContentByTagQuery
to get content by tag. - Use
MediaAtRootQuery
to get media at the root of your Umbraco site. - Use
MediaByContentTypeQuery
to get media by content type. - Use
MediaByGuidQuery
to get media by guid. - Use
MediaByIdQuery
to get media by id. - Use
FindMembersByDisplayNameQuery
to get members by thier display name. - Use
FindMembersByEmailQuery
to get members by email. - Use
FindMembersByRoleQuery
to get members by role. - Use
FindMembersByUsernameQuery
to get members by username. - Use
MemberByEmailQuery
to get a member by email. - Use
MemberByGuidQuery
to get a member by guid. - Use
MemberByIdQuery
to get a member by id. - Use
MemberByUsernameQuery
to get a member by username.
- Use
- Models
ContentItem
is used for Content queries. This has built-in support for redirect information provided byContentByRouteQuery
.MediaItem
is used for Media queries.MemberItem
is used for Member queries.BlockGrid
to support the block grid editor.BlockList
to support the block list editor.ContentPicker
to support the content picker editor and the multi node picker.DateTimePicker
to support the date time picker editor.DefaultProperty
to support editors that doesn't require special modeling. (Used as the fallback)Label
to support the label editor.MediaPicker
to support the media picker editor.MemberPicker
to support the member picker editor. (Now requires Authorization by default to avoid leaking member information. This can be disabled by settingoptions.DisableAuthorization
)MultiUrlPicker
to support the multi url picker editor.NestedContent
to support the nested content editor.RichText
to support the rich text editor and the markdown editor.UnsupportedProperty
to mark properties that are not supported.
- Queries
- Authorization by default
- Authorization is now enabled by default for all queries to have secure by default queries.
- Authorization is now enabled by default for the
MemberPicker
model to avoid leaking member information. - This can be disabled by setting
options.DisableAuthorization
in theUmbracoHeadlessOptions
.
- New bootstrapping
- Bootstrapping is now simpler and more intuitive. (See the getting started guide at the bottom of this release note)
- The new
ContentPicker
model now supports querying the properties of the picked content. - The
IResolverContext
from HotChocolate has now been added to the default commands so it can be used to resolve services and access query arguments likeCulture
,IncludePreivew
,Fallback
andSegment
. ContentByContentTypeQuery
now supportsincludePreview
to fetch preview content. #229- Context data like
Culture
,IncludePreivew
,Fallback
andSegment
are now provided with theinContext
parameter object on content queries. - Instead of the
UsePaging
attribute from HotChocolate a newPaginationresult
model has been added to avoid problems with the way Umbraco handles content data on queries. This means that theUsePaging
attribute is no longer needed and shouldn't be used in custom queries either.
- This release brings an overhaul of the documentation bringing you the most helpful information about the package.
- Content query tests have been rewritten and are now more stable.
- Media query tests have been rewritten and are now more stable.
- Member query tests have been rewritten and are now more stable.
- Code coverage is now over 80%.
- All projects are now merged into one which makes maintenance easier as this also removes a lot of code as the package could be simplified.
- A new Nikcio.UHeadless.LegacyModels project has been added to help with migration from the old schema to the new schema. (This won't be available as a package but will be available for use for people migrating).
- Use this project to get a similar content model to the one found in v4.
HotChocolate.Data
has been removed as it's no longer needed.
- This release is a complete overhaul of the project and therefore a lot of things have changed.
- Take a good look in the documentation which has been updated and if not your question can be answered there open a question on GitHub.
4.2.1 (2024-04-09)
- Add analyzers and correct warnings (9503de8)
- Align ArgumentNullException (0cf4fc2)
- Minor clean up (cc80dfb)
- Empty string being returned as array (d8cc412)
4.2.0 (2024-04-06)
- Convert unit test project (457ed6a)
- Doc deps (395a6b8)
- Fix timezone diff (83d6c0a)
- Format date times (07c2d57)
- Install sharp to docs project (c937e64)
- Recreate snapshots (31a38dd)
- Reset snapshots (3955f84)
- Rewrite tests (a0deda4)
- Update deps (78ea1a5)
- Update snapshots (623f77a)
- Update test deps (6e4d95d)
4.2.0-preview001 (2024-03-06)
4.1.1 (2023-08-02)
- Use internal composers (182e084)
4.1.0 (2023-07-02)
- Added the abillity to query properties based on content types in Umbraco (f93a030)
- Added type modules to media & members (c5f8711)
- Fixed DependencyReflectorFactory using too many of the required params (006d721)
- Only add used types to PropertyMap if mapping was added (6f7d43c)
4.0.0 (2023-06-12)
- Removes the redundant
TProperty
argument from classes where it's not needed which simplifies the classes quite a bit.
- Added mapping key methods to property map (36bd25e)
4.0.0-preview002 (2023-06-07)
- Removes the
UseSecurity
option. The naming is confusing on what it does and the developer should control the authentication and authorization themself to have greater control over their application.
4.0.0-preview001 (2023-06-06)
- Renamed
AllMembers
query toMembersAll
to have similar naming as the rest of the queries. - Some namespaces wasn't synced properly to the location of the files. So to avoid confusion over source files the namespaces has been synced. New namespaces:
BasicBlockListItem - Nikcio.UHeadless.Base.Basics.EditorsValues.BlockList.Models
BasicBlockListModel - Nikcio.UHeadless.Base.Basics.EditorsValues.BlockList.Models
BasicContentPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.ContentPicker.Models
BasicContentPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.ContentPicker.Models
BasicDateTimePicker - Nikcio.UHeadless.Base.Basics.EditorsValues.DateTimePicker.Models
BasicPropertyValue - Nikcio.UHeadless.Base.Basics.EditorsValues.Fallback.Models
BasicMediaPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MediaPicker.Models
BasicMediaPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MediaPicker.Models
BasicMemberPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MemberPicker.Models
BasicMemberPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MemberPicker.Models
BasicMultiUrlPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MultiUrlPicker.Models
BasicMultiUrlPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MultiUrlPicker.Models
BasicNestedContent - Nikcio.UHeadless.Base.Basics.EditorsValues.NestedContent.Models
BasicNestedContentElement - Nikcio.UHeadless.Base.Basics.EditorsValues.NestedContent.Models
BasicRichText - Nikcio.UHeadless.Base.Basics.EditorsValues.RichTextEditor.Models
PropertyMapExtensions - Nikcio.UHeadless.Base.Basics.Maps.Extensions
BasicProperty - Nikcio.UHeadless.Base.Basics.Models
- Member queries have been split to separate models which removes
BasicMemberQuery
. - Media queries have been split to separate models which removes
BasicMediaQuery
. - This removes the property queries as they had a weird place in the package and no real use. (You can do the exact same thing with the content queries).
- Media & Members have had culture removed from the query options. It's not possible to create media and members on different cultures and it's therefore not necessary to be able to query for it.
Content & Property queries have had segment
& Fallback
added to the query options to better support culture querying.
All GetValue
for property values have been changed to Value
which better support culture variants.
- Introduces
IVariationContextAccessor
to the contructor onBasicContent
- What was
BasicContentOfBasicPropertyAndBasicContentTypeAndBasicContentRedirect
in v3 schema will now beBasicContent
. This simplifies the naming of types used in the schema a lot.
Also the integration test schema was updated using dotnet graphql download https://localhost:44321/graphql
- The content queries has been given a separate class for each query to help developers only expose the data they need.
- Replace Alias with model on propertyValue
- deps: Added min requirement to be Umbraco 11 & .Net 7
- deps: Updated to Hotchocolate 13
- Added Auth queries (f93f598)
- Added better support for multi-culture sites (fb0be99)
- Added Block grid support (c92e40c)
- Replace Alias with model on propertyValue (406c102)
- Split media queries to separate models (368072f)
- Split member queries to separate models (469e7df)
-
Changed BasicContent to have simpler names in schema (c8c8eea)
-
Conform namespaces after folder structure (611184c)
-
deps: Added min requirement to be Umbraco 11 & .Net 7 (7683ebb)
-
deps: Updated to Hotchocolate 13 (91bb540)
-
Remove property queries (a9565e0)
-
Rename
AllMembers
toMembersAll
to conform to other query names (f441c87) -
Split content queries into separate files (09e1e66)
3.3.0 (2023-01-18)
- Support query for HTML output from MarkdownEditor (PR 110) - Thanks @thetanz-geoff
- Fixed possible null ref (7e8efd4)
- Updated dependencies
- Hotchocolate updated to 12.16.0
3.2.0 (2022-11-22)
- Add option to set GraphQLServerOptions (bf31138)
3.1.0 (2022-11-16)
-
New content queries (8a28fc7)
- ContentAll (Gets all the content items available)
- ContentDescendantsByGuid (Gets descendants on a content item selected by guid)
- ContentDescendantsById (Gets descendants on a content item selected by id)
- ContentDescendantsByContentType (Gets all descendants of content items with a specific content type)
- ContentDescendantsByAbsoluteRoute (Gets content item descendants by an absolute route)
- ContentByTag (Gets content items by tag)
3.0.6 (2022-11-03)
- Fixed redirect encountering "Ambitious reference" (5bf1ea4)
- Updated dependencies
- Hotchocolate updated to 12.15.1
3.0.5 (2022-10-18)
- Create unsupported message for grid (a3f4798)
- Updated dependencies
- Hotchocolate updated to 12.15.0
3.0.4 (2022-10-05)
- Fixed default mapping overruling custom property mappings (fd89095)
3.0.3 (2022-10-05)
- Updated dependencies
3.0.2 (2022-09-19)
- Fixed minimum umbraco cms requirement. (Minimum requirement is now set to v10.0.0)
- Updated dependencies
3.0.1 (2022-09-03)
- Updated dependencies
3.0.0 (2022-08-03)
3.0.0-preview003 (2022-08-03)
- Namespaces of Basics have changed like so: Nikcio.UHeadless.Basics.Properties --> Nikcio.UHeadless.Properties.Basics
-
Added manifest to composer (7ebfd9d)
-
Added more member queries (305fc80)
-
Merged basic projects with the base projects (4e90383)
3.0.0-preview002 (2022-07-16)
- Fixed basics project references (ac5c961)
3.0.0-preview001 (2022-07-16)
-
Dropped support for Umbraco v9
-
Namespace changes
- Many namespaces have been changed to make it easier to make extending packages. This also means that some classes have been moved to completely different namespaces.
- If you need to find a class's new location, look in the docs or use the search feature on GitHub.
- Example:
using Nikcio.UHeadless.UmbracoContent
-->using Nikcio.UHeadless.Content
-
Querying properties have been changed. See How to query properties.
-
The
PropertyValue
which is a basis for all property values now always includes an Alias. This is to support the new Property querying with fragments. See How to query properties. -
AddPropertyMapDefaults
has been removed fromIPropertyMap
this now -
GetProperties
has been changed toGetContentItemsProperties
on theIPropertyRespository
-
The
Value
property onBasicProperty
has been changed fromobject
toPropertyValue
to support the new querying. See How to query properties. -
ContentQuery
now takes a new generic parameterTContentRedirect
of typeIContentRedirect
for redirect information. -
GetContentByRoute
has been removed. UseGetContentByAbsoluteRoute
instead.
- Added boilerplate for members (1dd04b7)
- Added ContentRedirect variation to BasicContent (c9d7912)
- Added ContentRouter (52cc95a)
- Added GetMediaByContentType (c725dbf)
- Added ICommand (388bd05)
- Added non generic BasicBlockListItem (8aa14b9)
- Added non generic BasicBlockListModel (6cb3b06)
- Added non generic BasicMemberPicker (a8086e0)
- Added non generic BasicMemberPickerItem (989650b)
- Added TMedia to BasicMedia (07481e2)
- Added type support for properties (19cedce)
- Adds non generic BasicNestedContent (da2f6db)
- Adds non generic BasicNestedContentElement (8a1d37e)
- Refactored Content and Media repository (e0d1723)
- Added missing logger argument (7db3158)
3.0.0-preview000 (2022-07-16)
This release is to test the release workflow.
This is work in progress and a summary of the breaking changes will come.
- Added boilerplate for members (1dd04b7)
- Added ContentRedirect variation to BasicContent (c9d7912)
- Added ContentRouter (52cc95a)
- Added GetMediaByContentType (c725dbf)
- Added ICommand (388bd05)
- Added non generic BasicBlockListItem (8aa14b9)
- Added non generic BasicBlockListModel (6cb3b06)
- Added non generic BasicMemberPicker (a8086e0)
- Added non generic BasicMemberPickerItem (989650b)
- Added TMedia to BasicMedia (07481e2)
- Added type support for properties (19cedce)
- Adds non generic BasicNestedContent (da2f6db)
- Adds non generic BasicNestedContentElement (8a1d37e)
- Refactored Content and Media repository (e0d1723)
- Added missing logger argument (7db3158)
2.3.0 (2022-07-06)
- Added package telemetry data (5c6a4b0)
- Updated dependencies
2.2.1 (2022-06-19)
- Updated dependencies
2.2.0 (2022-06-06)
2.1.1 (2022-05-22)
- Updated dependencies
2.1.0 (2022-05-10)
- Added GetContentByAbsoluteRoute (208f2dd)
2.0.2 (2022-05-09)
2.0.1 (2022-05-04)
- Updated dependencies
2.0.0 (2022-05-01)
2.0.0-preview.3 (2022-04-26)
- Added correct alias to block list (fa026bf)
2.0.0-preview.2 (2022-04-26)
- BasicMediaItem --> BasicMediaPickerItem MediaItem -- MeidaPickerItem BasicMemberItem --> BasicMemberPickerItem MemberItem --> MemberPickerItem BasicLinkItem --> BasicMultiUrlPickerItem LinkItem --> MultiUrlPickerItem
- BasicMember --> BasicMemberItem CreteMember --> CreateMemberPickerItem Member --> MemberItem CreateLink --> CreateLinkPickerItem BasicLink ..> BasicLinkItem Link --> LinkItem
- Added editor alias to BasicBlockListModel (da7c885)
- Added generic media picker (811295a)
- Added generic member picker (c6597a3)
- Added generic models for multi url picker (befc3ab)
- Added generic models to content picker (4e1fa3b)
-
Fixed creation of link item (55b3052)
-
Made methods virtual (d558c18)
-
Changed naming of picker models to have similar naming (3dbbc43)
-
Changed picker model naming (a9727d9)
2.0.0-preview.1 (2022-04-24)
- Updated dependencies
2.0.0-preview.0 (2022-04-14)
- New naming scheme rules:
All presets are prefixed with
Basic
. Removed theGraphType
part of classes as it made little sense. Bases are now named in simple form. For examplePropertyValueBaseGraphType
-->PropertyValue
New naming of classes:
Maps: BaseMap --> DictionaryMap
Content: ContentGraphType --> BasicContent IContentGraphTypeBase --> IContent
Content queries: ContentQuery --> BasicContentQuery ContentQueryBase --> ContentQuery
Content types: ContentTypeGraphType --> ContentType
Elements: ElementGraphType --> BasicElement IElementGraphTypeBase --> IElement
Properties: PropertyValueBaseGraphType --> PropertyValue BlockListItemGraphType --> BasicBlockListItem BlockListItemBaseGraphType --> BlockListItem BlockListModelGraphType --> BasicBlockListModel ContentPickerGraphType --> BasicContentPicker ContentPickerItemGraphType --> BasicContentPickerItem PropertyValueBasicGraphType --> BasicPropertyValue MediaItem --> BasicMediaItem MediaPickerGraphType --> BasicMediaPicker MemberGraphType --> BasicMember MemberPickerGraphType --> BasicMemberPicker LinkGraphType --> BasicLink MultiUrlPickerGraphType --> BasicMultiUrlPicker ElementBaseGraphType --> NestedContentElement NestedContentElementGraphType --> BasicNestedContentElement NestedContentGraphType --> BasicNestedContent RichTextEditorGraphType --> BasicRichText IPropertyGraphTypeBase --> IProperty PropertyGraphType --> BasicProperty
Property queries: PropertyQuery --> BasicPropertyQuery PropertyQueryBase --> PropertyQuery
Property types: IPropertyTypeGraphType --> IPropertyType
Media: IMediaGraphTypeBase --> IMedia MediaGraphType --> BasicMedia
Media queries: MediaQuery --> BasicMediaQuery MediaQueryBase --> MediaQuery
- Changed parameters for most extensions to use option classes for the available options.
- Automapper was removed
- .Net 5 is no longer supported
- Created more developer friendly options to UHeadless extensions (25b9dc6)
- Removed Automapper (349d148)
- Steamline flow and models (#35) (f2efc27)
- Updated names to be more clear and easier to remember (2e6ff82)
- Updated to .Net 6 (6aafada)
- deps: Removed unnecessary dependencies (f82feaf)
1.3.0 (2022-03-05)
1.2.0 (2022-03-01)
- Added virtual to all public methods (03d400a)
1.1.0 (2022-02-26)
- Added customizable queries & return types (707843e)
1.0.0 (2022-02-06)
- This changed almost all namespaces.
- Updated the naming of the queries to include what is being queried.
Example: To get content at root you previously used atRoot this is now contentAtRoot
List: atRoot --> contentAtRoot byId --> contentById byGuid --> contentByGuid atRoute --> contentAtRoute
New: propertiesAtRoute propertiesById propertiesByGuid
The new queries uses the same values for fetching properties but gives an eaiser way to do filtering, paging and sorting.
- Added HotChocolate.Data (6eb7c67)
- Added InitializeOnStartup to improve startup performance (c4fa00f)
- Added option to throw on schema error (519b89d)
- Added Paging, Filtering & Sorting (8fe4483)
- Added support for Media Picker (e0ea5b8)
- Added Tracing option (b083bc3)
- Updated HotChocolate.AspNetCore to 12.6.0 (667af04)
-
Added PropertyRepository to DI (fa4382f)
-
Changes to improve code quality (03db2cb)
-
Fixed filtering on ContentType, Key and Properties (76edfe5)
-
Fixed tracing option (7bda7b1)
-
!refactor: Moved into feature code structure (9645a32)
-
!feat: Added seperate property queries (26e41b9)
0.1.7 (2022-02-05)
- Added Cors options to the startup extension (0c087d7)
- Made Cors option optional (5cdebbc)
0.1.6 (2022-02-05)
- Removed type property (4307261)
0.1.5 (2022-02-04)
- Added Content Picker model (432b71f)
- Added Member graph model (c52a73b)
- Added MultiNodeTreePicker support (82f0602)
- Added MultiUrlPicker model (f698814)
- Made properties read-only on content (a6443a3)
- Fixed MultiUrlPicker initial value (03bdc89)
- Fixed property map implementation (564a6a8)
- Fixed PropertyMap defaults and custom mappings (f0b98f4)
0.1.4 (2022-01-27)
- Added support for Rich text editor (67db76d)
0.1.3 (2022-01-27)
- Added automapper extension method (bef3476)
- Added depencency reflector factory (db8236b)
- Block list & Nested content can now use any type (a4585d0)
- Added required constructor to PropertyValueBaseGraphType (9d7e12a)
- Added support for Umbraco v9 (977b237)
- Made culture and content available on CreateProperty (eb10b59)
- Added DI to property value generation (c8f6705)
- Added nested content support & Added properties to block list (ef655e9)
- Added property value mapping options (1ff1112)
- Added standard-version (48be288)
- Added the abillity to fetch properties (d5d83d8)
- Content fetching 1.0 (eb8177f)
- Created extensions for startup (76290a0)
- Renamed project (bd62b60)