In this post I'll talk about a range of features and improvements that have recently been delivered through the co-funded development pool. I'll also talk about automation, which is one of the main themes in the technical evolution of the Common Web Platform (CWP).
Before I get started, I want to explain what the co-funded pool is. Included in the monthly fees for using CWP, is a contribution of hours into the pool. Agencies raise ideas to improve CWP. These might be new features, improvements to the content management system (CMS) or improvements to other parts of CWP such as the code repository or deployment tool. The more agencies use CWP, the larger the pool and the faster CWP improves. The online world changes quickly, so it’s great to have a way to keep CWP relevant and useful. You can read more about how the co-funded development is managed on the CWP website.
In the August release, there were 11 improvements funded by the pool. I want to highlight some of these that I thought were particularly useful:
- A local spell check with English and te reo Māori dictionaries. Agencies can ask for other dictionaries to be added too. This replaces a cloud based service that had become unavailable.
- A report built into the CMS that shows the number of pages and files on a website.
- ATOM feeds are now the default for CWP websites. ATOM is the government standard for feeds. The feeds allow users to keep track of content updates.
- An option to choose which folder to upload files to when editing pages.
- A report that shows external links that are broken on a website. The report tells you what kind of broken links they are and on which pages. When you click through to a page, the broken link is highlighted.
- A MIME upload validator module. This checks that when you upload a file, the contents of the file match the file extension. For example, if someone renamed an .exe file to .jpg, the validator would identify that it wasn't a .jpg and wouldn’t allow it to be uploaded.
Improving CWP through automationWhen I talk about automation, what I mean is taking tasks that involve people manually doing things, and putting technical systems in place to automate those tasks. Only some tasks are suited to automation, but where it can be done, it makes things easier and more flexible for agencies and more efficient for the service provider. Instead of an agency raising a service ticket and having someone manually produce a report or completing a task, the agency can complete a task or access the data they need themselves.
The recent advances in automation have been made for deployments. There are two areas that have been automated — transferring databases and files between environments, and managing releases to production. Other areas for automation in the future are around access to logs, reports and server performance data.
CWP provides a web based tool called ‘Deploynaut’. Agencies can now use Deploynaut to create a snapshot of the database and files on their production server, and transfer them onto their UAT server. Using the same data as your production website improves the quality of testing. You complete this task through the web interface and all the technical steps are automated in the background. You might not want production data accessed by developers and testers, so this feature is limited to instance managers and deployment managers.
The deployment to production automation is also delivered through Deploynaut. To do this you select the version from the code repository you want to deploy, and you can watch the progress of the deployment on screen. You can cancel a deployment at any stage, and if a deployment fails you can view the log and see the cause (or provide it to someone else to work it out). The deployment requires approval by the instance manager or deployment manager. My favourite feature is the REVERT button that is active for a short time after a successful deployment. This completely restores the website to its previous state, rather than having to redeploy the previous version. I'm sure this will prove handy for those little mishaps!