Skip to main content

Software Catalogus Features

Software Catalogus is a GEMMA-compliant software portfolio management application for Nextcloud. It enables organisations to register, track, and publish their software landscape — applications, modules, integrations, and contacts — in an open, standardized way aligned with Dutch GEMMA and Common Ground principles.

All data is stored as OpenRegister objects (no own database tables). OpenRegister is a required dependency.

Feature Index

FeatureDescription
Software RegistrationRegister and manage applications (voorzieningen) in the landscape
Module TrackingBreak applications down into functional modules
Connection MappingMap integrations (koppelingen) between applications and modules
Organisation and Contact ManagementManage organisations and their contact persons
Contract ManagementTrack license and service agreements
Federated SynchronisationSync catalogue data across organisations and sources
Automatic User ProvisioningCreate Nextcloud users from catalogue contacts
ArchiMate Import/ExportExchange software landscape data in ArchiMate format
Open Data PublishingExpose the catalogue as a public open-data API
GEMMA ComplianceBuilt around VNG GEMMA Softwarecatalogus reference

Software Registration

Register every application (voorziening) in the organisation's IT landscape with full metadata:

  • Name, description, and status (in use, planned, decommissioned)
  • Supplier and owning organisation
  • Repository URL and license information
  • GEMMA applicatie reference
  • Usage counts (gebruik) per organisation
  • Version history and module breakdown

The dashboard displays totals and recent changes across all registered software.

Key service: lib/Service/AanbodService.php Controller: lib/Controller/AanbodController.php

Module Tracking

Each application can be decomposed into functional modules (modules). A module represents a distinct component or capability within an application:

  • Name, description, and version
  • Parent application reference
  • Integration point documentation
  • Compliance and standard references

Modules can be linked to connections (koppelingen) to map how they interact with other modules and applications.

Key service: lib/Service/ModuleRegistrationService.php, lib/Service/ModuleVersionService.php, lib/Service/ModuleComplianceService.php

Connection Mapping

Connections (koppelingen) describe the integrations between applications and modules in the landscape. Each connection records:

  • Source module or application
  • Target module or application
  • Connection type (API, file exchange, database, message queue)
  • Protocol and standard (REST, StUF, Digikoppeling, etc.)
  • Status and responsible parties

Visualizing connections reveals landscape dependencies and highlights integration complexity before system changes.

Key service: lib/Service/GebruikService.php Controller: lib/Controller/GebruikController.php

Organisation and Contact Management

Maintain a registry of organisations (organisaties) that use, supply, or manage software in the landscape:

  • Organisation name, type (municipality, supplier, partner), and contact details
  • Automatic Nextcloud group creation per organisation
  • Role-based membership: beheerder (manager) and medewerker (member)
  • Manager-employee relationships: beheerders become Nextcloud managers for their organisation's users

Contact persons (contactpersonen) are individuals linked to organisations:

  • Name, email, phone, and role
  • Optional conversion to Nextcloud user accounts
  • Linked to application usage records

Key services: lib/Service/OrganisatieService.php, lib/Service/ContactpersoonService.php, lib/Service/OrganizationSyncService.php Controller: lib/Controller/ContactpersonenController.php

Contract Management

Track contracts associated with software usage:

  • License type and terms
  • Contract start and end dates
  • Linked application and supplier
  • Renewal alerts and status tracking

Contracts are stored as OpenRegister objects, enabling audit trails and version history.

Federated Synchronisation

Software Catalogus can synchronise catalogue data across organisations via the open-data network:

  • Import software listings from external Software Catalogus instances
  • Merge and deduplicate entries using slug-based identifiers
  • Schedule regular sync runs via background jobs
  • Resolve conflicts using configurable merge strategies

This enables a federated, collaborative catalogue across Dutch municipalities without a central authority.

Key service: lib/Service/SoftwareCatalogueService.php Subservices: lib/Service/SoftwareCatalogue/ (dedicated handlers per sync scenario)

Automatic User Provisioning

When an organisation and its contacts are registered in the catalogue, Software Catalogus can automatically provision Nextcloud user accounts:

  • Create a Nextcloud account for each contact person linked to an organisation
  • Assign the user to the organisation's Nextcloud group
  • Apply beheerder or medewerker role based on the contact's catalogue role
  • Sync organisation hierarchy: managers are marked as managers of their groups

User provisioning is triggered by OpenRegister object events and runs in the background.

Key service: lib/Service/UserService.php (via AangebodenGebruikService.php) Controller: lib/Controller/AangebodenGebruikController.php

ArchiMate Import/Export

Exchange IT landscape data with enterprise architecture tools using the ArchiMate standard:

  • Import: Parse ArchiMate XML exchange files and create corresponding voorzieningen, modules, and koppelingen in the catalogue
  • Export: Generate ArchiMate exchange files from the current catalogue state for use in architecture tools (BiZZdesign, Archi, etc.)

The ArchiMate integration maps GEMMA Softwarecatalogus objects to ArchiMate application layer elements:

Catalogue ObjectArchiMate Element
VoorzieningApplicationComponent
ModuleApplicationComponent (nested)
KoppelingAssociationRelationship
OrganisatieBusinessActor

Key services: lib/Service/ArchiMateService.php, lib/Service/ArchiMateImportService.php, lib/Service/ArchiMateExportService.php

Open Data Publishing

The catalogue is published as an open-data API. All registered applications, modules, and connections are accessible via public endpoints:

  • Standard JSON-API format responses
  • GEMMA-compatible metadata fields
  • Schema.org compatibility for search engine indexing
  • Pagination and filtering support

The View system provides tailored read-only projections of catalogue data for public consumption.

Key service: lib/Service/ViewService.php Controller: lib/Controller/ViewController.php

GEMMA Compliance

Software Catalogus is built around the GEMMA Softwarecatalogus reference architecture defined by VNG-Realisatie:

Catalogue ConceptGEMMA Reference
VoorzieningApplicatie (GEMMA Softwarecatalogus)
ModuleModule / Component
KoppelingKoppeling
OrganisatieOrganisatie
ContactpersoonContactpersoon
ContractContract

Standards: GEMMA Softwarecatalogus (VNG), Common Ground principles, Schema.org, WCAG AA, EUPL-1.2.

Data Model

ObjectDutch TermGEMMA MappingDescription
ApplicationVoorzieningApplicatieSoftware application in the landscape
ModuleModuleModule/ComponentFunctional component of an application
ConnectionKoppelingKoppelingIntegration between modules or applications
OrganisationOrganisatieOrganisatieUsing or supplying organisation
ContactContactpersoonContactpersoonIndividual linked to an organisation
ContractContractContractLicense or service agreement
UsageGebruikGebruikOrganisation's use of an application

All objects are stored as JSON in OpenRegister schemas with full audit trails, versioning, and cross-app data sharing.