CINXE.COM
Joinup source code | Interoperable Europe Portal
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#"> <head> <meta charset="utf-8" /> <noscript><style>form.antibot * :not(.antibot-message) { display: none !important; }</style> </noscript><link rel="canonical" href="https://interoperable-europe.ec.europa.eu/collection/joinup/solution/joinup-source-code" /> <meta property="og:site_name" content="Interoperable Europe Portal" /> <meta property="og:type" content="Solution" /> <meta property="og:url" content="https://interoperable-europe.ec.europa.eu/collection/joinup/solution/joinup-source-code" /> <meta property="og:title" content="Joinup source code" /> <meta property="og:image" content="https://interoperable-europe.ec.europa.eu/themes/ventuno/assets/images/og-image.png" /> <meta property="og:image:secure_url" content="https://interoperable-europe.ec.europa.eu/themes/ventuno/assets/images/og-image.png" /> <meta property="og:image:type" content="image/svg+xml" /> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script type="application/ld+json">{ "@context": { "Asset": "http://www.w3.org/ns/dcat#Dataset", "AssetType": "http://www.w3.org/2004/02/skos/core#Concept", "AssetDistribution": "http://www.w3.org/ns/dcat#Distribution", "AssetRepository": "http://www.w3.org/ns/dcat#Catalog", "Checksum": "http://spdx.org/rdf/terms#Checksum", "ContactInformation": "http://www.w3.org/2006/vcard/ns#Kind", "Documentation": "http://xmlns.com/foaf/0.1/Document", "GeographicalCoverage": "http://purl.org/dc/terms/Location", "InteroperabilityLevel": "http://www.w3.org/2004/02/skos/core#Concept", "Language": "http://purl.org/dc/terms/LinguisticSystem", "Licence": "http://purl.org/dc/terms/LicenseDocument", "MediaTypeOrExtent": "http://purl.org/dc/terms/MediaTypeOrExtent", "Publisher": "http://xmlns.com/foaf/0.1/Agent", "RepresentationTechnique": "http://www.w3.org/2004/02/skos/core#Concept", "Status": "http://www.w3.org/2004/02/skos/core#Concept", "Theme": "http://www.w3.org/2004/02/skos/core#Concept", "ThemeTaxonomy": "http://www.w3.org/2004/02/skos/core#ConceptScheme", "accessURL": { "@id": "http://www.w3.org/ns/dcat#accessURL", "@type": "http://www.w3.org/2000/01/rdf-schema#Resource" }, "asset_label": { "@id": "http://www.w3.org/2004/02/skos/core#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "algorithm": { "@id": "http://spdx.org/rdf/terms#algorithm", "@type": "http://spdx.org/rdf/terms#checksumAlgorithm_sha1" }, "altLabel": { "@id": "http://www.w3.org/2004/02/skos/core#altLabel", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "checksum": { "@id": "http://spdx.org/rdf/terms#checksum", "@type": "http://spdx.org/rdf/terms#Checksum" }, "checksumValue": { "@id": "http://spdx.org/rdf/terms#checksumValue", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "contactPoint": { "@id": "http://www.w3.org/ns/dcat#contactPoint", "@type": "http://www.w3.org/2006/vcard/ns#Kind" }, "dataset": { "@id": "http://www.w3.org/ns/dcat#dataset", "@type": "http://www.w3.org/ns/dcat#Dataset" }, "description": { "@id": "http://purl.org/dc/terms/description", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "distribution": { "@id": "http://www.w3.org/ns/dcat#distribution", "@type": "http://www.w3.org/ns/dcat#Distribution" }, "fileSize": { "@id": "http://schema.org/fileSize", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "fn": { "@id": "http://www.w3.org/2006/vcard/ns#fn", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "format": { "@id": "http://purl.org/dc/terms/format", "@type": "http://purl.org/dc/terms/MediaTypeOrExtent" }, "hasAddress": { "@id": "http://www.w3.org/2006/vcard/ns#hasAddress", "@type": "http://www.w3.org/2006/vcard/ns#Address" }, "hasEmail": { "@id": "http://www.w3.org/2006/vcard/ns#hasEmail", "@type": "http://www.w3.org/2006/vcard/ns#Email" }, "hasTelephone": { "@id": "http://www.w3.org/2006/vcard/ns#hasTelephone", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "hasTopConcept": { "@id": "http://www.w3.org/2004/02/skos/core#hasTopConcept", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "hasURL": { "@id": "http://www.w3.org/2006/vcard/ns#hasURL", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "hasVersion": { "@id": "http://purl.org/dc/terms/hasVersion", "@type": "http://www.w3.org/ns/dcat#Dataset" }, "homepage": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "http://xmlns.com/foaf/0.1/Document" }, "identifier": { "@id": "http://purl.org/dc/terms/identifier", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "includedAsset": { "@id": "http://www.w3.org/ns/adms#includedAsset", "@type": "http://www.w3.org/ns/dcat#Dataset" }, "inScheme": { "@id": "http://www.w3.org/2004/02/skos/core#inScheme", "@type": "http://www.w3.org/2004/02/skos/core#ConceptScheme" }, "interoperabilityLevel_label": { "@id": "http://www.w3.org/2004/02/skos/core#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "issued": { "@id": "http://purl.org/dc/terms/issued", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "isVersionOf": { "@id": "http://purl.org/dc/terms/isVersionOf", "@type": "http://www.w3.org/ns/dcat#Dataset" }, "keyword": { "@id": "http://www.w3.org/ns/dcat#keyword", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "landingPage": { "@id": "http://www.w3.org/ns/dcat#landingPage", "@type": "http://xmlns.com/foaf/0.1/Document" }, "language": { "@id": "http://purl.org/dc/terms/language", "@type": "http://purl.org/dc/terms/LinguisticSystem" }, "language_label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "licence": { "@id": "http://purl.org/dc/terms/license", "@type": "http://purl.org/dc/terms/LicenseDocument" }, "licence_label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "location_label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "mediaTypeOrExtent_label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "modified": { "@id": "http://purl.org/dc/terms/modified", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "name": { "@id": "http://xmlns.com/foaf/0.1/name", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "page": { "@id": "http://xmlns.com/foaf/0.1/page", "@type": "http://xmlns.com/foaf/0.1/Document" }, "publisher": { "@id": "http://purl.org/dc/terms/publisher", "@type": "http://xmlns.com/foaf/0.1/Agent" }, "relation": { "@id": "http://purl.org/dc/terms/relation", "@type": "http://www.w3.org/2000/01/rdf-schema#Resource" }, "representationTechnique": { "@id": "http://www.w3.org/ns/adms#representationTechnique", "@type": "http://www.w3.org/2004/02/skos/core#Concept" }, "representationTechnique_label": { "@id": "http://www.w3.org/2004/02/skos/core#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "spatial": { "@id": "http://purl.org/dc/terms/spatial", "@type": "http://purl.org/dc/terms/Location" }, "status": { "@id": "http://www.w3.org/ns/adms#status", "@type": "http://www.w3.org/2004/02/skos/core#Concept" }, "status_label": { "@id": "http://www.w3.org/2004/02/skos/core#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "theme": { "@id": "http://www.w3.org/ns/dcat#theme", "@type": "http://www.w3.org/2004/02/skos/core#Concept" }, "theme_label": { "@id": "http://www.w3.org/2004/02/skos/core#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "themeTaxonomy": { "@id": "http://www.w3.org/ns/dcat#themeTaxonomy", "@type": "http://www.w3.org/2004/02/skos/core#ConceptScheme" }, "themeTaxonomy_label": { "@id": "http://www.w3.org/2000/01/rdf-schema#label", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "title": { "@id": "http://purl.org/dc/terms/title", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "translation": { "@id": "http://www.w3.org/ns/adms#translation", "@type": "http://www.w3.org/ns/dcat#Dataset" }, "type": { "@id": "http://purl.org/dc/terms/type", "@type": "http://www.w3.org/2004/02/skos/core#Concept" }, "versionInfo": { "@id": "http://www.w3.org/2002/07/owl#versionInfo", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" }, "versionNotes": { "@id": "http://www.w3.org/ns/adms#versionNotes", "@type": "http://www.w3.org/2000/01/rdf-schema#Literal" } }, "@graph": [ { "@id": "http://data.europa.eu/dr8/InteroperableEuropeanSolution" }, { "@id": "http://data.europa.eu/w21/01006c44-ee30-4f0f-a659-6267a9f20823" }, { "@id": "http://data.europa.eu/w21/010a07a2-43f4-4047-b2db-c6e0e34aa067" }, { "@id": "http://data.europa.eu/w21/017218a6-d0ef-405c-8b3a-eb7960a615a8" }, { "@id": "http://data.europa.eu/w21/01e4b614-0a75-4b39-88d9-1f0067592837" }, { "@id": "http://data.europa.eu/w21/0adfb657-3d08-43c4-a7d9-035b665c273d" }, { "@id": "http://data.europa.eu/w21/0cbe0fe0-938f-475d-9949-b836948c45b6" }, { "@id": "http://data.europa.eu/w21/0d1fc38e-0645-4471-b5b8-e20c606deeff" }, { "@id": "http://data.europa.eu/w21/0e95a8e8-a5e7-4192-b267-542d20aab136" }, { "@id": "http://data.europa.eu/w21/0f245e67-92c7-4d75-b9bf-d3738f0efbdd" }, { "@id": "http://data.europa.eu/w21/0f379dbb-2164-470f-a744-e2768788330b" }, { "@id": "http://data.europa.eu/w21/0ff75269-d78a-4168-a92a-cdd19372d362" }, { "@id": "http://data.europa.eu/w21/146e3071-8219-423c-abef-8d252a4d971e" }, { "@id": "http://data.europa.eu/w21/148e4dbe-2d79-4d04-b675-7194a47a6eb1" }, { "@id": "http://data.europa.eu/w21/14a8f10a-cd06-4837-8176-98e3bbc9abb3" }, { "@id": "http://data.europa.eu/w21/1551c4fb-59a9-4faa-aab7-6d6368030854" }, { "@id": "http://data.europa.eu/w21/157e3609-99ad-4ba2-bf16-8bba423df044" }, { "@id": "http://data.europa.eu/w21/1638fb52-519d-4495-ae30-6d836272ce95" }, { "@id": "http://data.europa.eu/w21/16c59c60-73ff-41a4-b3a8-49b8a574fe95" }, { "@id": "http://data.europa.eu/w21/17cb923b-7699-43a5-a9ec-1b3088f79bb4" }, { "@id": "http://data.europa.eu/w21/18589983-89e1-496c-97e9-4adf80af4788" }, { "@id": "http://data.europa.eu/w21/18b1e259-d7de-4e29-bc60-0abe59e8cc8a" }, { "@id": "http://data.europa.eu/w21/19c1b4e4-8831-4f2d-a6bf-cfacb03c62ec" }, { "@id": "http://data.europa.eu/w21/1a16bebc-f6c6-43cc-8570-13195991cd3e" }, { "@id": "http://data.europa.eu/w21/1a5a4e8d-b03d-4a87-997c-04d1bedd3b40" }, { "@id": "http://data.europa.eu/w21/1b6711f0-ed0f-4a52-a365-a3e095641458" }, { "@id": "http://data.europa.eu/w21/1d56e639-a328-426b-a8aa-ebb1e192e2d4" }, { "@id": "http://data.europa.eu/w21/219df90e-4a45-4fe9-adb9-b2054ad9957d" }, { "@id": "http://data.europa.eu/w21/235ab775-29b3-42c9-bee3-c3135e2c1e18" }, { "@id": "http://data.europa.eu/w21/241e96a1-570e-4c21-b0e2-bcde2ce1049b" }, { "@id": "http://data.europa.eu/w21/250b69f6-ac3e-4093-9189-b0bf49481c20" }, { "@id": "http://data.europa.eu/w21/256b4d22-d3eb-4d29-b294-d4e57e1ba570" }, { "@id": "http://data.europa.eu/w21/25e0f21a-7c65-41f5-bac6-b92114a4705e" }, { "@id": "http://data.europa.eu/w21/2602a14a-e9b8-4050-a332-912716c7cad8" }, { "@id": "http://data.europa.eu/w21/26b77949-d869-4c8b-bd48-696241a0440f" }, { "@id": "http://data.europa.eu/w21/278006e8-46ff-4cc2-966b-39b09d843490" }, { "@id": "http://data.europa.eu/w21/2899337f-d088-4caf-9336-f46fa82388d3" }, { "@id": "http://data.europa.eu/w21/28c72180-e903-4dfd-b21e-f3194364a807" }, { "@id": "http://data.europa.eu/w21/2ca15a41-8833-4064-8b4d-f5241dc8e074" }, { "@id": "http://data.europa.eu/w21/2cce964f-e906-45aa-8ec1-f5223a8107c1" }, { "@id": "http://data.europa.eu/w21/2d322097-cf1d-4fca-93d1-d83a7b51ae78" }, { "@id": "http://data.europa.eu/w21/2ee501cc-7286-4c61-b131-3a3cc3511719" }, { "@id": "http://data.europa.eu/w21/2fb044c3-a2e0-47e9-bdfd-4cab2a6e5660" }, { "@id": "http://data.europa.eu/w21/312b1ab4-fe06-4c1b-aa75-b0f4446fda87" }, { "@id": "http://data.europa.eu/w21/31643cce-41f6-4009-9490-df757012340c" }, { "@id": "http://data.europa.eu/w21/3367acc4-2761-48d8-9a5d-5ceb5bc25d4b" }, { "@id": "http://data.europa.eu/w21/35a20906-1b0d-4295-902f-be4d1610f9d5" }, { "@id": "http://data.europa.eu/w21/367712ad-2a21-4ac7-a61d-f1084c488490", "@type": [ "http://www.w3.org/ns/dcat#Dataset" ], "http://purl.org/dc/terms/title": [ { "@value": "Joinup source code", "@language": "en" } ], "http://purl.org/dc/terms/modified": [ { "@value": "2024-11-12T08:30:19+00:00", "@type": "http://www.w3.org/2001/XMLSchema#dateTime" } ], "http://purl.org/dc/terms/issued": [ { "@value": "2018-11-20T13:00:48+00:00", "@type": "http://www.w3.org/2001/XMLSchema#dateTime" } ], "http://www.w3.org/ns/dcat#contactPoint": [ { "@id": "http://data.europa.eu/w21/87f4b5b6-38f4-427b-925a-91352f91ea02" } ], "http://purl.org/dc/terms/description": [ { "@value": "<p>This is the source code for the \"Interoperable Europe Portal\" (<a>https://interoperable-europe.ec.europa.eu/</a>). Joinup is a collaborative platform created by the European Commission and funded by the European Union via the <a>DIGITAL </a>programme.</p><p>It offers several services that aim to help e-Government professionals share their experience with each other. We also hope to support them to find, choose, re-use, develop and implement interoperability solutions.</p><p>The Joinup platform is developed as a Drupal 10 distribution, and therefore tries to follow the 'drupal-way' as much as possible.</p><p>You are free to fork this project to host your own collaborative platform. Joinup is licensed under the <a>EUPL</a>, which is compatible with the GPL.</p><blockquote><p>Find the latest Joinup source code release by clicking <a>here</a>.</p></blockquote><h2>Contributing</h2><p>See our <a>contributors guide</a>.</p><h2>Running your own instance of Joinup</h2><p>There are two ways to run Joinup. With <code>docker</code> and <code>docker-compose</code> and building a local installation.</p><h3>Docker</h3><p>To start with docker, please, check the separated <a>README file</a>.</p><h3>Local installation</h3><p>To run Joinup locally, below is a list of requirements and instructions.</p><h4>On macOS without Docker installation</h4><p>To start on macOS without Docker, please, check the separated <a>README file</a>.</p><h4>Requirements</h4><ul><li>A regular LAMP stack running PHP 7.4.0 or higher</li><li>Virtuoso 7 (Triplestore database)</li><li>Apache Solr</li><li>NPM 8 or higher</li></ul><h4>Dependency management and builds</h4><p>We use Drupal composer as a template for the project. For the most up-to-date information on how to use Composer, build the project using the Task Runner, or on how to run the Behat test, please refer directly to the documentation of each used tool.</p><h4>Initial setup</h4><ul><li><p>Clone the repository.</p><pre><code>$ git clone https://github.com/ec-europa/joinup-dev.git</code></pre></li><li><p>Use <a>composer</a> to install the dependencies.</p><pre><code>$ cd joinup-dev\r\n$ composer install</code></pre></li><li><p>Install Solr. If you already have Solr installed you can configure it manually by <a>following the installation instructions</a> from the Search API Solr module. Or you can execute the following commands to download and configure a local instance of Solr. It will be installed in the folder <code>./vendor/apache/solr</code>.</p><pre><code>$ ./vendor/bin/run solr:download-bin\r\n$ ./vendor/bin/run solr:config</code></pre></li><li><p>Install Virtuoso. For basic instructions, see <a>setting up Virtuoso</a>. Due to <a>a bug in Virtuoso 6</a> it is recommended to use Virtuoso 7. During installation some RDF based taxonomies will be imported from the <code>resources/fixtures</code> folder. Make sure Virtuoso can read from this folder by adding it to the <code>DirsAllowed</code> setting in your <code>virtuoso.ini</code>. For example:</p><pre><code>DirsAllowed = /var/www/joinup/resources/fixtures, /usr/share/virtuoso-opensource-7/vad</code></pre></li><li><p>Install <a>Selenium</a>. The simplest way of doing this is using Docker to install and run it with a single command. This will download all necessary files and start the browser in the background in headless mode:</p><pre><code>$ docker run -d -p 4444:4444 --network=host selenium/standalone-chrome</code></pre></li><li>Point the document root of your webserver to the 'web/' directory.</li></ul><h4>Create a local build properties file</h4><p>Create a new file in the root of the project named `build.properties.local using your favourite text editor:</p><pre><code>$ vim build.properties.local</code></pre><p> </p><p>This file will contain the configuration which is unique to your development machine. This is mainly useful for specifying your database credentials and the username and password of the Drupal admin user, so they can be used during the installation.</p><p>Because these settings are personal they should not be shared with the rest of the team. Make sure you never commit this file!</p><p>All options you can use can be found in the <code>build.properties</code> file. Just copy the lines you want to override and change their values. Do not copy the entire <code>build.properties</code> file, since this would override all options.</p><h4>Create a local task runner configuration file</h4><p>In order to override any configuration of the task runner (<code>./vendor/bin/run</code>), create a <code>runner.yml</code> file in the project's top directory. You can override there any default runner configuration, or any other declared in <code>./resources/runner</code> files or in <code>runner.yml.dist</code>. Note that the <code>runner.yml</code> file is not under VCS control.</p><h4>Setup environment variables</h4><p>Sensitive data will be stored in <a>environment variables</a>. See <code>.env.dist</code> for details. To adapt these values to your own environment, create a <code>.env</code> file that contains only the overridden values. For a local development environment this could look like the following:</p><pre><code>DRUPAL_BASE_URL=http://my-base-url.local\r\nDRUPAL_DATABASE_USERNAME=my-database-username\r\nDRUPAL_DATABASE_PASSWORD=my-database-password\r\nDRUPAL_DATABASE_NAME=joinup\r\nDRUPAL_DATABASE_HOST=localhost\r\nDRUPAL_HASH_SALT=some-unique-random-string-like-37h+2BQEQx83YLa/uFdsfG55\r\n\r\nSEARCH_API_SERVER_SS_SOLR_HOST=localhost\r\n\r\nDRUPAL_SPARQL_HOSTNAME=localhost\r\nREDIS_HOST=localhost\r\n\r\nSIMPLETEST_BASE_URL=http://my-base-url.local\r\nSIMPLETEST_DB=mysql://root@localhost:3306/joinup\r\nSIMPLETEST_SPARQL_DB=sparql://localhost:8890\r\nMINK_DRIVER_ARGS_WEBDRIVER=\"\"\r\nDTT_BASE_URL=http://my-base-url.local\r\nDTT_API_URL=http://localhost:4444/wd/hub\r\nDTT_MINK_DRIVER_ARGS=\"['chrome', null, 'http://localhost:4444/wd/hub']\"</code></pre><p> </p><h4>Build the project</h4><p>Run Composer install to get all dependencies and prepare the code base, then install the site with <code>toolkit:install-clean</code>:</p><pre><code>$ composer install\r\n$ ./vendor/bin/run toolkit:install-clean</code></pre><p> </p><h4>Run the tests</h4><p>Run the Behat test suite to validate your installation.</p><pre><code>$ cd tests\r\n$ ./behat</code></pre><p> </p><p>During development you can enable Behat test screen-shots by uncomment this line in <code>tests/features/bootstrap/FeatureContext.php</code>:</p><pre><code> // use \\Drupal\\joinup\\Traits\\ScreenShotTrait;</code></pre><p> </p><p>and use the <code>pretty</code> formatter instead of <code>progress</code>, in <code>tests/behat.yml</code>:</p><pre><code> formatters:\r\n pretty: ~</code></pre><p> </p><p>Also run the PHPUnit tests, from the web root.</p><pre><code>$ cd web\r\n$ ../vendor/bin/phpunit</code></pre><p> </p><h3>Frontend development</h3><p>See the <a>readme</a> in the theme folder.</p><h3>Upgrade process</h3><p>Joinup offers only <em>contiguous upgrades</em>. For instance, if you project is currently on Joinup <code>v1.39.2</code>, and the latest stable version is <code>v1.42.0</code>, then you cannot upgrade directly to the latest version. Instead, you should upgrade first to <code>v1.40.0</code>, second to <code>v1.40.1</code> (if exists) and, finally, to <code>v1.42.0</code>.</p><p>The Joinup update and post-update scripts naming is following this pattern:</p><p><code>function mymodule_update_0106100() {...}</code></p><p>or</p><p><code>function mymodule_post_update_0207503() {...}</code></p><p>The (post)updated identifier (the numeric part consists in seven digits with the following meaning:</p><ul><li>The first two digits are the Joinup major version.</li><li>The following three digits are the Joinup minor version.</li><li>The last two digits are an integer that sets the weight within updates or post updates from the same extension (module or profile). <code>00</code> is the first (post)update that applies.</li></ul><p>For the above example:</p><ul><li><code>function mymodule_update_0106100() {...}</code>: Was applied in Joinup <code>v1.61.x</code> as the first update of the <code>mymodule</code> module (<code>01</code> major version, <code>061</code> minor version, <code>00</code> update weight within the module).</li><li><code>function mymodule_post_update_0207503() {...}</code>: Was applied in Joinup <code>v2.75.x</code> as the fourth post update of the <code>mymodule</code> module (<code>02</code> major version, <code>075</code> minor version, <code>03</code> update weight within the module).</li></ul><h3>Technical details</h3><ul><li>In <a>Rdf draft module</a> there is information on handling draft in CRUD operations for rdf entities.</li><li>In <a>Joinup notification module</a> there is information on how to handle notifications in Joinup.</li><li>In <a>Joinup core module</a> there is information on how to handle and create workflows.</li></ul>" } ], "http://purl.org/dc/terms/language": [ { "@id": "http://publications.europa.eu/resource/authority/language/ENG" } ], "http://purl.org/dc/terms/publisher": [ { "@id": "http://data.europa.eu/w21/d09bb72f-7cde-464d-9b4e-3ceb6de4a05a" } ], "http://purl.org/dc/terms/type": [ { "@id": "http://data.europa.eu/dr8/InteroperableEuropeanSolution" } ], "http://www.w3.org/ns/dcat#distribution": [ { "@id": "http://data.europa.eu/w21/c28a0610-9052-4b58-a4c7-543aff918afe" } ], "http://purl.org/dc/terms/hasVersion": [ { "@id": "http://data.europa.eu/w21/c85c35aa-00a3-425b-b0d0-0332be91b77a" }, { "@id": "http://data.europa.eu/w21/1638fb52-519d-4495-ae30-6d836272ce95" }, { "@id": "http://data.europa.eu/w21/877e3b8f-f005-475f-ade0-7b7555209a42" }, { "@id": "http://data.europa.eu/w21/5bea734c-2662-4d28-9c62-d595ea3ff07d" }, { "@id": "http://data.europa.eu/w21/908de079-a224-40b4-a669-ba6cf2845bc5" }, { "@id": "http://data.europa.eu/w21/ed56b646-cfb4-454c-8dad-6c75b9124e2a" }, { "@id": "http://data.europa.eu/w21/256b4d22-d3eb-4d29-b294-d4e57e1ba570" }, { "@id": "http://data.europa.eu/w21/d9581d1d-b129-45f5-a524-72446393deca" }, { "@id": "http://data.europa.eu/w21/95c9e68f-3647-4716-a8c8-47f70b9477e9" }, { "@id": "http://data.europa.eu/w21/683b9f8a-c37d-43c3-8e13-44b277f9bbe5" }, { "@id": "http://data.europa.eu/w21/6cff55d0-b079-4c9c-aefc-642de617e5bf" }, { "@id": "http://data.europa.eu/w21/241e96a1-570e-4c21-b0e2-bcde2ce1049b" }, { "@id": "http://data.europa.eu/w21/71f85579-d94d-4ac9-90ef-4658aa2b559c" }, { "@id": "http://data.europa.eu/w21/de5e7976-a9ae-4aed-af5b-a695e6c30cea" }, { "@id": "http://data.europa.eu/w21/01e4b614-0a75-4b39-88d9-1f0067592837" }, { "@id": "http://data.europa.eu/w21/8e2b5f8f-c151-4d3b-b1bc-dc7bd03c15c3" }, { "@id": "http://data.europa.eu/w21/b5c32625-0b7b-4593-b0a5-409c7e078024" }, { "@id": "http://data.europa.eu/w21/157e3609-99ad-4ba2-bf16-8bba423df044" }, { "@id": "http://data.europa.eu/w21/98c0c9cd-216d-4d92-9564-41c29a84a9ed" }, { "@id": "http://data.europa.eu/w21/a707022e-f3bb-48fc-8559-7c2700ba49f0" }, { "@id": "http://data.europa.eu/w21/faf44df2-e61b-42c5-993b-77629786b597" }, { "@id": "http://data.europa.eu/w21/7262718d-c6ef-497e-aab9-b53e8fb7ec6f" }, { "@id": "http://data.europa.eu/w21/c1696222-8b16-4e54-9576-b136bc31795d" }, { "@id": "http://data.europa.eu/w21/7bcb2abd-0c5a-4c41-89e4-36845d88a144" }, { "@id": "http://data.europa.eu/w21/73b31325-e940-4271-adfb-7e2cab7a39aa" }, { "@id": "http://data.europa.eu/w21/35a20906-1b0d-4295-902f-be4d1610f9d5" }, { "@id": "http://data.europa.eu/w21/cecc9407-004c-41ed-a86e-ef5d471a38b9" }, { "@id": "http://data.europa.eu/w21/26b77949-d869-4c8b-bd48-696241a0440f" }, { "@id": "http://data.europa.eu/w21/19c1b4e4-8831-4f2d-a6bf-cfacb03c62ec" }, { "@id": "http://data.europa.eu/w21/ed60a416-35b3-418b-a9d1-4e1619e3ad9c" }, { "@id": "http://data.europa.eu/w21/5821ea74-74c5-4ff4-a05a-ad16b683feb6" }, { "@id": "http://data.europa.eu/w21/b77a23a0-c2e4-47c2-b95f-07e536a27696" }, { "@id": "http://data.europa.eu/w21/1d56e639-a328-426b-a8aa-ebb1e192e2d4" }, { "@id": "http://data.europa.eu/w21/93686332-335a-4bf1-8af1-a0a3afdf41de" }, { "@id": "http://data.europa.eu/w21/0cbe0fe0-938f-475d-9949-b836948c45b6" }, { "@id": "http://data.europa.eu/w21/e33848b4-02ee-437c-a06c-c259b2dde511" }, { "@id": "http://data.europa.eu/w21/e4a8e9a2-ffcc-43a1-9600-1207d650c61e" }, { "@id": "http://data.europa.eu/w21/d9a82cf6-43f6-46f5-9401-53e747266ab9" }, { "@id": "http://data.europa.eu/w21/5f2c1e78-6842-418d-a872-b1e92c78aaf4" }, { "@id": "http://data.europa.eu/w21/1a5a4e8d-b03d-4a87-997c-04d1bedd3b40" }, { "@id": "http://data.europa.eu/w21/6b8fadb4-7dd0-4068-a101-43ce35260ebd" }, { "@id": "http://data.europa.eu/w21/5ccaa588-2419-4ad9-810b-65525473ceb0" }, { "@id": "http://data.europa.eu/w21/4184c5f1-e67f-49b9-89b4-80b286bc827e" }, { "@id": "http://data.europa.eu/w21/312b1ab4-fe06-4c1b-aa75-b0f4446fda87" }, { "@id": "http://data.europa.eu/w21/edeaa602-1a14-4871-83c5-87cc12beecb0" }, { "@id": "http://data.europa.eu/w21/148e4dbe-2d79-4d04-b675-7194a47a6eb1" }, { "@id": "http://data.europa.eu/w21/0f245e67-92c7-4d75-b9bf-d3738f0efbdd" }, { "@id": "http://data.europa.eu/w21/e6d7115c-c93e-421e-9170-dd557706400b" }, { "@id": "http://data.europa.eu/w21/fce456b6-44da-4b1d-8328-5d2699b57240" }, { "@id": "http://data.europa.eu/w21/890ae367-8592-44e8-9a14-ad22e5d567f5" }, { "@id": "http://data.europa.eu/w21/7a1498ba-cfd3-451c-8a97-33411617cdb7" }, { "@id": "http://data.europa.eu/w21/ced80c4f-e034-43b0-a12e-9612d306832b" }, { "@id": "http://data.europa.eu/w21/0e95a8e8-a5e7-4192-b267-542d20aab136" }, { "@id": "http://data.europa.eu/w21/a064262c-db77-410d-878c-19adb6a13d42" }, { "@id": "http://data.europa.eu/w21/250b69f6-ac3e-4093-9189-b0bf49481c20" }, { "@id": "http://data.europa.eu/w21/ffdd4c93-0712-430f-b63c-fc87350a10ca" }, { "@id": "http://data.europa.eu/w21/4a0b980d-9875-48b1-ba8f-51064e2a2ed3" }, { "@id": "http://data.europa.eu/w21/278006e8-46ff-4cc2-966b-39b09d843490" }, { "@id": "http://data.europa.eu/w21/18589983-89e1-496c-97e9-4adf80af4788" }, { "@id": "http://data.europa.eu/w21/c5187942-d4d4-4feb-97ed-6974620aa502" }, { "@id": "http://data.europa.eu/w21/a14aa6d8-3d81-41d7-82fb-98f54e9dac46" }, { "@id": "http://data.europa.eu/w21/c766b615-21dc-43a5-bdfa-ddcc70c28378" }, { "@id": "http://data.europa.eu/w21/25e0f21a-7c65-41f5-bac6-b92114a4705e" }, { "@id": "http://data.europa.eu/w21/5ee8a1ca-cf8e-4f9c-9b1a-c387c661d09d" }, { "@id": "http://data.europa.eu/w21/6133afad-d434-48eb-9b29-89d76abc7243" }, { "@id": "http://data.europa.eu/w21/3b430c87-977d-4c90-af82-89ea42f79409" }, { "@id": "http://data.europa.eu/w21/d49ceadb-4ee0-4116-8d44-6f454311a90e" }, { "@id": "http://data.europa.eu/w21/fb3d2532-d71b-45cf-9a44-66606d8d94fc" }, { "@id": "http://data.europa.eu/w21/16c59c60-73ff-41a4-b3a8-49b8a574fe95" }, { "@id": "http://data.europa.eu/w21/2ca15a41-8833-4064-8b4d-f5241dc8e074" }, { "@id": "http://data.europa.eu/w21/a07aa6e9-fb9d-4df0-b120-6537ef04b11e" }, { "@id": "http://data.europa.eu/w21/fb83bd00-68b2-4806-afb6-24adfe2fd77c" }, { "@id": "http://data.europa.eu/w21/2fb044c3-a2e0-47e9-bdfd-4cab2a6e5660" }, { "@id": "http://data.europa.eu/w21/2899337f-d088-4caf-9336-f46fa82388d3" }, { "@id": "http://data.europa.eu/w21/ecf6c2c7-2705-420a-9418-f328a15a4ae4" }, { "@id": "http://data.europa.eu/w21/1551c4fb-59a9-4faa-aab7-6d6368030854" }, { "@id": "http://data.europa.eu/w21/c2c406b6-1540-47a5-ad58-38bbba58ec11" }, { "@id": "http://data.europa.eu/w21/17cb923b-7699-43a5-a9ec-1b3088f79bb4" }, { "@id": "http://data.europa.eu/w21/aa9f8ada-6307-4400-ac2e-dc5559e5c863" }, { "@id": "http://data.europa.eu/w21/8ffd4e27-be96-47d5-bb63-56d3a11d5590" }, { "@id": "http://data.europa.eu/w21/3bb3b163-abf0-4db1-be97-00808be6b14e" }, { "@id": "http://data.europa.eu/w21/14a8f10a-cd06-4837-8176-98e3bbc9abb3" }, { "@id": "http://data.europa.eu/w21/2cce964f-e906-45aa-8ec1-f5223a8107c1" }, { "@id": "http://data.europa.eu/w21/18b1e259-d7de-4e29-bc60-0abe59e8cc8a" }, { "@id": "http://data.europa.eu/w21/0d1fc38e-0645-4471-b5b8-e20c606deeff" }, { "@id": "http://data.europa.eu/w21/5e104792-16fc-4d96-916a-1dc132410f76" }, { "@id": "http://data.europa.eu/w21/2ee501cc-7286-4c61-b131-3a3cc3511719" }, { "@id": "http://data.europa.eu/w21/2602a14a-e9b8-4050-a332-912716c7cad8" }, { "@id": "http://data.europa.eu/w21/e43a00e2-7a10-46a2-8ab3-312b380aee68" }, { "@id": "http://data.europa.eu/w21/b4c08850-e6e6-4cef-bf56-12aa8e7b9d6d" }, { "@id": "http://data.europa.eu/w21/017218a6-d0ef-405c-8b3a-eb7960a615a8" }, { "@id": "http://data.europa.eu/w21/3367acc4-2761-48d8-9a5d-5ceb5bc25d4b" }, { "@id": "http://data.europa.eu/w21/010a07a2-43f4-4047-b2db-c6e0e34aa067" }, { "@id": "http://data.europa.eu/w21/9c8a9d40-c7a0-40af-b020-7a14ec314042" }, { "@id": "http://data.europa.eu/w21/76e52c5e-7ad3-4bb8-ad0c-c44ab8e37ec3" }, { "@id": "http://data.europa.eu/w21/31643cce-41f6-4009-9490-df757012340c" }, { "@id": "http://data.europa.eu/w21/6b6e4a7e-ceed-4f11-91f6-929b4f87314b" }, { "@id": "http://data.europa.eu/w21/4a50176f-6c14-40fc-bc71-049b1fca1869" }, { "@id": "http://data.europa.eu/w21/e66e5ef8-5e2b-482c-a3ff-5a755e45d3ce" }, { "@id": "http://data.europa.eu/w21/86bcee1b-2d18-4a3f-b49f-d5208ff05326" }, { "@id": "http://data.europa.eu/w21/b87689c7-000a-405b-b1da-5cf7d2a7a401" }, { "@id": "http://data.europa.eu/w21/ae24c438-6ed2-4aad-b66c-32982f7f311e" }, { "@id": "http://data.europa.eu/w21/1a16bebc-f6c6-43cc-8570-13195991cd3e" }, { "@id": "http://data.europa.eu/w21/2d322097-cf1d-4fca-93d1-d83a7b51ae78" }, { "@id": "http://data.europa.eu/w21/f4931793-c4dc-4d74-8716-fc9cec9e09a4" }, { "@id": "http://data.europa.eu/w21/46092687-a90e-47ca-8995-5559ea76ad7e" }, { "@id": "http://data.europa.eu/w21/cb11a635-c12a-40b9-9977-4044fc559e4a" }, { "@id": "http://data.europa.eu/w21/8ac34bc0-9170-4405-b9a5-5ce41a6c93a0" }, { "@id": "http://data.europa.eu/w21/d73ade1e-d11a-4428-aabc-d1999ea918af" }, { "@id": "http://data.europa.eu/w21/bb9005d1-4407-4b0f-9129-df73d2005b5c" }, { "@id": "http://data.europa.eu/w21/a2350d3c-d3da-4bdf-8f52-b664257c2413" }, { "@id": "http://data.europa.eu/w21/a0497276-1af1-4251-b454-3447e7c33371" }, { "@id": "http://data.europa.eu/w21/564c4ec1-91f7-4d13-b743-705a5dbdb473" }, { "@id": "http://data.europa.eu/w21/eb9422be-d9e2-483f-86dd-6c242d511036" }, { "@id": "http://data.europa.eu/w21/fea2ad42-9ece-482c-8105-8923ae6ace9d" }, { "@id": "http://data.europa.eu/w21/d0736e55-34a8-42c1-b3e6-865d1f3826c9" }, { "@id": "http://data.europa.eu/w21/621b91ba-4851-420b-b22d-c2b641b19477" }, { "@id": "http://data.europa.eu/w21/28c72180-e903-4dfd-b21e-f3194364a807" }, { "@id": "http://data.europa.eu/w21/6e78d72c-409b-4316-bc03-78c810ceb5ad" }, { "@id": "http://data.europa.eu/w21/fdbebac8-3595-4ee0-b416-8a875ba141d4" }, { "@id": "http://data.europa.eu/w21/6c5655b0-99d2-46a6-9f47-f9ab635f8eb1" }, { "@id": "http://data.europa.eu/w21/95e6ac80-4677-4266-8512-e41a7e9efd28" }, { "@id": "http://data.europa.eu/w21/8b5acce3-43ba-48dd-ad70-a30bf3e24f4c" }, { "@id": "http://data.europa.eu/w21/146e3071-8219-423c-abef-8d252a4d971e" }, { "@id": "http://data.europa.eu/w21/0adfb657-3d08-43c4-a7d9-035b665c273d" }, { "@id": "http://data.europa.eu/w21/0f379dbb-2164-470f-a744-e2768788330b" }, { "@id": "http://data.europa.eu/w21/40226fdb-7312-435e-9e8d-46a7d639cb05" }, { "@id": "http://data.europa.eu/w21/8ffe23b1-3f72-4d56-98cc-9ba50bfb73f7" }, { "@id": "http://data.europa.eu/w21/799c4069-53af-42e7-87b8-eaf79ed91012" }, { "@id": "http://data.europa.eu/w21/5f8ba3bb-312f-4242-b7ab-d96b0b986c26" }, { "@id": "http://data.europa.eu/w21/f573afcf-c695-4111-aaa1-a95a941bee85" }, { "@id": "http://data.europa.eu/w21/4f3f6c4d-1c88-4552-9013-fbc98b5d6936" }, { "@id": "http://data.europa.eu/w21/219df90e-4a45-4fe9-adb9-b2054ad9957d" }, { "@id": "http://data.europa.eu/w21/9995ee4e-7f9a-4657-a443-0659caf130da" }, { "@id": "http://data.europa.eu/w21/9afe3900-df05-47d6-b16e-44f680f68893" }, { "@id": "http://data.europa.eu/w21/01006c44-ee30-4f0f-a659-6267a9f20823" }, { "@id": "http://data.europa.eu/w21/c29afcf7-ab77-49f9-a35c-0aa731160f35" }, { "@id": "http://data.europa.eu/w21/ddf4ec35-ba94-4bfd-b29b-94d4a7edfb41" }, { "@id": "http://data.europa.eu/w21/d6576902-2c96-4c6b-a2ec-bcf4d7a3eba9" }, { "@id": "http://data.europa.eu/w21/cd23d833-ff71-4518-9784-a15c0c2631ed" }, { "@id": "http://data.europa.eu/w21/3cfcbdfe-a319-470e-889c-775805b77971" }, { "@id": "http://data.europa.eu/w21/4bb3f15a-33b8-450d-a3c7-362e6e490e5d" }, { "@id": "http://data.europa.eu/w21/8d43ced2-5bb1-422b-9d9f-ea25fa1e5204" }, { "@id": "http://data.europa.eu/w21/0ff75269-d78a-4168-a92a-cdd19372d362" }, { "@id": "http://data.europa.eu/w21/9d4b127e-6433-4449-a076-f451485b4c69" }, { "@id": "http://data.europa.eu/w21/a2a4cf03-8839-4da4-bd28-eacdd2381ae0" }, { "@id": "http://data.europa.eu/w21/e63f2850-e3c9-4f6b-a9d2-74c764758b01" }, { "@id": "http://data.europa.eu/w21/a6e7e90a-8b0f-4b8c-923f-c6a79567ad63" }, { "@id": "http://data.europa.eu/w21/66458e5f-6e91-4b8b-8287-226b6ad0a44c" }, { "@id": "http://data.europa.eu/w21/8ed07201-fc86-4b5f-9402-70c6c97dfc38" }, { "@id": "http://data.europa.eu/w21/aa11730a-662c-49b6-9fed-632dece8b848" }, { "@id": "http://data.europa.eu/w21/1b6711f0-ed0f-4a52-a365-a3e095641458" }, { "@id": "http://data.europa.eu/w21/6bb6da31-1283-4793-b65f-1d962dd1bb80" }, { "@id": "http://data.europa.eu/w21/5fecd91c-b262-4feb-88d3-c9d4f6e83ad2" }, { "@id": "http://data.europa.eu/w21/235ab775-29b3-42c9-bee3-c3135e2c1e18" }, { "@id": "http://data.europa.eu/w21/a02697e1-fe6e-4f3d-9ea2-d7bc3b249a21" }, { "@id": "http://data.europa.eu/w21/5c18aa81-643a-41a7-bb16-796922b91565" }, { "@id": "http://data.europa.eu/w21/49140521-efb3-458c-9f80-66dd3c919f08" }, { "@id": "http://data.europa.eu/w21/48a2fef9-623c-44a4-8873-c7e98dac6cf0" }, { "@id": "http://data.europa.eu/w21/9acd64bd-9752-47cf-bf1d-37309d1fcf44" }, { "@id": "http://data.europa.eu/w21/a268a033-5367-426d-aef3-cb4c9e3b8a16" }, { "@id": "http://data.europa.eu/w21/85b1d5e2-acae-45df-82a7-41063f863b10" }, { "@id": "http://data.europa.eu/w21/e8222756-e2f0-4763-81da-77da434398b5" }, { "@id": "http://data.europa.eu/w21/b315592a-3703-45e8-923e-646392fc6c4e" } ] }, { "@id": "http://data.europa.eu/w21/3b430c87-977d-4c90-af82-89ea42f79409" }, { "@id": "http://data.europa.eu/w21/3bb3b163-abf0-4db1-be97-00808be6b14e" }, { "@id": "http://data.europa.eu/w21/3cfcbdfe-a319-470e-889c-775805b77971" }, { "@id": "http://data.europa.eu/w21/40226fdb-7312-435e-9e8d-46a7d639cb05" }, { "@id": "http://data.europa.eu/w21/4184c5f1-e67f-49b9-89b4-80b286bc827e" }, { "@id": "http://data.europa.eu/w21/46092687-a90e-47ca-8995-5559ea76ad7e" }, { "@id": "http://data.europa.eu/w21/48a2fef9-623c-44a4-8873-c7e98dac6cf0" }, { "@id": "http://data.europa.eu/w21/49140521-efb3-458c-9f80-66dd3c919f08" }, { "@id": "http://data.europa.eu/w21/4a0b980d-9875-48b1-ba8f-51064e2a2ed3" }, { "@id": "http://data.europa.eu/w21/4a50176f-6c14-40fc-bc71-049b1fca1869" }, { "@id": "http://data.europa.eu/w21/4bb3f15a-33b8-450d-a3c7-362e6e490e5d" }, { "@id": "http://data.europa.eu/w21/4f3f6c4d-1c88-4552-9013-fbc98b5d6936" }, { "@id": "http://data.europa.eu/w21/564c4ec1-91f7-4d13-b743-705a5dbdb473" }, { "@id": "http://data.europa.eu/w21/5821ea74-74c5-4ff4-a05a-ad16b683feb6" }, { "@id": "http://data.europa.eu/w21/5bea734c-2662-4d28-9c62-d595ea3ff07d" }, { "@id": "http://data.europa.eu/w21/5c18aa81-643a-41a7-bb16-796922b91565" }, { "@id": "http://data.europa.eu/w21/5ccaa588-2419-4ad9-810b-65525473ceb0" }, { "@id": "http://data.europa.eu/w21/5e104792-16fc-4d96-916a-1dc132410f76" }, { "@id": "http://data.europa.eu/w21/5ee8a1ca-cf8e-4f9c-9b1a-c387c661d09d" }, { "@id": "http://data.europa.eu/w21/5f2c1e78-6842-418d-a872-b1e92c78aaf4" }, { "@id": "http://data.europa.eu/w21/5f8ba3bb-312f-4242-b7ab-d96b0b986c26" }, { "@id": "http://data.europa.eu/w21/5fecd91c-b262-4feb-88d3-c9d4f6e83ad2" }, { "@id": "http://data.europa.eu/w21/6133afad-d434-48eb-9b29-89d76abc7243" }, { "@id": "http://data.europa.eu/w21/621b91ba-4851-420b-b22d-c2b641b19477" }, { "@id": "http://data.europa.eu/w21/66458e5f-6e91-4b8b-8287-226b6ad0a44c" }, { "@id": "http://data.europa.eu/w21/683b9f8a-c37d-43c3-8e13-44b277f9bbe5" }, { "@id": "http://data.europa.eu/w21/6b6e4a7e-ceed-4f11-91f6-929b4f87314b" }, { "@id": "http://data.europa.eu/w21/6b8fadb4-7dd0-4068-a101-43ce35260ebd" }, { "@id": "http://data.europa.eu/w21/6bb6da31-1283-4793-b65f-1d962dd1bb80" }, { "@id": "http://data.europa.eu/w21/6c5655b0-99d2-46a6-9f47-f9ab635f8eb1" }, { "@id": "http://data.europa.eu/w21/6cff55d0-b079-4c9c-aefc-642de617e5bf" }, { "@id": "http://data.europa.eu/w21/6e78d72c-409b-4316-bc03-78c810ceb5ad" }, { "@id": "http://data.europa.eu/w21/71f85579-d94d-4ac9-90ef-4658aa2b559c" }, { "@id": "http://data.europa.eu/w21/7262718d-c6ef-497e-aab9-b53e8fb7ec6f" }, { "@id": "http://data.europa.eu/w21/73b31325-e940-4271-adfb-7e2cab7a39aa" }, { "@id": "http://data.europa.eu/w21/76e52c5e-7ad3-4bb8-ad0c-c44ab8e37ec3" }, { "@id": "http://data.europa.eu/w21/799c4069-53af-42e7-87b8-eaf79ed91012" }, { "@id": "http://data.europa.eu/w21/7a1498ba-cfd3-451c-8a97-33411617cdb7" }, { "@id": "http://data.europa.eu/w21/7bcb2abd-0c5a-4c41-89e4-36845d88a144" }, { "@id": "http://data.europa.eu/w21/85b1d5e2-acae-45df-82a7-41063f863b10" }, { "@id": "http://data.europa.eu/w21/86bcee1b-2d18-4a3f-b49f-d5208ff05326" }, { "@id": "http://data.europa.eu/w21/877e3b8f-f005-475f-ade0-7b7555209a42" }, { "@id": "http://data.europa.eu/w21/87f4b5b6-38f4-427b-925a-91352f91ea02" }, { "@id": "http://data.europa.eu/w21/890ae367-8592-44e8-9a14-ad22e5d567f5" }, { "@id": "http://data.europa.eu/w21/8ac34bc0-9170-4405-b9a5-5ce41a6c93a0" }, { "@id": "http://data.europa.eu/w21/8b5acce3-43ba-48dd-ad70-a30bf3e24f4c" }, { "@id": "http://data.europa.eu/w21/8d43ced2-5bb1-422b-9d9f-ea25fa1e5204" }, { "@id": "http://data.europa.eu/w21/8e2b5f8f-c151-4d3b-b1bc-dc7bd03c15c3" }, { "@id": "http://data.europa.eu/w21/8ed07201-fc86-4b5f-9402-70c6c97dfc38" }, { "@id": "http://data.europa.eu/w21/8ffd4e27-be96-47d5-bb63-56d3a11d5590" }, { "@id": "http://data.europa.eu/w21/8ffe23b1-3f72-4d56-98cc-9ba50bfb73f7" }, { "@id": "http://data.europa.eu/w21/908de079-a224-40b4-a669-ba6cf2845bc5" }, { "@id": "http://data.europa.eu/w21/93686332-335a-4bf1-8af1-a0a3afdf41de" }, { "@id": "http://data.europa.eu/w21/95c9e68f-3647-4716-a8c8-47f70b9477e9" }, { "@id": "http://data.europa.eu/w21/95e6ac80-4677-4266-8512-e41a7e9efd28" }, { "@id": "http://data.europa.eu/w21/98c0c9cd-216d-4d92-9564-41c29a84a9ed" }, { "@id": "http://data.europa.eu/w21/9995ee4e-7f9a-4657-a443-0659caf130da" }, { "@id": "http://data.europa.eu/w21/9acd64bd-9752-47cf-bf1d-37309d1fcf44" }, { "@id": "http://data.europa.eu/w21/9afe3900-df05-47d6-b16e-44f680f68893" }, { "@id": "http://data.europa.eu/w21/9c8a9d40-c7a0-40af-b020-7a14ec314042" }, { "@id": "http://data.europa.eu/w21/9d4b127e-6433-4449-a076-f451485b4c69" }, { "@id": "http://data.europa.eu/w21/a02697e1-fe6e-4f3d-9ea2-d7bc3b249a21" }, { "@id": "http://data.europa.eu/w21/a0497276-1af1-4251-b454-3447e7c33371" }, { "@id": "http://data.europa.eu/w21/a064262c-db77-410d-878c-19adb6a13d42" }, { "@id": "http://data.europa.eu/w21/a07aa6e9-fb9d-4df0-b120-6537ef04b11e" }, { "@id": "http://data.europa.eu/w21/a14aa6d8-3d81-41d7-82fb-98f54e9dac46" }, { "@id": "http://data.europa.eu/w21/a2350d3c-d3da-4bdf-8f52-b664257c2413" }, { "@id": "http://data.europa.eu/w21/a268a033-5367-426d-aef3-cb4c9e3b8a16" }, { "@id": "http://data.europa.eu/w21/a2a4cf03-8839-4da4-bd28-eacdd2381ae0" }, { "@id": "http://data.europa.eu/w21/a6e7e90a-8b0f-4b8c-923f-c6a79567ad63" }, { "@id": "http://data.europa.eu/w21/a707022e-f3bb-48fc-8559-7c2700ba49f0" }, { "@id": "http://data.europa.eu/w21/aa11730a-662c-49b6-9fed-632dece8b848" }, { "@id": "http://data.europa.eu/w21/aa9f8ada-6307-4400-ac2e-dc5559e5c863" }, { "@id": "http://data.europa.eu/w21/ae24c438-6ed2-4aad-b66c-32982f7f311e" }, { "@id": "http://data.europa.eu/w21/b315592a-3703-45e8-923e-646392fc6c4e" }, { "@id": "http://data.europa.eu/w21/b4c08850-e6e6-4cef-bf56-12aa8e7b9d6d" }, { "@id": "http://data.europa.eu/w21/b5c32625-0b7b-4593-b0a5-409c7e078024" }, { "@id": "http://data.europa.eu/w21/b77a23a0-c2e4-47c2-b95f-07e536a27696" }, { "@id": "http://data.europa.eu/w21/b87689c7-000a-405b-b1da-5cf7d2a7a401" }, { "@id": "http://data.europa.eu/w21/bb9005d1-4407-4b0f-9129-df73d2005b5c" }, { "@id": "http://data.europa.eu/w21/c1696222-8b16-4e54-9576-b136bc31795d" }, { "@id": "http://data.europa.eu/w21/c28a0610-9052-4b58-a4c7-543aff918afe" }, { "@id": "http://data.europa.eu/w21/c29afcf7-ab77-49f9-a35c-0aa731160f35" }, { "@id": "http://data.europa.eu/w21/c2c406b6-1540-47a5-ad58-38bbba58ec11" }, { "@id": "http://data.europa.eu/w21/c5187942-d4d4-4feb-97ed-6974620aa502" }, { "@id": "http://data.europa.eu/w21/c766b615-21dc-43a5-bdfa-ddcc70c28378" }, { "@id": "http://data.europa.eu/w21/c85c35aa-00a3-425b-b0d0-0332be91b77a" }, { "@id": "http://data.europa.eu/w21/cb11a635-c12a-40b9-9977-4044fc559e4a" }, { "@id": "http://data.europa.eu/w21/cd23d833-ff71-4518-9784-a15c0c2631ed" }, { "@id": "http://data.europa.eu/w21/cecc9407-004c-41ed-a86e-ef5d471a38b9" }, { "@id": "http://data.europa.eu/w21/ced80c4f-e034-43b0-a12e-9612d306832b" }, { "@id": "http://data.europa.eu/w21/d0736e55-34a8-42c1-b3e6-865d1f3826c9" }, { "@id": "http://data.europa.eu/w21/d09bb72f-7cde-464d-9b4e-3ceb6de4a05a" }, { "@id": "http://data.europa.eu/w21/d49ceadb-4ee0-4116-8d44-6f454311a90e" }, { "@id": "http://data.europa.eu/w21/d6576902-2c96-4c6b-a2ec-bcf4d7a3eba9" }, { "@id": "http://data.europa.eu/w21/d73ade1e-d11a-4428-aabc-d1999ea918af" }, { "@id": "http://data.europa.eu/w21/d9581d1d-b129-45f5-a524-72446393deca" }, { "@id": "http://data.europa.eu/w21/d9a82cf6-43f6-46f5-9401-53e747266ab9" }, { "@id": "http://data.europa.eu/w21/ddf4ec35-ba94-4bfd-b29b-94d4a7edfb41" }, { "@id": "http://data.europa.eu/w21/de5e7976-a9ae-4aed-af5b-a695e6c30cea" }, { "@id": "http://data.europa.eu/w21/e33848b4-02ee-437c-a06c-c259b2dde511" }, { "@id": "http://data.europa.eu/w21/e43a00e2-7a10-46a2-8ab3-312b380aee68" }, { "@id": "http://data.europa.eu/w21/e4a8e9a2-ffcc-43a1-9600-1207d650c61e" }, { "@id": "http://data.europa.eu/w21/e63f2850-e3c9-4f6b-a9d2-74c764758b01" }, { "@id": "http://data.europa.eu/w21/e66e5ef8-5e2b-482c-a3ff-5a755e45d3ce" }, { "@id": "http://data.europa.eu/w21/e6d7115c-c93e-421e-9170-dd557706400b" }, { "@id": "http://data.europa.eu/w21/e8222756-e2f0-4763-81da-77da434398b5" }, { "@id": "http://data.europa.eu/w21/eb9422be-d9e2-483f-86dd-6c242d511036" }, { "@id": "http://data.europa.eu/w21/ecf6c2c7-2705-420a-9418-f328a15a4ae4" }, { "@id": "http://data.europa.eu/w21/ed56b646-cfb4-454c-8dad-6c75b9124e2a" }, { "@id": "http://data.europa.eu/w21/ed60a416-35b3-418b-a9d1-4e1619e3ad9c" }, { "@id": "http://data.europa.eu/w21/edeaa602-1a14-4871-83c5-87cc12beecb0" }, { "@id": "http://data.europa.eu/w21/f4931793-c4dc-4d74-8716-fc9cec9e09a4" }, { "@id": "http://data.europa.eu/w21/f573afcf-c695-4111-aaa1-a95a941bee85" }, { "@id": "http://data.europa.eu/w21/faf44df2-e61b-42c5-993b-77629786b597" }, { "@id": "http://data.europa.eu/w21/fb3d2532-d71b-45cf-9a44-66606d8d94fc" }, { "@id": "http://data.europa.eu/w21/fb83bd00-68b2-4806-afb6-24adfe2fd77c" }, { "@id": "http://data.europa.eu/w21/fce456b6-44da-4b1d-8328-5d2699b57240" }, { "@id": "http://data.europa.eu/w21/fdbebac8-3595-4ee0-b416-8a875ba141d4" }, { "@id": "http://data.europa.eu/w21/fea2ad42-9ece-482c-8105-8923ae6ace9d" }, { "@id": "http://data.europa.eu/w21/ffdd4c93-0712-430f-b63c-fc87350a10ca" }, { "@id": "http://publications.europa.eu/resource/authority/language/ENG" }, { "@id": "http://www.w3.org/ns/dcat#Dataset" } ] }</script> <link rel="icon" href="/themes/ventuno/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="alternate" hreflang="en" href="https://interoperable-europe.ec.europa.eu/collection/joinup/solution/joinup-source-code" /> <link href="https://interoperable-europe.ec.europa.eu/collection/joinup/solution/joinup-source-code/feed.xml" rel="alternate" title="Latest updates from the Joinup source code solution" type="application/rss+xml" /> <script type="text/javascript">window.MSInputMethodContext && document.documentMode && document.write("\u003Clink rel=\u0022stylesheet\u0022 href=\u0022https:\/\/interoperable-europe.ec.europa.eu\/themes\/contrib\/oe_bootstrap_theme\/assets\/css\/bootstrap-ie11.css\u0022\u003E\u003Cscript src=\u0022https:\/\/cdn.jsdelivr.net\/combine\/npm\/ie11-custom-properties@4,npm\/element-qsa-scope@1\u0022\u003E\u003C\/script\u003E\u003Cscript crossorigin=\u0022anonymous\u0022 src=\u0022https:\/\/cdnjs.cloudflare.com\/polyfill\/v3\/polyfill.min.js?version=3.111.0\u0026features=Array.prototype.find%2CArray.prototype.includes%2CNumber.parseFloat%2CNumber.parseInt%2Cdefault\u0022\u003E\u003C\/script\u003E");</script> <title>Joinup source code | Interoperable Europe Portal</title> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_SSa_Qla5qYi_COwt9sV3XEguO7WRbAQ5QuVWwEWID_E.css?delta=0&language=en&theme=ventuno&include=eJx1UdFywyAM-yEIn5Qz1KVewebAdOvfj6QrabfbCyCdbMlGpVen47BN74k4miIpuVPtBdKyve1gr800CQRpzXgiWHfK_aUWvWBG0-5NMTsPDc0NWTvLOwiSi_AAbVIJ7tJ1wkejicAnPLRnEcVqglR8Jh0RksSpKBCJQUn46EEJzRkCansWPdASLhiuXr7sJ50i6qvr4dkQbR6Gk0CtwGMvpDjqcIWEVR0xHQ0ycrdWorUMN4rveTwMs4lilV7ekfXAPMZsCDVcVii0QlfZdpdQ0f3Dv2yp5mY-hLiX9SGejV-tRzYP4_93xZF9C_9LMyGEbZRmdw2wkhd1P_ey-X4D-nDqkg" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_Pz--4Y1cjSau0sWtAt45tpgimxwgX8uRjwolbLO93pE.css?delta=1&language=en&theme=ventuno&include=eJx1UdFywyAM-yEIn5Qz1KVewebAdOvfj6QrabfbCyCdbMlGpVen47BN74k4miIpuVPtBdKyve1gr800CQRpzXgiWHfK_aUWvWBG0-5NMTsPDc0NWTvLOwiSi_AAbVIJ7tJ1wkejicAnPLRnEcVqglR8Jh0RksSpKBCJQUn46EEJzRkCansWPdASLhiuXr7sJ50i6qvr4dkQbR6Gk0CtwGMvpDjqcIWEVR0xHQ0ycrdWorUMN4rveTwMs4lilV7ekfXAPMZsCDVcVii0QlfZdpdQ0f3Dv2yp5mY-hLiX9SGejV-tRzYP4_93xZF9C_9LMyGEbZRmdw2wkhd1P_ey-X4D-nDqkg" /> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/719986","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxPageState":{"libraries":"eJxtkmGSgyAMhS8EciQmYGrZAmFIsPX2izpVu9s_yveCmedLIEtwJAb293CjmpSnimasrUAcxgCRpgF-4KVu4FH4Xdlp8Hf0D0cv_QzjhKJ-KORWLCNUfzdTpVa0g15SERZqYsfAnmasi6GMnqIitI5IWCoUK3dMaJz_KrMsEdfCE50QxcPLmzUnqBIJRqyqUIzvC-tZx5AfrHZnFkqw0IQ8pRJRevPvuuIg2P8NLUSsYkIOoph8z8Um7PHYra35Lw2bacULCybjgFEJtWrWh5oxS8tkwEugzDphboe453USn7Da6rll4UPCnlA-8dZDw3rBms7iNo9P6tPJ-fLBPqYDV2Na06R1hjlMsNo9ix-2-wUH9Q_qPddDLTCF_NmFEXXqO3cIAi4iX_ECW6gHhb4Qc8Anb0Pj5lLo23wcfwG49CF5","theme":"ventuno","theme_token":null},"ajaxTrustedUrl":{"\/search":true,"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM":true},"tourShepherdConfig":{"defaultStepOptions":{"classes":"drupal-tour","cancelIcon":{"enabled":true,"label":"Close"},"modalOverlayOpeningPadding":3,"scrollTo":{"behavior":"smooth","block":"center"},"popperOptions":{"modifiers":[{"name":"offset","options":{"offset":[-10,20]}},{"name":"arrow","options":{"padding":12}},{"name":"focusAfterRender","enabled":false}]}},"useModalOverlay":true},"_tour_internal":[{"id":"collection_content","selector":".canonical-entity-page--rdf-entity--collection .listing .listing__item","module":"joinup_core","type":"text","counter":"1 of 8","attachTo":{"element":".canonical-entity-page--rdf-entity--collection .listing .listing__item","on":"left-start"},"classes":"tip-module-joinup-core tip-type-text tip-collection-content","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EThe content area displays items that have been created or shared within a collection. This is the default view when entering a collection.\u003C\/p\u003E\n","title":"Collection content"},{"id":"solution_content","selector":".canonical-entity-page--rdf-entity--solution .listing .listing__item","module":"joinup_core","type":"text","counter":"2 of 8","attachTo":{"element":".canonical-entity-page--rdf-entity--solution .listing .listing__item","on":"left-start"},"classes":"tip-module-joinup-core tip-type-text tip-solution-content","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EThe content area displays items that have been created or shared within a solution. This is the default view when entering a solution.\u003C\/p\u003E\n","title":"Solution content"},{"id":"collection_menu","selector":".canonical-entity-page--rdf-entity--collection .sidebar-menu .menu:first-child","module":"joinup_core","type":"text","counter":"3 of 8","attachTo":{"element":".canonical-entity-page--rdf-entity--collection .sidebar-menu .menu:first-child","on":"right-start"},"classes":"tip-module-joinup-core tip-type-text tip-collection-menu","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EThe navigation menu provides access to a collection\u0027s main sections, such as the members list, its description, etc.\u003C\/p\u003E\n","title":"Collection menu"},{"id":"solution_menu","selector":".canonical-entity-page--rdf-entity--solution .sidebar-menu .menu:first-child","module":"joinup_core","type":"text","counter":"4 of 8","attachTo":{"element":".canonical-entity-page--rdf-entity--solution .sidebar-menu .menu:first-child","on":"right-start"},"classes":"tip-module-joinup-core tip-type-text tip-solution-menu","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EThe navigation menu provides access to a solution\u0027s main sections, such as the members list, its description, etc.\u003C\/p\u003E\n","title":"Solution menu"},{"id":"filters","selector":".facet-region .tab__container a:first-of-type","module":"joinup_core","type":"text","counter":"5 of 8","attachTo":{"element":".facet-region .tab__container a:first-of-type","on":"bottom-start"},"classes":"tip-module-joinup-core tip-type-text tip-filters","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EBy clicking on these icons, you can view specific content types in the content area.\u003C\/p\u003E\n","title":"Filter"},{"id":"join","selector":".join-group-form input.button","module":"joinup_core","type":"text","counter":"6 of 8","attachTo":{"element":".join-group-form input.button","on":"right-start"},"classes":"tip-module-joinup-core tip-type-text tip-join","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EBy joining a collection you become a member, with the ability to create content for it.\u003C\/p\u003E\n","title":"Join"},{"id":"download","selector":".canonical-entity-page--rdf-entity--solution .block-group-header-block a.button","module":"joinup_core","type":"text","counter":"7 of 8","attachTo":{"element":".canonical-entity-page--rdf-entity--solution .block-group-header-block a.button","on":"right-start"},"classes":"tip-module-joinup-core tip-type-text tip-download","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003EDownload a solution\u0027s release content, such as a standard, specification or software.\u003C\/p\u003E\n","title":"Download"},{"id":"search","selector":".search-bar","module":"joinup_core","type":"text","counter":"8 of 8","attachTo":{"element":".search-bar","on":"left-start"},"classes":"tip-module-joinup-core tip-type-text tip-search","body":"\u003Cp class=\u0022tour-tip-body\u0022\u003ESearch through the entire Interoperable Europe Portal platform and its supported content items.\u003C\/p\u003E\n","title":"Search","cancelText":"End tour"}],"theme":"ventuno","bcl_icon_path":"\/themes\/ventuno\/assets\/icons\/icons.svg","sitewideAlert":{"refreshInterval":15000,"automaticRefresh":false},"search_api_autocomplete":{"search":{"auto_submit":true}},"antibot":{"forms":{"join-group-form":{"id":"join-group-form","key":"4YXw2dwl45sNuQ3Cmr6OWzr9DDO6PFExnK_y0FdvP6z"}}},"user":{"uid":0,"permissionsHash":"7ad3acda4da8d321eb44a3a487f05ee4fdbb1fb2b3bf44993e3874c2daddc446"}}</script> <script src="/sites/default/files/js/js_6BcRV_kd9atmYl0vlJQzMfNKmR1ZoWgNafz1I7XsVDo.js?scope=header&delta=0&language=en&theme=ventuno&include=eJx1kF2ShCAMhC8EciQrQMQ4QCwIOsdf1Bpm92Ef-Ol0qskH43yiFeZYjS9thzh9tK4JikQGj0UJt2KuTR2YpWU2jtPOuYs6bXVUC9ZerXSgFrARb9NxwU-6J4gcJtjgrRZwKOPdR01uRfey_NYn-YAykiuiTj1IVRLsHs4QsYihTN-mhLlpzUHrDAcFEOI8zFC47eogPOsMTbg2m0jM96oqQnHrDDvdDRdiREHzT30krxTW2JdoygdE8nohjP6G35hy2-cn4plBW-hov8gu60Je2LU_35kuoKE6k4WiIAtZ7oM_57RwST-c6rK1"></script> <script src="https://webtools.europa.eu/load.js" defer></script> <script src="/themes/ventuno/assets/js/oe-bcl-joinup.bundle.min.js?smxwnq" defer></script> <script src="/themes/ventuno/assets/js/responsive-tables.min.js?smxwnq" defer></script> <script src="/sites/default/files/js/js_WpIvKHbqYzlRVwOMpEodselOnm9U-OICgaUTrDwBwW0.js?scope=header&delta=4&language=en&theme=ventuno&include=eJx1kF2ShCAMhC8EciQrQMQ4QCwIOsdf1Bpm92Ef-Ol0qskH43yiFeZYjS9thzh9tK4JikQGj0UJt2KuTR2YpWU2jtPOuYs6bXVUC9ZerXSgFrARb9NxwU-6J4gcJtjgrRZwKOPdR01uRfey_NYn-YAykiuiTj1IVRLsHs4QsYihTN-mhLlpzUHrDAcFEOI8zFC47eogPOsMTbg2m0jM96oqQnHrDDvdDRdiREHzT30krxTW2JdoygdE8nohjP6G35hy2-cn4plBW-hov8gu60Je2LU_35kuoKE6k4WiIAtZ7oM_57RwST-c6rK1"></script> <script src="/themes/ventuno/assets/js/ajax-throbber.min.js?smxwnq" defer></script> <script src="/themes/ventuno/assets/js/highlight-invalid-fields.min.js?smxwnq" defer></script> <script src="/themes/ventuno/assets/js/searchbox-focus.min.js?smxwnq" defer></script> <link rel="icon" type="image/png" sizes="16x16" href="/themes/ventuno/assets/images/favicon/favicon-16x16.png" /> <link rel="icon" type="image/png" sizes="32x32" href="/themes/ventuno/assets/images/favicon/favicon-32x32.png" /> <link rel="icon" type="image/png" sizes="96x96" href="/themes/ventuno/assets/images/favicon/favicon-96x96.png" /> <link rel="icon" type="image/png" sizes="192x192" href="/themes/ventuno/assets/images/favicon/android-chrome-192x192.png" /> <link rel="apple-touch-icon" sizes="57x57" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-57x57.png" /> <link rel="apple-touch-icon" sizes="60x60" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-60x60.png" /> <link rel="apple-touch-icon" sizes="114x114" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-114x114.png" /> <link rel="apple-touch-icon" sizes="120x120" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-120x120.png" /> <link rel="apple-touch-icon" sizes="144x144" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-144x144.png" /> <link rel="apple-touch-icon" sizes="152x152" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-152x152.png" /> <link rel="apple-touch-icon" sizes="180x180" href="/themes/ventuno/assets/images/favicon/apple-touch-icon-180x180.png" /> <meta name="msapplication-wide310x150logo" content="/themes/ventuno/assets/images/favicon/mstile-310x150.png" /> <meta name="msapplication-square150x150logo" content="/themes/ventuno/assets/images/favicon/mstile-150x150.png" /> <meta name="msapplication-square310x310logo" content="/themes/ventuno/assets/images/favicon/mstile-310x310.png" /> <meta name="msapplication-square70x70logo" content="/themes/ventuno/assets/images/favicon/mstile-70x70.png" /> <meta name="msapplication-TileImage" content="/themes/ventuno/assets/images/favicon/mstile-144x144.png" /> </head> <body class="user-anonymous"> <a href="#main-content" class="visually-hidden focusable"> Skip to main content </a> <script type="application/json">{"utility":"globan","theme":"dark","logo":true,"link":true,"mode":false}</script> <div data-off-canvas-main-canvas> <div data-joinup-group-context="719986" class="layout-container"> <div class="bcl-header bcl-header--ec"> <nav class="w-100 shadow-sm navbar navbar-expand-lg navbar-light" aria-label="Top Navigation"> <div class="container"> <a class="navbar-brand" href="https://ec.europa.eu/info/index_en" aria-label="Visit European Commission website"> <img src="/themes/ventuno/assets/images/logo-ec--en.svg" alt="European Commission logo" width="100" height="25"/> </a> </div> </nav> </div> <header class="joinup-navbar navbar navbar-expand navbar--sticky" ><div class="container"><div class="d-flex"><a class="navbar-brand" href="/" title="Interoperable Europe Portal"><img class="navbar-brand-image" src="/themes/ventuno/assets/images/logo-interoperable-europe.svg" alt="Interoperable Europe logo" /></a></div><nav id="main-navbar"><ul class="navbar-nav" id="main-navbar-list" ><li class="nav-item d-none d-xl-inline-block dropdown"><a href="/interoperable-europe" aria-expanded="false" id="49950 Policy menu_link_content:3a82854a-9339-493f-8a29-d218ec691578" role="button" class="nav-link nav-link--underline dropdown-toggle" data-drupal-link-system-path="node/723208">Policy</a><ul class="dropdown-menu dropdown-menu--sub" aria-labelledby="49950 Policy menu_link_content:3a82854a-9339-493f-8a29-d218ec691578"><li><a href="https://joinup.ec.europa.eu/interoperable-europe/latest-news" class="dropdown-item">News</a></li><li><a href="https://joinup.ec.europa.eu/interoperable-europe/events" class="dropdown-item">Events</a></li><li><a href="https://joinup.ec.europa.eu/interoperable-europe/interoperable-europe-act" class="dropdown-item">Act</a></li><li><a href="https://joinup.ec.europa.eu/interoperable-europe/faqs" class="dropdown-item">FAQs</a></li></ul></li><li class="nav-item d-none d-xl-inline-block dropdown"><a href="/interoperable_solutions" aria-expanded="false" id="49951 Solutions menu_link_content:a347873b-c823-474c-952f-91b927397a85" role="button" class="nav-link nav-link--underline dropdown-toggle" data-drupal-link-system-path="node/707332">Solutions</a><ul class="dropdown-menu dropdown-menu--sub" aria-labelledby="49951 Solutions menu_link_content:a347873b-c823-474c-952f-91b927397a85"><li><a href="/software-solutions" class="dropdown-item" data-drupal-link-system-path="node/707570">Software</a></li><li><a href="/other_solutions" class="dropdown-item" data-drupal-link-system-path="node/707671">Other</a></li></ul></li><li class="nav-item d-none d-xl-inline-block dropdown"><a href="/interoperable-europe-support-centre" aria-expanded="false" id="49952 Support Centre menu_link_content:384488ef-3150-421c-8234-c94aea24323a" role="button" class="nav-link nav-link--underline dropdown-toggle" data-drupal-link-system-path="node/707239">Support Centre</a><ul class="dropdown-menu dropdown-menu--sub" aria-labelledby="49952 Support Centre menu_link_content:384488ef-3150-421c-8234-c94aea24323a"><li><a href="/discussions" class="dropdown-item" data-drupal-link-system-path="discussions">Forum</a></li><li><a href="https://joinup.ec.europa.eu/collection/joinup/country-knowledge" class="dropdown-item">EU Country knowledge</a></li></ul></li><li class="nav-item d-none d-xl-inline-block dropdown"><a href="/eu-digital-funding-opportunities" aria-expanded="false" id="49954 Governance menu_link_content:6d93a9e7-9c03-48f1-a608-e89ffd8d9dce" role="button" class="nav-link nav-link--underline dropdown-toggle" data-drupal-link-system-path="node/707954">Governance</a><ul class="dropdown-menu dropdown-menu--sub" aria-labelledby="49954 Governance menu_link_content:6d93a9e7-9c03-48f1-a608-e89ffd8d9dce"><li><a href="/eu-digital-funding-opportunities" class="dropdown-item" data-drupal-link-system-path="node/707954">EU Digital Funding Opportunities</a></li></ul></li><li class="nav-item d-none d-xl-inline-block"><a href="https://interoperable-europe.ec.europa.eu/collection/interoperable-europe-academy/welcome" class="nav-link nav-link--underline">Academy</a></li><li class="nav-item d-none d-xl-inline-block"><a href="/caslogin?destination=/collection/joinup/solution/joinup-source-code" class="nav-link nav-link--underline">Sign in</a></li><li class="nav-item d-none d-xl-inline-block"><button id="get-started" class="btn btn-light get-started__trigger" data-bs-toggle="dropdown" aria-expanded="false" type="button" data-bs-auto-close="outside" > Get started </button><div class="dropdown-menu get-started__menu" aria-labelledby="get-started" data-popper-placement="right" ><a class="get-started__cta" href="/caslogin?destination=/collection/joinup/solution/joinup-source-code" tabindex="0"> Create an account <svg class="bi icon--s ms-2"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#arrow-right"></use></svg></a><p class="get-started__description">As a signed-in user you can create content, become a member of a community, receive notifications on your favourite solutions and topics, and access all other features available on the platform.</p></div></li><li class="nav-item dropdown d-xl-none mmenu-nav"><button id="navbar-toggler" class="nav-link mmenu-nav__toggle" type="button" aria-label="Toggle menu" ><span class="visually-hidden">Toggle menu</span><svg class="bi icon--s"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#justify"></use></svg></button><div class="mmenu-nav__menu p-0 d-none" aria-labelledby="navbar-toggler"><ul><li ><a href="/" > Home </a></li><li ><a href="/interoperable-europe" > Policy </a><ul><li ><a href="https://joinup.ec.europa.eu/interoperable-europe/latest-news" > News </a></li><li ><a href="https://joinup.ec.europa.eu/interoperable-europe/events" > Events </a></li><li ><a href="https://joinup.ec.europa.eu/interoperable-europe/interoperable-europe-act" > Act </a></li><li ><a href="https://joinup.ec.europa.eu/interoperable-europe/faqs" > FAQs </a></li></ul></li><li ><a href="/interoperable_solutions" > Solutions </a><ul><li ><a href="/software-solutions" > Software </a></li><li ><a href="/other_solutions" > Other </a></li></ul></li><li ><a href="/interoperable-europe-support-centre" > Support Centre </a><ul><li ><a href="/discussions" > Forum </a></li><li ><a href="https://joinup.ec.europa.eu/collection/joinup/country-knowledge" > EU Country knowledge </a></li></ul></li><li ><a href="/eu-digital-funding-opportunities" > Governance </a><ul><li ><a href="/eu-digital-funding-opportunities" > EU Digital Funding Opportunities </a></li></ul></li><li ><a href="https://interoperable-europe.ec.europa.eu/collection/interoperable-europe-academy/welcome" > Academy </a></li><li ><a href="/caslogin?destination=/collection/joinup/solution/joinup-source-code" > Sign in </a></li><li ><a href="/collection/portal" > About us </a></li></ul></div></li><li class="nav-item d-inline-block order-1"><a href="/modal/anonymous/bookmarks?destination=/user/bookmarks" title="Bookmarks" class="use-ajax nav-link nav-link--underline" data-dialog-type="modal" data-dialog-options="{"width":"auto","height":"auto"}"><svg class="bi icon--s" ><use xlink:href="/themes/ventuno/assets/icons/icons.svg#bookmark"/></svg></a></li><li class="order-1 dropdown-search nav-item dropdown"><button id="search-box-dropdown" class="dropdown-toggle nav-link" data-bs-toggle="dropdown" aria-expanded="false" type="button" data-bs-auto-close="outside" aria-label="Toggle search box" ><span class="visually-hidden">Toggle search box</span><svg class="bi icon--s"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#search"></use></svg></button><div id="dropdown-menu--search" class="dropdown-menu p-0" aria-labelledby="search-box-dropdown" data-popper-placement="right" ><div class="navbar-search p-2"><div class="views-exposed-form views-auto-submit-full-form block block-views block-views-exposed-filter-blocksearch-page-1" novalidate="novalidate" data-drupal-selector="views-exposed-form-search-page-1" id="block-exposedformsearchpage-header"><form data-joinup-block-id="exposedformsearchpage_header" action="/search" method="get" id="views-exposed-form-search-page-1" accept-charset="UTF-8"><span class="search-badge" data-joinup-description="Joinup source code"><span class="search-badge__text">Joinup source code</span><span class="icon--close" aria-hidden="true"></span></span><label for="search-box" class="h4 visually-hidden form-label">Search</label><div class="input-group js-form-item form-item js-form-type-textfield form-item-keys js-form-item-keys form-no-label mb-3"><input placeholder="Start typing to search…" data-drupal-selector="search-box" data-search-api-autocomplete-search="search" class="form-autocomplete search-bar__input form-control" data-autocomplete-path="/search_api_autocomplete/search?display=page_1&&filter=keys" type="text" id="search-box" name="keys" value="" size="30" maxlength="128" /><button type="submit" class="btn btn-search" aria-label="Trigger search sitewide"></button></div><input class="search_bar_badge form-control" data-joinup-description="Joinup source code" data-drupal-selector="edit-filters" type="hidden" name="f[]" value="group:719986" /><div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><input class="views-use-ajax views-auto-submit-click js-hide button js-form-submit form-submit btn-primary btn" data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value="Search site-wide" /></div></form></div></div></div></li></ul></nav></div></header> <div class="region-header"> <div class="region-header__inner"> <div id="block-ventuno-groupheader" class="block block-joinup block-group-header-block"> <header class="group-banner bg-light py-2"> <div class="container py-2 d-flex flex-column flex-lg-row align-items-center align-items-lg-start"> <div data-drupal-group-logo class="group-banner__logo me-lg-2"> <img loading="lazy" src="/sites/default/files/styles/logo/public/solution/logo/2019-06/190404-logo-JOINUP-blue.png?itok=K5mNfEYk" width="100" height="100" alt="" class="img-fluid" /> </div> <div class="w-100 d-flex flex-column flex-lg-row flex-wrap"> <div class="group-banner__title text-center text-lg-start my-2 my-lg-0"> <h1> <a class="h1 fw-bold mb-0" href="/collection/joinup/solution/joinup-source-code"> <span>Joinup source code</span> </a> </h1> </div> <div class="group-banner__actions order-1 order-lg-0 align-items-start d-flex flex-wrap justify-content-center my-3 my-lg-0"> <form class="join-group-form antibot" data-drupal-selector="join-group-form" novalidate="novalidate" data-action="/collection/joinup/solution/joinup-source-code" action="/antibot" method="post" id="join-group-form" accept-charset="UTF-8"> <noscript> <div class="antibot-no-js antibot-message antibot-message-warning">You must have JavaScript enabled to use this form.</div> </noscript> <a href="/collection/joinup/solution/joinup-source-code/authenticate-to-join" class="use-ajax btn btn-brand" data-dialog-type="modal" data-dialog-options="{"width":"auto"}" data-drupal-selector="edit-authenticate" id="edit-authenticate">Subscribe to this solution</a> <input data-drupal-selector="form-gbfuxt3hddczwiiinitwmr3wh842zkh-jtvpzc-ecrc" type="hidden" name="form_build_id" value="form-GbfuxT3hddCZWIIiNitWMR3WH842zkH-JtVpzc_ecRc" class="form-control" /> <input data-drupal-selector="edit-join-group-form" type="hidden" name="form_id" value="join_group_form" class="form-control" /> <input data-drupal-selector="edit-antibot-key" type="hidden" name="antibot_key" value="" class="form-control" /> </form> </div> <ul class="group-banner__meta mw-100 align-self-end list-unstyled d-flex flex-column flex-lg-row flex-wrap mt-2 mb-0 group-stats fs-6"> <li class="group-banner__li group-banner__li--collection text-muted"><a href="/collection/portal" hreflang="en">The Portal</a></li> <li class="group-banner__li text-muted"> <a href="/collection/joinup/solution/joinup-source-code/members"> <svg class="bi icon--xs me-1"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#people"></use> </svg> <span> 12 members</span> </a> </li> <li class="group-banner__li text-muted"> </li> <li class="group-banner__li group-banner__li--topics text-muted d-flex align-items-baseline mw-100 w-100">Topics: <div class="d-flex topics-wrapper pe-4 flex-lg-wrap"> <a href="/search?f%5B0%5D=topic%3A11210&f%5B1%5D=type%3Asolution" class="badge bg-secondary rounded-pill">Collaboration</a> <a href="/search?f%5B0%5D=topic%3A11224&f%5B1%5D=type%3Asolution" class="badge bg-secondary rounded-pill">Content and knowledge management</a> <a href="/search?f%5B0%5D=topic%3A11195&f%5B1%5D=type%3Asolution" class="badge bg-secondary rounded-pill">Open Source Software</a> </div> </li> </ul> </div> </div> </header> </div> <div id="block-ventuno-navigation" class="block block-joinup-group block-group-menu-blocknavigation"> <div class="menu--og--navigation bg-light"> <div class="container"> <nav> <ul class="nav" ><li class="nav-item" ><a href="/collection/joinup/solution/joinup-source-code" class="nav-link active is-active" title="Overview" data-drupal-link-system-path="node/719986">Overview</a></li></ul> </nav> </div> </div> </div> </div> </div> <div class="content container"> <div class="region-featured"> <div id="block-ventuno-three-dots-menu" class="block block-joinup-core block-joinup-local-tasks-block actions-menu actions-menu--three-dots"> <button type="button" id="local-tasks-primary" data-bs-toggle="dropdown" aria-expanded="false" class="dropdown-toggle btn btn-outline-warning btn-lg rounded-circle p-0 actions-menu__btn" title="Show primary options"> <svg class="bi icon--m"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#three-dots"></use> </svg> </button> <div class="dropdown-menu dropdown-menu-end"> <nav class="nav nav-pills flex-column" aria-labelledby="local-tasks-primary" class="dropdown-menu"> <h2 class="visually-hidden">Primary tabs</h2> <nav class="nav nav-pills flex-column" ><a href="/collection/joinup/solution/joinup-source-code/rdf-export" class="nav-link">Metadata</a><a href="/collection/joinup/solution/joinup-source-code/feed.xml" class="nav-link">RSS feed</a></nav> </nav> </div> </div> </div> <div> <div id="block-ventuno-site-wide-alerts" class="block block-sitewide-alert-block"> <div data-sitewide-alert></div> </div> <div data-drupal-messages-fallback class="hidden"></div> </div> <div class="region-content-top float-lg-end position-relative d-flex col-gap-2 mt-3 ms-lg-3"> <div id="block-ventuno-bookmark" class="block block-joinup-flag block-joinup-flag-block"> <a href="/modal/anonymous/bookmark?destination=/collection/joinup/solution/joinup-source-code" data-dialog-type="modal" data-dialog-options="{"width":"auto","height":"auto"}" title="Add this page to bookmarks" class="use-ajax flag flag-bookmark btn btn-secondary"> <svg class="bi icon--s" ><use xlink:href="/themes/ventuno/assets/icons/icons.svg#bookmark"/></svg> Bookmark </a> </div> <div id="block-ventuno-like" class="zi-2 block block-joinup-flag block-joinup-flag-block"> <a class="flag flag-like use-ajax btn btn-secondary" href="/modal/anonymous/like?destination=/collection/joinup/solution/joinup-source-code" data-dialog-type="modal" data-dialog-options="{"width":"auto","height":"auto"}"><svg class="bi icon--fluid mb-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#hand-thumbs-up"></use></svg> Like (1) </a> </div> <div id="block-ventuno-webtools-etrans" class="block-oe-webtools-etrans--ventuno block block-oe-webtools-etrans"> <script type="application/json">{"service":"etrans","languages":{"exclude":["en"]},"renderAs":{"button":true,"icon":false,"link":false},"domain":"gen","delay":0,"include":".layout-content .layout","exclude":".block-field-blockrdf-entitysolutionfield-is-content, .block-extra-field-blockrdf-entitysolutionrelated-solutions"}</script> </div> </div> <div class="mb-5"> <main> <div id="main-content" tabindex="-1"></div> <div class="layout-content"> <div id="block-ventuno-content" class="block block-system block-system-main-block"> <article> <div class="l-ventuno--joinup_layout_group_heading l-ventuno--joinup_layout_group_heading--section-label-heading-section layout l-group-heading row align-items-start w-lg-100 mt-lg-5 pt-3"> <div class="l-group-heading__content col-12 col-md-7 col-lg-6 py-3 py-lg-5 me-auto"> <div class="row mb-4"> <div class="l-ventuno--joinup_layout_group_heading__region-main l-ventuno--joinup_layout_group_heading--section-label-heading-section__region-main l-group-heading__main"> <div class="fs-4 block block-layout-builder block-field-blocknodesolutionabstract"> <div class="field--name-abstract solution__abstract">Joinup is an OSS which offers several services to decentralise the publication of news, events, discussions and solutions. It is based on Drupal. It is the IT solution for the Interoperable Europe Portal.</div> </div> </div> </div> <div class="row d-flex flex-wrap"> <div class="l-ventuno--joinup_layout_group_heading__region-left l-ventuno--joinup_layout_group_heading--section-label-heading-section__region-left l-group-heading__left col-12 col-md-6 mb-2"> <div class="block block-layout-builder block-field-blocknodesolutionowner"> <div class="field--name-owner solution__owner"> <div class="field__label fw-bold"> Owner </div> <div class="field__items"> <div class="field__item"> <article> <span>European Commission</span> <div class="field--name-owner-type owner__owner-type"> <div class="field__item">Supra-national authority</div> </div> </article> </div> </div> </div> </div> </div> <div class="l-ventuno--joinup_layout_group_heading__region-right l-ventuno--joinup_layout_group_heading--section-label-heading-section__region-right l-group-heading--right col-12 col-md-6 mb-2"> <div class="block block-layout-builder block-field-blocknodesolutioncontact"> <div class="field--name-contact solution__contact"> <div class="field__label fw-bold"> Contact information </div> <div class="field__items"> <div class="field__item"> <article> <div class="field--name-email contact-information__email"><a href="/email-contact/node/710498/email/teaser" class="use-ajax">Joinup Support Team</a></div> <div class="field--name-webpage contact-information__webpage"><a href="https://interoperable-europe.ec.europa.eu/">https://interoperable-europe.ec.europa.eu/</a></div> </article> </div> </div> </div> </div> </div> </div> </div> <div class="l-ventuno--joinup_layout_group_heading__region-aside l-ventuno--joinup_layout_group_heading--section-label-heading-section__region-aside l-group-heading__aside bg-light col-12 col-md-5 col-lg-4 rounded-3 p-4 p-lg-5 mb-5"> <div class="block block-joinup-group block-group-menu-blockquick-links"> <h2>Quick links</h2> <nav class="nav"> <ul class="list-unstyled mb-0"> <li class="mt-3"> <a href="/collection/joinup/solution/joinup-source-code/eif-perspective" data-drupal-link-system-path="node/719986/eif-perspective"><svg class="me-2-5 bi icon--s" ><use xlink:href="/themes/contrib/oe_bootstrap_theme/assets/icons/bcl-default-icons.svg#file-earmark-text"/></svg>EIF Perspective</a> </li> <li class="mt-3"> <a href="/collection/joinup/solution/joinup-source-code/releases" data-drupal-link-system-path="node/719986/releases"><svg class="me-2-5 bi icon--s" ><use xlink:href="/themes/contrib/oe_bootstrap_theme/assets/icons/bcl-default-icons.svg#eye"/></svg>Release history</a> </li> <li class="mt-3"> <a href="/collection/joinup/solution/joinup-source-code/website-link" data-drupal-link-system-path="node/719986/website-link"><svg class="me-2-5 bi icon--s" ><use xlink:href="/themes/contrib/oe_bootstrap_theme/assets/icons/bcl-default-icons.svg#link"/></svg>Website link</a> </li> </ul> </nav> </div> </div> </div> <div class="l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-description-section layout"> <div class="joinup-group--description l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-description-section__region-content layout__region layout__region--content"> <div class="block block-layout-builder block-field-blocknodesolutiondescription"> <div class="field--name-description solution__description"> <div class="see-more see-more--long collapse" id="collapseSeeMore"> <!DOCTYPE html> <html><body><p>This is the source code for the "<a href="/collection/portal/glossary/term/interoperable-europe" class="glossary-term" title="A European Commission initiative hosted on the Portal for a reinforced interoperability policy showcasing news and events about government-related interoperability, along with initiatives and best practices that support the digitalisation of EU public administrations.">Interoperable Europe</a> Portal" (<a href="https://joinup.ec.europa.eu/" rel="nofollow">https://interoperable-europe.ec.europa.eu/</a>). <a href="/collection/joinup/glossary/term/joinup" class="glossary-term" title="The Joinup platform is the European Commission's one-stop shop for interoperable, open, and free digital government ICT solutions and an online space for e-Government professionals and enthusiasts to share and learn about digital public services and initiatives.">Joinup</a> is a collaborative platform created by the European Commission and funded by the European Union via the <a href="https://digital-strategy.ec.europa.eu/en/activities/digital-programme">DIGITAL </a>programme.</p><p>It offers several services that aim to help <a href="/collection/joinup/glossary/term/e-government" class="glossary-term" title="e-Government is about using the tools and systems made possible by Information and Communication Technologies (ICTs) to provide better public services to citizens and businesses.">e-Government</a> professionals share their experience with each other. We also hope to support them to find, choose, re-use, develop and implement <a href="/collection/joinup/glossary/term/interoperability" class="glossary-term" title="Interoperability is defined by the European Interoperability Framework (EIF) within the context of European public service delivery (e-Government) as the ability of disparate and diverse organisations to interact towards mutually beneficial and agreed common goals, involving the sharing of inform">interoperability</a> solutions.</p><p>The Joinup platform is developed as a Drupal 10 <a href="/collection/joinup/glossary/term/distribution" class="glossary-term" title="A distribution can be created in a Solution and may contain a software package, source code, documentation etc.">distribution</a>, and therefore tries to <a href="/collection/portal/glossary/term/follow" class="glossary-term" title="Discussion items on the Portal allow registered users to “follow” such items. When following discussions, users will receive notifications of any updates occurring to the item, such as when a new comment is added.">follow</a> the 'drupal-way' as much as possible.</p><p>You are free to fork this project to host your own collaborative platform. Joinup is licensed under the <a href="https://joinup.ec.europa.eu/community/eupl/og_page/eupl" rel="nofollow">EUPL</a>, which is compatible with the GPL.</p><blockquote><p>Find the latest Joinup source code <a href="/collection/joinup/glossary/term/release" class="glossary-term" title="A release can be created in a Solution and may include a standard, specification or software under a versioning scheme. A good practice to follow is to create distributions under releases.">release</a> by clicking <a href="https://git.fpfis.eu/ec-europa/digit-joinup-reference/-/releases">here</a>.</p></blockquote><h2>Contributing</h2><p>See our <a href="https://git.fpfis.eu/ec-europa/digit-joinup-reference/-/blob/master/.github/CONTRIBUTING.md">contributors guide</a>.</p><h2>Running your own instance of Joinup</h2><p>There are two ways to run Joinup. With <code>docker</code> and <code>docker-compose</code> and building a local installation.</p><h3>Docker</h3><p>To start with docker, please, check the separated <a href="https://git.fpfis.eu/ec-europa/digit-joinup-reference/-/blob/master/docs/docker/README.md">README file</a>.</p><h3>Local installation</h3><p>To run Joinup locally, below is a list of requirements and instructions.</p><h4>On macOS without Docker installation</h4><p>To start on macOS without Docker, please, check the separated <a href="https://git.fpfis.eu/ec-europa/digit-joinup-reference/-/blob/master/resources/mac/README.md">README file</a>.</p><h4>Requirements</h4><ul><li>A regular LAMP stack running PHP 7.4.0 or higher</li><li>Virtuoso 7 (Triplestore database)</li><li>Apache Solr</li><li>NPM 8 or higher</li></ul><h4>Dependency management and builds</h4><p>We use Drupal composer as a template for the project. For the most up-to-date information on how to use Composer, build the project using the Task Runner, or on how to run the Behat test, please refer directly to the documentation of each used tool.</p><h4>Initial setup</h4><ul><li><p>Clone the repository.</p><pre lang="plaintext"><code class="language-plaintext">$ <a href="/collection/joinup/glossary/term/git" class="glossary-term" title="Git is an open source distributed version control system used for source code management.">git</a> clone https://<a href="/collection/joinup/glossary/term/github" class="glossary-term" title="GitHub is a web-based Git platform that is commonly used for version control and collaborative software development. It allows users to host and review code, manage projects, and collaborate with other developers.">github</a>.com/ec-europa/joinup-dev.git</code></pre></li><li><p>Use <a href="https://getcomposer.org/" rel="nofollow noreferrer noopener">composer</a> to install the dependencies.</p><pre lang="plaintext"><code class="language-plaintext">$ cd joinup-dev $ composer install</code></pre></li><li><p>Install Solr. If you already have Solr installed you can configure it manually by <a href="http://cgit.drupalcode.org/search_api_solr/plain/INSTALL.txt?h=8.x-1.x" rel="nofollow noreferrer noopener">following the installation instructions</a> from the Search API Solr module. Or you can execute the following commands to download and configure a local instance of Solr. It will be installed in the folder <code>./vendor/apache/solr</code>.</p><pre lang="plaintext"><code class="language-plaintext">$ ./vendor/bin/run solr:download-bin $ ./vendor/bin/run solr:config</code></pre></li><li><p>Install Virtuoso. For basic instructions, see <a href="https://github.com/ec-europa/rdf_entity/blob/8.x-1.x/README.md" rel="nofollow noreferrer noopener">setting up Virtuoso</a>. Due to <a href="https://github.com/openlink/virtuoso-opensource/issues/303" rel="nofollow noreferrer noopener">a bug in Virtuoso 6</a> it is recommended to use Virtuoso 7. During installation some <a href="/collection/joinup/glossary/term/rdf" class="glossary-term" title="The Resource Description Framework (RDF) is a standard language for representing data and metadata on the web. It allows users to create a distributed, shared model of data that can be easily extended and integrated with other systems.">RDF</a> based taxonomies will be imported from the <code>resources/fixtures</code> folder. Make sure Virtuoso can read from this folder by adding it to the <code>DirsAllowed</code> setting in your <code>virtuoso.ini</code>. For example:</p><pre lang="plaintext"><code class="language-plaintext">DirsAllowed = /var/www/joinup/resources/fixtures, /usr/share/virtuoso-opensource-7/vad</code></pre></li><li><p>Install <a href="https://github.com/SeleniumHQ/docker-selenium/blob/master/README.md" rel="nofollow noreferrer noopener">Selenium</a>. The simplest way of doing this is using Docker to install and run it with a single command. This will download all necessary files and start the browser in the background in headless mode:</p><pre lang="plaintext"><code class="language-plaintext">$ docker run -d -p 4444:4444 --network=host selenium/standalone-chrome</code></pre></li><li>Point the <a href="/collection/portal/glossary/term/document" class="glossary-term" title="A document item on the Portal is standalone content page relevant to a Collection/Solution which can host information such as case studies, guidelines, factsheets, presentations etc.">document</a> root of your webserver to the 'web/' directory.</li></ul><h4>Create a local build properties file</h4><p>Create a new file in the root of the project named `build.properties.local using your favourite text editor:</p><pre lang="plaintext"><code class="language-plaintext">$ vim build.properties.local</code></pre><p> </p><p>This file will contain the configuration which is unique to your development machine. This is mainly useful for specifying your database credentials and the username and password of the Drupal admin <a href="/collection/joinup/glossary/term/user" class="glossary-term" title="A user is any person who visits the platform. A user can view and consult all publicly available content.">user</a>, so they can be used during the installation.</p><p>Because these settings are personal they should not be shared with the rest of the team. Make sure you never commit this file!</p><p>All options you can use can be found in the <code>build.properties</code> file. Just copy the lines you want to override and change their values. Do not copy the entire <code>build.properties</code> file, since this would override all options.</p><h4>Create a local task runner configuration file</h4><p>In order to override any configuration of the task runner (<code>./vendor/bin/run</code>), create a <code>runner.yml</code> file in the project's top directory. You can override there any default runner configuration, or any other declared in <code>./resources/runner</code> files or in <code>runner.yml.dist</code>. Note that the <code>runner.yml</code> file is not under VCS control.</p><h4>Setup environment variables</h4><p>Sensitive data will be stored in <a href="https://en.wikipedia.org/wiki/Environment_variable" rel="nofollow noreferrer noopener">environment variables</a>. See <code>.env.dist</code> for details. To adapt these values to your own environment, create a <code>.env</code> file that contains only the overridden values. For a local development environment this could look like the following:</p><pre lang="shell"><code class="language-plaintext">DRUPAL_BASE_URL=http://my-base-url.local DRUPAL_DATABASE_USERNAME=my-database-username DRUPAL_DATABASE_PASSWORD=my-database-password DRUPAL_DATABASE_NAME=joinup DRUPAL_DATABASE_HOST=localhost DRUPAL_HASH_SALT=some-unique-random-string-like-37h+2BQEQx83YLa/uFdsfG55 SEARCH_API_SERVER_SS_SOLR_HOST=localhost DRUPAL_SPARQL_HOSTNAME=localhost REDIS_HOST=localhost SIMPLETEST_BASE_URL=http://my-base-url.local SIMPLETEST_DB=mysql://root@localhost:3306/joinup SIMPLETEST_SPARQL_DB=sparql://localhost:8890 MINK_DRIVER_ARGS_WEBDRIVER="" DTT_BASE_URL=http://my-base-url.local DTT_API_URL=http://localhost:4444/wd/hub DTT_MINK_DRIVER_ARGS="['chrome', null, 'http://localhost:4444/wd/hub']"</code></pre><p> </p><h4>Build the project</h4><p>Run Composer install to get all dependencies and prepare the code base, then install the site with <code>toolkit:install-clean</code>:</p><pre lang="plaintext"><code class="language-plaintext">$ composer install $ ./vendor/bin/run toolkit:install-clean</code></pre><p> </p><h4>Run the tests</h4><p>Run the Behat test suite to validate your installation.</p><pre lang="plaintext"><code class="language-plaintext">$ cd tests $ ./behat</code></pre><p> </p><p>During development you can enable Behat test screen-shots by uncomment this line in <code>tests/features/bootstrap/FeatureContext.php</code>:</p><pre lang="php"><code class="language-plaintext"> // use \Drupal\joinup\Traits\ScreenShotTrait;</code></pre><p> </p><p>and use the <code>pretty</code> formatter instead of <code>progress</code>, in <code>tests/behat.yml</code>:</p><pre lang="yaml"><code class="language-plaintext"> formatters: pretty: ~</code></pre><p> </p><p>Also run the PHPUnit tests, from the web root.</p><pre lang="plaintext"><code class="language-plaintext">$ cd web $ ../vendor/bin/phpunit</code></pre><p> </p><h3>Frontend development</h3><p>See the <a href="/ec-europa/digit-joinup-reference/-/blob/master/web/themes/joinup/README.md">readme</a> in the theme folder.</p><h3>Upgrade process</h3><p>Joinup offers only <em>contiguous upgrades</em>. For instance, if you project is currently on Joinup <code>v1.39.2</code>, and the latest stable version is <code>v1.42.0</code>, then you cannot upgrade directly to the latest version. Instead, you should upgrade first to <code>v1.40.0</code>, second to <code>v1.40.1</code> (if exists) and, finally, to <code>v1.42.0</code>.</p><p>The Joinup update and post-update scripts naming is following this pattern:</p><p><code>function mymodule_update_0106100() {...}</code></p><p>or</p><p><code>function mymodule_post_update_0207503() {...}</code></p><p>The (post)updated identifier (the numeric part consists in seven digits with the following meaning:</p><ul><li>The first two digits are the Joinup major version.</li><li>The following three digits are the Joinup minor version.</li><li>The last two digits are an integer that sets the weight within updates or post updates from the same extension (module or profile). <code>00</code> is the first (post)update that applies.</li></ul><p>For the above example:</p><ul><li><code>function mymodule_update_0106100() {...}</code>: Was applied in Joinup <code>v1.61.x</code> as the first update of the <code>mymodule</code> module (<code>01</code> major version, <code>061</code> minor version, <code>00</code> update weight within the module).</li><li><code>function mymodule_post_update_0207503() {...}</code>: Was applied in Joinup <code>v2.75.x</code> as the fourth post update of the <code>mymodule</code> module (<code>02</code> major version, <code>075</code> minor version, <code>03</code> update weight within the module).</li></ul><h3>Technical details</h3><ul><li>In <a href="/ec-europa/digit-joinup-reference/-/blob/master/web/modules/custom/rdf_entity/rdf_draft/README.md">Rdf draft module</a> there is information on handling draft in CRUD operations for rdf entities.</li><li>In <a href="/ec-europa/digit-joinup-reference/-/blob/master/web/modules/custom/joinup_notification/README.md">Joinup notification module</a> there is information on how to handle notifications in Joinup.</li><li>In <a href="/ec-europa/digit-joinup-reference/-/blob/master/web/modules/custom/joinup_core/README.md">Joinup core module</a> there is information on how to handle and create workflows.</li></ul></body></html> </div> <button class="btn btn-link p-0 mt-3 js-see-more-btn" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSeeMore" aria-expanded="false" aria-controls="collapseSeeMore"> See more <svg class="bi icon--s"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#chevron-down"></use> </svg> </button> </div> </div> </div> </div> <div class="mb-5 l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-search-section layout"> <div class="l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-search-section__region-content layout__region layout__region--content"> <div class="block block-layout-builder block-extra-field-blocknodesolutionnode-solution-listing-content-top"> <div class="facet-region facet-region--top d-flex align-items-baseline border-bottom my-5 flex-wrap justify-content-between w-100"><div data-drupal-facet-id="solution_content_bundle" class="tabs--content-type"><nav role="tablist" class="nav nav-tabs"><a href="/collection/joinup/solution/joinup-source-code?f%5B0%5D=solution_content_bundle%3Arelease" rel="nofollow" data-drupal-facet-item-id="solution_content_bundle-release" class="tab tab--content-type" role="tab"> <svg class="bi icon--s"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use> </svg> <span>164</span> <span class="tab__text--type">Releases</span> </a><a href="/collection/joinup/solution/joinup-source-code?f%5B0%5D=solution_content_bundle%3Adistribution" rel="nofollow" data-drupal-facet-item-id="solution_content_bundle-distribution" class="tab tab--content-type" role="tab"> <svg class="bi icon--s"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-post"></use> </svg> <span>1</span> <span class="tab__text--type">Distribution</span> </a></nav></div> <div data-drupal-facet-filter-key="f" data-drupal-facet-id="solution_content_status" data-drupal-facet-alias="status" class="facet-inactive js-facets-checkbox-links list-unstyled flex-shrink-0 mt-2 mb-3 align-self-flex-start"><div class="facet-item form-check form-switch"><a href="/collection/joinup/solution/joinup-source-code?f%5B0%5D=status%3Aarchived" rel="nofollow" data-drupal-facet-item-id="status-archived" data-drupal-facet-item-value="archived" data-drupal-facet-item-count="0" data-drupal-facet-filter-value="status:archived" data-drupal-facet-widget-element-class="form-check-input"><span class="facet-item__value">Show archived</span> </a></div></div></div> </div> <div class="block block-layout-builder block-extra-field-blocknodesolutionnode-solution-listing-content-inline-facets"> </div> <div class="block block-layout-builder block-field-blocknodesolutionlisting-content"> <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-xl-4 g-3 mb-3"> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11110" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.111.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 16/08/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11100" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.110.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 22/07/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11090" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.109.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 01/07/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11080" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.108.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 19/06/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11070" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.107.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 30/05/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11060" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.106.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 23/05/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11050" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.105.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 16/05/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11042" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.104.2 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 02/05/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11041" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.104.1 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 24/04/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11040" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.104.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 18/04/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11031" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.103.1 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 08/04/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> <div class="col"><article data-joinup-parent-id="719986" data-joinup-parent-label="Joinup source code" class="tile rounded shadow-hover d-flex mb-3"><a class="tile__link position-absolute top-0 end-0 bottom-0 start-0" href="/collection/joinup/solution/joinup-source-code/release/11030" title="Joinup"></a><figure class="tile__figure mb-0"><div class="tile__default-img h-100 w-100 bg-secondary d-flex flex-column align-items-center justify-content-center position-relative"><svg class="tile__default-icon position-relative bi img-fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div></figure><div class="tile__body d-flex flex-column justify-content-between position-relative"><div class="tile__standout-info position-absolute d-flex align-items-center text-end bg-brand rounded text-white fw-bold px-2 py-1"> v1.103.0 </div><div><div class="fs-sm text-dark d-flex align-items-center justify-content-start my-2"><svg class="tile__info-icon bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#calendar-event"></use></svg><span class="tile__info-text tile__action">Release date: 27/03/2024</span></div><h3 class="tile__title h5 text-primary fw-bold my-0"><span>Joinup</span></h3></div></div><div class="tile__footer tile__action p-3"><div class="fs-xs text-muted d-flex flex-wrap align-items-center justify-content-between"><div data-joinup-card-stats class="d-flex align-items-center"><span class="d-flex align-items-center me-2"><svg class="bi icon--xs me-1"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#check-circle"></use></svg> Completed </span></div><div class="d-flex flex-wrap"><span class="d-flex align-items-center me-2"><div class="tile__bundle-icon d-flex align-items-center justify-content-center rounded-pill me-1"><svg class="bi icon--xs text-warning"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#file-earmark-zip"></use></svg></div> Release </span></div></div></article></div> </div> <nav class="mt-5 mt-lg-4" role="navigation" aria-labelledby="pagination-heading"> <p id="pagination-heading" class="visually-hidden">Pagination</p> <ul class="pagination pager__items js-pager__items justify-content-center"> <li class="page-item pager__item is-active active"> <a href="?page=0" title="Current page" aria-current="page" class="page-link"> <span class="visually-hidden"> Current page </span>1</a> </li> <li class="page-item pager__item"> <a href="?page=1" title="Go to page 2" class="page-link"> <span class="visually-hidden"> Page </span>2</a> </li> <li class="page-item pager__item"> <a href="?page=2" title="Go to page 3" class="page-link"> <span class="visually-hidden"> Page </span>3</a> </li> <li class="page-item pager__item"> <a href="?page=3" title="Go to page 4" class="page-link"> <span class="visually-hidden"> Page </span>4</a> </li> <li class="page-item pager__item"> <a href="?page=4" title="Go to page 5" class="page-link"> <span class="visually-hidden"> Page </span>5</a> </li> <li class="page-item pager__item"> <a href="?page=5" title="Go to page 6" class="page-link"> <span class="visually-hidden"> Page </span>6</a> </li> <li class="page-item pager__item"> <a href="?page=6" title="Go to page 7" class="page-link"> <span class="visually-hidden"> Page </span>7</a> </li> <li class="page-item pager__item"> <a href="?page=7" title="Go to page 8" class="page-link"> <span class="visually-hidden"> Page </span>8</a> </li> <li class="page-item pager__item"> <a href="?page=8" title="Go to page 9" class="page-link"> <span class="visually-hidden"> Page </span>9</a> </li> <li class="page-item pager__item pager__item--ellipsis disabled" aria-hidden="true"><span class="page-link">…</span></li> <li class="page-item pager__item pager__item--next"> <a href="?page=1" title="Go to next page" rel="next" class="page-link"> <span class="visually-hidden">Next page</span> <span aria-hidden="true"> <svg class="bi icon--s"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#chevron-right"></use> </svg> </span> </a> </li> <li class="page-item pager__item pager__item--last"> <a href="?page=13" title="Go to last page" class="page-link"> <span class="visually-hidden">Last page</span> <span aria-hidden="true"> <svg class="bi icon--s"> <use xlink:href="/themes/ventuno/assets/icons/icons.svg#chevron-bar-right"></use> </svg> </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-detailed-header layout"> <div class="l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-detailed-header__region-content layout__region layout__region--content"> <div class="block block-custom-markup-block block-custom-markup"> <h2>Detailed information</h2> </div> </div> </div> <div class="l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-detailed-items layout"> <div class="d-flex flex-wrap rounded-3 bg-light mt-4 mb-5 px-4 px-4 pt-4 l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-detailed-items__region-content layout__region layout__region--content"> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionpublished-at"> <div class="field--name-published-at solution__published-at"> <div class="field__label fw-bold"> Published on </div> <div class="field__item"><time datetime="2018-11-20T14:00:48+01:00" title="Tuesday, 20 November, 2018 - 14:00">20/11/2018</time> </div> </div> </div> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionchanged"> <div class="field--name-changed solution__changed"> <div class="field__label fw-bold"> Last update </div> <div class="field__item"><time datetime="2024-11-12T09:30:19+01:00" title="Tuesday, 12 November, 2024 - 09:30">12/11/2024</time> </div> </div> </div> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionsolution-type"> <div class="field--name-solution-type solution__solution-type"> <div class="field__label fw-bold"> Solution type </div> <div class="field__items"> <div class="field__item">Interoperable European Solution</div> </div> </div> </div> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionlanguage"> <div class="field--name-language solution__language"> <div class="field__label fw-bold"> Languages </div> <div class="field__items"> <div class="field__item">English</div> </div> </div> </div> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionprocess-status"> </div> <div class="pe-5 pb-4 block block-layout-builder block-field-blocknodesolutionlatest-release"> <div class="field--name-latest-release solution__latest-release"> <div class="field--name-release-number release__release-number"> <div class="field__label fw-bold"> Release version </div> <div class="field__item">1.111.0</div> </div> </div> </div> </div> </div> <div class="mb-5 l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-related-solutions-section layout"> <div class="l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-related-solutions-section__region-content layout__region layout__region--content"> <div class="block block-layout-builder block-extra-field-blocknodesolutionrelated-solutions"> </div> </div> </div> <div class="mb-5 l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-moderation-section layout"> <div class="p-4 rounded-3 bg-light l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-moderation-section__region-content layout__region layout__region--content"> <div class="block block-custom-markup-block block-custom-markup"> <h3>Moderation</h3> </div> <div class="block block-layout-builder block-field-blocknodesolutioncontent-creation"> <div class="field--name-content-creation solution__content-creation"><strong>Only facilitators and authors</strong> can create content.</div> </div> <div class="block block-layout-builder block-field-blocknodesolutiongroup-moderation"> <div class="field--name-group-moderation solution__group-moderation">Moderated</div> </div> </div> </div> <div class="l-ventuno--layout_onecol l-ventuno--layout_onecol--section-label-share-section layout"> <div class="l-ventuno--layout_onecol__region-content l-ventuno--layout_onecol--section-label-share-section__region-content layout__region layout__region--content"> <div class="d-flex justify-content-end block block-layout-builder block-extra-field-blocknodesolutionshare-link"> <a href="/collection/joinup/solution/joinup-source-code/share" class="use-ajax action-link btn btn-link px-3" data-dialog-type="modal" data-dialog-options="{"width":"auto","height":"auto"}"> Share <svg class="ms-1 bi icon--fluid"><use xlink:href="/themes/ventuno/assets/icons/icons.svg#arrow-right"></use></svg></a> </div> </div> </div> </article> </div> </div> </main> </div> </div> <footer role="contentinfo" class="page__footer"> <div class="container text-light"> <div class="row py-4 py-lg-5"> <!--Interoperable Europe logo--> <div class="col-md-12 col-lg-3 column-logo"> <p class="joinup-logo"><a href="/" class="joinup-logo-white mb-3"><span class="visually-hidden">Interoperable Europe</span></a></p> <p class="joinup-version"><a href="https://git.fpfis.tech.ec.europa.eu/ec-europa/digit-joinup-reference/-/releases/2.0.2" aria-label="Interoperable Europe Portal version number: 2.0.2">2.0.2</a></p> </div> <h2 class="visually-hidden">Useful links</h2> <div id="block-aboutus" class="block block-system block-system-menu-blockfooter-about-us col-md-3 col-lg-2 about-us-menu"> <h3>About us</h3> <ul data-joinup-block-id="aboutus" class="list-unstyled"> <li class="nav-link"> <a href="/collection/portal/about">What is the Portal</a> </li> <li class="nav-link"> <a href="/collection/eupl/solution/joinup-licensing-assistant/jla-find-and-compare-software-licenses" data-drupal-link-system-path="node/701805">Joinup Licensing Assistant</a> </li> <li class="nav-link"> <a href="https://joinup.ec.europa.eu/collection/nifo-national-interoperability-framework-observatory/solution/european-interoperability-framework-eif-toolbox/about">EIF Toolbox</a> </li> <li class="nav-link"> <a href="https://joinup.ec.europa.eu/interoperable-europe">Interoperable Europe</a> </li> </ul> </div> <div id="block-helpandsupport" class="block block-system block-system-menu-blockfooter-help-and-support col-md-3 col-lg-2 help-and-support-menu"> <h3>Help and support</h3> <ul data-joinup-block-id="helpandsupport" class="list-unstyled"> <li class="nav-link"> <a href="" data-drupal-tour-link class="js-tour-start-button">Take a tour</a> </li> <li class="nav-link"> <a href="/collection/portal/faq" data-drupal-link-system-path="node/701545">Frequently Asked Questions (FAQ)</a> </li> <li class="nav-link"> <a href="/contact?destination=/collection/joinup/solution/joinup-source-code" data-drupal-link-system-path="contact">Contact Portal Support</a> </li> <li class="nav-link"> <a href="/collection/portal/how-articles" data-drupal-link-system-path="node/701543">How-To Articles</a> </li> <li class="nav-link"> <a href="https://ec.europa.eu/eusurvey/runner/Joinup_Satisfaction_Survey" title="Help us improve Joinup!">Satisfaction survey</a> </li> <li class="nav-link"> <a href="/collection/portal/federation" data-drupal-link-system-path="node/702492">Federation</a> </li> <li class="nav-link"> <a href="/joinup/legal-notice" data-drupal-link-system-path="legal/document/legal_notice">Legal notice</a> </li> <li class="nav-link"> <a href="/collection/joinup/specific-privacy-statement" data-drupal-link-system-path="node/704896">Privacy statement</a> </li> <li class="nav-link"> <a href="https://joinup.ec.europa.eu/accessibility-statement-en">Accessibility statement</a> </li> </ul> </div> <div id="block-europeancommission" class="block block-system block-system-menu-blockfooter-european-commission col-md-3 col-lg-3 european-commission-menu"> <h3>European Commission</h3> <ul data-joinup-block-id="europeancommission" class="list-unstyled"> <li class="nav-link"> <a href="https://commission.europa.eu/about-european-commissions-web-presence_en">About the Commission's new web presence</a> </li> <li class="nav-link"> <a href="https://ec.europa.eu/info/resources-partners_en">Resources for partners</a> </li> <li class="nav-link"> <a href="https://ec.europa.eu/info/cookies_en">Cookies</a> </li> <li class="nav-link"> <a href="https://commission.europa.eu/about-european-commission/contact_en">Contact European Commission</a> </li> <li class="nav-link"> <a href="https://ec.europa.eu/info/europa-analytics_en">Europa Analytics</a> </li> </ul> </div> <div class="col-md-3 col-lg-2 column-follow-us"> <div id="block-followus" class="block block-system block-system-menu-blockfooter-follow-us follow-us-menu"> <h3>Follow us</h3> <ul data-joinup-block-id="followus" class="list-unstyled"> <li class="nav-link"> <a href="http://ec.europa.eu/newsroom/informatics/subscription-quick-generic-form-fullpage.cfm?service_id=1115">Newsletter subscription</a> </li> <li class="nav-link"> <a href="https://ec.europa.eu/newsroom/joinup/newsletter-archives/view/service/877">Portal newsletter archive</a> </li> <li class="nav-link"> <a href="https://twitter.com/joinup_eu">Twitter / X</a> </li> <li class="nav-link"> <a href="https://www.linkedin.com/groups/12907049/">LinkedIn</a> </li> </ul> </div> </div> </div> </div> </footer> </div> </div> <script type="application/json">{"utility":"piwik","siteID":"183","sitePath":["interoperable-europe.ec.europa.eu"],"siteSection":"http:\/\/data.europa.eu\/w21\/df34e3a2-207b-4910-a804-344931654e20","instance":"ec.europa.eu"}</script> <script type="application/json">{"utility":"cck","url":"https:\/\/ec.europa.eu\/info\/cookies_{lang}"}</script> <script src="/sites/default/files/js/js_3GPsm70w2j3jFtHom83sdAJoO-IRo7Rcl5qYhtfR7OQ.js?scope=footer&delta=0&language=en&theme=ventuno&include=eJx1kF2ShCAMhC8EciQrQMQ4QCwIOsdf1Bpm92Ef-Ol0qskH43yiFeZYjS9thzh9tK4JikQGj0UJt2KuTR2YpWU2jtPOuYs6bXVUC9ZerXSgFrARb9NxwU-6J4gcJtjgrRZwKOPdR01uRfey_NYn-YAykiuiTj1IVRLsHs4QsYihTN-mhLlpzUHrDAcFEOI8zFC47eogPOsMTbg2m0jM96oqQnHrDDvdDRdiREHzT30krxTW2JdoygdE8nohjP6G35hy2-cn4plBW-hov8gu60Je2LU_35kuoKE6k4WiIAtZ7oM_57RwST-c6rK1"></script> <script src="/themes/ventuno/assets/js/sticky-groupheader.min.js?smxwnq" defer></script> <script src="/sites/default/files/js/js_XJa1gzoGFfAwIWXTrBpsgo5-_fvX1DWNY1o0iEjZpkY.js?scope=footer&delta=2&language=en&theme=ventuno&include=eJx1kF2ShCAMhC8EciQrQMQ4QCwIOsdf1Bpm92Ef-Ol0qskH43yiFeZYjS9thzh9tK4JikQGj0UJt2KuTR2YpWU2jtPOuYs6bXVUC9ZerXSgFrARb9NxwU-6J4gcJtjgrRZwKOPdR01uRfey_NYn-YAykiuiTj1IVRLsHs4QsYihTN-mhLlpzUHrDAcFEOI8zFC47eogPOsMTbg2m0jM96oqQnHrDDvdDRdiREHzT30krxTW2JdoygdE8nohjP6G35hy2-cn4plBW-hov8gu60Je2LU_35kuoKE6k4WiIAtZ7oM_57RwST-c6rK1"></script> </body> </html>