2022-11 Upgrading To DSpace 7.4 Webinar
2022-11 Upgrading To DSpace 7.4 Webinar
2022-11 Upgrading To DSpace 7.4 Webinar
DSpace 7.4
02 Fully-featured, integration-ready
REST API 03 Support for OpenAIRE v4
06 Aligning with
COAR Next Generation Re
positories
● Coming soon: Signposting, ResourceSync, Notify Project
implementation
07
Backwards compatible with existing ● Still includes OAI-PMH, SWORD (v1/v2), old REST
integrations API (v6), etc
●
08
Every code change has automated tests (TDD)
Secure & stable out-of-the-box
● Every code change is scanned for security vulnerabilities
Exciting 7.x features not available in 6.x
❖ Full-featured REST API (supports all features of DSpace)
❖ Configurable Entities (Person, Publication, Journal, Project, etc)
❖ OpenAIRE v4 support
❖ ORCID authentication & synchronization *
❖ Researcher Profiles *
❖ IIIF Support and/or Basic Image/Video viewer
❖ OpenID Connect (OIDC) authentication
❖ Many scripts can now be run from Admin User Interface
❖ Import metadata directly from many external sources (arXiv, CrossRef,
Scopus, Web of Science, PubMed, etc.)
* Requires enabling Configurable Entities
7.x Releases (so far)
★ 7.0 (Aug 2021)
○ New User Interface, New REST API, OpenAIRE v4 support, Configurable Entities
(Person, Project, Publication, etc.)
★ 7.1 (Nov 2021)
○ IIIF Support, Request a Copy, Item Versioning, OAI Harvesting
★ 7.2 (Feb 2022)
○ Runtime configs for UI, Item Embargos, Feedback form, OpenID Connect Auth
★ 7.3 (June 2022)
○ ORCID, Importing data from 9 new sources, Versioning of Entities, Control Panel,
Sherpa/Romeo, type-based submission, RSS, etc.
★ 7.4 (Oct 2022)
○ Batch export/import (Zip), Recent Submissions, Thumbnails, Google Captcha,
Google Analytics v4, Markdown/HTML/MathJax in metadata, etc.
Likely coming in 7.5 (Feb 2023)
❏ Search support for hierarchical controlled vocabularies
❏ Supervision orders (like 6.x JSPUI)
❏ Disabling self-registration of users
❏ Full support for custom workflow steps
❏ Managing email subscriptions (to collections)
❏ Context-specific help (like 6.x JSPUI)
❏ Starting Curation Tasks during submission process
❏ Item counts for Communities/Collections
JSPUI
XMLUI
OAI-PMH
Database
V4-6
Assetstore
7 separate webapps:
2 UIs, 4 web services &
Solr
DSpace 7.x Architecture Backend
Frontend Server
Webapp
v7
User Interface
OAI-PMH
Database
(optional)
1 backend webapp v4-6
(Solr is now installed separately)
A Few Technical Design Goals
YES!
Start fresh?
4. Install DSpace 7 frontend & backend
5. Migrate existing data into it
Installing DSpace 7
(starting fresh)
https://wiki.lyrasis.org/display/DSDOC7x/Installing+DSpace
Installing Backend (Java)
Similar to a 5.x/6.x install
● Prerequisites:
○ Java, Maven, Ant, Tomcat
○ Database (PostgreSQL)
○ Solr
Installing Backend (Java)
1. Download Backend (codebase)
2. Configure local.cfg
3. Build (`mvn package`)
4. Install (`ant fresh_install`)
5. Deploy webapp to Tomcat
6. Copy DSpace Solr configs to Solr
7. Startup Tomcat & Solr
8. http://localhost:8080/server/
Installing Frontend (Angular)
OR
http://localhost:8080/server
HTTP
1. Install Apache (with mod_proxy) or Nginx
port 4000
http://localhost:4000/
Production / HTTPS support
Backend
https://my-dspace.edu
HTTP
)
server/* port 8080
REST (/
OR
https://my-dspace.edu/server
UI (
(HTTPS, port 443) /*) Frontend
HTTP
1 1. Install Apache (with mod_proxy) or Nginx
port 4000
2. Proxy /server URLs to localhost:8080
3. Proxy / (root) URLs to localhost:4000
4. Setup HTTPS in Apache/Nginx like any other
website https://my-dspace.edu/
Security is Priority
Backend security protections
● HTTPS required in production
● CORS & CSRF protection
● Only trusts ‘dspace.ui.url’ by default
Hints for common settings:
Backend’s local.cfg Frontend’s config.*.yml Example Valid URL Setting
dspace.ui.url - https://my-dspace.edu
https://wiki.lyrasis.org/display/DSDOC7x/Upgrading+DSpace
Upgrading Backend
Similar to past (v5.x/6.x) upgrades
● Upgrade or Reinstall Prerequisites:
○ Java, Maven, Ant, Tomcat
○ Database (PostgreSQL)
○ Solr
Upgrading Backend
1. Download Backend (codebase)
2. Update/create local.cfg
3. Build (`mvn package`)
4. `ant update`
5. `dspace database migrate ignored`
6. `dspace submission-forms-migrate`
(input-forms.xml -> submission-forms.xml)
7. Deploy webapp to Tomcat
8. Copy DSpace Solr configs to Solr
Upgrade Frontend?
https://wiki.lyrasis.org/display/DSDOC7x/Upgrading+DSpace
Starting Fresh vs Upgrade in Place?
YES!
https://wiki.lyrasis.org/display/DSDOC7x/Configurable+Entities
What are Configurable Entities?
• In DSpace 7, an Entity is…
An Item
With a specific defined “type”
With relationship(s) to other Entities
• Entities are optional. Items are default.
• Entities do not replace Items.
• Collections accept either Entities or
Items
Default Entity Types in DSpace 7
Known limitations:
● AIPs don’t support Entities (yet)
● No bulk migration from Item -> Entity
● Must create at least one Collection for
each Entity Type you wish to use.
You may wish to enable Entities if…
config/config.*.yml
Language Selector
languages:
- code: en
label: English
active: true
…
Home Page Items
homePage:
recentSubmissions:
pageSize: 5
sortField: 'dc.date.accessioned'
topLevelCommunityList:
pageSize: 5
Browse By Options
browseBy:
oneYearLimit: 10
fiveYearLimit: 30
defaultLowerLimit: 1900
showThumbnails: true
pageSize: 20
Community List
communityList:
pageSize: 20
Basic Embedded Media Player
(videos or images)
mediaViewer:
image: true
video: true
Backend
Configurations
[dspace]/config/* [dspace]/config/modules/*
Important Backend Configs
(local.cfg)
dspace.dir (Backend install folder)
dspace.server.url (Backend URL)
dspace.ui.url (UI’s URL / default trusted client)
db.* (Database connection settings)
solr.server (Solr webapp/URL)
rest.cors.allowed-origins
(Add additional trusted clients)
ads.key epo.consumerKey
epo.consumerSecretKey
cinii.appid
scopus.apiKey
scopus.instToken
wos.apiKey
Configuring
Submission Forms
https://wiki.lyrasis.org/display/DSDOC7x/
Configurable+Workflow
Wrap-Up
What’s next for 7.x?
https://wiki.lyrasis.org/display/DSPACE/DSpace+Release+7.0+Status
7.x : Goal is to rapidly modernize
➢ New features in every 7.x release
○ Add a few missing 6.x features in each release
○ If necessary, code refactors may occur
➢ 7.5 due Feb 2023, 7.6 due June 2023
○ 3 releases per year (Feb, June, Oct)
➢ Once 7.x is “feature compatible” with 6.x
(around 7.6/7.7), planning for 8.x will begin
https://wiki.lyrasis.org/display/DSPACE/DSpace+Release+7.0+Status
How can I contribute?
Join DSpace 7 Working Group (Dev Team)
➢ Meets every Thursday at 15:00UTC
➢ Help review / test Pull Requests!
https://wiki.lyrasis.org/display/DSDOC7x/Configurable+Entities
Default Entity Types in DSpace 7
<!-- Define which metadata field the value is mapped into -->
<util:map id="isAuthorOfPublicationMap">
<entry key="dc.contributor.author" value-ref="publicationAuthor_author"/>
</util:map>
virtual-metadata.xml
<!-- Value is concatenation of three Person metadata fields. Comma-separate multiple values -->
<bean class="org.dspace.content.virtual.Concatenate" id="publicationAuthor_author">
<property name="fields">
<util:list>
<value>person.familyName</value>
<value>person.givenName</value>
<value>organization.legalName</value>
</util:list>
</property>
<property name="separator">
<value>, </value>
</property>
</bean>
} Regular metadata
virtual metadata
(from related
{
Persons)