[{"authors":"Graeme Rocher","category":"Grails Async","githubBranch":"master","githubSlug":"grails-guides/server-sent-events","name":"server-sent-events","publicationDate":"11 Nov 2016","subtitle":"This guide walks you through how to send Server Sent Events using Grails and RxJava.","tags":["rxjava","reactive","html5","grails4"],"title":"Sending Server Sent Events with Grails "},{"authors":"Graeme Rocher","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/rest-mongodb","name":"rest-mongodb","publicationDate":"23 Nov 2016","subtitle":"This guide will demonstrate how you can use Grails, GORM and MongoDB to build a REST application","tags":["mongodb","rest-api","json","gorm","grails4"],"title":"Building a REST application with MongoDB"},{"authors":"Graeme Rocher","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/rest-hibernate","name":"rest-hibernate","publicationDate":"23 Nov 2016","subtitle":"This guide will demonstrate how you can use Grails, GORM and Hibernate 5 to build a REST application","tags":["hibernate","rest-api","json","gorm","grails4"],"title":"Building a REST application with GORM and Hibernate 5"},{"authors":"Zachary Klein","category":"Grails + React","githubBranch":"master","githubSlug":"grails-guides/using-the-react-profile","name":"using-the-react-profile","publicationDate":"24 Nov 2016","subtitle":"This guide introduces the React profile for Grails.","tags":["react","node","javascript","grails4"],"title":"Using the React Profile"},{"authors":"Zachary Klein","category":"Grails + React","githubBranch":"master","githubSlug":"grails-guides/building-a-react-app","name":"building-a-react-app","publicationDate":"7 Jan 2017","subtitle":"Use the React 1.x profile to create a Grails app with React views","tags":["react","node","javascript","json views"],"title":"Building a React App"},{"authors":"Matthew Moss","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/command-objects-and-forms","name":"command-objects-and-forms","publicationDate":"9 Jan 2017","subtitle":"This guide will explain how you can use command objects to validate input data in a Grails application","tags":["command-object","binding","validation","grails4"],"title":"Using Command Objects To Handle Form Data"},{"authors":"James Kleeh","category":"Grails + Angular","githubSlug":"grails-guides/angular2-combined","name":"angular2-combined","publicationDate":"4 Dec 2016","subtitle":"This guide will take you through the process of creating a single build starting with the Angular 2 profile.","tags":["angular","javascript"],"title":"Combining the Angular Profile Projects"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-test-security","name":"grails-test-security","publicationDate":"16 Jan 2017","subtitle":"In this guide you will see how to test the security constraints you added with Grails Spring Security REST Plugin and Grails Spring Security Core Plugin.","tags":["spring-security-rest","rest-api","functional-test","geb","spring-security-core","micronaut-http-client","grails4"],"title":"Testing a Secured Grails Application"},{"authors":"Zachary Klein","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/creating-your-first-grails-app","name":"creating-your-first-grails-app","publicationDate":"23 Jan 2017","subtitle":"Learn how to create your first Grails app","tags":["mysql","gsp","grails4"],"title":"Creating your first Grails Application"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-geb-multiple-browsers","name":"grails-geb-multiple-browsers","publicationDate":"30 Jan 2017","subtitle":"Run tests with Firefox, HtmlUnit, Chrome","tags":["functional-test","geb","firefox","chrome","phantomjs","htmlunit","grails4"],"title":"Run Grails Geb Functional Tests with multiple Browsers"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails-taglib-wyswyg-trix","name":"grails-taglib-wyswyg-trix","publicationDate":"6 Feb 2017","subtitle":"Learn how to integrate Trix (the rich text editor created by Basecamp) with your Grails app with the help of a custom TagLib","tags":["taglib","trix-editor","grails4"],"title":"Create and test a Grails 5 TagLib; integrate the Trix WYSWYG editor"},{"authors":"Sergio del Amo","category":"Grails + Android","githubBranch":"master","githubSlug":"grails-guides/building-an-android-client-powered-by-a-grails-backend","name":"building-an-android-client-powered-by-a-grails-backend","publicationDate":"13 Feb 2017","subtitle":"This guide demonstrates how you can use Grails as a backend for an Android app","tags":["android","java","rest-api","api-versioning","grails4"],"title":"Building an Android client powered by a Grails backend"},{"authors":"Sergio del Amo","category":"Grails + iOS","githubBranch":"master","githubSlug":"grails-guides/building-an-ios-objectc-client-powered-by-a-grails-backend","name":"building-an-ios-objectc-client-powered-by-a-grails-backend","publicationDate":"13 Feb 2017","subtitle":"This guide demonstrates how you can use Grails as a backend for an iOS app built with Objective-C","tags":["objective-c","ios","api-versioning","rest-api"],"title":"Building a Objective-C iOS Client powered by a Grails backend"},{"authors":"Sergio del Amo","category":"Grails + iOS","githubBranch":"master","githubSlug":"grails-guides/building-an-ios-swift-client-powered-by-a-grails-backend","name":"building-an-ios-swift-client-powered-by-a-grails-backend","publicationDate":"13 Feb 2017","subtitle":"This guide demonstrates how you can use Grails as the backend of an iOS app built with Swift","tags":["swift","ios","api-versioning","rest-api"],"title":"Building a Swift iOS Client powered by a Grails backend"},{"authors":"Jeff Scott Brown","category":"Advanced Grails","githubSlug":"grails-guides/grails-quickcasts-interceptors","name":"grails-quickcasts-interceptors","publicationDate":"25 Jan 2016","subtitle":"Grails Quickcast #1","tags":["quickcast","interceptor"],"title":"Grails Interceptors"},{"authors":"Jeff Scott Brown","category":"Grails Apprentice","githubSlug":"grails-guides/grails-quickcasts-json-views","name":"grails-quickcasts-json-views","publicationDate":"24 Mar 2016","subtitle":"Grails Quickcast #2","tags":["quickcast","json-view"],"title":"JSON Views"},{"authors":"Graeme Rocher","category":"Advanced Grails","githubSlug":"grails-guides/grails-quickcasts-multi-project-builds","name":"grails-quickcasts-multi-project-builds","publicationDate":"23 May 2016","subtitle":"Grails Quickcast #3","tags":["quickcast","gradle"],"title":"Grails Multi Project Builds"},{"authors":"James Kleeh","category":"Grails + AngularJS","githubSlug":"grails-guides/grails-quickcasts-angularjs-scaffolding-with-grails-3","name":"grails-quickcasts-angularjs-scaffolding-with-grails-3","publicationDate":"5 Jul 2016","subtitle":"Grails Quickcast #4","tags":["quickcast","angularjs"],"title":"AngularJS Scaffolding with Grails 3"},{"authors":"Jeff Scott Brown","category":"Grails Apprentice","githubSlug":"grails-guides/grails-quickcasts-developing-grails-3-applications-with-intellij-idea","name":"grails-quickcasts-developing-grails-3-applications-with-intellij-idea","publicationDate":"14 Oct 2016","subtitle":"Grails Quickcast #6","tags":["quickcast","intellij-idea","ide"],"title":"Developing Grails 3 Applications with IntelliJ IDEA"},{"authors":"Jeff Scott Brown","category":"Advanced Grails","githubSlug":"grails-guides/grails-quickcasts-retrieving-config-values","name":"grails-quickcasts-retrieving-config-values","publicationDate":"1 Sep 2016","subtitle":"Grails Quickcast #5","tags":["quickcast","configuration"],"title":"Retrieving Config Values"},{"authors":"Sergio del Amo","category":"Grails + AngularJS","githubBranch":"master","githubSlug":"grails-guides/grails-restapi-angularjs","name":"grails-restapi-angularjs","publicationDate":"20 Feb 2017","subtitle":"Build a backend for an already existing AngularJS application (Angular 1) with Grails rest api profile","tags":["cors","angularjs"],"title":"Building a REST API with Grails and AngularJS 1.x"},{"authors":"Colin Harrington","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/adding-commit-info","name":"adding-commit-info","publicationDate":"6 Mar 2017","subtitle":"Knowing the exact version of code that your application is running is important","tags":["git","actuator","commit-info","grails4"],"title":"Adding Commit Info to your Grails Application"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails-upload-file","name":"grails-upload-file","publicationDate":"13 Mar 2017","subtitle":"Learn how to upload files with Grails 4; transfer them to a folder, save them as byte[] in the database or upload them to AWS S3.","tags":["command-object","aws","s3","grails4"],"title":"How to upload a file with Grails 4"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-tvmlapp","name":"grails-tvmlapp","publicationDate":"20 Mar 2017","subtitle":"Build an app for Apple TV with Grails. Leverage markup views, asset-pipeline and internazionalization capabilities of Grails to streamline TVML development","tags":["tvml","apple-tv","tvmljs","tvos","grails4"],"title":"Build a TVML App with Grails"},{"authors":"Graeme Rocher","category":"GORM","githubSlug":"grails-guides/neo4j-movies","name":"neo4j-movies","publicationDate":"27 Mar 2017","subtitle":"This guide with demonstrate how to build the Neo4j Movies example application with Grails and GORM","tags":["neo4j","nosql","graph","gorm"],"title":"Building a Graph application with Grails and Neo4j"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-test-domain-class-constraints","name":"grails-test-domain-class-constraints","publicationDate":"3 Apr 2017","subtitle":"","tags":["unit-test","grails4"],"title":"How to test Domain class constraints?"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-spring-security-core-plugin-custom-authentication","name":"grails-spring-security-core-plugin-custom-authentication","publicationDate":"10 Apr 2017","subtitle":"Shows how to create a custom authentication with Spring Security Core Plugin","tags":["spring-security-core","grails4"],"title":"Grails Spring Security Core Plugin Custom Authentication"},{"authors":"ZacharyKlein","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/using-hal-with-json-views","name":"using-hal-with-json-views","publicationDate":"17 Apr 2017","subtitle":"Learn to build discoverable APIs with Grails","tags":["hal","rest","json views","grails4"],"title":"Using HAL with JSON Views"},{"authors":"Nirav Assar","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-mock-basics","name":"grails-mock-basics","publicationDate":"24 Apr 2017","subtitle":"In this guide we are going to explore Service testing in Grails. Unit test GORM, Integration Tests, Mocking collaborators...","tags":["unit-test","mock","spock","grails4"],"title":"Grails Service Testing"},{"authors":"Sergio del Amo, Mathew Moss","category":"Grails + Google Cloud","githubBranch":"master","githubSlug":"grails-guides/grails-google-cloud","name":"grails-google-cloud","publicationDate":"1 May 2017","subtitle":"Learn how to deploy a Grails 3 application to Google App Engine Java Flexible Environment, integrate with Google Cloud Storage and Google Cloud SQL","tags":["mysql","cloud-sql","cloud-storage","google-app-engine","logs"],"title":"Deploy a Grails app to Google Cloud"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails_i18n","name":"grails_i18n","publicationDate":"8 May 2017","subtitle":"Learn how to change the default language used in your application, switch between languages or access the current locale.","tags":["i18n","locale","grails4","language"],"title":"How to change languages in a Grails app?"},{"authors":"Graeme Rocher","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/database-per-tenant","name":"database-per-tenant","publicationDate":"15 May 2017","subtitle":"Learn how to leverage Multi-Tenancy features of GORM 6.1 to build an application using a unique database per tenant","tags":["multi-tenancy","hibernate","gorm"],"title":"Database per Tenant Multi-Tenancy"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-multi-project-build","name":"grails-multi-project-build","publicationDate":"22 May 2017","subtitle":"Learn how to leverage Gradle capabilities in a Grails application to create Multi-Project builds","tags":["gradle","multi-project","grails4"],"title":"Grails Multi-Project Build"},{"authors":"Ryan Vanderwerf, Sergio del Amo","category":"Grails + Google Cloud","githubBranch":"master","githubSlug":"grails-guides/grails-google-home","name":"grails-google-home","publicationDate":"29 May 2017","subtitle":"Learn to make a Goole action using Grails","tags":["conversation","ai","google-home","google-app-engine","web-profile"],"title":"Google Home Guide"},{"authors":"Iv\u00e1n L\u00f3pez","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-codenarc","name":"grails-codenarc","publicationDate":"5 Jun 2017","subtitle":"In this guide, you'll learn how to improve your code with static analysis using CodeNarc.","tags":["codenarc","static-analysis","grails4"],"title":"Static code analysis in a Grails app with CodeNarc"},{"authors":"Zachary Klein","category":"Grails + React","githubSlug":"grails-guides/react-combined","name":"react-combined","publicationDate":"12 Jun 2017","subtitle":"Learn how to generate a JAR file which combines React and Grails production artefacts.","tags":["react","javascript","gradle","multi-project"],"title":"Combining the React profile projects"},{"authors":"Nirav Assar, Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-controller-testing","name":"grails-controller-testing","publicationDate":"19 Jun 2017","subtitle":"In this guide, we explore Controller testing in Grails.","tags":["unit-test","functional-test","spock","grails4"],"title":"Grails Controller Testing"},{"authors":"Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/discriminator-per-tenant","name":"discriminator-per-tenant","publicationDate":"26 Jun 2017","subtitle":"Learn how to leverage Multi-Tenancy features of GORM to build an application which uses a single database, but it partitions its data using a discriminator column.","tags":["multi-tenancy","hibernate","gorm","grails4"],"title":"Single Database Multi-Tenancy - Discriminator Column"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-code-coverage","name":"grails-code-coverage","publicationDate":"3 Jul 2017","subtitle":"In this guide you'll learn how to improve your code coverage using Clover.","tags":["clover","code-coverage","grails4"],"title":"Grails Code Coverage"},{"authors":"Ben Rhine, Zachary Klein","category":"Grails + React","githubBranch":"master","githubSlug":"grails-guides/react-spring-security","name":"react-spring-security","publicationDate":"10 Feb 2018","subtitle":"Learn how to add Spring Security to your React app","tags":["react","grails","javascript","security","spring-security-rest","rest-api"],"title":"Creating a React app with Spring Security"},{"authors":"Zachary Klein, Sergio del Amo","category":"Grails + React","githubBranch":"master","githubSlug":"grails-guides/grails-vs-nodejs","name":"grails-vs-nodejs","publicationDate":"17 Jul 2017","subtitle":"Learn how to replace a RESTful API in Node/Express with Grails","tags":["react","rest","authentication","security","ssl","websockets"],"title":"Replacing a Node/Express API with Grails"},{"authors":"Ben Rhine","category":"Grails + RIA (Rich Internet Application)","githubSlug":"grails-guides/vaadin-grails","name":"vaadin-grails","publicationDate":"24 Jul 2017","subtitle":"Learn how to build a Grails 3 application with the Vaadin 8 Framework","tags":["vaadin","frontend","framework"],"title":"Build a Grails 3 application with the Vaadin 8 Framework"},{"authors":"Ben Rhine, Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/gorm-without-grails","name":"gorm-without-grails","publicationDate":"31 Jul 2017","subtitle":"Learn how to build a Spring Boot application using GORM","tags":["spring boot","backend","GORM","hibernate"],"title":"Build a Spring Boot application with GORM"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubSlug":"grails-guides/grails-quickcast-logging","name":"grails-quickcast-logging","publicationDate":"18 Jul 2017","subtitle":"Grails Quickcast #7","tags":["quickcast","logging"],"title":"Grails Logging"},{"authors":"Nirav Assar, Sergio del Amo","category":"Advanced Grails","githubBranch":"grails4","githubSlug":"grails-guides/grails-database-migration","name":"grails-database-migration","publicationDate":"7 Aug 2017","subtitle":"In this guide we will learn how to use the Grails Database Migration Plugin","tags":["liquibase","database","gorm","migration","grails4"],"title":"Grails Database Migration"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-mock-http-server","name":"grails-mock-http-server","publicationDate":"14 Aug 2017","subtitle":"Use Ersatz, a \"mock\" HTTP library, for testing code dealing with HTTP requests","tags":["ersatz","mock","rest","grails4"],"title":"Consume and test a third-party REST API"},{"authors":"Sergio del Amo","category":"Grails Async","githubBranch":"master","githubSlug":"grails-guides/grails-async-promises","name":"grails-async-promises","publicationDate":"21 Aug 2017","subtitle":"Learn how to use Grails Promises and load multiple REST payloads in parallel.","tags":["promise","async","rest","openweather","grails4"],"title":"Grails Promises"},{"authors":"Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/gorm-ratpack","name":"gorm-ratpack","publicationDate":"28 Aug 2017","subtitle":"Learn how to build a Ratpack application which uses GORM as data access toolkit","tags":["ratpack","gorm","hibernate"],"title":"Build a Ratpack application which uses GORM"},{"authors":"Sergio del Amo","category":"Grails Async","githubBranch":"master","githubSlug":"grails-guides/grails-events","name":"grails-events","publicationDate":"4 Sep 2017","subtitle":"Grails Events to handle a common scenario. A user registers himself in an application and the app sends the user a welcome email.","tags":["async","events","grails4"],"title":"Grails Events"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-custom-security-tenant-resolver","name":"grails-custom-security-tenant-resolver","publicationDate":"11 Sep 2017","subtitle":"Learn how to create a custom tenant resolver and use Grails Multi-Tenancy capabilities to switch tenants based on the current logged user or by a JWT.","tags":["spring-security","spring-security-rest","jwt","multi-tenancy","rest-api","grails4"],"title":"Custom Tenant Resolver by Current Logged in User"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-dynamic-multiple-datasources","name":"grails-dynamic-multiple-datasources","publicationDate":"18 Sep 2017","subtitle":"Learn how to use Grails Multi-Tenancy capabilities DATABASE mode while creating a new datasource connection per registered user dynamically. ","tags":["spring-security-rest","jwt","multi-tenancy","rest-api","multi-datasource","gorm-event","grails4"],"title":"Configure Datasources dynamically while using DATABASE Multi-tenancy"},{"authors":"Matthew Moss","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/querying-gorm-dynamic-finders","name":"querying-gorm-dynamic-finders","publicationDate":"25 Sep 2017","subtitle":"This guide will demostrate how to efficiently query your database using GORM's dynamic finders.","tags":["gorm","query","database","grails4"],"title":"Querying the Database using GORM Dynamic Finders"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-soap","name":"grails-soap","publicationDate":"3 Oct 2017","subtitle":"Learn how to consume a SOAP endpoint from a Grails Application","tags":["soap","geb","grails4"],"title":"Grails & SOAP"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-multi-datasource","name":"grails-multi-datasource","publicationDate":"10 Oct 2017","subtitle":"Learn how to consume and handle transactions to multiple data sources from a Grails application. ","tags":["multi-datasource","json-views","grails4"],"title":"Grails Multi-datasource"},{"authors":"Nirav Assar","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/grails-yourkit-profiling","name":"grails-yourkit-profiling","publicationDate":"4 Dec 2017","subtitle":"In this guide you will learn how to profile Memory and CPU on a Grails applications using the YourKit Java Profiler tool.","tags":["yourkit","profiling","heap-memory","garbage-collection","cpu","web-profile","grails4"],"title":"Grails YourKit Profiling"},{"authors":"Zachary Klein","category":"Grails + React","githubBranch":"master","githubSlug":"grails-guides/gorm-graphql-with-react-and-apollo","name":"gorm-graphql-with-react-and-apollo","publicationDate":"18 Dec 2017","subtitle":"Build a Grails app and use GORM's GraphQL support to serve React app using Apollo","tags":["react","graphql","gorm","javascript","apollo"],"title":"Building a GORM/GraphQL App with React and Apollo"},{"authors":"Iv\u00e1n L\u00f3pez,Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-docker-external-services","name":"grails-docker-external-services","publicationDate":"08 Jan 2018","subtitle":"Learn how to use a Postgresql database in your Grails application with a Docker container","tags":["docker","postgresql","gradle"],"title":"Use docker to provide external services to your Grails app"},{"authors":"Iv\u00e1n L\u00f3pez","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-as-docker-container","name":"grails-as-docker-container","publicationDate":"15 Jan 2018","subtitle":"Learn how to distribute your Grails application as a Docker container.","tags":["docker","gradle","grails4"],"title":"Grails as a Docker Container"},{"authors":"Iv\u00e1n L\u00f3pez, Sergio del Amo","category":"Advanced Grails","githubSlug":"grails-guides/grails-schwartz","name":"grails-schwartz","publicationDate":"23 Jan 2018","subtitle":"Learn how to use Schwartz to schedule periodic tasks inside your Grails applications","tags":["quartz","job","schwatz"],"title":"Schedule periodic tasks inside your Grails applications"},{"authors":"Puneet Behl, Sergio del Amo","category":"Advanced Grails","githubSlug":"grails-guides/grails-elasticsearch","name":"grails-elasticsearch","publicationDate":"12 Feb 2018","subtitle":"Learn how to use ElasticSearch within a Grails application","tags":["elasticsearch","rest-api"],"title":"Grails ElasticSearch"},{"authors":"Zachary Klein, Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/gorm-event-listeners","name":"gorm-event-listeners","publicationDate":"19 Feb 2018","subtitle":"Learn to write and test GORM event listeners","tags":["gorm","async","events","grails4"],"title":"GORM Event Listeners"},{"authors":"Ben Rhine","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-scheduled","name":"grails-scheduled","publicationDate":"26 Feb 2018","subtitle":"Learn how to use Spring Task Execution and Scheduling to schedule periodic tasks inside your Grails applications","tags":["spring","spring-boot","task","execution","scheduling","job","cron","grails3"],"title":"Grails + @Scheduled"},{"authors":"Ben Rhine,Sergio del Amo","category":"Advanced Grails","githubSlug":"grails-guides/grails-rabbitmq","name":"grails-rabbitmq","publicationDate":"5 March 2018","subtitle":"Learn how to use message queues with Grails 3 and RabbitMQ-Native plugin","tags":["rabbitMQ","message-queues"],"title":"Message Queues with Grails 3 and RabbitMQ"},{"authors":"Zachary Klein","category":"Grails + Vue.js","githubBranch":"master","githubSlug":"grails-guides/using-the-vue-profile","name":"using-the-vue-profile","publicationDate":"12 March 2018","subtitle":"This guide introduces the Vue.js profile for Grails.","tags":["vue","node","javascript","vue-profile","grails4"],"title":"Using the Vue.js Grails Profile"},{"authors":"Ben Rhine","category":"Grails + Google Cloud","githubBranch":"master","githubSlug":"grails-guides/grails-oauth-google","name":"grails-oauth-google","publicationDate":"19 March 2018","subtitle":"Learn how to use Google OAuth2 with Grails 3 and Spring Security REST plugin","tags":["spring-security-rest","google","oauth"],"title":"Google OAuth2 with Grails 3 and Spring Security REST"},{"authors":"Ben Rhine, Zachary Klein","category":"Grails + Vue.js","githubBranch":"master","githubSlug":"grails-guides/building-a-vue-app","name":"building-a-vue-app","publicationDate":"26 March 2018","subtitle":"Learn how to add a Vue.js frontend to your application","tags":["vue","grails","javascript","rest-api"],"title":"Building a Vue.js app with Grails"},{"authors":"Ben Rhine","category":"Grails + Devops","githubSlug":"grails-guides/grails-javamelody","name":"grails-javamelody","publicationDate":"2 April 2018","subtitle":"Learn how to setup and monitor your application using JavaMelody","tags":["javamelody","monitoring"],"title":"JavaMelody monitoring with Grails 3"},{"authors":"Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/grails-logicaldelete","name":"grails-logicaldelete","publicationDate":"9 April 2018","subtitle":"Learn how to use GORM Logical delete plugin","tags":["logical-delete","gorm","geb","grails4"],"title":"GORM Logical delete"},{"authors":"Ben Rhine, Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-oauth-twitter","name":"grails-oauth-twitter","publicationDate":"30 April 2018","subtitle":"Learn how to use Twitter OAuth with Grails 3 and Spring Security REST plugin","tags":["spring-security-rest","oauth","twitter"],"title":"Twitter OAuth with Grails 3 and Spring Security REST"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-basicauth","name":"grails-basicauth","publicationDate":"28 May 2018","subtitle":"Learn how to secure a Grails app using 'Basic' HTTP Authentication Scheme.","tags":["spring-security","basicauth","grails4"],"title":"Grails Basic Auth"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-email","name":"grails-email","publicationDate":"4 June 2018","subtitle":"Learn how to send emails with AWS SES and SendGrid from a Grails app and leverage Spock Spring integration to verify interaction.","tags":["spock-spring","email","sendgrid","aws","ses","grails4"],"title":"Send Email and Spock Spring"},{"authors":"Nirav Assar","category":"Grails Testing","githubBranch":"master","githubSlug":"grails-guides/grails-mock-logging-slf4j-test","name":"grails-mock-logging-slf4j-test","publicationDate":"11 June 2018","subtitle":"In this guide, we will learn how to mock and verify log statements in Grails.","tags":["spock","slf4j","mock","log","test","grails4"],"title":"Grails Mock Logging with Slf4j Test"},{"authors":"Nirav Assar, Sergio del Amo","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/grails-on-travis-basics","name":"grails-on-travis-basics","publicationDate":"25 June 2018","subtitle":"In this guide, we will learn how to setup Travis CI to build and test a Grails application.","tags":["travis","ci","testing","chrome","firefox","geb","grails4"],"title":"Grails on Travis Basics"},{"authors":"Nirav Assar, Sergio del Amo","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/grails-on-circleci-basics","name":"grails-on-circleci-basics","publicationDate":"16 July 2018","subtitle":"In this guide, we will learn how to setup Circle CI to build and test a Grails application.","tags":["circleci","ci","testing","chrome","firefox","geb","grails4"],"title":"Grails on Circle CI Basics"},{"authors":"Nirav Assar, Sergio del Amo","category":"GORM","githubBranch":"master","githubSlug":"grails-guides/grails-gorm-data-services","name":"grails-gorm-data-services","publicationDate":"20 August 2018","subtitle":"In this guide, we will learn how to create GORM Data Services in a Grails Application.","tags":["gorm","database","jpq-ql","data-services","grails4"],"title":"Grails GORM Data Services"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails-file-download-excel","name":"grails-file-download-excel","publicationDate":"3 Sep 2018","subtitle":"Learn how to download an excel file with Grails and Spreadsheet Builder library.","tags":["spreadsheet-builder-poi","spock","geb","excel","file-transfer","grails4"],"title":"Download an Excel file in Grails App"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails-configuration-properties","name":"grails-configuration-properties","publicationDate":"11 Oct 2018","subtitle":"Grails 5 apps are Spring Boot apps. Learn how property values can be bound to structured objects through @ConfigurationProperties.","tags":["spring-boot","configuration","configuration-properties","grails4"],"title":"SpringBoot @ConfigurationProperties in Grails App"},{"authors":"Sergio del Amo","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/grails-elasticbeanstalk","name":"grails-elasticbeanstalk","publicationDate":"29 October 2018","subtitle":"Learn how easy is to deploy a Grails App to Elastic Beanstalk.","tags":["actuator","health","aws","aws-elasticbeanstlak"],"title":"Deploy to AWS ElasticBeanstalk"},{"authors":"Nirav Assar, Zachary Klein","category":"Grails + Vue.js","githubBranch":"master","githubSlug":"grails-guides/grails-vue-combined","name":"grails-vue-combined","publicationDate":"5 Nov 2018","subtitle":"Learn how to generate a JAR file which combines Vue and Grails production artefacts.","tags":["vue","javascript","gradle","multi-project"],"title":"Combining the Grails Vue profile client and server projects"},{"authors":"Ben Rhine","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-scheduled","name":"grails-scheduled","publicationDate":"26 Feb 2018","subtitle":"Learn how to use Spring Task Execution and Scheduling to schedule periodic tasks inside your Grails applications","tags":["spring","spring-boot","task","execution","scheduling","job","cron","grails4"],"title":"Grails + @Scheduled"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/grails-taglib-wyswyg-trix","name":"grails-taglib-wyswyg-trix","publicationDate":"6 Feb 2017","subtitle":"Learn how to integrate Trix (the rich text editor created by Basecamp) with your Grails app with the help of a custom TagLib","tags":["taglib","trix-editor","grails3"],"title":"Create and test a Grails 3 TagLib; integrate the Trix WYSWYG editor"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/grails-file-download-excel","name":"grails-file-download-excel","publicationDate":"3 Sep 2018","subtitle":"Learn how to download an excel file with Grails and Spreadsheet Builder library.","tags":["spreadsheet-builder-poi","spock","geb","excel","file-transfer","grails3"],"title":"Download an Excel file in Grails App"},{"authors":"Matthew Moss","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/command-objects-and-forms","name":"command-objects-and-forms","publicationDate":"9 Jan 2017","subtitle":"This guide will explain how you can use command objects to validate input data in a Grails application","tags":["command-object","binding","validation","grails3"],"title":"Using Command Objects To Handle Form Data"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/grails_i18n","name":"grails_i18n","publicationDate":"8 May 2017","subtitle":"Learn how to change the default language used in your application, switch between languages or access the current locale.","tags":["i18n","locale","grails3","language"],"title":"How to change languages in a Grails app?"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/grails-upload-file","name":"grails-upload-file","publicationDate":"13 Mar 2017","subtitle":"Learn how to upload files with Grails 3; transfer them to a folder, save them as byte[] in the database or upload them to AWS S3.","tags":["command-object","aws","s3","grails3"],"title":"How to upload a file with Grails 3"},{"authors":"Zachary Klein","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/creating-your-first-grails-app","name":"creating-your-first-grails-app","publicationDate":"23 Jan 2017","subtitle":"Learn how to create your first Grails app","tags":["mysql","gsp","grails3"],"title":"Creating your first Grails Application"},{"authors":"Nirav Assar, Sergio del Amo","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/grails-gorm-data-services","name":"grails-gorm-data-services","publicationDate":"20 August 2018","subtitle":"In this guide, we will learn how to create GORM Data Services in a Grails Application.","tags":["gorm","database","jpq-ql","data-services","grails3"],"title":"Grails GORM Data Services"},{"authors":"Zachary Klein, Sergio del Amo","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/gorm-event-listeners","name":"gorm-event-listeners","publicationDate":"19 Feb 2018","subtitle":"Learn to write and test GORM event listeners","tags":["gorm","async","events","grails3"],"title":"GORM Event Listeners"},{"authors":"Graeme Rocher","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/rest-hibernate","name":"rest-hibernate","publicationDate":"23 Nov 2016","subtitle":"This guide will demonstrate how you can use Grails, GORM and Hibernate 5 to build a REST application","tags":["hibernate","rest-api","json","gorm","grails3"],"title":"Building a REST application with GORM and Hibernate 5"},{"authors":"Iv\u00e1n L\u00f3pez","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-as-docker-container","name":"grails-as-docker-container","publicationDate":"15 Jan 2018","subtitle":"Learn how to distribute your Grails application as a Docker container.","tags":["docker","gradle","grails3"],"title":"Grails as a Docker Container"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-test-domain-class-constraints","name":"grails-test-domain-class-constraints","publicationDate":"3 Apr 2017","subtitle":"","tags":["unit-test","grails3"],"title":"How to test Domain class constraints?"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-test-security","name":"grails-test-security","publicationDate":"16 Jan 2017","subtitle":"In this guide you will see how to test the security constraints you added with Grails Spring Security REST Plugin and Grails Spring Security Core Plugin.","tags":["spring-security-rest","rest-api","functional-test","geb","spring-security-core","micronaut-http-client","grails3"],"title":"Testing a Secured Grails Application"},{"authors":"Nirav Assar, Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-controller-testing","name":"grails-controller-testing","publicationDate":"19 Jun 2017","subtitle":"In this guide, we explore Controller testing in Grails.","tags":["unit-test","functional-test","spock","grails3"],"title":"Grails Controller Testing"},{"authors":"Nirav Assar","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-mock-basics","name":"grails-mock-basics","publicationDate":"24 Apr 2017","subtitle":"In this guide we are going to explore Service testing in Grails. Unit test GORM, Integration Tests, Mocking collaborators...","tags":["unit-test","mock","spock","grails3"],"title":"Grails Service Testing"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-geb-multiple-browsers","name":"grails-geb-multiple-browsers","publicationDate":"30 Jan 2017","subtitle":"Run tests with Firefox, HtmlUnit, Chrome and PhantomJs","tags":["functional-test","geb","firefox","chrome","phantomjs","htmlunit","grails3"],"title":"Run Grails Geb Functional Tests with multiple Browsers"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-email","name":"grails-email","publicationDate":"4 June 2018","subtitle":"Learn how to send emails with AWS SES and SendGrid from a Grails app and leverage Spock Spring integration to verify interaction.","tags":["spock-spring","email","sendgrid","aws","ses","grails3"],"title":"Send Email and Spock Spring"},{"authors":"Nirav Assar","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-mock-logging-slf4j-test","name":"grails-mock-logging-slf4j-test","publicationDate":"11 June 2018","subtitle":"In this guide, we will learn how to mock and verify log statements in Grails.","tags":["spock","slf4j","mock","log","test","grails3"],"title":"Grails Mock Logging with Slf4j Test"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-soap","name":"grails-soap","publicationDate":"3 Oct 2017","subtitle":"Learn how to consume a SOAP endpoint from a Grails Application","tags":["soap","geb","grails3"],"title":"Grails & SOAP"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-basicauth","name":"grails-basicauth","publicationDate":"28 May 2018","subtitle":"Learn how to secure a Grails app using 'Basic' HTTP Authentication Scheme.","tags":["spring-security","basicauth","grails3"],"title":"Grails Basic Auth"},{"authors":"ZacharyKlein","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/using-hal-with-json-views","name":"using-hal-with-json-views","publicationDate":"17 Apr 2017","subtitle":"Learn to build discoverable APIs with Grails","tags":["hal","rest","json views","grails3"],"title":"Using HAL with JSON Views"},{"authors":"Colin Harrington","category":"Grails + DevOps","githubBranch":"grails3","githubSlug":"grails-guides/adding-commit-info","name":"adding-commit-info","publicationDate":"6 Mar 2017","subtitle":"Knowing the exact version of code that your application is running is important","tags":["git","actuator","commit-info","grails3"],"title":"Adding Commit Info to your Grails Application"},{"authors":"Graeme Rocher","category":"Grails Async","githubBranch":"grails3","githubSlug":"grails-guides/server-sent-events","name":"server-sent-events","publicationDate":"11 Nov 2016","subtitle":"This guide walks you through how to send Server Sent Events using Grails and RxJava.","tags":["rxjava","reactive","html5","grails3"],"title":"Sending Server Sent Events with Grails "},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-multi-datasource","name":"grails-multi-datasource","publicationDate":"10 Oct 2017","subtitle":"Learn how to consume and handle transactions to multiple data sources from a Grails application. ","tags":["multi-datasource","json-views","grails3"],"title":"Grails Multi-datasource"},{"authors":"Nirav Assar","category":"Grails Apprentice","githubBranch":"grails5","githubSlug":"grails-guides/grails-micronaut-http","name":"grails-micronaut-http","publicationDate":"3 Dec 2019","subtitle":"In this guide, we will learn how to use the Micronaut HTTP Client in a Grails app.","tags":["rest","test","client","micronaut","grails5"],"title":"Grails with Micronaut HTTP Client"},{"authors":"Sergio del Amo","category":"Grails Async","githubBranch":"grails3","githubSlug":"grails-guides/grails-events","name":"grails-events","publicationDate":"4 Sep 2017","subtitle":"Grails Events to handle a common scenario. A user registers himself in an application and the app sends the user a welcome email.","tags":["async","events","grails3"],"title":"Grails Events"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-tvmlapp","name":"grails-tvmlapp","publicationDate":"20 Mar 2017","subtitle":"Build an app for Apple TV with Grails. Leverage markup views, asset-pipeline and internazionalization capabilities of Grails to streamline TVML development","tags":["tvml","apple-tv","tvmljs","tvos","grails3"],"title":"Build a TVML App with Grails"},{"authors":"Nirav Assar, Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-database-migration","name":"grails-database-migration","publicationDate":"7 Aug 2017","subtitle":"In this guide we will learn how to use the Grails Database Migration Plugin","tags":["liquibase","database","gorm","migration","grails3"],"title":"Grails Database Migration"},{"authors":"Sergio del Amo","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/grails-logicaldelete","name":"grails-logicaldelete","publicationDate":"9 April 2018","subtitle":"Learn how to use GORM Logical delete plugin","tags":["logical-delete","gorm","geb","grails3"],"title":"GORM Logical delete"},{"authors":"Matthew Moss","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/querying-gorm-dynamic-finders","name":"querying-gorm-dynamic-finders","publicationDate":"25 Sep 2017","subtitle":"This guide will demostrate how to efficiently query your database using GORM's dynamic finders.","tags":["gorm","query","database","grails3"],"title":"Querying the Database using GORM Dynamic Finders"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-custom-security-tenant-resolver","name":"grails-custom-security-tenant-resolver","publicationDate":"11 Sep 2017","subtitle":"Learn how to create a custom tenant resolver and use Grails Multi-Tenancy capabilities to switch tenants based on the current logged user or by a JWT.","tags":["spring-security","spring-security-rest","jwt","multi-tenancy","rest-api","grails3"],"title":"Custom Tenant Resolver by Current Logged in User"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-dynamic-multiple-datasources","name":"grails-dynamic-multiple-datasources","publicationDate":"18 Sep 2017","subtitle":"Learn how to use Grails Multi-Tenancy capabilities DATABASE mode while creating a new datasource connection per registered user dynamically. ","tags":["spring-security-rest","jwt","multi-tenancy","rest-api","multi-datasource","gorm-event","grails3"],"title":"Configure Datasources dynamically while using DATABASE Multi-tenancy"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"grails3","githubSlug":"grails-guides/grails-spring-security-core-plugin-custom-authentication","name":"grails-spring-security-core-plugin-custom-authentication","publicationDate":"10 Apr 2017","subtitle":"Shows how to create a custom authentication with Spring Security Core Plugin","tags":["spring-security-core","grails3"],"title":"Grails Spring Security Core Plugin Custom Authentication"},{"authors":"Zachary Klein","category":"Grails Apprentice","githubBranch":"master","githubSlug":"grails-guides/grails_url_mappings","name":"grails_url_mappings","publicationDate":"17 Jan 2018","subtitle":"Learn to configure routes and endpoints","tags":["url-mappings","grails4"],"title":"Grails URL Mappings"},{"authors":"Sergio del Amo","category":"Grails + DevOps","githubBranch":"master","githubSlug":"grails-guides/grails-on-github-actions","name":"grails-on-github-actions","publicationDate":"16 Dec 2019","subtitle":"In this guide, we will learn how to setup Github Actions to build and test a Grails application.","tags":["github","github-actions","ci","testing","chrome","firefox","geb","grails4"],"title":"Grails on Github Actions"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails4","githubSlug":"grails-guides/grails-configuration-properties-micronaut","name":"grails-configuration-properties-micronaut","publicationDate":"16 Dec 2019","subtitle":"Grails 4 apps can access many Micronaut features. Learn how property values can be bound to structured objects through @ConfigurationProperties.","tags":["micronaut","configuration","configuration-properties","grails4"],"title":"Micronaut @ConfigurationProperties in Grails App"},{"authors":"Sergio del Amo","category":"Grails Apprentice","githubBranch":"grails3","githubSlug":"grails-guides/grails-configuration-properties","name":"grails-configuration-properties","publicationDate":"11 Oct 2018","subtitle":"Grails 3 apps are Spring Boot apps. Learn how property values can be bound to structured objects through @ConfigurationProperties.","tags":["spring-boot","configuration","configuration-properties","grails3"],"title":"SpringBoot @ConfigurationProperties in Grails App"},{"authors":"Sergio del Amo","category":"GORM","githubBranch":"grails3","githubSlug":"grails-guides/gorm-ratpack","name":"gorm-ratpack","publicationDate":"28 Aug 2017","subtitle":"Learn how to build a Ratpack application which uses GORM as data access toolkit","tags":["ratpack","gorm","hibernate"],"title":"Build a Ratpack application which uses GORM"},{"authors":"Zachary Klein","category":"Grails + Vue.js","githubBranch":"grails3","githubSlug":"grails-guides/using-the-vue-profile","name":"using-the-vue-profile","publicationDate":"12 March 2018","subtitle":"This guide introduces the Vue.js profile for Grails.","tags":["vue","node","javascript","vue-profile","grails3"],"title":"Using the Vue.js Grails Profile"},{"authors":"Nirav Assar, Sergio del Amo","category":"Grails + DevOps","githubBranch":"master,grails3","githubSlug":"grails-guides/grails-on-travis-basics","name":"grails-on-travis-basics","publicationDate":"25 June 2018","subtitle":"In this guide, we will learn how to setup Travis CI to build and test a Grails application.","tags":["travis","ci","testing","chrome","firefox","geb","grails3"],"title":"Grails on Travis Basics"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-mock-http-server","name":"grails-mock-http-server","publicationDate":"14 Aug 2017","subtitle":"Use Ersatz, a \"mock\" HTTP library, for testing code dealing with HTTP requests","tags":["ersatz","mock","rest","grails3"],"title":"Consume and test a third-party REST API"},{"authors":"Sergio del Amo","category":"Grails Async","githubBranch":"grails3","githubSlug":"grails-guides/grails-async-promises","name":"grails-async-promises","publicationDate":"21 Aug 2017","subtitle":"Learn how to use Grails Promises and load multiple REST payloads in parallel.","tags":["promise","async","rest","openweather","grails3"],"title":"Grails Promises"},{"authors":"Sergio del Amo","category":"Grails Testing","githubBranch":"grails3","githubSlug":"grails-guides/grails-code-coverage","name":"grails-code-coverage","publicationDate":"3 Jul 2017","subtitle":"In this guide you'll learn how to improve your code coverage using Clover.","tags":["clover","code-coverage","grails3"],"title":"Grails Code Coverage"},{"authors":"Sergio del Amo","category":"Advanced Grails","githubBranch":"master","githubSlug":"grails-guides/grails-micronaut-kakfa","name":"grails-micronaut-kafka","publicationDate":"14 Oct 2021","subtitle":"Learn how to use message queues with Grails and Micronaut Kafka","tags":["kafka","message-queues"],"title":"Message Queues with Grails and Micronaut Kafka"},{"githubBranch":"grails6","name":"grails-database-migration","title":"Grails Database Migration","subtitle":"In this guide we will learn how to use the Grails Database Migration Plugin","authors":"Puneet Behl, Nirav Assar, Sergio del Amo","githubSlug":"grails-guides/grails-database-migration","category":"Advanced Grails","publicationDate":"22 Jun 2023","tags":["liquibase","database","gorm","migration","grails6"]},{"githubBranch":"grails6","name":"grails-configuration-properties-micronaut","title":"Micronaut @ConfigurationProperties in Grails App","subtitle":"Grails apps can access many Micronaut features. Learn how property values can be bound to structured objects through @ConfigurationProperties.","authors":"Sergio del Amo, Puneet Behl","githubSlug":"grails-guides/grails-configuration-properties-micronaut","category":"Grails Apprentice","publicationDate":"07 July 2023","tags":["micronaut","configuration","configuration-properties","grails6"]}]