State of GeoNode
Fabiani, Alessio
This presentation provides a summary of new features added to GeoNode in the last up to the latest releases of GeoNode together with a glimpse of what we have planned for next year and beyond, straight from the core developers. GeoNode is an open source framework designed to build geospatial content management systems (GeoCMS) and spatial data infrastructures (SDI). Its development was initiated by the Global Facility for Disaster Reduction and Recovery (GFDRR) in 2009 and adopted by a large number of organizations in the following years. Supported by a vast, diverse and global open source community, GeoNode is an official project of the Open Source Geospatial Foundation (OSGeo). Using an open source stack based on mature and robust frameworks and software like Django, MapStore, PostGIS, GeoServer and pycsw, an organization can build on top of GeoNode its own SDI or geospatial portal. GeoNode provides a large number of user-friendly capabilities, broad interoperability using Open Geospatial Consortium (OGC) standards, and a powerful authentication/authorization mechanism. This presentation provides a summary of new features added to GeoNode in the last up to the latest releases of GeoNode together with a glimpse of what we have planned for next year and beyond, straight from the core developers.
 I'll go to the background and I'll catch up later. So Floor is yours. Thank you. Okay. I thank Jaster. Hi to Tom and Angelo. Good afternoon to everyone. Good morning. Good morning. It's night here. It's 9pm in Italy. So I'm going to speak about the state of Gionnode, the latest release and the ongoing development. As just said, I'm Alessio Fabiani from Gio Solutions and we prepared this presentation along with Giovanni Allegri which is also part of the Project Steering Committee. And I also have to thank a lot the other two members, the other three members which are Francesco Bartoli, Florianne Gallenbaum. It's always difficult to pronounce. And Tony Sospringer which are also part of the PSC. Also, of course, I want to thank a lot the Pisces W contributors because as you might know Gionnode relies a lot for the metadata part and the catalog services on Pisces W. So we are waiting for more updates, more releases and see for what if we can somehow bind a bit more together the two frameworks. Okay, so Gionnode, very quick introduction. It's basically a web framework written in Python based in Django currently which aims to make more easy for non-GIS expert users to publish special datasets for the time behind the web interface you can upload simple special datasets like shapefile, DOT, stuff like that. But under the hood it relies on a very powerful Gio special server which is Gio server. So it potentially supports every Gio special datasets that is supported by Gio server. The thing is Gionnode would like to provide user friendly interface and also would like to add a sort of simple I would say in respect to Pisces W and Gio network, a very simple layer of metadata. Mostly it wanted to make it easy to share the data between the different users, create maps, styling, there are several editors that you can access directly through the web interface that do not require I would say a deep knowledge of the Gio special standards and the OGC standards. Okay, let's move on with the presentation. I'm going to present you the latest updates on Gionnode, I'm not focusing on the let's say standard things that Gionnode does. Okay, just few words about us, our company we are actually located in Italy and also in the USA and we provide support for those main open source projects, Gio server, maps to Gionnode and Gio network. But also we of course strongly support open source in general, we actively participate in the OGC working groups and we support standards of course critical to the Gio int. Okay, so let's move on with the Gionnode, so this is just a quick overview of the current release. So the latest stable release of Gionnode is the version 3.2.1 which has been released on July but we are almost ready to ship hopefully during the mid of October the other two releases, the 3.2.2 and the 3.3.0. Not yet the 4.0.0 because as you will see during the presentation it's still under development with huge changes especially at the architectural level so it is not yet ready I would say to be released and to be shipped as a stable product. Yes, here there's a list of the releases of Gionnode since the August 2010. Okay, so which is the difference between the two branches, at least the 3.x branches. So as I said before the current stable release is the 3.2.1, the stable branches the 2.0.1 and the 3.2.x that will become very soon the 3.2.2 release. We here try to keep of course the product as much as possible stable so we backport only the major fixes, regressions, blockers or translations so something that has been tested or that do not impact or do not change easily the development and the code of Gionnode. In the maintenance branch the 3.3.x that will become the 3.3.0 release. We are backporting also a few of the most stable features, well tested features that have been introduced in the development branch which is the 4.x branch, the master branch actually. The architecture of the version 3.3 is backward compatibility compatible with the 3.2.x of course. So here you will have not only the fixes that have been backported to the 3.2.x but also some new interesting features and improvements that I'm going to show in the next slides. Okay, so let's start with some warnings, some breaking changes introduced since the release 3.2.0 which are of course are still present on the next releases. So the first one is the BAMP2 PostgreSQL version 13. So whenever you developed or deployed your Gionnode as an instance by using Docker on an older version of PostgreSQL you might need to make a dump and restore of the database in order to switch to the newest version. You can still use the old version, nothing prevents you to keep using the old versions. There's no issue as far as I know. Just be careful if you want to upgrade your node to this breaking change, an important breaking change. The MapStoreClient version has been aligned to the versions of Gionnode. So basically you will have, by the way, the MapStoreClient now it's the default client, GIS client of Gionnode. So for the branch 3.2.x you will have a branch of MapStoreClient 3.2.x and so on. Each branch has its corresponding branch on the MapStoreProject. This is because the MapStoreClient are not backward compatibility with the other versions. So you will need to keep using the same version associated to the version of Gionnode. The base model of the 3.2 train, 3.x train and above has been changed. So the base model now introduces a bounding box as a geometry, as a special geometry. There are fixtures in the Django that allow to automatically convert the old resource bases into the new geometry. But you will need to be careful anyway because there might be some issues, hopefully not, but if you plan to upgrade, be careful to this change to the model. There was a general cleanup, unfortunately sadly, that we had to remove because they weren't supported since a long time. So basically no one could say which was the status and most probably they don't work with the newest version of Gionnode. So as a PSC we decided to remove the stuff from Gionnode just because there was no support at all. So it could create confusion to the community and potentially also issues that we could not fix in any case. So we had to remove the support for the Gionnetwork catalog for the QJS server and the SPC Gionnode. There were some adjustments to the advanced workflow, the advanced workflow of Gionnode. It's basically a set of settings that allow you to take more control on how the resources are published into the web framework. So basically you put some constraint on the registered users so whatever they publish must go through an approval workflow basically. So you will need a manager or some super user to validate the resource before actually making it public to the other users. So there were some adjustments to the logic in particular. The most important one is that whenever a user publish a new resource, of course, and the advanced workflow is activated, the resource of course it's not public. But the Gionnode will automatically assign some editing rights, some editing permissions, especially on the metadata, also to the managers of the groups belonging to the user. So Gionnode will automatically give to those managers the permissions to edit the resource and so on. Whenever the resource will be approved by a manager, only a super user can then publish the resource. At that point in this stage, so from approved to published, it won't be possible to edit the resource anymore. You will need to ask for a permission to edit the resource. So basically Gionnode will send a message to the administrator and the administrator in order to allow the user or the manager to publish the resource again, must unpublish or unapproved the resource back to the previous stage. So this is the main change that has been done to this logic. From the version 3.2.1, there's also a major change that could break somehow the current deployments. It is the introduction of salary bit and workers. So basically it's not a big deal. I mean it's just a matter of changing the configuration of the salary worker, in particular the scheduler, instead of using the scheduler based on the file system, you will need to use the database one. So it's just a matter of changing a parameter when you start salary. Okay so what are the main features of the new release? There were a general clean up and speed up of the code of the core, we focused on trying to remove as much as possible hard-coded stuff, try to reuse as much as possible some object-oriented style of coding instead of huge scripting or big functions all developed into the views of Django. And also we put some hardening procedures in order to prevent or at least tell the user where an error is and why the error happened instead of just throwing an exception here and there. We in this new release the generator of the thumbnails has been completely refactored. So before it was relying on GioServer, so it was consuming a lot of the source on the GioSpecialService. We removed this custom module on GioServer, so now GioServer use in practice only official modules on the GioServer packages. And the thumbnail generation is completely done at the Django level, at the GioNode level. There are a lot of improvements for the Tessauri and the controlled vocabularies, so now you can import more RDF-based Tessauri and you can enable more than one Tessauri in order to allow the users to insert and search keywords directly from the Tessauri and the vocabularies instead of just adding the free text keywords. There is also the possibility to create some themes, so as an instance you can enable an inspire-based Tessauri or a custom-based Tessauri of some other kind and you will see on the interface the different Tessauri divided and grouped by category. There were a lot of improvements at the documentation part, thanks to Tony for this big work. And there are also a lot of improvements on the permissions assignments. Now it's also possible to provide permissions to the remote services resources before it was not possible basically. So whenever you add a remote service resource, it was not possible to change the permission of that resource now. The libraries have been updated, just moving a bit more quickly because we are running out of time. So this is the new improved MapStore JS client. There are a lot of improvements, especially on the VisualSlide editor, but also there are a lot of options for the map, a lot of tools, and also there are some annotations that you can save on the map. There is, and not even with your node now, the possibility to create those that we call Geostories, which are basically a bit more than a map. It's a way to create storytelling by using a mix of static media contents and the Geospatial data. It is possible to modify the output directly from the Ingenode interface of the GetFissureInfo template so basically you can assign, you can turn some properties of the Geospatial dataset into images, audio, streams, or video, or URL links. There is a lot of improvements for what we call the REST APIs version 2. So basically we abandoned a bit the old-fashioned API of GeoNode based on TastyPie, and we introduced this new REST API based on dynamic REST framework that allows us also to perform complex filtering directly through the REST endpoints. A lot of improvements have been done to the upload part, especially on the asynchronous management of the uploads, which is much more stable now, and it is possible also to resume some uploads. So if you leave the page, you can resume an upload later on, so you won't lose the dataset that you just uploaded. There is the possibility to append data to the Vectorial dataset directly from the interface, so of course you need to use a schema compatible with the original one, but other than replacing completely the Vectorial datasets, you can also append new Vectorial features by uploading a ship file. There are some improvements to the representation of the legends, especially on the maps. So you will see here on the detailed page and also on the map the legends of the layers of the overlays present on the map. What's new on the development branch? The architecture has been completely revised, as I said before. We introduced some fully asynchronous API interfaces to what we call resource managers, so basically we centralized the way how you configure the resources into your notes, so instead of relying completely on the Django signals like before, now there is a module which is plugable, of course, and that basically allows you to perform any operation against the resource. So basically you can use this module not only to create, update or delete a resource, but you can also use this module to ingest a new resource or to replace a new resource or to append it to the resource. It's a sort of centralized component that includes all the logic to manage and handle the resource management. The client has been completely, the interface of journal has been completely revised, so basically now the journal, I'm speaking now of the development branch, so the journal version 4.x. So the interface is basically a single page application, so you want, need to change page, the new client uses of the rest APIs in order to perform operations and ask the journal to filter the data sets, show the data sets and so on. Also the operations are almost all asynchronous, so whenever you as an instance try to, let's say update or delete a resource, you don't need to wait that your node finishes the operations. The client just will block the resource and will show you that the resource is currently is going to be deleted or updated or something and when it will finish, the resource will be ready again. So you can continue working in the meantime, continue working in the meantime. And also they have been introduced the dashboards. The dashboards is another feature. It's a bit different, it's something that may be different from Azure Story and dashboard. It's as the term say a dashboard, so you can basically have a component on this dashboard, on this dashboard, elements like maps, widgets, counters, charts of several types, media contents and so on. And that's it I would say. Thank you for the time. Thanks very much Alessio for making us current. There are very interesting developments here, there were no questions on the chat, but I have a question. You talked about a new feature called Geo Stories, what is it called? Yeah, yeah, yeah. Yeah basically let me show you quickly. As any sense if you go to the stable, you know, the demo. There are a few examples of those Geo Stories, so if you click on apps here, you can see a few examples of what a Geo Story is. It's basically a sort of, let's say, storytelling that go from the up to the bottom and allows you to mix together media content, static content and dynamic content by using not only the resources that have been uploaded and created into Geo Note, but you can also use external resources. So basically you can do something like this, so basically by scrolling down you can tell about your project, you can show videos or what you have done, describe the things, zoom into the maps in order to show to the people what you have currently done and so on. Very powerful. There's also kind of data journalism you can do and maybe if I have like a couple of hikes with EPS tracks and photos, can I make a Geo Story with that? Yeah, sure, sure, sure. You can, as I said before, you have the choices in order to add the contents to the Geo Stories. You can either upload the resources directly into your machine through Geo Note, and now Geo Note by the way supports different types of media types, not only static images or PDF or documents, but also videos, audio files and stuff like that. And in that case, the Geo Story will bring automatically the content from the Geo Note catalog, otherwise you can link to the Geo Story some external resources taken from the web. Okay, that sounds very good. So to interrupt you, in the meantime, two questions came on the board. I'll show the first question. You can read it. Can we manage Raster Time Series data within Geo Note as a collection? So we have one minute, if no, is this planned for the future? Okay, so there was a functionality developed a long time ago for the Raster Time Series which was abandoned because there were no support for that one. Currently for sure it is possible by creating the Time Series on Geo Server and then configuring the attribute time on Geo Note. So if you do that, let's say semi-automatic procedure, Geo Note will be able to support such kind of data. It would be nice to resume this old functionality that basically allowed, back in the days, allowed you to choose the Time Series. During the deployed phase, you could choose the Time Series that you want to update. So basically you could directly add some granules automatically to an already existing image mosaic. Okay, thank you. I'm sorry to interrupt you. Oh, yes, sorry. We were one minute over time and there was a question two times asked, when will 4.0 launch? Everyone's waiting for. Yeah, I can't. Give us a date. Yeah, no, I cannot. Three times. I cannot respond now to this question because this is still really unstable. So hopefully at the beginning of the next year, but I cannot promise anything actually. But it's usable. I mean, if you want, you can use it. Okay. Well, thanks again, Lesjo, and of course, all the other developers of GeoNode and, well, I'm eager to try out. So we'll bring in the next speaker. So thanks and we'll talk again. Bye.
 I'll go to the background and I'll catch up later.  So Floor is yours.  Thank you.  Okay.  I thank Jaster.  Hi to Tom and Angelo.  Good afternoon to everyone.  Good morning.  Good morning.  It's night here.  It's 9pm in Italy.  So I'm going to speak about the state of Gionnode, the latest release and the ongoing development.  As just said, I'm Alessio Fabiani from Gio Solutions and we prepared this presentation along  with Giovanni Allegri which is also part of the Project Steering Committee.  And I also have to thank a lot the other two members, the other three members which are  Francesco Bartoli, Florianne Gallenbaum.  It's always difficult to pronounce.  And Tony Sospringer which are also part of the PSC.  Also, of course, I want to thank a lot the Pisces W contributors because as you might  know Gionnode relies a lot for the metadata part and the catalog services on Pisces W.  So we are waiting for more updates, more releases and see for what if we can somehow bind a bit  more together the two frameworks.  Okay, so Gionnode, very quick introduction.  It's basically a web framework written in Python based in Django currently which aims  to make more easy for non-GIS expert users to publish special datasets for the time behind  the web interface you can upload simple special datasets like shapefile, DOT, stuff like that.  But under the hood it relies on a very powerful Gio special server which is Gio server.  So it potentially supports every Gio special datasets that is supported by Gio server.  The thing is Gionnode would like to provide user friendly interface and also would like  to add a sort of simple I would say in respect to Pisces W and Gio network, a very simple  layer of metadata.  Mostly it wanted to make it easy to share the data between the different users, create  maps, styling, there are several editors that you can access directly through the web interface  that do not require I would say a deep knowledge of the Gio special standards and the OGC standards.  Okay, let's move on with the presentation.  I'm going to present you the latest updates on Gionnode, I'm not focusing on the let's  say standard things that Gionnode does.  Okay, just few words about us, our company we are actually located in Italy and also  in the USA and we provide support for those main open source projects, Gio server, maps  to Gionnode and Gio network.  But also we of course strongly support open source in general, we actively participate  in the OGC working groups and we support standards of course critical to the Gio int.  Okay, so let's move on with the Gionnode, so this is just a quick overview of the current  release.  So the latest stable release of Gionnode is the version 3.2.1 which has been released  on July but we are almost ready to ship hopefully during the mid of October the other two releases,  the 3.2.2 and the 3.3.0.  Not yet the 4.0.0 because as you will see during the presentation it's still under development  with huge changes especially at the architectural level so it is not yet ready I would say to  be released and to be shipped as a stable product.  Yes, here there's a list of the releases of Gionnode since the August 2010.  Okay, so which is the difference between the two branches, at least the 3.x branches.  So as I said before the current stable release is the 3.2.1, the stable branches the 2.0.1  and the 3.2.x that will become very soon the 3.2.2 release.  We here try to keep of course the product as much as possible stable so we backport only  the major fixes, regressions, blockers or translations so something that has been tested or that  do not impact or do not change easily the development and the code of Gionnode.  In the maintenance branch the 3.3.x that will become the 3.3.0 release.  We are backporting also a few of the most stable features, well tested features that  have been introduced in the development branch which is the 4.x branch, the master branch  actually.  The architecture of the version 3.3 is backward compatibility compatible with the 3.2.x of  course.  So here you will have not only the fixes that have been backported to the 3.2.x but also  some new interesting features and improvements that I'm going to show in the next slides.  Okay, so let's start with some warnings, some breaking changes introduced since the release  3.2.0 which are of course are still present on the next releases.  So the first one is the BAMP2 PostgreSQL version 13.  So whenever you developed or deployed your Gionnode as an instance by using Docker on  an older version of PostgreSQL you might need to make a dump and restore of the database  in order to switch to the newest version.  You can still use the old version, nothing prevents you to keep using the old versions.  There's no issue as far as I know.  Just be careful if you want to upgrade your node to this breaking change, an important  breaking change.  The MapStoreClient version has been aligned to the versions of Gionnode.  So basically you will have, by the way, the MapStoreClient now it's the default client,  GIS client of Gionnode.  So for the branch 3.2.x you will have a branch of MapStoreClient 3.2.x and so on.  Each branch has its corresponding branch on the MapStoreProject.  This is because the MapStoreClient are not backward compatibility with the other versions.  So you will need to keep using the same version associated to the version of Gionnode.  The base model of the 3.2 train, 3.x train and above has been changed.  So the base model now introduces a bounding box as a geometry, as a special geometry.  There are fixtures in the Django that allow to automatically convert the old resource  bases into the new geometry.  But you will need to be careful anyway because there might be some issues, hopefully not,  but if you plan to upgrade, be careful to this change to the model.  There was a general cleanup, unfortunately sadly, that we had to remove because they  weren't supported since a long time.  So basically no one could say which was the status and most probably they don't work  with the newest version of Gionnode.  So as a PSC we decided to remove the stuff from Gionnode just because there was no support  at all.  So it could create confusion to the community and potentially also issues that we could  not fix in any case.  So we had to remove the support for the Gionnetwork catalog for the QJS server and the SPC Gionnode.  There were some adjustments to the advanced workflow, the advanced workflow of Gionnode.  It's basically a set of settings that allow you to take more control on how the resources  are published into the web framework.  So basically you put some constraint on the registered users so whatever they publish  must go through an approval workflow basically.  So you will need a manager or some super user to validate the resource before actually making  it public to the other users.  So there were some adjustments to the logic in particular.  The most important one is that whenever a user publish a new resource, of course, and  the advanced workflow is activated, the resource of course it's not public.  But the Gionnode will automatically assign some editing rights, some editing permissions,  especially on the metadata, also to the managers of the groups belonging to the user.  So Gionnode will automatically give to those managers the permissions to edit the resource  and so on.  Whenever the resource will be approved by a manager, only a super user can then publish  the resource.  At that point in this stage, so from approved to published, it won't be possible to edit  the resource anymore.  You will need to ask for a permission to edit the resource.  So basically Gionnode will send a message to the administrator and the administrator  in order to allow the user or the manager to publish the resource again, must unpublish  or unapproved the resource back to the previous stage.  So this is the main change that has been done to this logic.  From the version 3.2.1, there's also a major change that could break somehow the current  deployments.  It is the introduction of salary bit and workers.  So basically it's not a big deal.  I mean it's just a matter of changing the configuration of the salary worker, in particular  the scheduler, instead of using the scheduler based on the file system, you will need to  use the database one.  So it's just a matter of changing a parameter when you start salary.  Okay so what are the main features of the new release?  There were a general clean up and speed up of the code of the core, we focused on trying  to remove as much as possible hard-coded stuff, try to reuse as much as possible some object-oriented  style of coding instead of huge scripting or big functions all developed into the views  of Django.  And also we put some hardening procedures in order to prevent or at least tell the user  where an error is and why the error happened instead of just throwing an exception here  and there.  We in this new release the generator of the thumbnails has been completely refactored.  So before it was relying on GioServer, so it was consuming a lot of the source on the  GioSpecialService.  We removed this custom module on GioServer, so now GioServer use in practice only official  modules on the GioServer packages.  And the thumbnail generation is completely done at the Django level, at the GioNode level.  There are a lot of improvements for the Tessauri and the controlled vocabularies, so now you  can import more RDF-based Tessauri and you can enable more than one Tessauri in order  to allow the users to insert and search keywords directly from the Tessauri and the vocabularies  instead of just adding the free text keywords.  There is also the possibility to create some themes, so as an instance you can enable an  inspire-based Tessauri or a custom-based Tessauri of some other kind and you will see on the  interface the different Tessauri divided and grouped by category.  There were a lot of improvements at the documentation part, thanks to Tony for this big work.  And there are also a lot of improvements on the permissions assignments.  Now it's also possible to provide permissions to the remote services resources before it  was not possible basically.  So whenever you add a remote service resource, it was not possible to change the permission  of that resource now.  The libraries have been updated, just moving a bit more quickly because we are running  out of time.  So this is the new improved MapStore JS client.  There are a lot of improvements, especially on the VisualSlide editor, but also there  are a lot of options for the map, a lot of tools, and also there are some annotations  that you can save on the map.  There is, and not even with your node now, the possibility to create those that we call  Geostories, which are basically a bit more than a map.  It's a way to create storytelling by using a mix of static media contents and the Geospatial  data.  It is possible to modify the output directly from the Ingenode interface of the GetFissureInfo  template so basically you can assign, you can turn some properties of the Geospatial  dataset into images, audio, streams, or video, or URL links.  There is a lot of improvements for what we call the REST APIs version 2.  So basically we abandoned a bit the old-fashioned API of GeoNode based on TastyPie, and we introduced  this new REST API based on dynamic REST framework that allows us also to perform complex filtering  directly through the REST endpoints.  A lot of improvements have been done to the upload part, especially on the asynchronous  management of the uploads, which is much more stable now, and it is possible also to  resume some uploads.  So if you leave the page, you can resume an upload later on, so you won't lose the dataset  that you just uploaded.  There is the possibility to append data to the Vectorial dataset directly from the interface,  so of course you need to use a schema compatible with the original one, but other than replacing  completely the Vectorial datasets, you can also append new Vectorial features by uploading  a ship file.  There are some improvements to the representation of the legends, especially on the maps.  So you will see here on the detailed page and also on the map the legends of the layers  of the overlays present on the map.  What's new on the development branch?  The architecture has been completely revised, as I said before.  We introduced some fully asynchronous API interfaces to what we call resource managers,  so basically we centralized the way how you configure the resources into your notes, so  instead of relying completely on the Django signals like before, now there is a module  which is plugable, of course, and that basically allows you to perform any operation against  the resource.  So basically you can use this module not only to create, update or delete a resource, but  you can also use this module to ingest a new resource or to replace a new resource or to  append it to the resource.  It's a sort of centralized component that includes all the logic to manage and handle  the resource management.  The client has been completely, the interface of journal has been completely revised, so  basically now the journal, I'm speaking now of the development branch, so the journal  version 4.x.  So the interface is basically a single page application, so you want, need to change page,  the new client uses of the rest APIs in order to perform operations and ask the journal  to filter the data sets, show the data sets and so on.  Also the operations are almost all asynchronous, so whenever you as an instance try to, let's  say update or delete a resource, you don't need to wait that your node finishes the operations.  The client just will block the resource and will show you that the resource is currently  is going to be deleted or updated or something and when it will finish, the resource will  be ready again.  So you can continue working in the meantime, continue working in the meantime.  And also they have been introduced the dashboards.  The dashboards is another feature.  It's a bit different, it's something that may be different from Azure Story and dashboard.  It's as the term say a dashboard, so you can basically have a component on this dashboard,  on this dashboard, elements like maps, widgets, counters, charts of several types, media contents  and so on.  And that's it I would say.  Thank you for the time.  Thanks very much Alessio for making us current.  There are very interesting developments here, there were no questions on the chat, but I  have a question.  You talked about a new feature called Geo Stories, what is it called?  Yeah, yeah, yeah.  Yeah basically let me show you quickly.  As any sense if you go to the stable, you know, the demo.  There are a few examples of those Geo Stories, so if you click on apps here, you can see  a few examples of what a Geo Story is.  It's basically a sort of, let's say, storytelling that go from the up to the bottom and allows  you to mix together media content, static content and dynamic content by using not only the  resources that have been uploaded and created into Geo Note, but you can also use external  resources.  So basically you can do something like this, so basically by scrolling down you can tell  about your project, you can show videos or what you have done, describe the things, zoom  into the maps in order to show to the people what you have currently done and so on.  Very powerful.  There's also kind of data journalism you can do and maybe if I have like a couple of  hikes with EPS tracks and photos, can I make a Geo Story with that?  Yeah, sure, sure, sure.  You can, as I said before, you have the choices in order to add the contents to the Geo Stories.  You can either upload the resources directly into your machine through Geo Note, and now  Geo Note by the way supports different types of media types, not only static images or  PDF or documents, but also videos, audio files and stuff like that.  And in that case, the Geo Story will bring automatically the content from the Geo Note  catalog, otherwise you can link to the Geo Story some external resources taken from  the web.  Okay, that sounds very good.  So to interrupt you, in the meantime, two questions came on the board.  I'll show the first question.  You can read it.  Can we manage Raster Time Series data within Geo Note as a collection?  So we have one minute, if no, is this planned for the future?  Okay, so there was a functionality developed a long time ago for the Raster Time Series  which was abandoned because there were no support for that one.  Currently for sure it is possible by creating the Time Series on Geo Server and then configuring  the attribute time on Geo Note.  So if you do that, let's say semi-automatic procedure, Geo Note will be able to support  such kind of data.  It would be nice to resume this old functionality that basically allowed, back in the days,  allowed you to choose the Time Series.  During the deployed phase, you could choose the Time Series that you want to update.  So basically you could directly add some granules automatically to an already existing image  mosaic.  Okay, thank you.  I'm sorry to interrupt you.  Oh, yes, sorry.  We were one minute over time and there was a question two times asked, when will 4.0  launch?  Everyone's waiting for.  Yeah, I can't.  Give us a date.  Yeah, no, I cannot.  Three times.  I cannot respond now to this question because this is still really unstable.  So hopefully at the beginning of the next year, but I cannot promise anything actually.  But it's usable.  I mean, if you want, you can use it.  Okay.  Well, thanks again, Lesjo, and of course, all the other developers of GeoNode and, well,  I'm eager to try out.  So we'll bring in the next speaker.  So thanks and we'll talk again.  Bye.
FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_0_359.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_360_5339.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_5340_5435.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_5436_6551.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_6552_6647.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_6648_11483.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_11484_11555.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_11556_22931.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_22932_29723.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_29724_32051.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_32052_32723.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_32724_33179.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_33180_37331.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_37332_39047.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_39048_39311.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_39312_39659.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_39660_39767.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_39768_39983.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_39984_40367.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40368_40415.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40416_40487.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40488_40571.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40572_40631.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40632_40751.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40752_40835.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40836_40895.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40896_40955.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_40956_41003.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41004_41075.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41076_41171.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41172_41219.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41220_41303.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41304_41867.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41868_41987.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_41988_42155.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_42156_42419.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_42420_42791.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_42792_46247.png FOSS4G_-_State_of_GeoNode_mZB3sjd0-RM_46248_46588.png
I'll go to the background and I'll catch up later. So Floor is yours. Thank you. Okay. I thank Jaster. Hi to Tom and Angelo. Good afternoon to everyone. Good morning. Good morning. It's night here. It's 9pm in Italy. So I'm going to speak about the state of Gionnode, the latest release and the ongoing development. As just said, I'm Alessio Fabiani from Gio Solutions and we prepared this presentation along with Giovanni Allegri which is also part of the Project Steering Committee. And I also have to thank a lot the other two members, the other three members which are Francesco Bartoli, Florianne Gallenbaum. It's always difficult to pronounce. And Tony Sospringer which are also part of the PSC. Also, of course, I want to thank a lot the Pisces W contributors because as you might know Gionnode relies a lot for the metadata part and the catalog services on Pisces W. So we are waiting for more updates, more releases and see for what if we can somehow bind a bit more together the two frameworks. Okay, so Gionnode, very quick introduction. It's basically a web framework written in Python based in Django currently which aims to make more easy for non-GIS expert users to publish special datasets for the time behind the web interface you can upload simple special datasets like shapefile, DOT, stuff like that. But under the hood it relies on a very powerful Gio special server which is Gio server. So it potentially supports every Gio special datasets that is supported by Gio server. The thing is Gionnode would like to provide user friendly interface and also would like to add a sort of simple I would say in respect to Pisces W and Gio network, a very simple layer of metadata. Mostly it wanted to make it easy to share the data between the different users, create maps, styling, there are several editors that you can access directly through the web interface that do not require I would say a deep knowledge of the Gio special standards and the OGC standards. Okay, let's move on with the presentation. I'm going to present you the latest updates on Gionnode, I'm not focusing on the let's say standard things that Gionnode does. Okay, just few words about us, our company we are actually located in Italy and also in the USA and we provide support for those main open source projects, Gio server, maps to Gionnode and Gio network. But also we of course strongly support open source in general, we actively participate in the OGC working groups and we support standards of course critical to the Gio int. Okay, so let's move on with the Gionnode, so this is just a quick overview of the current release. So the latest stable release of Gionnode is the version 3.2.1 which has been released on July but we are almost ready to ship hopefully during the mid of October the other two releases, the 3.2.2 and the 3.3.0. Not yet the 4.0.0 because as you will see during the presentation it's still under development with huge changes especially at the architectural level so it is not yet ready I would say to be released and to be shipped as a stable product. Yes, here there's a list of the releases of Gionnode since the August 2010. Okay, so which is the difference between the two branches, at least the 3.x branches. So as I said before the current stable release is the 3.2.1, the stable branches the 2.0.1 and the 3.2.x that will become very soon the 3.2.2 release. We here try to keep of course the product as much as possible stable so we backport only the major fixes, regressions, blockers or translations so something that has been tested or that do not impact or do not change easily the development and the code of Gionnode. In the maintenance branch the 3.3.x that will become the 3.3.0 release. We are backporting also a few of the most stable features, well tested features that have been introduced in the development branch which is the 4.x branch, the master branch actually. The architecture of the version 3.3 is backward compatibility compatible with the 3.2.x of course. So here you will have not only the fixes that have been backported to the 3.2.x but also some new interesting features and improvements that I'm going to show in the next slides. Okay, so let's start with some warnings, some breaking changes introduced since the release 3.2.0 which are of course are still present on the next releases. So the first one is the BAMP2 PostgreSQL version 13. So whenever you developed or deployed your Gionnode as an instance by using Docker on an older version of PostgreSQL you might need to make a dump and restore of the database in order to switch to the newest version. You can still use the old version, nothing prevents you to keep using the old versions. There's no issue as far as I know. Just be careful if you want to upgrade your node to this breaking change, an important breaking change. The MapStoreClient version has been aligned to the versions of Gionnode. So basically you will have, by the way, the MapStoreClient now it's the default client, GIS client of Gionnode. So for the branch 3.2.x you will have a branch of MapStoreClient 3.2.x and so on. Each branch has its corresponding branch on the MapStoreProject. This is because the MapStoreClient are not backward compatibility with the other versions. So you will need to keep using the same version associated to the version of Gionnode. The base model of the 3.2 train, 3.x train and above has been changed. So the base model now introduces a bounding box as a geometry, as a special geometry. There are fixtures in the Django that allow to automatically convert the old resource bases into the new geometry. But you will need to be careful anyway because there might be some issues, hopefully not, but if you plan to upgrade, be careful to this change to the model. There was a general cleanup, unfortunately sadly, that we had to remove because they weren't supported since a long time. So basically no one could say which was the status and most probably they don't work with the newest version of Gionnode. So as a PSC we decided to remove the stuff from Gionnode just because there was no support at all. So it could create confusion to the community and potentially also issues that we could not fix in any case. So we had to remove the support for the Gionnetwork catalog for the QJS server and the SPC Gionnode. There were some adjustments to the advanced workflow, the advanced workflow of Gionnode. It's basically a set of settings that allow you to take more control on how the resources are published into the web framework. So basically you put some constraint on the registered users so whatever they publish must go through an approval workflow basically. So you will need a manager or some super user to validate the resource before actually making it public to the other users. So there were some adjustments to the logic in particular. The most important one is that whenever a user publish a new resource, of course, and the advanced workflow is activated, the resource of course it's not public. But the Gionnode will automatically assign some editing rights, some editing permissions, especially on the metadata, also to the managers of the groups belonging to the user. So Gionnode will automatically give to those managers the permissions to edit the resource and so on. Whenever the resource will be approved by a manager, only a super user can then publish the resource. At that point in this stage, so from approved to published, it won't be possible to edit the resource anymore. You will need to ask for a permission to edit the resource. So basically Gionnode will send a message to the administrator and the administrator in order to allow the user or the manager to publish the resource again, must unpublish or unapproved the resource back to the previous stage. So this is the main change that has been done to this logic. From the version 3.2.1, there's also a major change that could break somehow the current deployments. It is the introduction of salary bit and workers. So basically it's not a big deal. I mean it's just a matter of changing the configuration of the salary worker, in particular the scheduler, instead of using the scheduler based on the file system, you will need to use the database one. So it's just a matter of changing a parameter when you start salary. Okay so what are the main features of the new release? There were a general clean up and speed up of the code of the core, we focused on trying to remove as much as possible hard-coded stuff, try to reuse as much as possible some object-oriented style of coding instead of huge scripting or big functions all developed into the views of Django. And also we put some hardening procedures in order to prevent or at least tell the user where an error is and why the error happened instead of just throwing an exception here and there. We in this new release the generator of the thumbnails has been completely refactored. So before it was relying on GioServer, so it was consuming a lot of the source on the GioSpecialService. We removed this custom module on GioServer, so now GioServer use in practice only official modules on the GioServer packages. And the thumbnail generation is completely done at the Django level, at the GioNode level. There are a lot of improvements for the Tessauri and the controlled vocabularies, so now you can import more RDF-based Tessauri and you can enable more than one Tessauri in order to allow the users to insert and search keywords directly from the Tessauri and the vocabularies instead of just adding the free text keywords. There is also the possibility to create some themes, so as an instance you can enable an inspire-based Tessauri or a custom-based Tessauri of some other kind and you will see on the interface the different Tessauri divided and grouped by category. There were a lot of improvements at the documentation part, thanks to Tony for this big work. And there are also a lot of improvements on the permissions assignments. Now it's also possible to provide permissions to the remote services resources before it was not possible basically. So whenever you add a remote service resource, it was not possible to change the permission of that resource now. The libraries have been updated, just moving a bit more quickly because we are running out of time. So this is the new improved MapStore JS client. There are a lot of improvements, especially on the VisualSlide editor, but also there are a lot of options for the map, a lot of tools, and also there are some annotations that you can save on the map. There is, and not even with your node now, the possibility to create those that we call Geostories, which are basically a bit more than a map. It's a way to create storytelling by using a mix of static media contents and the Geospatial data. It is possible to modify the output directly from the Ingenode interface of the GetFissureInfo template so basically you can assign, you can turn some properties of the Geospatial dataset into images, audio, streams, or video, or URL links. There is a lot of improvements for what we call the REST APIs version 2. So basically we abandoned a bit the old-fashioned API of GeoNode based on TastyPie, and we introduced this new REST API based on dynamic REST framework that allows us also to perform complex filtering directly through the REST endpoints. A lot of improvements have been done to the upload part, especially on the asynchronous management of the uploads, which is much more stable now, and it is possible also to resume some uploads. So if you leave the page, you can resume an upload later on, so you won't lose the dataset that you just uploaded. There is the possibility to append data to the Vectorial dataset directly from the interface, so of course you need to use a schema compatible with the original one, but other than replacing completely the Vectorial datasets, you can also append new Vectorial features by uploading a ship file. There are some improvements to the representation of the legends, especially on the maps. So you will see here on the detailed page and also on the map the legends of the layers of the overlays present on the map. What's new on the development branch? The architecture has been completely revised, as I said before. We introduced some fully asynchronous API interfaces to what we call resource managers, so basically we centralized the way how you configure the resources into your notes, so instead of relying completely on the Django signals like before, now there is a module which is plugable, of course, and that basically allows you to perform any operation against the resource. So basically you can use this module not only to create, update or delete a resource, but you can also use this module to ingest a new resource or to replace a new resource or to append it to the resource. It's a sort of centralized component that includes all the logic to manage and handle the resource management. The client has been completely, the interface of journal has been completely revised, so basically now the journal, I'm speaking now of the development branch, so the journal version 4.x. So the interface is basically a single page application, so you want, need to change page, the new client uses of the rest APIs in order to perform operations and ask the journal to filter the data sets, show the data sets and so on. Also the operations are almost all asynchronous, so whenever you as an instance try to, let's say update or delete a resource, you don't need to wait that your node finishes the operations. The client just will block the resource and will show you that the resource is currently is going to be deleted or updated or something and when it will finish, the resource will be ready again. So you can continue working in the meantime, continue working in the meantime. And also they have been introduced the dashboards. The dashboards is another feature. It's a bit different, it's something that may be different from Azure Story and dashboard. It's as the term say a dashboard, so you can basically have a component on this dashboard, on this dashboard, elements like maps, widgets, counters, charts of several types, media contents and so on. And that's it I would say. Thank you for the time. Thanks very much Alessio for making us current. There are very interesting developments here, there were no questions on the chat, but I have a question. You talked about a new feature called Geo Stories, what is it called? Yeah, yeah, yeah. Yeah basically let me show you quickly. As any sense if you go to the stable, you know, the demo. There are a few examples of those Geo Stories, so if you click on apps here, you can see a few examples of what a Geo Story is. It's basically a sort of, let's say, storytelling that go from the up to the bottom and allows you to mix together media content, static content and dynamic content by using not only the resources that have been uploaded and created into Geo Note, but you can also use external resources. So basically you can do something like this, so basically by scrolling down you can tell about your project, you can show videos or what you have done, describe the things, zoom into the maps in order to show to the people what you have currently done and so on. Very powerful. There's also kind of data journalism you can do and maybe if I have like a couple of hikes with EPS tracks and photos, can I make a Geo Story with that? Yeah, sure, sure, sure. You can, as I said before, you have the choices in order to add the contents to the Geo Stories. You can either upload the resources directly into your machine through Geo Note, and now Geo Note by the way supports different types of media types, not only static images or PDF or documents, but also videos, audio files and stuff like that. And in that case, the Geo Story will bring automatically the content from the Geo Note catalog, otherwise you can link to the Geo Story some external resources taken from the web. Okay, that sounds very good. So to interrupt you, in the meantime, two questions came on the board. I'll show the first question. You can read it. Can we manage Raster Time Series data within Geo Note as a collection? So we have one minute, if no, is this planned for the future? Okay, so there was a functionality developed a long time ago for the Raster Time Series which was abandoned because there were no support for that one. Currently for sure it is possible by creating the Time Series on Geo Server and then configuring the attribute time on Geo Note. So if you do that, let's say semi-automatic procedure, Geo Note will be able to support such kind of data. It would be nice to resume this old functionality that basically allowed, back in the days, allowed you to choose the Time Series. During the deployed phase, you could choose the Time Series that you want to update. So basically you could directly add some granules automatically to an already existing image mosaic. Okay, thank you. I'm sorry to interrupt you. Oh, yes, sorry. We were one minute over time and there was a question two times asked, when will 4.0 launch? Everyone's waiting for. Yeah, I can't. Give us a date. Yeah, no, I cannot. Three times. I cannot respond now to this question because this is still really unstable. So hopefully at the beginning of the next year, but I cannot promise anything actually. But it's usable. I mean, if you want, you can use it. Okay. Well, thanks again, Lesjo, and of course, all the other developers of GeoNode and, well, I'm eager to try out. So we'll bring in the next speaker. So thanks and we'll talk again. Bye.
the latest release and the ongoing development. together the two frameworks. Okay, so Gionnode, framework written in Python based in Django standards and the OGC standards. Okay, let's move strongly support open source in general, we presentation it's still under development with Yes, here there's a list of the releases of or deployed your Gionnode as an instance by using you will have, by the way, the MapStoreClient now This is because the MapStoreClient are not the community and potentially also issues that we so what are the main features of the new release? code of the core, we focused on trying to remove old-fashioned API of GeoNode based on TastyPie, can continue working in the meantime, continue and dashboard. It's as the term say a dashboard, dashboard, on this dashboard, elements like maps, say, storytelling that go from the up to the content, static content and dynamic content by on. Very powerful. There's also kind of data no, is this planned for the future? Okay, so hopefully at the beginning of the next year, but