<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>ckan</title>
	<atom:link href="https://ckan.org/feed/" rel="self" type="application/rss+xml" />
	<link>https://ckan.org</link>
	<description>The open source data portal software</description>
	<lastBuildDate>Mon, 22 Mar 2021 10:57:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.3.2</generator>
<site xmlns="com-wordpress:feed-additions:1">113536304</site>	<item>
		<title>Is it time for Headless DMS?</title>
		<link>https://ckan.org/2021/03/17/is-it-time-for-headless-dms/</link>
				<pubDate>Wed, 17 Mar 2021 17:35:19 +0000</pubDate>
		<dc:creator><![CDATA[Rufus Pollock]]></dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Data Management]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=13435</guid>
				<description><![CDATA[In a previous article, we drew an analogy between CMS (that’s ‘content management system’) and DMS (‘data management system’) to show how the two software share a similar structure. Now, in this follow-up piece, we’re going to show how DMS have always been one step ahead of the game when it comes to a novel software [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>In a <a href="https://ckan.org/2021/03/15/as-cms-is-to-content-dms-is-to-data/" target="_blank" rel="noreferrer noopener">previous article</a>, we drew an analogy between CMS (that’s ‘content management system’) and DMS (‘data management system’) to show how the two software share a similar structure. Now, in this follow-up piece, we’re going to show how DMS have always been one step ahead of the game when it comes to a novel software trend: headlessness.</p>
<figure class="wp-block-image size-large"><img class="wp-image-3011" src="https://www.datopian.com/wp-content/uploads/2020/06/headless-statue-Mika-1-1024x794.jpg" alt="" width="1024" height="794" /><figcaption><a href="https://unsplash.com/photos/43E513RKDug">Headless statue by Mika on Unsplash</a></figcaption></figure>
<h2 id="introduction">Introduction</h2>
<p>If you’ve not heard of Headless DMS before, that’s because you’re reading it here for the first time. However, while the term may be new, the concept itself is not. CKAN, an open-source DMS, has been operating headlessly for years – the term headlessness just didn’t exist yet. It wasn’t until CMSs began calling themselves headless that the name gained traction. Here at Datopian, though, we were working with headless software long before it became cool.</p>
<p>In order to understand how Headless DMS – and specifically CKAN – is significantly improving the ways in which organisations manage their data, we first need to clarify a key term: headlessness.</p>
<h2 id="what-does-it-mean-for-a-software-to-be-headless">What does it mean for a software to be ‘headless’?</h2>
<p>To understand headless software, we first need to know some basic information about how software is structured. In software engineering, a distinction is made between the ‘front end’ part of a software, the part seen by the user, and the ‘back end’, the behind-the-scenes part. The back end is made up of a storage component (e.g. content repository or database), an editor (e.g. an admin user interface) and an API, which is a tool for delivering stored contents to the front end. The front end acts as a renderer, turning stored contents into a themed display (e.g. a webpage). Traditional DMSs, which contain both a front end and a back end that run in the same process, are known as monolithic DMSs.</p>
<p>Sometimes, software engineers choose to decouple the front end of the software (the ‘head’) from the back end (the ‘body’). There are many reasons for doing this, and these will be explored further on in this article.</p>
<p>You may remember the software stick-person from a <a href="https://www.datopian.com/2020/06/10/as-cms-is-to-content-dms-is-to-data/">previous article</a> – here they are again, but this time they have been decoupled, leaving a headless part and a head:</p>
<div class="wp-block-image" style="text-align: center">
<figure class="aligncenter size-full is-resized"><img class="wp-image-3007 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/06/stickman_head_labelled.png" alt="" width="171" height="172" /><figcaption>DMS head</figcaption></figure>
</div>
<div class="wp-block-image" style="text-align: center">
<figure class="aligncenter size-full is-resized"><img class="wp-image-3008 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/06/stickman_headless_labelled.png" alt="" width="171" height="397" /><figcaption>Headless DMS</figcaption></figure>
</div>
<h2 id="why-go-headless">Why go headless?</h2>
<p>Datopian believes that shifting focus away from monolithic DMSs to a decoupled DMS approach could significantly benefit data-driven organisations. There are two main reasons for this.</p>
<h3 id="reason-1-greater-specialisation">Reason 1: greater specialisation</h3>
<p>Using a monolithic DMS, in which the front end and back end are tied together, limits the extent to which each function of the DMS can be customised. The following table demonstrates the limitations of monolithic DMSs:</p>
<figure class="wp-block-table">
<table>
<tbody>
<tr>
<th>Limitation</th>
<th>Description</th>
</tr>
<tr>
<td>Front-end and back-end development requires different programming languages</td>
<td>In the case of CKAN, front-end developers would have to install Python just to be able to do a small amount of HTML and CSS work.</td>
</tr>
<tr>
<td>Updating the front end means updating the back end</td>
<td>As updating the front-end takes much less time than updating the back-end, what should be a speedy process takes an unnecessary amount of time.</td>
</tr>
<tr>
<td>You can’t choose the front end</td>
<td>Considering that there are multiple front end frameworks out there, why not be able to choose the best one to suit your needs?</td>
</tr>
<tr>
<td>Heavyweight instances</td>
<td>Scaling through replication means replicating the whole instance, not just the front end.</td>
</tr>
</tbody>
</table>
</figure>
<p>By decoupling the head and headless part of a DMS, we can build both parts using the latest technologies and practices specialised for each purpose. It also makes life easier for data portal developers, who now don’t have to worry about tackling the back end to make changes to the front end. This way, it’s easier to find developers for either end, and data portals are cheaper, faster and more flexible to build.</p>
<h3 id="reason-2-more-options">Reason 2: unlimited options</h3>
<p>Monolithic DMSs can no longer keep up with the changing demands of users. Nowadays, users want to be able to integrate multiple sources, or push data from one database to multiple systems and devices. This is not possible with a monolithic DMS, which can only provide one back end and one front end.</p>
<p>For example, imagine a company using a DMS no longer just wants to display their data through the ‘attached’ data portal, but also wants to push this data to a smartphone/smartwatch app or a website. It can’t do this with a monolithic DMS. Neither could the company suddenly decide they wanted to have one front end (e.g. a data portal) that integrated information from multiple sources.</p>
<p>Let’s look at the different options presented by decoupling in turn.</p>
<p><strong>Option 1: push data from one database to multiple devices (the ‘one body, multiple heads’ approach).</strong></p>
<div class="wp-block-image" style="text-align: center">
<figure class="aligncenter size-full is-resized"><img class="wp-image-3010 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/06/stickman_multiple_heads.png" alt="" width="412" height="555" /><figcaption>“One body, multiple heads” diagram by Monika Popova</figcaption></figure>
</div>
<p><strong>Option 2: integrate data and content from multiple sources (the ‘one head, multiple bodies’ approach).</strong></p>
<div class="wp-block-image" style="text-align: center">
<figure class="aligncenter size-full is-resized"><img class="wp-image-3009 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/06/stickman_multiple_bodies.png" alt="" width="412" height="511" /><figcaption>“One head, multiple bodies” diagram by Monika Popova</figcaption></figure>
</div>
<h2 id="where-does-ckan-fit-into-all-of-this">Where does CKAN fit into all of this?</h2>
<p>We mentioned earlier that CKAN was operating headlessly before headlessness became cool. Back in 2010, CKAN was used in headless mode to build <a href="https://data.gov.uk/" target="_blank" rel="noreferrer noopener">data.gov.uk</a>. Nowadays, most of our clients use CKAN as a monolithic DMS, i.e. with the back end and the front end unified as one system.</p>
<p>Recently, however, we at Datopian have been building a decoupled head for CKAN in javascript, called <a href="https://github.com/datopian/frontend-v2" target="_blank" rel="noreferrer noopener">frontend v2</a>. This is already in production with a number of clients, and allows us to deliver CKAN in two pieces: the headless component, and the head. We are currently working hard to make the head even better using the latest frontend technologies, React and Next.js.</p>
<p>From the perspective of our clients, not much has changed in terms of the way they use CKAN. However, deploying CKAN in decoupled mode improves their overall experience with the software. This is because frontend v2 makes it easier for clients to integrate content and data from both DMS and CMS for unified display via the same ‘head’. This is all made possible by CKAN’s rich API.</p>
<h2 id="this-is-the-future">Is this the future</h2>
<p>As mentioned earlier, through our work on CKAN, we were fine tuning the approach to headless software years before it even became cool. Thanks to recent developments in content management, we’ve now been able to give it a name: headless DMS. You heard it here first.</p>
<h4 id="technical-appendix">Technical Appendix:</h4>
<p>There is currently no straightforward way to create unified front ends that integrate content and data. Here are some of the possible options:</p>
<ul>
<li>You start to develop a CMS (back end) in the DMS. This is far from ideal, as CMSs are good at what they do, given their rich admin UI and good structure.</li>
<li>You put the DMS in front of the CMS (i.e. replicate content into the DMS). This would mean having to replicate content into the DMS and you have to develop theming in the DMS for content.</li>
<li>You put a CMS in front of the DMS. This is even worse, as data portal functionality is data-focused, so you now have to replicate that functionality into the CMS.</li>
<li>Or, you take the side-by-side option. This would mean having to maintain two themes and have a bifurcated user experience (and you may have to replicate things like user accounts).</li>
</ul>
<p><em>Note: this is a post, written by Datopian. You can see the original post <a href="https://www.datopian.com/2020/06/12/datopian-presents-headless-dms/https://www.datopian.com/2020/06/12/datopian-presents-headless-dms/">on the Datopian Blog.</a></em></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">13435</post-id>	</item>
		<item>
		<title>As CMS is to Content, DMS is to Data</title>
		<link>https://ckan.org/2021/03/15/as-cms-is-to-content-dms-is-to-data/</link>
				<pubDate>Mon, 15 Mar 2021 11:58:47 +0000</pubDate>
		<dc:creator><![CDATA[Rufus Pollock]]></dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Data Management]]></category>
		<category><![CDATA[DMS]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data management]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=13436</guid>
				<description><![CDATA[Note: this is a post, written by Datopian You’ve heard of a content management system (CMS), but have you heard of a data management system (DMS)? In this article, we show that the two aren’t all that different. Just as many companies turn instinctively to CMSs to manage their content, we’ll explain why DMSs should [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><em>Note: this is a post, written by <a href="https://www.datopian.com/">Datopian</a></em></p>
<p>You’ve heard of a content management system (CMS), but have you heard of a data management system (DMS)? In this article, we show that the two aren’t all that different. Just as many companies turn instinctively to CMSs to manage their content, we’ll explain why DMSs should be the natural go-to for any data-driven organisation.</p>
<figure class="wp-block-image size-large"><img class="wp-image-3014" src="https://www.datopian.com/wp-content/uploads/2020/06/wordpress-1024x683.jpg" alt="" width="1024" height="683" /><figcaption><a href="https://unsplash.com/photos/zs98a0DtKL4">Photo by Stephen Phillips on Unsplash</a></figcaption></figure>
<p>Many companies are familiar with the term content management system (CMS). For those producing large amounts of content, investing in a CMS is the established practice. Type ‘content management’ into a web browser and well-worn software like WordPress and Contentful are top of the search.</p>
<p>Far fewer companies count the term ‘data management system’ (DMS) among their passive vocabulary. Enterprises producing large amounts of data, unlike their content-producing counterparts, have not traditionally enjoyed go-to solutions for managing their assets. They have only really had access to ad-hoc solutions for storing their data, like Dropbox or Sharepoint.</p>
<p>At least, until now. As a range of organisations begin collecting more and more data, the term DMS is starting escape expert circles. So, too, is knowledge about the open-source data management software CKAN.</p>
<h2 id="what-is-a-cms">What is a CMS?</h2>
<p>A content management system is a software that can be used to manage the creation, modification and display of website content. In other words, it is a tool that allows non-expert users to create a website without having to code one from scratch. A well-known CMS is WordPress.</p>
<p>A traditional CMS allows users to:</p>
<ul>
<li>Store content, such as blog posts and images</li>
<li>Edit, update and add content</li>
<li>Display themed content on a website</li>
<li>Share content internally</li>
</ul>
<h2></h2>
<h2 id="what-is-a-dms">What is a DMS?</h2>
<p>A data management system is a software that can be used to manage the storage, modification and display of data(sets) in a data portal. These could be internal data portals, used to manage data within an organisation, or open data portals, which are used to share data with the public.</p>
<p>DMSs are becoming increasingly popular among a wide range of data-driven organisations, from governments to private companies. This is because DMSs allow organisations to do much more with their data than simply store it across ad-hoc solutions like Dropbox or OneDrive. A traditional DMS allows you to:</p>
<ul>
<li>Store metadata about data stored elsewhere</li>
<li>Discover data</li>
<li>Edit, update and add data and/or metadata</li>
<li>Display and visualise data</li>
<li>Share data internally and externally</li>
</ul>
<p>CKAN is an open-source DMS, which means it can be extended to provide new features based on different user needs.</p>
<h2 id="comparing-cms-and-dms">Comparing CMS and DMS</h2>
<p>The design and function of a DMS is very similar to a CMS. Both systems are made up of the same basic components:</p>
<ul>
<li>A system for storing information</li>
<li>An interface for creating and editing information</li>
<li>A component for rendering the stored information in a user interface (UI) and often in an API</li>
</ul>
<p>You might think of a CMS and a DMS in terms of a human body, with the head as the front end and the body and legs as the back end (note: in software engineering, a distinction is made between the ‘front end’, the part of the software seen by the user, and the ‘back end’, the behind-the-scenes part of the software). Each part of the body serves a certain function.</p>
<figure class="wp-block-image size-full is-resized"><img class="wp-image-3013 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/06/stickman_labelled.png" alt="" width="171" height="555" /><figcaption>Basic structure of CMS/DMS by Monika Popova</figcaption></figure>
<hr class="wp-block-separator" />
<p><strong>TIP</strong></p>
<p>It is important to clarify here that the type of CMS and DMS under discussion in this article are traditional, or ‘monolithic’ CMSs/DMSs. For these software to function properly, each part of the body has to work together as a unified system. More recently, new approaches to management system software (known as headlessness or decoupling), in which the different parts operate independently of one another, are gaining traction. Look out for an upcoming post on this from us soon!</p>
<hr class="wp-block-separator" />
<p>Let’s compare the two management systems in more detail.</p>
<figure class="wp-block-table is-style-regular">
<table>
<tbody>
<tr>
<th>Part</th>
<th>Monolithic DMS</th>
<th>Monolithic CMS</th>
</tr>
<tr>
<td>storage</td>
<td>data catalog storing metadata about data stored elsewhere (and sometimes the data itself)</td>
<td>content repository</td>
</tr>
<tr>
<td>API</td>
<td>delivers data</td>
<td>delivers content</td>
</tr>
<tr>
<td>admin interface</td>
<td>allows users to edit and add to datasets</td>
<td>allows users to edit content</td>
</tr>
<tr>
<td>renderer</td>
<td>displays datasets on a data portal</td>
<td>displays themed content on a webpage</td>
</tr>
</tbody>
</table>
</figure>
<p>Whereas a CMS publishes web pages, a DMS publishes datasets. That being said, new approaches to data management make it possible to display both content (such as blog posts) and datasets via the same front end. This is thanks to the ‘headless’ movement within content and data management, which forms the subject of an upcoming Datopian post.</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">13436</post-id>	</item>
		<item>
		<title>Leveraging CKAN for publishing open data in Germany</title>
		<link>https://ckan.org/2021/03/12/leveraging-ckan-for-publishing-open-data-in-germany/</link>
				<pubDate>Fri, 12 Mar 2021 09:25:47 +0000</pubDate>
		<dc:creator><![CDATA[Rufus Pollock]]></dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[ckan]]></category>
		<category><![CDATA[data security]]></category>
		<category><![CDATA[datopian]]></category>
		<category><![CDATA[open data]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=13430</guid>
				<description><![CDATA[Effective data management is crucial for public administrations, who collect large amounts of diverse data on a daily basis. They differ from other data-collecting organizations in the sense that the data they produce arguably can have more impact outside of the organisation than it can inside it. Open data, i.e. the provision of administrative data [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>Effective data management is crucial for public administrations, who collect large amounts of diverse data on a daily basis. They differ from other data-collecting organizations in the sense that the data they produce arguably can have more impact outside of the organisation than it can inside it. Open data, i.e. the provision of administrative data for public use and dissemination, is the cornerstone of open government.</p>
<figure class="wp-block-image size-large is-resized"><img class="wp-image-2948 aligncenter" src="https://www.datopian.com/wp-content/uploads/2020/11/bundestag-ricardo-gomez-angel-1024x770.jpg" alt="" width="610" height="458" /><figcaption><a href="https://unsplash.com/photos/Q1qexQFNBBI">Looking out of the dome of the German parliament building, which is open to represent the dissemination of ideas. Photo by Ricardo Gomez Angel on Unsplash.</a></figcaption></figure>
<p>Alongside the ‘eGovernment Act (EGovG)’, the Federal Government’s ‘Digital Administration 2020’ programme made working towards digitisation in Germany a legal requirement for public administrations. For the first time in the federal republic’s history, the federal government outlined a plan for the provision of open data by means of the <a href="https://www.bmi.bund.de/DE/themen/moderne-verwaltung/open-government/open-data/open-data-node.html" target="_blank" rel="noreferrer noopener">open data provision in Section 12a EGovG</a>.</p>
<p>N.B. In this context, open data is defined as data that is made publicly accessible under a free licence and may be used and reused without restrictions.</p>
<h2 id="but…-what-about-data-security">But… what about data security?</h2>
<p>Despite these legal initiatives, many administrations still hold back when it comes to publishing data openly. Data privacy is a deep-rooted concern among many Germans and open data is thus often greeted with suspicion. In order to make the most of the opportunity presented by the country’s new legislation, German public authorities must be granted a better understanding of the advantages created by open data.</p>
<p>After all, the advantages are considerable. Firstly, open data allows public administrations to supplement their own data with that of other organizations, thereby strengthening their basis for informed decision making. A great example is the <a href="https://open.nrw/" target="_blank" rel="noreferrer noopener">Open.NRW</a>, as well as the <a href="https://www.vergabe.nrw.de/" target="_blank" rel="noreferrer noopener">Vergabeportal.NRW</a>, which facilitate the exchange of open data between authorities in the German state of Nordrhein-Westfalen. In this sense, publishing public data openly affords both administrations and the general public a level of autonomy that would not otherwise have been possible when it comes to making fact-based, accountable decisions. It also encourages public trust in government and enables new forms of cooperation and communication between civil society, business and the state.</p>
<h2 id="open-data-success-stories">Open data success stories</h2>
<p>Before public data is published openly, the authorities publishing it cannot know exactly what will happen to their data, and this can feel daunting. However, public administrations should try to think of this uncertainty as a positive. It is perhaps obvious to say that the chances of one person in a single organization coming up with the optimal use for that organization’s data are slim. If you really want to unlock your data’s potential, then you need to let everyone look at it, because the likelihood is that the best idea for how to use your data will be discovered by someone else.</p>
<p>Moreover, there are numerous open data success stories in public administration, and many of these were aided greatly by CKAN. In Great Britain, the home of the now international NGO the <a href="https://okfn.org/" target="_blank" rel="noreferrer noopener">Open Knowledge Foundation</a>, many institutions are already reaping the benefits of open data. With the help of Open Knoweledge Foundation and Datopian, the government of Northern Ireland has built a CKAN-based data portal, for which new use cases are constantly emerging. Belfast City Council, for example, has identified commercial properties that were marked as available by estate agents, when in fact they were being used by businesses, which has enabled the Government of Northern Ireland to collect £350,000 in unpaid taxes.</p>
<p>To encourage more such use cases, the initiative <a href="https://www.opendatani.gov.uk/" target="_blank" rel="noreferrer noopener">‘Open Data Northern Ireland’</a> has established a fund to support the design of open, data-driven apps. Anyone who has an idea for an app that uses open data to somehow benefit the public is eligible to receive a grant of between £300-£5000. As part of the initiative, the authorities have also created an online form where citizens can make suggestions for datasets that they would like to see collected.</p>
<figure class="wp-block-image size-large"><img class="wp-image-2949" src="https://www.datopian.com/wp-content/uploads/2020/11/open-data-NI-dashboard-1024x610.png" alt="" width="1024" height="610" /><figcaption><a href="https://www.opendatani.gov.uk/">Open Data Northern Ireland dashboard.</a></figcaption></figure>
<p>Like many of public administrations in the EU, the cities of Scotland also wanted to use open-source software to empower their open data programme. Some data sets on their CKAN portal have received thousands of hits, with some unlikely data sets proving very popular, such as one that provides information on cemeteries in the city of Sterling. Following the publication of this data set, which provides records of gravestones, several citizens have contacted the authorities to inform them of inaccuracies. This is a great example of how public administrations can use CKAN open data portals to improve the quality of existing data.</p>
<h2 id="promoting-open-data-in-europe-and-germany">Promoting open data in Europe and Germany</h2>
<p>Upon Britain’s exit from the EU, a large part of Europe’s open data knowledge will most likely go with them. With the statutory Open Data regulation in § 12a EGovG and the government programme “Digital Administration 2020”, Germany is already on the right path to filling this knowledge gap.</p>
<p><em>Note: this is a post, written by <a href="https://www.datopian.com/">Datopian</a>. You can see the original post <a href="https://www.datopian.com/2020/11/17/leveraging-ckan-for-publishing-open-data-in-germany/">on the Datopian Blog</a>.</em></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">13430</post-id>	</item>
		<item>
		<title>Repeating Subfields and Multiple Text with ckanext-scheming</title>
		<link>https://ckan.org/2021/02/16/scheming-subfields/</link>
				<pubDate>Tue, 16 Feb 2021 22:08:20 +0000</pubDate>
		<dc:creator><![CDATA[Ian Ward]]></dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Feature]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=13055</guid>
				<description><![CDATA[ckanext-scheming 2.1 now support Datasets with repeating subfields and repeating text fields. Repeating subfieds support custom snippets and validation just like regular fields. This work is inspired by the excellent ckanext-composite extension and replaces ckanext-repeating repeating_text fields. You must be using CKAN 2.8 or later and a custom IPackageController plugin to index datasets with repeating [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="https://github.com/ckan/ckanext-scheming">ckanext-scheming</a> 2.1 now support Datasets with repeating subfields and repeating text fields. Repeating subfieds support custom snippets and validation just like regular fields.</p>
<p>This work is inspired by the excellent <a href="https://github.com/EnviDat/ckanext-composite">ckanext-composite</a> extension and replaces <a href="https://github.com/open-data/ckanext-repeating">ckanext-repeating</a> <code>repeating_text</code> fields.</p>
<p>You must be using CKAN 2.8 or later and a custom IPackageController plugin to index datasets with repeating subfields.</p>
<h2 id="repeating-subfields">Repeating Subfields</h2>
<p>Repeating subfields let you define a group of fields to repeat within dataset and resource forms. All of the features available for normal ckanext-scheming fields can be used in subfields.</p>
<p><img src="https://excess.org/images/repeating_subfields.gif" alt="Repeating Subfields" /></p>
<p><code>repeating_label</code> may be used to provide a singular label for each group of subfields.</p>
<p><code>repeating_subfields</code> contains a list of field definitions to repeat.</p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-attr">- field_name:</span> submission
<span class="hljs-attr">  label:</span> Submissions
<span class="hljs-attr">  repeating_label:</span> Submission
<span class="hljs-attr">  repeating_subfields:</span>

<span class="hljs-attr">  - field_name:</span> date
<span class="hljs-attr">    label:</span> Date
<span class="hljs-attr">    preset:</span> date
<span class="hljs-attr">    required:</span> <span class="hljs-literal" style="color: rgb(104, 150, 186);">true</span>

<span class="hljs-attr">  - field_name:</span> text
<span class="hljs-attr">    label:</span> Text
<span class="hljs-attr">    preset:</span> markdown
<span class="hljs-attr">    required:</span> <span class="hljs-literal" style="color: rgb(104, 150, 186);">true</span>

<span class="hljs-attr">  - field_name:</span> flags
<span class="hljs-attr">    label:</span> Flags
<span class="hljs-attr">    preset:</span> multiple_checkbox
<span class="hljs-attr">    choices:</span>
<span class="hljs-attr">    - label:</span> Draft
<span class="hljs-attr">      value:</span> D
<span class="hljs-attr">    - label:</span> Approved
<span class="hljs-attr">      value:</span> A
<span class="hljs-attr">    - label:</span> Response Required
<span class="hljs-attr">      value:</span> R
</pre>
<p>Data stored in subfields is represented as lists of JSON objects in the API.</p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-string" style="color: rgb(224, 196, 108);">"submission"</span>: [
  {
    <span class="hljs-attr">"date"</span>: <span class="hljs-string" style="color: rgb(224, 196, 108);">"2021-02-01"</span>,
    <span class="hljs-attr">"text"</span>: <span class="hljs-string" style="color: rgb(224, 196, 108);">"an example submission"</span>,
    <span class="hljs-attr">"flags"</span>: [
      <span class="hljs-string" style="color: rgb(224, 196, 108);">"D"</span>
    ]
  },
  {
    <span class="hljs-attr">"date"</span>: <span class="hljs-string" style="color: rgb(224, 196, 108);">"2021-02-05"</span>,
    <span class="hljs-attr">"text"</span>: <span class="hljs-string" style="color: rgb(224, 196, 108);">"another one"</span>,
    <span class="hljs-attr">"flags"</span>: [
      <span class="hljs-string" style="color: rgb(224, 196, 108);">"A"</span>,
      <span class="hljs-string" style="color: rgb(224, 196, 108);">"R"</span>
    ]
  }
],</pre>
<p>Normal and custom validation rules apply and are displayed in the form by referencing the subfield group and the field with the error, e.g. “Submission 2: Text: Missing value”</p>
<h3 id="indexing-repeating-subfields">Indexing Repeating Subfields</h3>
<p>Repeating subfields can’t be indexed in Solr with CKAN’s default schema and indexing code since they expect extra fields to contain simple string values. Create a new <a href="https://docs.ckan.org/en/2.9/extensions/plugin-interfaces.html?#ckan.plugins.interfaces.IPackageController.before_index">IPackageController <code>before_index</code> plugin</a> and Solr schema to handle indexing repeating subfields the best way for your own site.</p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-class"><span class="hljs-keyword" style="color: rgb(203, 120, 50);">class</span> <span class="hljs-title">SubmissionsIndexPlugin</span><span class="hljs-params" style="color: rgb(185, 185, 185);">(p.SingletonPlugin)</span>:</span>
    <span class="hljs-string" style="color: rgb(224, 196, 108);">"""
    Map submission dataset fields to Solr fields
    """</span>
    p.implements(p.IPackageController, inherit=<span class="hljs-keyword" style="color: rgb(203, 120, 50);">True</span>)

    <span class="hljs-function"><span class="hljs-keyword" style="color: rgb(203, 120, 50);">def</span> <span class="hljs-title">before_index</span><span class="hljs-params" style="color: rgb(185, 185, 185);">(self, data_dict)</span>:</span>
        flags = set()
        text = []
        <span class="hljs-keyword" style="color: rgb(203, 120, 50);">for</span> sub <span class="hljs-keyword" style="color: rgb(203, 120, 50);">in</span> data_dict.get(<span class="hljs-string" style="color: rgb(224, 196, 108);">'submission'</span>, []):
            text.append(sub[<span class="hljs-string" style="color: rgb(224, 196, 108);">'text'</span>])
            flags |= set(sub[<span class="hljs-string" style="color: rgb(224, 196, 108);">'flags'</span>])

        <span class="hljs-comment" style="color: rgb(127, 127, 127);"># replace list of dicts with plain text to prevent Solr errors</span>
        data_dict[<span class="hljs-string" style="color: rgb(224, 196, 108);">'submission'</span>] = <span class="hljs-string" style="color: rgb(224, 196, 108);">'\n'</span>.join(text)
        <span class="hljs-comment" style="color: rgb(127, 127, 127);"># index flags present in any submission</span>
        data_dict[<span class="hljs-string" style="color: rgb(224, 196, 108);">'submission_flags'</span>] = sorted(flags)

        <span class="hljs-keyword" style="color: rgb(203, 120, 50);">return</span> data_dict
</pre>
<p>For <code>submission_flags</code> to accept multiple values we must add a multivalued field to our Solr schema <code>&lt;fields&gt;</code> configuration:</p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-tag">&lt;<span class="hljs-name" style="color: rgb(203, 120, 50);">field</span> <span class="hljs-attr">name</span>=<span class="hljs-string" style="color: rgb(224, 196, 108);">"submission_flags"</span> <span class="hljs-attr">type</span>=<span class="hljs-string" style="color: rgb(224, 196, 108);">"string"</span> <span class="hljs-attr">indexed</span>=<span class="hljs-string" style="color: rgb(224, 196, 108);">"true"</span> <span class="hljs-attr">stored</span>=<span class="hljs-string" style="color: rgb(224, 196, 108);">"true"</span> <span class="hljs-attr">multiValued</span>=<span class="hljs-string" style="color: rgb(224, 196, 108);">"true"</span>/&gt;</span></pre>
<p>These new fields will now be available for use with CKAN <a href="https://docs.ckan.org/en/2.9/user-guide.html#advanced-search">advanced search</a> e.g. <code>submission:example</code> or <code>submission_flags:D</code>.</p>
<p>If you don’t need advanced search or faceting based on repeating subfields you may use the included <code>scheming_nerf_index</code> plugin. This plugin passes repeating fields to Solr as JSON strings to prevent indexing errors instead and doesn’t require a customized Solr schema.</p>
<p>Future CKAN support for dynamic fields in Solr will simplify this required configuration.</p>
<h3 id="repeating-subfields-future">Future Work</h3>
<p>Some features not yet supported:</p>
<ul>
<li>validating the number of subfield groups (e.g. requiring at least one)</li>
<li>nesting repeating subfields</li>
</ul>
<p>If you need these features consider discussing your work on a <a href="https://github.com/ckan/ckanext-scheming/issues/new">new issue</a> and working a pull request.</p>
<h2 id="multiple-text">Multiple Text</h2>
<p>Multiple text fields improve on the <code>repeating_text</code> fields from ckanext-repeating with a dynamic form with add and remove buttons.</p>
<p><img src="https://excess.org/images/multiple_text.gif" alt="Multiple Text" /></p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-attr">- field_name:</span> contributors
<span class="hljs-attr">  label:</span> Contributors
<span class="hljs-attr">  preset:</span> multiple_text
</pre>
<p>Data stored in repeating text fields is represented as lists of strings in the API.</p>
<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(43, 43, 43) none repeat scroll 0% 0%; color: rgb(186, 186, 186);"><span class="hljs-string" style="color: rgb(224, 196, 108);">"contributors"</span>: [
  <span class="hljs-string" style="color: rgb(224, 196, 108);">"Person A"</span>,
  <span class="hljs-string" style="color: rgb(224, 196, 108);">"Person B"</span>,
  <span class="hljs-string" style="color: rgb(224, 196, 108);">"Person C"</span>
],</pre>
<p><code>required: true</code> may be used to require at least one entry. Per-field and other types of validation are not yet implemented. Add a comment to the <a href="https://github.com/ckan/ckanext-scheming/issues/276">multiple text validation issue</a> if you would like to work on this feature.</p>
<p><a href="https://excess.org/scheming-subfields/">original post</a></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">13055</post-id>	</item>
		<item>
		<title>New patch releases available, upgrade now your CKAN site!</title>
		<link>https://ckan.org/2021/02/10/new-patch-releases-available-upgrade-now-your-ckan-site/</link>
				<pubDate>Wed, 10 Feb 2021 11:01:49 +0000</pubDate>
		<dc:creator><![CDATA[Adrià Mercader]]></dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=13036</guid>
				<description><![CDATA[The CKAN technical team is happy to announce that the new patch releases for 2.9.x, 2.8.x and 2.7.x are now available to download and install. These patch releases fix important bugs and security issues, so users should upgrade as soon as possible to the latest patch release for the CKAN version they are using. Patch [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>The CKAN technical team is happy to announce that the new patch releases for 2.9.x, 2.8.x and 2.7.x are now available to download and install.</p>
<p>These patch releases fix important bugs and security issues, so users should upgrade as soon as possible to the latest patch release for the CKAN version they<br />
are using.</p>
<p>Patch release upgrades are very straight-forward and do not contain any backwards incompatible changes.</p>
<div>Please refer to the CHANGELOG file to see what&#8217;s included:</div>
<ul>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-9-2-2021-02-10">https://docs.ckan.org/en/latest/changelog.html#v-2-9-2-2021-02-10</a></li>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-8-7-2021-02-10">https://docs.ckan.org/en/latest/changelog.html#v-2-8-7-2021-02-10</a></li>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-7-10-2021-02-10">https://docs.ckan.org/en/latest/changelog.html#v-2-7-10-2021-02-10</a></li>
</ul>
<p>In case of doubt don&#8217;t hesitate to ask for support in the mailing list or the <a href="https://gitter.im/ckan/chat">Gitter channel</a>.</p>
<p>As stated in the <a href="https://docs.ckan.org/en/latest/maintaining/upgrading/index.html">release policy</a>, the latest patch release is the only one officially supported.</p>
<p>For details on how to upgrade, see the following links depending on your install method:</p>
<p><a href="http://docs.ckan.org/en/latest/maintaining/upgrading/upgrade -package-to-patch-release.html">Package upgrade</a></p>
<p><a href="http://docs.ckan.org/en/latest/maintaining/upgrading/upgrade-source.html">Source upgrade</a></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">13036</post-id>	</item>
		<item>
		<title>New patch releases available for 2.9.x, 2.8.x and 2.7.x</title>
		<link>https://ckan.org/2020/10/21/new-patch-releases-available-for-2-9-x-2-8-x-and-2-7-x/</link>
				<pubDate>Wed, 21 Oct 2020 12:39:21 +0000</pubDate>
		<dc:creator><![CDATA[Adrià Mercader]]></dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=11937</guid>
				<description><![CDATA[The CKAN technical team is happy to announce that the new patch releases for 2.9.x, 2.8.x and 2.7.x are now available to download and install. These patch releases fix important bugs and security issues, so users should upgrade as soon as possible to the latest patch release for the CKAN version they are using. Patch [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>The CKAN technical team is happy to announce that the new patch releases for 2.9.x, 2.8.x and 2.7.x are now available to download and install.</p>
<p>These patch releases fix important bugs and security issues, so users should upgrade as soon as possible to the latest patch release for the CKAN version they<br />
are using.</p>
<p>Patch release upgrades are very straight-forward and do not contain any backwards incompatible changes.</p>
<div>Please refer to the CHANGELOG file to see what&#8217;s included:</div>
<ul>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-9-1-2020-10-21">https://docs.ckan.org/en/latest/changelog.html#v-2-9-1-2020-10-21</a></li>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-8-6-2020-10-21">https://docs.ckan.org/en/latest/changelog.html#v-2-8-6-2020-10-21</a></li>
<li><a href="https://docs.ckan.org/en/latest/changelog.html#v-2-7-9-2020-10-21">https://docs.ckan.org/en/latest/changelog.html#v-2-7-9-2020-10-21</a></li>
</ul>
<p>In case of doubt don&#8217;t hesitate to ask for support in the mailing list or the <a href="https://gitter.im/ckan/chat">Gitter channel</a>.</p>
<p>As stated in the <a href="https://docs.ckan.org/en/latest/maintaining/upgrading/index.html">release policy</a>, the latest patch release is the only one officially supported.</p>
<p>For details on how to upgrade, see the following links depending on your install method:</p>
<p><a href="http://docs.ckan.org/en/latest/maintaining/upgrading/upgrade -package-to-patch-release.html">Package upgrade</a></p>
<p><a href="http://docs.ckan.org/en/latest/maintaining/upgrading/upgrade-source.html">Source upgrade</a></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">11937</post-id>	</item>
		<item>
		<title>New CKAN 2.9 version released, patch releases for 2.7 and 2.8 available</title>
		<link>https://ckan.org/2020/08/05/ckan-2-9-release/</link>
				<pubDate>Wed, 05 Aug 2020 10:35:06 +0000</pubDate>
		<dc:creator><![CDATA[Adrià Mercader]]></dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=10020</guid>
				<description><![CDATA[The CKAN Tech team is happy to announce the release of CKAN 2.9. The CHANGELOG contains all details about this release. Check the installation documentation for instructions on how to get it up and running, if you are planning on upgrading an existing site there are also upgrade instructions. Make sure to check the migration [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>The CKAN Tech team is happy to announce the release of CKAN 2.9.</p>
<p>The <a href="https://docs.ckan.org/en/2.9/changelog.html#v-2-9-0-2020-08-05">CHANGELOG</a> contains all details about this release. Check the <a href="https://docs.ckan.org/en/2.9/maintaining/installing/index.html">installation</a> documentation for instructions on how to get it up and running, if you are planning on upgrading an existing site there are also <a href="https://docs.ckan.org/en/2.9/maintaining/upgrading/index.html">upgrade</a> instructions. Make sure to check the <a href="https://docs.ckan.org/en/2.9/changelog.html#migration-notes">migration notes</a>  as there are important considerations and changes needed on existing sites.</p>
<h2>What&#8217;s new</h2>
<p>Here are some highlights of what&#8217;s included in this release:</p>
<ul>
<li><a href="https://docs.ckan.org/en/2.9/maintaining/authorization.html#dataset-collaborators">Dataset collaborators</a>, for more granular permissions management at the dataset level</li>
</ul>
<p><a href="https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1.png"><img class="aligncenter wp-image-10021" src="https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-300x164.png" alt="Dataset collaborators" width="600" height="328" srcset="https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-300x164.png 300w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-1024x561.png 1024w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-768x420.png 768w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-1536x841.png 1536w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-Collaborators-Dataset-CKAN1-2048x1121.png 2048w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<ul>
<li><a href="https://docs.ckan.org/en/2.9/api/index.html#api-authentication">API Tokens</a>  allow more flexible and secure integrations with other tools (legacy API keys are being phased out)</li>
</ul>
<p><a href="https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN.png"><img class="aligncenter wp-image-10022" src="https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-300x179.png" alt="" width="600" height="357" srcset="https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-300x179.png 300w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-1024x610.png 1024w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-768x457.png 768w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-1536x914.png 1536w, https://ckan.org/files/2020/08/Screenshot_2020-08-05-amercader-Users-CKAN-2048x1219.png 2048w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>&nbsp;</p>
<ul>
<li>The new <a href="https://docs.ckan.org/en/2.9/api/index.html#ckan.logic.action.update.package_revise">package_revise</a> API action allows safe concurrent updates and simultaneous uploads</li>
</ul>
<p>&nbsp;</p>
<p>The <a href="https://docs.ckan.org/en/2.9/changelog.html#v-2-9-0-2020-08-05">CHANGELOG</a> covers all changes in detail.</p>
<h2>For developers</h2>
<p>There are many more changes under the hood to make live easier for developers. CKAN 2.9 culminates the migration to <a href="https://flask.palletsprojects.com/en/1.1.x/">Flask</a>, and adds support for Python 3. CKAN 2.9 will be the only transition version where both Python 2 and 3 are supported. The next CKAN version will only support Python 3. There is a migration guide for extensions available on this <a href="https://github.com/ckan/ckan/wiki/Python-3-migration-guide-for-extensions">wiki page</a>.</p>
<p>Across the board there has been work to modernize different components and replace them with modern alternatives: new pytest based test suite, <a href="https://docs.ckan.org/en/2.9/maintaining/cli.html">CLI and development server</a>, <a href="https://docs.ckan.org/en/2.9/contributing/database-migrations.html">database migrations</a>, <a href="https://docs.ckan.org/en/2.9/theming/webassets.html">static assets</a>, etc.</p>
<h2>Patch releases for 2.7 and 2.8</h2>
<p>Existing sites should upgrade to the latest patch releases (2.7.8 and 2.8.5) to include fixes and address security issues. The latest patch release is the only one supported by the CKAN team. For details on how to upgrade, see the following links depending on your install method: <a href="https://docs.ckan.org/en/2.9/maintaining/upgrading/index.html">Upgrading CKAN</a>.</p>
<p>If you find any issue, you can let the Tech team know in the <a href="https://groups.google.com/a/ckan.org/g/ckan-dev">mailing list</a> or the <a href="https://gitter.im/ckan/chat">Gitter channel</a>.</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">10020</post-id>	</item>
		<item>
		<title>Subscribe to datasets: new CKAN feature explained</title>
		<link>https://ckan.org/2020/07/21/subscribe-to-datasets-new-ckan-feature-explained/</link>
				<pubDate>Tue, 21 Jul 2020 06:59:22 +0000</pubDate>
		<dc:creator><![CDATA[Paul Walsh]]></dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[ckan]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=9945</guid>
				<description><![CDATA[Datopian has launched a new CKAN feature that allows users to subscribe to datasets. This is an opt-in feature that sends users an email notification when a dataset to which they are subscribed is changed or updated. Let’s take a look at the feature in more detail. Datopian are the co-creators, co-stewards and one of [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>Datopian has launched a new CKAN feature that allows users to subscribe to datasets. This is an opt-in feature that sends users an email notification when a dataset to which they are subscribed is changed or updated. Let’s take a look at the feature in more detail.</p>
<p><span id="more-9945"></span></p>
<p>Datopian are the co-creators, co-stewards and one of the main developers of CKAN. They work with government, NGO and enterprise clients worldwide to build CKAN-based, data-driven solutions, from open data portals to internal data management systems. Through monitoring client use cases for data across the private, public and third sectors, Datopian ensure that CKAN is responding to genuine challenges faced by real organizations. As with many of their feature releases, the suscribe to datasets option was built to address client needs.</p>
<p>&nbsp;</p>
<figure><img src="https://www.datopian.com/assets/img/letterbox-dele-oke.00ebbd34.jpg" alt="Letterbox" /><figcaption><a href="https://unsplash.com/photos/P1I67ke0bAU">Photo by Dele Oke on Unsplash</a></figcaption></figure>
<h2 id="why-subscribe-to-datasets-with-ckan"><a class="header-anchor" href="https://www.datopian.com/blog/2020/06/16/ckan-subscribe-datasets-longer-version/#why-subscribe-to-datasets-with-ckan">#</a>Why subscribe to datasets with CKAN?</h2>
<p>In order to provide clients with a robust messaging system, Datopian needed to build a feature outside of the main application process.</p>
<p>Before Datopian developed a subscribe to datasets feature, data portal users had no good way of finding out about changes to datasets. Approaches to notifying users of changes include using RSS feeds or CKAN’s built-in email integration. However, these approaches were not applicable for their client’s context because:</p>
<ul>
<li>Some datasets and resources can change rapidly, and many different types of stakeholders can subscribe to change notifications. This means that anywhere from 50,000 to 200,000 notifications may be broadcast in a given month.</li>
<li>Datopian&#8217;s client wants to extend the notification feature to support additional notification channels as well as email. A next iteration will add SMS notifications, giving users the choice to receive notifications by SMS, email, or both.</li>
</ul>
<p>&nbsp;</p>
<p>Another advantage of the feature is that the granularity is high. Users can currently receive the following information via email notifications:</p>
<ul>
<li>The name of the datasets in which a change has taken place.</li>
<li>Whether the change was applied to a whole dataset, or a single resource.</li>
<li>Whether there were changes to the metadata.</li>
</ul>
<p>&nbsp;</p>
<p>Here’s an example notification:</p>
<figure><img src="https://www.datopian.com/assets/img/CKAN-subscribe-screenshot.b3407900.png" alt="Screenshot" height="200" /><figcaption>Screenshot section of an example email notification</figcaption></figure>
<h2 id="overview"><a class="header-anchor" href="https://www.datopian.com/blog/2020/06/16/ckan-subscribe-datasets-longer-version/#overview">#</a>Overview</h2>
<figure><img src="https://www.datopian.com/assets/img/CKAN_subscribe_1.8f626ddd.jpg" alt="Subscription diagram" /><figcaption>Fig 1.1. Diagram demonstrates that data curators edit the metadata and data of a dataset or resource to which a user is subscribed.</figcaption></figure>
<figure><img src="https://www.datopian.com/assets/img/CKAN_subscribe_2.52b798eb.jpg" alt="Subscription diagram 2" /><figcaption>Fig 1.2. Diagram shows, at a high level, the technical design of the data subscription service, including how it interacts with CKAN.</figcaption></figure>
<h2 id="current-features"><a class="header-anchor" href="https://www.datopian.com/blog/2020/06/16/ckan-subscribe-datasets-longer-version/#current-features">#</a>Current features</h2>
<ol>
<li>Configure notification frequency &#8211; system administrators can determine the frequency with which users receive email notifications. This is particularly helpful for users subscribed to very large datasets that are updated multiple times per minute/hour.</li>
<li>Disable notifications for certain datasets &#8211; system administrators may opt to disable notifications for certain datasets for a number of reasons. In particular, companies using CKAN data portals may choose to disable notifications for datasets that are updated frequently, should the cost of mass emailing become too high.</li>
<li>Subscribe to new datasets &#8211; CKAN users can receive emails notifying them when new datasets are added to the portal. This is particularly helpful for users monitoring all portal activity.</li>
</ol>
<p>&nbsp;</p>
<h2 id="how-can-i-get-the-new-feature"><a class="header-anchor" href="https://www.datopian.com/blog/2020/06/16/ckan-subscribe-datasets-longer-version/#how-can-i-get-the-new-feature">#</a>How can I get the new feature?</h2>
<p>The data subscriptions service is currently available for use. If you are interested in deploying it against your existing CKAN installation, please reach out to us by visiting the project on GitHub <a href="https://github.com/datopian/data-subscriptions" target="_blank" rel="noopener noreferrer">here</a> and creating an issue. Additionally, <a href="https://www.datopian.com/contact/" target="_blank" rel="noopener noreferrer">contact Datopian</a> to discuss how we can deploy a data subscription integration for your platform.</p>
<p>&nbsp;</p>
<p><em>Want to work with Datopian? We are data management experts providing open-source tooling and related services to organisations worldwide. Check our <a href="https://www.datopian.com/" target="_blank" rel="noopener noreferrer">website</a> for more information or <a href="https://www.datopian.com/contact/" target="_blank" rel="noopener noreferrer">contact us</a>.</em></p>
<p>© Datopian (CC Attribution-Sharealike (by-sa)).</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">9945</post-id>	</item>
		<item>
		<title>Getting CKAN 2.9 over the line</title>
		<link>https://ckan.org/2020/07/10/getting-ckan-2-9-over-the-line/</link>
				<pubDate>Fri, 10 Jul 2020 14:46:26 +0000</pubDate>
		<dc:creator><![CDATA[Adrià Mercader]]></dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=9853</guid>
				<description><![CDATA[The CKAN tech team has started the formal process of releasing the next CKAN 2.9 version. This will be the most significant CKAN version so far, packing a host of new features and improvements at all levels, but also important internal changes under the hood that will allow it to evolve and grow in the [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>The CKAN tech team has started the formal process of releasing the next CKAN 2.9 version. This will be the most significant CKAN version so far, packing a host of new features and improvements at all levels, but also important internal changes under the hood that will allow it to evolve and grow in the future.</p>
<p>We will cover the new features in much more detail in future posts, but expect Python 3 support, a completely revamped interface for tracking changes in datasets over time, more granular permissions at the dataset level, API tokens, concurrent safe API endpoints and much more.</p>
<p>CKAN is a community-led project and this has really shown in the build up towards the 2.9 version, which has received patches from over 100 contributors, more than any CKAN version before. Now that we are at the final stages, all CKAN friends can help make this the best version ever.</p>
<p>Here&#8217;s how you can help:</p>
<ul>
<li><img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f50e.png" alt="🔎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Testing, testing, testing! Help us iron out issues by giving the new version a go. <a href="https://beta.ckan.org">https://beta.ckan.org</a> should contain the latest release branch.</li>
<li><img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f47e.png" alt="👾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> If you are comfortable installing CKAN, you can do a <a href="https://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html">source install</a> using the <code>dev-v2.9</code> branch. It&#8217;s especially useful to test it with extensions and non-default configurations.</li>
<li><img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f40d.png" alt="🐍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> We mentioned that CKAN 2.9 is the first version to support Python 3, but there are still several extensions that haven&#8217;t been ported. <a href="https://github.com/ckan/ckan/wiki/Python-3-migration-guide-for-extensions">This page</a> in our wiki lists the most popular and their status. If your organization uses any of them please consider contributing Python 3 support for it. The page contains details on the steps needed, and there are several extensions where work is already under way.</li>
<li><img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Translations. If you are a non-English speaker and want to help make CKAN available in as many languages as possible you can register to Transifex and use the online editor to edit the <a href="https://www.transifex.com/okfn/ckan/">2.9 resource</a>.</li>
</ul>
<p>&nbsp;</p>
<p>Please flag any issues you find during testing in the CKAN repository <a href="https://github.com/ckan/ckan/issues">issue tracker</a>, or drop by the <a href="https://gitter.im/ckan/chat">Gitter channel</a> if you have any question.</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
Featured image by <a href="https://pixabay.com/users/skeeze-272447/">skeeze</a> from <a href="https://pixabay.com/">Pixabay</a></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">9853</post-id>	</item>
		<item>
		<title>Istanbul Metropolitan Municipality (IMM) Launches CKAN Open Data Portal</title>
		<link>https://ckan.org/2020/06/22/istanbul-metropolitan-municipality-imm-launches-ckan-open-data-portal/</link>
				<pubDate>Mon, 22 Jun 2020 11:27:56 +0000</pubDate>
		<dc:creator><![CDATA[Paul Walsh]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Partners]]></category>
		<category><![CDATA[ckan]]></category>
		<category><![CDATA[open data]]></category>
		<category><![CDATA[open data portal]]></category>

		<guid isPermaLink="false">https://ckan.org/?p=9751</guid>
				<description><![CDATA[Istanbul, one of the largest cities in Europe, has launched its Open Data Portal powered by CKAN. The initial announcement was made by Mayor Imamoglu on January 18th, 2020. Since the portal&#8217;s launch, several design enhancements and data request workflows have been implemented as customizations on top of stock CKAN capabilities and plugins. The portal [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><span style="font-weight: 400;">Istanbul, one of the largest cities in Europe, has launched its <a href="https://data.ibb.gov.tr/">Open Data Portal</a> </span><span style="font-weight: 400;">powered by </span><span style="font-weight: 400;">CKAN</span><span style="font-weight: 400;">. The initial announcement was made by </span><a href="https://www.ibb.istanbul/en/CorporateUnit/Detail/2"><span style="font-weight: 400;">Mayor Imamoglu</span></a><span style="font-weight: 400;"> on January 18th, 2020.</span></p>
<p><span id="more-9751"></span></p>
<p><span style="font-weight: 400;">Since the portal&#8217;s launch, several design enhancements and data request workflows have been implemented as customizations on top of stock CKAN capabilities and plugins. The portal is available in both English and Turkish. </span></p>
<div id="attachment_9752" style="width: 310px" class="wp-caption alignnone"><a href="https://ckan.org/files/2020/06/Istanbul-portal.png"><img aria-describedby="caption-attachment-9752" class="size-medium wp-image-9752" src="https://ckan.org/files/2020/06/Istanbul-portal-300x166.png" alt="" width="300" height="166" srcset="https://ckan.org/files/2020/06/Istanbul-portal-300x166.png 300w, https://ckan.org/files/2020/06/Istanbul-portal-1024x566.png 1024w, https://ckan.org/files/2020/06/Istanbul-portal-768x425.png 768w, https://ckan.org/files/2020/06/Istanbul-portal-1536x849.png 1536w, https://ckan.org/files/2020/06/Istanbul-portal.png 1570w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-9752" class="wp-caption-text">The IMM Open Data Portal</p></div>
<p><span style="font-weight: 400;">At the time of writing this post, the portal holds:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">More than 120 datasets, amounting to 50 GB of raw data.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">More than 120 new dataset requests, over 60% of which have been resolved.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Around 500 registered users.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">The IMM open data portal is one of the first CKAN portals to offer search integration with </span><a href="https://datasetsearch.research.google.com/"><span style="font-weight: 400;">Google Datasets</span></a><span style="font-weight: 400;">. The CIO of IMM, </span><a href="https://www.ibb.istanbul/en/CorporateUnit/Detail/89"><span style="font-weight: 400;">Erol Ozguner</span></a><span style="font-weight: 400;">, is committed to Open Data and believes that this initiative will provide a launch pad for open data in Istanbul. He also added that new capabilities and datasets will be deployed before the end of 2020, including better API-based data access, data format coherency and improved compatibility with mobile devices.</span></p>
<p><a href="https://ckan.org/files/2020/06/Istanbul-IBB.png"><img class="alignnone size-medium wp-image-9823" src="https://ckan.org/files/2020/06/Istanbul-IBB-300x106.png" alt="" width="300" height="106" srcset="https://ckan.org/files/2020/06/Istanbul-IBB-300x106.png 300w, https://ckan.org/files/2020/06/Istanbul-IBB-1024x362.png 1024w, https://ckan.org/files/2020/06/Istanbul-IBB-768x271.png 768w, https://ckan.org/files/2020/06/Istanbul-IBB.png 1252w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">9751</post-id>	</item>
	</channel>
</rss>
