Guillotine
Augmentable GraphQL Content API for Enonic XP
Screenshots
Guillotine dynamically generates a strongly typed GraphQL API for your content model. The API can also be extended and customized programmatically to power any digital experiences or use-case.
By installin the app, you get instant access to all your editorial content. The API can be used by virtually any front-end framework and client - including iOS and Android apps, smart TVs and watches. It is a natural companyon for modern-stack web-based sites and applications. The API is fast, self documenting and easy to use for everyone.
Rich content models
Access and harness all of Enonics content capabilities toghether with the Guillotine API - here are a few:
- Content types
- Rich text content
- Files and attachments
- Image service (advanced media handling)
- Nested fields
- Tree structures
- Fine grained access control
- Draft/master branches with bulk publishing
- Page components
- ...and much more.
Extend and augment
As of Guillotine 7 - the API can be modified programmatically. Here are some of the things you can do:
- Add new fields and types
- Extend existing types with new fields
- Override existing types and fields
- Remove fields
- Implement with TypeScript or JavaScript
Professional development
Rolling out changes and handling consistent behaviour between your content and applications has never been easier. Developers define and deploy their content models and extensions using XP apps. This means support for continuous delivery and modern development processes. Applications may also process, import or manipulate content on deployment.
The combination of capabilities makes Guillotine one of the most potent Headless CMS solutions out there!
Releases
7.2.0
- Enable configurable CORS headers
Compatibility:
- 7.14.0
7.1.1
- Bug fix: XData does not return mixins
Compatibility:
- 7.14.0
7.1.0
- `guillotine(siteKey)` parameter
- Type definitions on NPM
Compatibility:
- 7.14.0
7.0.4
- Bug fix: Duplicate key for macros
- Bug fix: Overriding dataFetcher is not always applied to the implementation
- Bug fix: RichText not null when empty
Compatibility:
- 7.14.0
7.0.3
- Bug fix: PortalRequest must use correct application in resolve function
Compatibility:
- 7.14.0
7.0.2
- Bug fix: Content type with field set has extra field fieldSet
Compatibility:
- 7.14.0
7.0.1
- Bug fix: Types must have unique name
Compatibility:
- 7.14.0
7.0.0
- Pluggable schema extension
- Optimisation of big queries
Compatibility:
- 7.14.0
6.2.2
- Bug fix: Query Playground doesn't work on root mapping
Compatibility:
- 7.12.1
6.2.1
- Upgraded lib-graphql
- Enabled boost for booleans
- Added _score to Content type
Compatibility:
- 7.12.1
6.2.0
- Upgraded to GraphiQL v2
- Query playground also available on /site/<project>
Compatibility:
- 7.12.1
6.1.0
- Query DSL
- Highlighting
Compatibility:
- 7.12.1
6.0.6
- Bug fixes
Compatibility:
- 7.9.0
6.0.5
- Bug fix: Query endpoint must be overridden by vhost
Compatibility:
- 7.9.0
6.0.4
- Bug fix: Multiple entries with same key for image styles
Compatibility:
- 7.9.0
6.0.3
- Bug fix: Image URLs in rich text were missing styling
Compatibility:
- 7.9.0
6.0.2
- Security fix in GraphQL library
Compatibility:
- 7.9.0
6.0.1
- Bug fix: Use content root as default for Global API
- Bug fix: Case insensitive sitekey header
Compatibility:
- 7.9.0
6.0.0
- Project-level APIs
- Query Playground - Content Studio integration
- X-data GraphQL types are now available
- Breaking change: Site support dropped
Compatibility:
- 7.9.0
5.4.0
- Upgraded to lib-guillotine 5.5.0
Compatibility:
- 7.7.0
5.3.1
- Upgraded to lib-guillotine 5.3.1
Compatibility:
- 7.7.0
5.3.0
- Add `queryContext` to arguments for `execute` function
- Support easy trimming of `_path`
- Add `imageSizes` field to `processHtml`
- Bug fix: processHtml is not supported on TextComponent
Compatibility:
- 7.7.0
5.2.1
- Upgraded to lib-guillotine 5.2.1
Compatibility:
- 7.7.0
5.2.0
- Upgraded to lib-guillotine 5.2.0
- New aggregations
Compatibility:
- 7.7.0
5.1.0
- Subscription improvements
- xAsJson for x-data
- Regenerate schema on app changes
Compatibility:
- 7.2.0
5.0.1
- Bug fix
Compatibility:
- 7.2.0
5.0.0
- Upgraded to Guillotine library v5.0.0
Compatibility:
- 7.2.0
4.2.3
- Fixed handling of option names inside option-set
Compatibility:
- 7.2.0
4.2.2
- Bug: processHtml is unavailable for HtmlArea inside an item-set
Compatibility:
- 7.2.0
4.2.1
- Fixed resolution of attachment input type
Compatibility:
- 7.2.0
4.2.0
- Enhancement: Component Config
- Enhancement: Content: Field "_references"
- Enhancement: ContentType: Field "formAsJson"
- Enhancement: Content: Field "contentType"
- Enhancement: Handle input type "MediaSelector"
Compatibility:
- 7.0.0
4.1.2
- Bug: Return null values
Compatibility:
- 7.0.0
4.1.1
- Refactoring: Fix build dependencies
- Bug: Add auth check on websocket creation
Compatibility:
- 7.0.0
4.1.0
- Enhancement: New event subscription (GraphQL WS protocol)
Compatibility:
- 7.0.0
4.0.0
- Enhancement: Possibility to serve contents located outside of the site (allowPaths)
- Enhancement: Handle widlcard "${site}" in content paths and queries
- Improvement: Refactored page related fields
Compatibility:
- 7.0.0
3.0.0
- Enhancement: Additional security check
- Enhancement: Remove site path filtering on references
- Enhancement: Flattened components
- Enhancement: Render GraphQL playground on GET requests
Compatibility:
- 7.0.0
2.0.0
- Adaptation: Adapt to Enonic XP 7.0 changes
Compatibility:
- 7.0.0
1.0.2
- Bug: processHtml is unavailable for HtmlArea inside an item-set
Compatibility:
- 6.13.0
1.0.0
- Refactoring: Usage of guillotine library
- Bug: Handle optional references
Compatibility:
- 6.13.0