Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,260 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Merritt

Merritt is the digital preservation repository for the University of California, available to libraries, academic departments, laboratories and other organizational units within UC.

Original System Specifications

User Documentation

Core Microservices Diagram

%%{init: {'theme': 'neutral', 'securityLevel': 'loose', 'themeVariables': {'fontFamily': 'arial'}}}%%
graph TD
  accTitle: Merritt repository core microservices diagram
  accDescr {
    Flowchart displaying interactions and dataflow across all Merritt repository microservices.
    This flowchart illustrates the dataflow of new content when it is submitted to the repository via its web-based user interface (UI).
    Beginning with the UI, a user logs in to Merritt, a process that is managed by the LDAP service. When a submission is uploaded to a collection via the UI,
    data flows to the Ingest microservice. At this time, Ingest communicates with the Zookeeper (ZK) service to generate batch data in the ZK queue. 
    It also talks to the EZID service to aquire an Archival Resource Key that will be used as the primary identifier for the resulting object in the system.
    Ingest downloads the user's content to an intermediate staging volume, which is established with Amazon FSx for OpenZFS. The Storage microservice then tracks
    the downloaded data using a manifest file. Storage uses the manifest to obtain the location of each content file and uploads files to cloud storage.
    At this time, the file in cloud storage is checked for integrity. Finally, the Inventory microservice fetches data from the ZK queue and writes metadata to
    Merritt's central inventory database. This completes the deposit workflow. If a user chooses to download an object or individual file from the repository, 
    a retrieval request is sent from the UI to Merritt's Access microservice. A package or file is then made available for download via a secure, AWS
    presigned URL that is provided to the user's web browser. The download then commences.
  }
  RDS[(Inventory DB)]
  UI("Merritt UI")
  click UI href "https://github.com/CDLUC3/mrt-dashboard" "source code"
  ING(Ingest)
  click ING href "https://github.com/CDLUC3/mrt-ingest" "source code"
  ST(Storage)
  click ST href "https://github.com/CDLUC3/mrt-store" "source code"
  STACC(Storage - Access)
  click STACC href "https://github.com/CDLUC3/mrt-store" "source code"
  INV(Inventory)
  click INV href "https://github.com/CDLUC3/mrt-inventory" "source code"
  CLOUD(("Cloud Storage"))
  click CLOUD href "https://github.com/CDLUC3/mrt-cloud" "source code"
  LDAP[/LDAP\]
  ZFS[/ZFS Working Storage/]
  ZOO>Zookeeper]
  click ZOO href "https://github.com/CDLUC3/mrt-zoo" "source code"
  EZID(EZID Service)
  click EZID href "https://ezid.cdlib.org/" "service link"
  BROWSER[[Browser]]

  subgraph flowchart
    BROWSER --> |ingest or retrieval| UI
    UI --> |authorization| LDAP
    RDS --> UI
    UI --> |"file or ingest manifest"| ING
    ING --> |queue job| ZOO
    ING --> |check obj lock| ZOO
    ZOO --> |start job| ING
    ING -.-> |local id request| INV
    ING --> EZID
    ING --> |download content| ZFS
    ING --> |"sync deposit"| ST
    ST --> CLOUD
    ZFS --> ST
    ZOO --> INV
    INV -.-> |retrieve storage manifest| ST
    INV --> RDS
    UI ---> |retrieval req| STACC
    STACC --> |retrieval req| CLOUD
    CLOUD -.-> |presigned URL| STACC
    STACC -.-> |presigned URL| UI
    CLOUD -.-> |presigned retrieval| BROWSER
  end

  style CLOUD fill:#77913C
  style RDS fill:#F68D2F
  style LDAP fill:cyan
  style ZOO fill:cyan
  style EZID fill:cyan
  
  classDef FOCUS stroke:red,stroke-width:5px,fill:yellow
Loading

Code Repositories

Code Repositories

Libraries

Configuration

Supporting Services

Merritt DevOps

Project Overview

More info


Internal Links

About

Documentation and Information regarding the Merritt repository

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

15 watching

Forks

Releases

Packages

Used by

Contributors

Languages