Skip to content

enonic/app-guillotine

Repository files navigation

Guillotine application

Once assigned to your site, the guillotine application will generate a dynamic GraphQL API that enables web-based access to all your editorial content.

Guillotine exposes the read-only part of the Enonic Content API, including access to the Enonic query language. Guillotine dynamically analyzes all available content types in the site and generates a GraphQL API specific to your site. This gives you direct, typed and documented access to all content within the site. Including the ability to follow references, child items and access media directly.

Compatibility

Version Min.XP Version Download

6.2.1

7.12.1

Download

6.2.0

7.12.1

Download

6.1.0

7.12.1

Download

6.0.6

7.9.0

Download

6.0.5

7.9.0

Download

6.0.4

7.9.0

Download

6.0.3

7.9.0

Download

6.0.2

7.9.0

Download

6.0.1

7.9.0

Download

6.0.0

7.9.0

Download

5.4.0

7.7.0

Download

5.3.1

7.7.0

Download

5.3.0

7.7.0

Download

5.2.1

7.7.0

Download

5.2.0

7.7.0

Download

5.1.0

7.2.0

Download

5.0.0

7.2.0

Download

4.2.1

7.2.0

Download

4.2.0

7.0.0

Download

4.1.1

7.0.0

Download

4.0.0

7.0.0

Download

3.0.0

7.0.0

Download

2.0.0

7.0.0

Download

1.0.0

6.13.0

Download

0.2.0

6.13.0

Download

0.1.5

6.10.0

Download

Breaking changes

Breaking changes in 6.0

  • Guillotine app can no longer be added to a site to generate a contextual API.

  • Embed the guillotine library in your existing application to replicate this functionality.

  • ExtraData type became a dynamic type with fields that are generated based on form descriptors of the x-data and grouped by application key.

  • Naming for ItemSet and OptionSet types were changed, from:

    • <applicationKey>_<contentTypeName>_<itemSetLabel> to <applicationKey>_<contentTypeName>_<itemSetName>

    • <applicationKey>_<contentTypeName>_<optionSetLabel> to <applicationKey>_<contentTypeName>_<optionSetName>

Breaking changes in 5.0

Type renaming

Component types like Part, Page and Layout was changed: from <ComponentType>ComponentDataDescriptorConfig to <ComponentType>_<applicationKey>_<descriptorName>, and from <ComponentType>ComponentDataApplicationConfig to <ComponentType>_<applicationKey>_ComponentDataApplicationConfig.

Attachment type

is now returned instead of String for AttachmentUploader input types.

asJson

dataAsJson and pageAsJson, as well as component config fields now return JSON instead of String.

Subscription

field newEvent has been renamed to event. The type and localOnly arguments have been removed. Events are now also filtered, so only site/project related events are returned.

UrlTypeType

has been renamed to UrlType

queryConnection

field now returns type QueryContentConnection instead of an array of type ContentConnection

Field name generation

to comply with GraphQL from the types OptionSet and ItemSet no longer use camel-case. This is consistent with other field name generation in Guillotine.

TextComponent and HtmlArea

based fields now returns type RichText instead of String and supports the processHtml argument of type ProcessHtmlInput.

Date

input type now return Date scalar instead of String

Time

input type now return LocalTime scalar instead of String

DateTime

input type now return DateTime scalar instead of String if there is A config with timezone, otherwise "LocalDateTime" scalar

Breaking changes in 4.0

  • Type "Content": Field "page": Removed (Use fields "pageAsJson" or "components" instead)

  • Types "Flat*Component*": Renamed to "Component".

  • Type "FlatDescriptorBasedComponentData": Split into 2 types: "LayoutComponentData" and "PartComponentData"

  • Fields "config": Renamed to "configAsJson"

  • Type "Content": Field "components": By default, the components of the page template are used instead if there is one.

  • Type "Content": Field "components": By default, the fragments are inlined

Breaking changes in 3.0

  • Type "Content": Fields "creator", "modifier", "owner" and "permissions" need one of the following roles: "cms.cm.app", "cms.admin" or "system.admin"

Breaking changes in 2.0

  • Type "PrincipalKey": Field "userStore" renamed to "idProvider"

  • Type "Page": Field "controller" renamed to "descriptor"

  • Type "Component": Field "name" removed

Build

To build this project, execute the following:

./gradlew clean build