Go to file
Francesco Mangiacrapa 2b9a5667d3 updated Mongo DB icon 2025-01-09 15:40:05 +01:00
D4S_Export_PDF Added header and footer images for pdf export facility 2024-05-08 14:22:12 +02:00
D4S_UCDs deleted old models 2024-12-19 12:20:36 +01:00
catalogue-binding-plugin updated lower ranges 2024-10-18 12:16:55 +02:00
ckan-plugin Release 1.0.4 2023-01-13 17:36:22 +01:00
cms-plugin-framework removed -SNAPSHOT 2024-10-28 15:47:10 +01:00
cms-test-commons removed -SNAPSHOT to be released 2024-09-24 17:22:04 +02:00
concessioni-lifecycle - Just to include the new geoportal-common.1.1.1 , see [27505#note-41] 2024-11-21 12:14:57 +01:00
concessioni-model reverted scm 2023-09-08 15:30:39 +02:00
dataminer-plugins Release 1.0.4 2023-01-13 17:36:22 +01:00
default-lc-managers removed -SNAPSHOT to be released 2024-09-24 17:22:04 +02:00
geoportal-client removed -SNAPSHOT to be released 2024-09-24 17:22:04 +02:00
geoportal-common removed -SNAPSHOT to be released 2024-10-04 15:18:03 +02:00
geoportal-service removed -SNAPSHOT 2024-10-28 15:47:10 +01:00
images-plugin Release 1.0.4 2023-01-13 17:36:22 +01:00
notifications-plugins removed -SNAPSHOT 2024-10-28 15:47:10 +01:00
sdi-plugins removed -SNAPSHOT. Declared 1.1.3 version 2024-10-28 16:10:00 +01:00
test-data added Catalogue-Binding-Plugin config 2024-06-28 09:55:37 +02:00
use-cases Tests 2023-01-30 12:06:22 +01:00
CHANGELOG.md removed -SNAPSHOT 2024-10-28 15:47:10 +01:00
FUNDING.md Merged repositories 2021-09-20 16:47:35 +02:00
LICENSE.md Merged repositories 2021-09-20 16:47:35 +02:00
README.md updated Mongo DB icon 2025-01-09 15:40:05 +01:00
pom.xml removed -SNAPSHOT 2024-10-28 15:47:10 +01:00

README.md

gCube CMS Suite

gCube CMS Suite is a distributed full stack application for publication management in a gCube Hybrid e-infrastructure. Check wiki here

Rationale :

Publication involves lots of common features as well as custom behaviour and formats. The service implements the basic common logic, delegating to installed plugin both custom and configurable functions ranging from validation, data manifestation, indexing and lifecycle management. Lifecycle management is itself an extension allowing for both common and complex ad-hoc workflows. High modularity of plugins allows for the composition of ad hoc use cases with maximized re-usability.

The suite comes with a set of pre-built plugins and GUIs that communities can easily extend and / or reuse.

Built with

General Architecture

Lifecycle Managements

Document Lifecycle Managements in action:

Single Step (no moderation)
flowchart LR
    New[New Project] -..-> DRAFT(DRAFT)
    Update[Update Project] -..-> DRAFT(DRAFT)
    DRAFT ==>|publish| Published(Published)
    Published ==>|unpublish| DRAFT

    classDef noteClass fill:#ffe4b5,stroke:none,font-style:italic,font-size:14px;
    classDef box-b fill:#3D6BA6,stroke:#12407B,stroke-width:1px,color:#fff,font-size:16px;
    classDef box-g fill:#3BBF9E,stroke:#03926E,stroke-width:1px,color:#fff,font-size:16px;

    class New,Update noteClass
    class DRAFT box-b
    class Published box-g
3 Phases (content moderation)
flowchart LR
    New[New Project] -..-> DRAFT(DRAFT)
    Update[Update Project] -..-> DRAFT(DRAFT)
    DRAFT ==>|submit-for-review| PendingApproval(Pending<br>Approval)
    PendingApproval ==> |approve-submitted| Published(Published)
    PendingApproval ==>|reject-draft| DRAFT
    Published ==>|unpublish| DRAFT

    classDef noteClass fill:#ffe4b5,stroke:none,font-style:italic,font-size:14px;
    classDef box-b fill:#3D6BA6,stroke:#12407B,stroke-width:1px,color:#fff,font-size:16px;
    classDef box-g fill:#3BBF9E,stroke:#03926E,stroke-width:1px,color:#fff,font-size:16px;
    classDef box-o fill:#FF904E,stroke:#E15604,stroke-width:1px,color:#fff,font-size:16px;

    class New,Update noteClass
    class DRAFT box-b
    class PendingApproval box-o
    class Published box-g

Plugins

Plugins in action:

Use Case

The D4GNA

"Dataset per il Geoportale Nazionale per l'Archeologia"

D4GNA Component diagram
graph TB
    subgraph Geoportal [D4GNA Components]
        geoportalservice[Geoportal Service]
        mongo[<img src="https://webimages.mongodb.com/_com_assets/cms/kuyjf3vea2hg34taa-horizontal_default_slate_blue.svg?auto=format%252Ccompress"> Mongo DB]
        postgis[<img src='https://www.osgeo.org/wp-content/uploads/postgis-logo-1.png'> PostGIS DB]
        geoserver[<img src='https://geoserver.org/img/geoserver-logo.png'> Geoserver]
        note-gs-to-mongo[Geoportal Service:<br>creates/reads Profiled Documents and UCDs<br>creates/reads Plugins configured<br>on Mongo DB]
        note-gs-to-geoserver[Geoportal Service:<br>creates/reads Workspaces,Stores,Layers,Styles<br>on Geoserver]
        note-gs-to-geoserver2[Geoportal Service:<br>READS via GS Rest Interface<br>e.g. the GeoServerRESTReader.class reads from REST path <br>geoserver_endpoint/rest/layers/profiledconcessioni_gna:profiledconcessioni_gna_centroids.xml<br>WRITES via FeatureTypes<br>e.g. the SDIManagerWrapper.class creates the index layer via FTE]
        note-gs-to-postgis[Geoportal Service:<br>creates/reads Index Layers <br>as Tables on PostGIS for Profile Document ID.<br>Add the Index Layers Store/Workspace to Geoserver]
        note-to-featuretypes[A feature type is a vector based spatial resource<br> or data set that originates from a data store.<br> In some cases, such as with a shapefile,<br> a feature type has a one-to-one relationship<br> with its data store.<br> In other cases, such as PostGIS,<br> the relationship of feature type<br> to data store is many-to-one,<br> feature types corresponding to a table in the database,<br>see https://docs.geoserver.org/main/en/user/rest/api/featuretypes.html]
    end

    subgraph Storage [Cloud Storage]
        shub[SHUB]
        disk1[Storage]
    end

    geoportalservice -->|uses| geoserver
    geoportalservice -->|stores docs| mongo
    geoportalservice -->|sends data| shub
    geoportalservice -->|uses| postgis
    geoserver -->|uses| postgis
    shub -->|stores data| disk1

    note-gs-to-mongo -.-> mongo
    note-gs-to-geoserver -.-> geoserver
    note-gs-to-geoserver2 -.-> geoserver
    note-gs-to-postgis -.-> postgis

    classDef noteClass fill:#ffe4b5,stroke:#000,stroke-dasharray: 1 5,font-style:italic,font-size:12px;
    classDef note2Class fill:#aaccdd,stroke:#000,stroke-dasharray: 1 5,font-style:italic,font-size:12px;
    class note-gs-to-mongo,note-gs-to-geoserver,note-gs-to-geoserver2,note-gs-to-postgis noteClass
    class note-to-featuretypes note2Class
D4GNA Architecture

Documentation

Change log

See CHANGELOG.md.

Authors

  • Fabio Sinibaldi as "Architect", "Developer" (ORCID) Computer Scientist at ISTI-CNR

  • Francesco Mangiacrapa as "Architect", "Developer" and "Maintainer" (ORCID) Computer Scientist at ISTI-CNR Infrascience Group

License

This project is licensed under the EUPL V.1.1 License - see the LICENSE.md file for details.

About the gCube Framework

This software is part of the gCubeFramework: an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments by favouring the realisation of reuse oriented policies.

The projects leading to this software have received funding from a series of European Union programmes including:

  • the Sixth Framework Programme for Research and Technological Development
    • DILIGENT (grant no. 004260).
  • the Seventh Framework Programme for research, technological development and demonstration
    • D4Science (grant no. 212488);
    • D4Science-II (grant no.239019);
    • ENVRI (grant no. 283465);
    • iMarine(grant no. 283644);
    • EUBrazilOpenBio (grant no. 288754).
  • the H2020 research and innovation programme
    • SoBigData (grant no. 654024);
    • PARTHENOS (grant no. 654119);
    • EGIEngage (grant no. 654142);
    • ENVRIplus (grant no. 654182);
    • BlueBRIDGE (grant no. 675680);
    • PerformFish (grant no. 727610);
    • AGINFRAplus (grant no. 731001);
    • DESIRA (grant no. 818194);
    • ARIADNEplus (grant no. 823914);
    • RISIS2 (grant no. 824091);