Go to main contentGo to footer
stroke1Violet
portfolio

Department for Digital Transformation - Development partnership

The Digital Transformation Team is a special task force set up by the Italian Presidency of the Council of Ministers. Its mission is to start building the country's "operating system": a set of core components on which to build simpler, more effective services for citizens, the Public Administration and businesses, through innovative digital products.

The Digital Team launched and runs the Developers Italia platform, where open source software and technical documentation are progressively developed to support Italy's digital public services.

Open Source + Open Government, with Ruby!

Cantiere Creativo won a tender to build Ruby software for the Digital Team.

The project involved many of our developers, ran for several months and allowed us to help build Gems (Ruby libraries) that interact with some of the Digital Team's most ambitious projects, such as SPID and PagoPA.

We also built stand-alone applications such as the editor for the publiccode.yml standard and the static site generator Agave CMS.

All the software was released on the Developers Italia GitHub account, strictly under open source licenses.

spid

What is SPID

SPID, the Public Digital Identity System, lets people access all of the Public Administration's online services with a single Digital Identity.

Cantiere Creativo built the gem spid-ruby, a Rack middleware that abstracts communication with a SPID Service Provider, offering a simplified interface for handling SPID authentication with certified Identity Providers.

To make integration and use within the Ruby on Rails framework easier, we also rewrote the spid-rails gem, which works as a wrapper around spid-ruby.

Likewise, we built the spid-sinatra gem for use with the Sinatra framework.

pagopa

What is pagoPA

pagoPA is an electronic payment system designed to make any payment to the Public Administration simpler, safer and more transparent.

Under the guidelines issued by the Agency for Digital Italy, it will become the common system every public body implements to accept payments from citizens and businesses.

Cantiere Creativo implemented a Ruby wrapper around the SOAP APIs, in the form of a gem that simplifies handling calls and responses between the creditor body and the pagoPA system: pagopa-soap-ruby.

publiccode

What is publiccode.yml

Under Article 69 of the Italian Digital Administration Code, when an Italian public administration develops or commissions software, it must publish it in a repository under an open source license so that other administrations can reuse it.

This software is often poorly indexed and rarely cataloged: publiccode.yml, along with other tools, aims to solve these problems.

publiccode.yml is a metadata standard that collects and structures a software's characteristics into a file added to the repository. The file can be parsed by a crawler for cataloging, or read by a public employee to understand what the software can do.

Cantiere Creativo built the editor for filling in the publiccode.yml file, a handy interactive form for entering all the data and importing/exporting the generated file. The code is, of course, available on GitHub.

At the same time we built Ruby software for defining the standard (now deprecated) and a tool that integrates with the Developers Italia crawler and automatically opens issues on GitHub whenever an invalid publiccode.yml file is detected.

Agave

What is Agave

The largest project delivered under the tender was undoubtedly Agave CMS.

Agave is a Content Management System (CMS) for static sites, designed to let a public administration build and maintain a lightning-fast, highly secure website.

The admin backend is completely separate from the frontend, which is generated and published as static HTML files. Admins can either define a site's structure from scratch or import (and export) a template structure, such as one for a school or a municipality. To that end, the Digital Team is defining the design and structure of school and municipal websites, based on the design guidelines for the PA's digital services.

Agave CMS generates the site frontend using the Jekyll templating system. As with all PA software, Jekyll themes and templates built by other public bodies can be shared and reused as open source.

Publishing runs through a build system that generates the site's static pages by merging data with the template: the result is a site that can be hosted on any web server, with no constraints around programming language support, library versions, operating system and so on.

Agave CMS also offers a built-in web server that can host the site on its own; alternatively, the site build can be automatically pushed via FTP or SFTP.

All of Agave's components are packaged in Docker containers orchestrated with Docker Compose: this lets a public administration install and run the CMS on-premises on any server, very quickly and without complicated configuration.

Agave is available on GitHub; more details on how it works are in the documentation.

Read the case study

Related projects

footer