Fin is a microservice based Fedora repository (fcrepo). It is built using NodeJS and Docker. Fin wraps fcrepo and provides a default set of services and opinions. The fin wrapper extends the fcrepo API allowing users to add additional services to the fcrepo container. Fin also provides a default set of services that can be used to extend the fcrepo container.
Here are the major microservices at the core of Fin:
- Fedora - A Fedora Commons container
- PostgreSQL
- Redis
- Gateway - A NodeJS/ExpressJS server that acts as a proxy to route Fin HTTP requests to desired services. The Fin server also adds endpoints for handling some auth functionality such as logout and admin administration.
- API - Extendable API service to power applications
- ElasticSearch - A search engine for indexing and searching data
- FinAC - An opinionated WebAC wrapper
- GCS - A Google Cloud Storage service for accessing binary data
- Keycloak - An authentication service that integrates with Keycloak
- Dbsync - A service for syncing data between Fcrepo and external databases using Fin Data Models
- Workflow - A service for managing and monitoring 3rd party workflow frameworks
- Fin Service Documentation
- Fin Service Types
- Fin Data Models
- Fin Config
- Other Tech Bits
TODO: Update this section
A command line interface and shell for interactive with Fin. Built using the fin-node-api the CLI provides functionality for interacting with Fin and Fedora. It provides a simple CLI for performing all Fedora HTTP API requests as well as working with Fin services, WebAC/acl the Fin way and authentication.
Install CLI (NodeJS w/ NPM Required)
npm install -g fin-cli