Overview
Discover what makes Fedora Commons Repository powerful
Fedora Commons Repository (Fedora 6.x) is a Java‑based, modular, open‑source repository platform designed for large‑scale digital libraries and archives. At its core, Fedora exposes a **RESTful HTTP API** that allows clients to create, read, update, and delete digital objects (DIPs) while preserving rich metadata, provenance, and version history. The system is built around a **content graph** model where every object is an RDF node, enabling fine‑grained access control and flexible data relationships. This architecture makes Fedora ideal for institutions that need both preservation‑grade storage and a programmable interface to their collections.
Object‑oriented persistence
Fine‑grained ACLs
Preservation support
Extensible via OAI‑PMH
Overview
Fedora Commons Repository (Fedora 6.x) is a Java‑based, modular, open‑source repository platform designed for large‑scale digital libraries and archives. At its core, Fedora exposes a RESTful HTTP API that allows clients to create, read, update, and delete digital objects (DIPs) while preserving rich metadata, provenance, and version history. The system is built around a content graph model where every object is an RDF node, enabling fine‑grained access control and flexible data relationships. This architecture makes Fedora ideal for institutions that need both preservation‑grade storage and a programmable interface to their collections.
Key Features
- Object‑oriented persistence: Each digital object is stored as a set of binary datastreams and associated RDF metadata, with automatic versioning.
- Fine‑grained ACLs: Access control lists are attached to objects, allowing per‑object or per‑datastream permissions.
- Preservation support: Built‑in checksums, content integrity verification, and a transparent preservation storage layer.
- Extensible via OAI‑PMH: Supports the Open Archives Initiative Protocol for Metadata Harvesting, enabling syndication to external discovery services.
- RESTful API: CRUD operations, search, and bulk ingestion are all exposed through standard HTTP verbs.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Java 11, Maven 3.6+ |
| Web Server | Deployable as a WAR to Jetty or Tomcat (servlet container) |
| Persistence | Relational database (PostgreSQL, MySQL, or MariaDB) for metadata and relational tables; optional external storage (S3, Swift) for binary datastreams |
| Graph Store | Fedora’s internal RDF store (Jena‑based) for object relationships |
| Search | Solr or ElasticSearch integration for full‑text and faceted search |
| Containerization | Official Docker images available; Kubernetes manifests for scaling |
The core application is written in Java and leverages the JAX‑RS framework for its REST API. The data layer is split between a relational database for transactional metadata and an RDF store for graph queries, allowing developers to use SPARQL or Jena APIs when needed.
Core Capabilities
- API:
/restendpoints for CRUD, batch ingestion (/batch), and query (/search). Supports JSON‑LD, Turtle, and other RDF serializations. - Hooks & Webhooks: Event listeners can be registered to trigger actions on object creation, modification, or deletion.
- Batch Processing: Bulk ingest via CSV/XLSX manifests; supports asynchronous job tracking.
- Versioning & Provenance: Automatic generation of version IDs and provenance graphs; APIs to retrieve previous revisions.
- Extensibility: Plug‑in architecture (via OSGi bundles) allows adding new datastream processors, custom serializers, or UI components.
Deployment & Infrastructure
Fedora is self‑hosted and requires a servlet container. Minimum system requirements are modest: 2 CPU cores, 4 GB RAM for a small instance; production deployments typically run on multi‑core nodes with at least 16 GB RAM and a dedicated database server. For scalability, Fedora can be run behind a load balancer with multiple application instances sharing the same database and storage backend. Docker images simplify deployment; a typical stack includes:
- Fedora WAR in Jetty/Tomcat
- PostgreSQL for metadata
- S3/Swift bucket for datastreams
- Solr for search
Monitoring can be integrated with Prometheus, and metrics are exposed via JMX.
Integration & Extensibility
- Plugin System: OSGi bundles can extend Fedora’s core services, adding new content types or custom business logic.
- REST Hooks: Clients can register callbacks for lifecycle events; useful for CI/CD pipelines or external workflow systems.
- API Clients: Official Java SDK and community‑maintained clients in Python, Ruby, and Node.js simplify interaction.
- UI Customization: The default UI is built with Thymeleaf; developers can replace it with a headless API approach or integrate with external front‑ends (React, Angular).
Developer Experience
- Documentation: Comprehensive JavaDocs, a dedicated technical wiki, and API reference pages. The community maintains an up‑to‑date guide for new developers.
- Community: Active mailing lists, Slack channels (
#tech,bleeding-edge), and weekly Zoom calls foster rapid issue resolution. - Testing: Maven profiles enable running the application with an embedded Jetty server (
mvn jetty:run) and executing unit/integration tests. - Open Source: Apache 2.0 licensed, encouraging commercial use without licensing overhead.
Use Cases
| Scenario | Why Fedora? |
|---|---|
| Institutional Repository | Provenance tracking, preservation layers, and OAI‑PMH export for scholarly outputs. |
| Digital Archive | Fine‑grained ACLs and bulk ingestion support for large collections of cultural heritage materials. |
| Scientific Data Management | Versioned datastreams, metadata export in RDF, and integration with search engines for dataset discovery. |
| Government Records | Long‑term preservation, audit trails, and compliance with open data mandates. |
Advantages
- Performance & Scalability: Designed for high‑throughput ingestion and retrieval; can be horizontally scaled behind a
Open SourceReady to get started?
Join the community and start self-hosting Fedora Commons Repository today
Related Apps in development-tools
Hoppscotch
Fast, lightweight API development tool
code-server
Self-hosted development-tools
AppFlowy
AI-powered workspace for notes, projects, and wikis
Appwrite
All-in-one backend platform for modern apps
PocketBase
Lightweight Go backend in a single file
Gitea
Fast, lightweight self-hosted Git platform
Weekly Views
Repository Health
Information
Tags
Explore More Apps
INGInious
Self‑hosted platform for programming courses and instant feedback
Redash
Collaborative SQL dashboards for all data sources
auto-mcs
Instant Minecraft server management for friends
EspoCRM
Open‑source CRM for smart customer relationships
SQLPage
Build data‑centric web apps with pure SQL
ydl_api_ng
Self-hosted other