Skip to content

Provides the ability to work with objects based on schema.json

License

ConductionNL/openregister

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Registers

Open Registers provides a way to quicly build and deploy standardized registers based on NLGov REST API Design Rules and Common Ground Principles. It is based on based on the concepts of defining object types in schema.json and storing objects in configurable source.

What is Open Registers?

Open Registers is a system for managing registers in Nextcloud. A register is a collection of one or more object types that are defined by a schema.json. Registers sort objects and validate them against their object types.

Registers can store objects either directly in the Nextcloud database, or in an external database or object store.

Registers provide APIs for consumption.

Registers can also apply additional logic to objects, such as validation that is not applicable through the schema.json format.

Key Features

  • 📦 Object Management: Work with objects based on schema.json.
  • 🗂️ Register System: Manage collections of object types.
  • 🛡️ Validation: Validate objects against their types.
  • 🏢 Multi-Tenancy: Complete organisation-based data isolation with user management and role-based access control.
  • 🔍 SOLR Integration: Enhanced search capabilities with improved metadata handling and configuration management.
  • 🔧 Self-Metadata Handling: Advanced metadata processing for better data organization and retrieval.
  • 💾 Flexible Storage: Store objects in Nextcloud, external databases, or object stores.
  • 🔄 APIs: Provide APIs for consumption.
  • 🧩 Additional Logic: Apply extra validation and logic beyond schema.json.
  • 🗑️ Object Deletion | Soft deletion with retention and recovery | Data safety, compliance, lifecycle management

Documentation

For more detailed information, please refer to the documentation files in the docs folder:

Open Register

Open Register is a powerful object management system for Nextcloud that helps organizations store, track, and manage objects with their associated metadata, files, and relationships. Born from the Dutch Common Ground initiative, it addresses the need for quickly deploying standardized registers based on centralized definitions from standardization organizations.

Background

Open Register emerged from the Dutch Common Ground movement, which aims to modernize municipal datamanagement. The project specifically addresses the challenge many organizations face: implementing standardized registers quickly and cost-effectively while maintaining compliance with central definitions.

Common Ground Principles

  • Decentralized data storage
  • Component-based architecture
  • Standardized definitions
  • API-first approach

Open Register makes these principles accessible to any organization by providing:

  • Quick register deployment based on standard schemas
  • Flexible storage options
  • Built-in compliance features
  • Cost-effective implementation

Key Features

Feature Description Benefits
💾 Storing Objects Configure how and where register data is stored Storage flexibility, system integration, scalability
📝 Audit Trails Complete history of all object changes Compliance, accountability, change tracking
Time Travel View and restore previous object states Data recovery, historical analysis, version control
🔒 Object Locking Prevent concurrent modifications Data integrity, process management, conflict prevention
🗑️ Soft Deletes Safely remove objects with recovery options Data safety, compliance, mistake recovery
🔗 Object Relations Create and manage connections between objects Complex data structures, linked information, dependencies
📎 File Attachments Manage files associated with objects Document management, version control, previews
🔍 Content Search Full-text search across objects and files Quick discovery, unified search, advanced filtering
🏷️ Automatic Facets Dynamic filtering based on object properties Intuitive navigation, pattern discovery, smart filtering
Schema Validation Validate objects against JSON schemas Data quality, consistency, structure enforcement
📚 Register Management Organize collections of related objects Logical grouping, access control, process automation
🔐 Access Control Fine-grained permissions management Security, role management, granular control
Elasticsearch Advanced search and analytics capabilities Performance, insights, complex queries
📋 Schema Import & Sharing Import schemas from Schema.org, OAS, GGM, and share via Open Catalogi Standards compliance, reuse, collaboration
🔔 Events & Webhooks React to object changes with events and webhooks Integration, automation, real-time updates
✂️ Data Filtering Select specific properties to return Data minimalization, GDPR compliance, efficient responses
🔍 Advanced Search Filter objects using flexible property-based queries Precise filtering, complex conditions, efficient results
🗑️ Object Deletion Soft deletion with retention and recovery Data safety, compliance, lifecycle management
Bulk Operations Perform operations on multiple objects simultaneously Performance, efficiency, batch processing

Documentation

Documentation is available at https://openregisters.app/ and created from the website folder of this repository.

Requirements

  • Nextcloud 25 or higher
  • PHP 8.1 or higher
  • Database: MySQL/MariaDB

Project Structure

This monorepo is a Nextcloud app, it is based on the following structure:

/
├── app/          # App initialization and bootstrap files
├── appinfo/      # Nextcloud app metadata and configuration
├── css/          # Stylesheets for the app interface
├── docker/       # Docker configuration for development
├── img/          # App icons and images
├── js/           # JavaScript files for frontend functionality
├── lib/          # PHP library files containing core business logic
├── src/          # Vue.js frontend application source code
├── templates/    # Template files for rendering app views
└── website/      # Documentation website source files

When running locally, or in development mode the folders nodus_modules and vendor are added. Thes shoudl however not be commited.

Contributing

Please see our Contributing Guide for details on how to contribute to this project.

License

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

Installation

This project is designed to be installed from the nextcloud app store. Alternativly a docker-compose.yml is available in the repostory for quick testing. If you are looking to contribute then please setup your own development environment following setting up a development environment.

Contact

For more information, please contact info@conduction.nl.

About

Provides the ability to work with objects based on schema.json

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 12