#---------------------------------------------------------------# #----------------SWORD 2.0 SERVER CONFIGURATIONS----------------# #---------------------------------------------------------------# # These configs are only used by the SWORD Server interface, # # version 2.0 (used by DSpace to accept ingest packages via # # SWORD 2.0 protocol) # #---------------------------------------------------------------# # the base url of the sword 2.0 system # # the default if {dspace.url}/swordv2 # #swordv2-server.url = http://www.myu.ac.uk/swordv2 # The base URL of the SWORD collection. This is the URL from # which DSpace will construct the deposit location urls for # collections. # # The default is {dspace.url}/swordv2/collection # # In the event that you are not deploying DSpace as the ROOT # application in the servlet container, this will generate # incorrect URLs, and you should override the functionality # by specifying in full as below: # # swordv2-server.collection.url = http://www.myu.ac.uk/swordv2/collection # The base URL of the SWORD service document. This is the # URL from which DSpace will construct the service document # location urls for the site, and for individual collections # # The default is {dspace.url}/swordv2/servicedocument # # In the event that you are not deploying DSpace as the ROOT # application in the servlet container, this will generate # incorrect URLs, and you should override the functionality # by specifying in full as below: # # swordv2-server.servicedocument.url = http://www.myu.ac.uk/swordv2/servicedocument # The accept packaging properties, along with their associated # quality values where appropriate. # # Global settings; these will be used on all DSpace collections # swordv2-server.accept-packaging.collection.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP swordv2-server.accept-packaging.collection.SimpleZip = http://purl.org/net/sword/package/SimpleZip swordv2-server.accept-packaging.collection.Binary = http://purl.org/net/sword/package/Binary # The accept packaging properties for items. This is used to determine # which package types are acceptable to deposit into an existing item, # either adding to or replacing the media resource # swordv2-server.accept-packaging.item.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP swordv2-server.accept-packaging.item.SimpleZip = http://purl.org/net/sword/package/SimpleZip swordv2-server.accept-packaging.item.Binary = http://purl.org/net/sword/package/Binary # A comma separated list of MIME types that SWORD will accept swordv2-server.accepts = */* # Collection Specific settings: these will be used on the collections # with the given handles # #swordv2-server.accept-packaging.collection.[handle].METSDSpaceSIP = http://purl.org/net/sword-types/METSDSpaceSIP # Should the server offer as the default the list of all Communities # to a Service Document request. If false, the server will offer # the list of all collections, which is the default and recommended # behaviour at this stage. # # NOTE: a service document for Communities will not offer any viable # deposit targets, and the client will need to request the list of # Collections in the target before deposit can continue # swordv2-server.expose-communities = false swordv2-server.allow-community-deposit = false # The maximum upload size of a package through the sword interface, # in bytes # # This will be the combined size of all the files, the metadata and # any manifest data. It is NOT the same as the maximum size set # for an individual file upload through the user interface. If not # set, or set to 0, the sword service will default to no limit. # swordv2-server.max-upload-size = 0 # Should DSpace store a copy of the original sword deposit package? # # NOTE: this will cause the deposit process to run slightly slower, # and will accelerate the rate at which the repository consumes disk # space. BUT, it will also mean that the deposited packages are # recoverable in their original form. It is strongly recommended, # therefore, to leave this option turned on. # # NOTE: this affects all incoming deposits, whether they are package # deposits or not. That is, if individual files are uploaded to the # Media Resource, a copy of that file will be stored in the SWORD # bundle AND into the ORIGINAL bundle. # swordv2-server.keep-original-package = true # The bundle name that SWORD should store incoming packages under if # keep-original-package is set to true. The default is "SWORD" # if not value is set # # swordv2-server.bundle.name = SWORD # The bundle name that SWORD should use to store deleted bitstreams # if versions.keep is set to true. This will be used in the case # that individual files are updated or removed via SWORD. If # the entire Media Resource (files in the ORIGINAL bundle) is removed # this will be backed up in its entirity in a bundle of its own # # swordv2-server.bundle.deleted = DELETED # In the event of package ingest failure, provide an option to store # the package on the file system. The default is false. #swordv2-server.keep-package-on-fail=false #swordv2-server.failed-package.dir=${dspace.dir}/upload # Should we support mediated deposit via sword? Enabled, this will # allow users to deposit content packages on behalf of other users. # # WARNING: enabling mediated deposit is not intrinsically secure, # it places a trust relationship between the authenticating user # and the On-Behalf-Of user account within DSpace. For example, # ANY authenticated user may make changes to an existing item # which belongs to the On-Behalf-Of user, which represents a significant # security risk. It is therefore recommended to either disable # mediated deposit, or to expressly set a list of accounts which # are allowed to mediate on behalf of other users # (see swordv2-server.on-behalf-of.update.mediators) # # See the SWORD specification for a detailed explanation of deposit # On-Behalf-Of another user # swordv2-server.on-behalf-of.enable = false # # Which user accounts are allowed to do updates on items which already # exist in DSpace, on-behalf-of other users? # # If this is left blank, or omitted, then all accounts can mediate # updates to items, which could be a security risk, as there is no # implicit checking that the authenticated user is a "legitimate" # mediator # # FIXME: this would be best maintained in the database with a nice UI # ... so if you feel the urge to build one please don't hesitate! # #swordv2-server.on-behalf-of.update.mediators = user1@myu.edu, user2@myu.edu # Should the deposit receipt include a verbose description of the deposit? # swordv2-server.verbose-description.receipt.enable = false # should the error document include a verbose description of the error # swordv2-server.verbose-description.error.enable = true # The error document can contain an alternate url, which the client # can use to follow up any issues. # # This is the Contact-Us page on the XMLUI (localise the url space # first) # swordv2-server.error.alternate.url = ${dspace.baseUrl}/contact # The URL may have an associated content type; if you know what it # is, you can enter it here # swordv2-server.error.alternate.content-type = text/html # The URL which identifies the sword software which provides # the sword interface. This is the URL which DSpace will use # to fill out the atom:generator element of its atom documents. # # The default is: # # http://www.dspace.org/ns/sword/2.0/ # # If you have modified your sword software, you should change # this URI to identify your own version. If you are using the # standard dspace-sword module you will not, in general, need # to change this setting # # swordv2-server.generator.url = http://www.dspace.org/ns/sword/2.0/ # Which version of SWORD is being used swordv2-server.generator.version = 2.0 # The form of authentication to use # This is normally set to 'Basic' for HTTP Basic # Other valid values: 'None' swordv2-server.auth-type = Basic # The location where uploaded files and packages are # stored while being processed swordv2-server.upload.tempdir = ${upload.temp.dir} # The metadata field in which to store the updated date for # items deposited via SWORD. swordv2-server.updated.field = dc.date.updated # The metadata field in which to store the value of the slug # header if it is supplied swordv2-server.slug.field = dc.identifier.slug # The metadata field in which to store the value of the # atom entry author if it is supplied swordv2-server.author.field = dc.contributor.author # The metadata field in which to store the value of the # atom entry title if it is supplied swordv2-server.title.field = dc.title # Supported packaging formats for the dissemination of packages # FIXME: this format is not supported ... #swordv2-server.disseminate-packaging.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP swordv2-server.disseminate-packaging.SimpleZip = http://purl.org/net/sword/package/SimpleZip # Configure the plugins to process incoming packages. The form of this # configuration is as per the Plugin Manager's Named Plugin documentation: # # plugin.named.[interface] = [implementation] = [package format identifier] \ # # Package ingesters should implement the SWORDIngester interface, and # will be loaded when a package of the format specified above in: # # swordv2-server.accept-packaging.[package format].identifier = [package format identifier] # # is received. # # In the event that this is a simple file deposit, with no package # format, then the class named by "SimpleFileIngester" will be loaded # and executed where appropriate. This case will only occur when a single # file is being deposited into an existing DSpace Item # plugin.named.org.dspace.sword2.SwordContentIngester = \ org.dspace.sword2.SimpleZipContentIngester = http://purl.org/net/sword/package/SimpleZip, \ org.dspace.sword2.SwordMETSContentIngester = http://purl.org/net/sword/package/METSDSpaceSIP, \ org.dspace.sword2.BinaryContentIngester = http://purl.org/net/sword/package/Binary #, \ # org.dspace.swordpackagers.SwordDocXIngester = application/vnd.openxmlformats-officedocument.wordprocessingml.document, \ # org.dspace.swordpackagers.SwordXifIngester = image/jpeg plugin.single.org.dspace.sword2.SwordEntryIngester = \ org.dspace.sword2.SimpleDCEntryIngester plugin.single.org.dspace.sword2.SwordEntryDisseminator = \ org.dspace.sword2.SimpleDCEntryDisseminator # note that we replace ";" with "_" as ";" is not permitted in the PluginService names plugin.named.org.dspace.sword2.SwordContentDisseminator = \ org.dspace.sword2.SimpleZipContentDisseminator = http://purl.org/net/sword/package/SimpleZip, \ org.dspace.sword2.FeedContentDisseminator = application/atom+xml, \ org.dspace.sword2.FeedContentDisseminator = application/atom+xml_type_feed # note that we replace ";" with "_" as ";" is not permitted in the PluginService names plugin.named.org.dspace.sword2.SwordStatementDisseminator = \ org.dspace.sword2.AtomStatementDisseminator = atom, \ org.dspace.sword2.OreStatementDisseminator = rdf, \ org.dspace.sword2.AtomStatementDisseminator = application/atom+xml_type_feed, \ org.dspace.sword2.OreStatementDisseminator = application/rdf+xml # Which bundles should the Statement include in its list of aggregated resources # # The Statement will automatically mark any bitstreams which are in the bundle # identified by the ${bundle.name} property, provided that bundle is also # listed here (i.e. if you want Original Deposits to be listed in the Statement # then you should add the SWORD bundle to this list) # swordv2-server.statement.bundles = ORIGINAL, SWORD, LICENSE # Workflow manager implementation - tells us what we are allowed to do # via the SWORDv2 interface # # There are two default workflow managers: # - org.dspace.sword2.WorkflowManagerDefault: Only items in submission # are allowed to be UPDATED or DELETED using SWORD. # - org.dspace.sword2.WorkflowManagerUnrestricted: Items in workflow, # in archive, or withdrawn can also be UPDATED or DELETED using # SWORD plugin.single.org.dspace.sword2.WorkflowManager = \ org.dspace.sword2.WorkflowManagerDefault # Should the WorkflowManagerDefault allow updates to the item's metadata # to take place on items which are in states other than the workspace # (e.g. in the workflow, archive, or withdrawn) ? # swordv2-server.workflowmanagerdefault.always-update-metadata = true # Should the server allow PUT to individual files? # # If this is enabled, then DSpace may be used with the DepositMO SWORD # extensions, BUT the caveat is that DSpace does not formally support # Bitstream replace, so this is equivalent to a DELETE and then a POST, # which violates the RESTfulness of the server. The resulting file # DOES NOT have the same identifier as the file it was replacing. As such # it is STRONGLY RECOMMENDED to leave this option turned off unless working # explicitly with DepositMO enabled client environments # swordv2-server.workflowmanagerdefault.file-replace.enable = false # tell the SWORD METS implementation which package ingester to use # to install deposited content. This should refer to one of the # classes configured for: # # plugin.named.org.dspace.content.packager.PackageIngester # # The value of swordv2-server.mets-ingester.package-ingester tells the # system which named plugin for this interface should be used # to ingest SWORD METS packages # # The default is METS # # swordv2-server.mets-ingester.package-ingester = METS # Should the sword server enable restore-mode when ingesting new # packages. If this is enabled the item will be treated as a # previously deleted item from the repository. If the item had # previously been assigned a handle then that same handle will be # restored to activity. swordv2-server.restore-mode.enable = false # metadata field mapping for SimpleDCEntryIngester, SimpleDCEntryDisseminator and FeedContentDisseminator, # swordv2-server.simpledc.abstract = dc.description.abstract swordv2-server.simpledc.accessRights = dc.rights #swordv2-server.simpledc.accrualMethod = dc.???? #swordv2-server.simpledc.accrualPeriodicity = dc.???? #swordv2-server.simpledc.accrualPolicy = dc.???? swordv2-server.simpledc.alternative = dc.title.alternative #swordv2-server.simpledc.audience = dc.??? swordv2-server.simpledc.available = dc.date.available swordv2-server.simpledc.bibliographicCitation = dc.identifier.citation #swordv2-server.simpledc.conformsTo = dc.???? swordv2-server.simpledc.contributor = dc.contributor swordv2-server.simpledc.coverage = dc.coverage swordv2-server.simpledc.created = dc.date.created swordv2-server.simpledc.creator = dc.contributor.author swordv2-server.simpledc.date = dc.date swordv2-server.simpledc.dateAccepted = dc.date.accepted # swordv2-server.simpledc.dateCopyrighted = dc.date.??? swordv2-server.simpledc.dateSubmitted = dc.date.submitted swordv2-server.simpledc.description = dc.description #swordv2-server.simpledc.educationLevel = dc.??? swordv2-server.simpledc.extent = dc.format.extent swordv2-server.simpledc.format = dc.format #swordv2-server.simpledc.hasFormat = dc.???? #swordv2-server.simpledc.hasPart = dc.??? #swordv2-server.simpledc.hasVersion = dc.??? swordv2-server.simpledc.identifier = dc.identifier #swordv2-server.simpledc.instructionalMethod = dc.??? #swordv2-server.simpledc.isFormatOf = dc.??? swordv2-server.simpledc.isPartOf = dc.relation.ispartof swordv2-server.simpledc.isReferencedBy = dc.relation.isreferencedby swordv2-server.simpledc.isReplacedBy = dc.relation.isreplacedby swordv2-server.simpledc.isRequiredBy = dc.relation.isrequiredby swordv2-server.simpledc.issued = dc.date.issued #swordv2-server.simpledc.isVersionOf = dc.???? swordv2-server.simpledc.language = dc.language #swordv2-server.simpledc.license = dc.???? #swordv2-server.simpledc.mediator = dc.???? swordv2-server.simpledc.medium = dc.format.medium swordv2-server.simpledc.modified = dc.date.modified swordv2-server.simpledc.provenance = dc.description.provenance swordv2-server.simpledc.publisher = dc.publisher swordv2-server.simpledc.references = dc.relation.references swordv2-server.simpledc.relation = dc.relation swordv2-server.simpledc.replaces = dc.relation.replaces swordv2-server.simpledc.requires = dc.relation.requires swordv2-server.simpledc.rights = dc.rights swordv2-server.simpledc.rightsHolder = dc.rights swordv2-server.simpledc.source = dc.source swordv2-server.simpledc.spatial = dc.coverage.spatial swordv2-server.simpledc.subject = dc.subject #swordv2-server.simpledc.tableOfContents = dc.???? swordv2-server.simpledc.temporal = dc.coverage.temporal swordv2-server.simpledc.title = dc.title swordv2-server.simpledc.type = dc.type #swordv2-server.simpledc.valid = dc.???? swordv2-server.atom.author = dc.contributor.author swordv2-server.atom.published = dc.date.created swordv2-server.atom.rights = dc.rights swordv2-server.atom.summary = dc.description.abstract swordv2-server.atom.title = dc.title swordv2-server.atom.updated = dc.date.created # Used by SimpleDCEntryIngester: # # Which metadata fields can be replaced during a PUT to the Item of an # Atom Entry document? Fields listed here are the ones which will be # removed when a new PUT comes through (irrespective of whether there # is a new incoming value to replace them) # swordv2-server.metadata.replaceable = dc.description.abstract, \ dc.rights, \ dc.title.alternative, \ dc.identifier.citation, \ dc.contributor, \ dc.coverage, \ dc.contributor.author, \ dc.date, \ dc.description, \ dc.format.extent, \ dc.format, dc.identifier, \ dc.relation.ispartof, \ dc.relation.isreferencedby, \ dc.relation.isreplacedby, \ dc.relation.isrequiredby, \ dc.language, \ dc.format.medium, \ dc.date.modified, \ dc.publisher, \ dc.relation.references, \ dc.relation, \ dc.relation.replaces, \ dc.relation.requires, \ dc.source, \ dc.coverage.spatial, \ dc.subject, \ dc.coverage.temporal, \ dc.title, \ dc.type # order of precedence for importing multipart content. if entry-first then # metadata in the package will override metadata in the entry, otherwise # the entry metadata will be applied before the package metadata, so the # package may override the metadata supplied in the entry - it depends on # the specific behaviour of the package ingester selected # # Defaults to false swordv2-server.multipart.entry-first = false # if the workflow gets started, should there be a notification # email sent # swordv2-server.workflow.notify = true # when content is replaced, should the old version of the content be kept? This # creates a copy of the ORIGINAL bundle with the name V_YYYY-MM-DD.X where YYYY-MM-DD # is the date the copy was created, and X is an integer from 0 upwards. # swordv2-server.versions.keep = true swordv2-server.state.workspace.uri = http://dspace.org/state/inprogress swordv2-server.state.workspace.description = The item is in the user workspace swordv2-server.state.workflow.uri = http://dspace.org/state/inreview swordv2-server.state.workflow.description = The item is undergoing review prior to acceptance to the archive swordv2-server.state.archive.uri = http://dspace.org/state/archived swordv2-server.state.archive.description = The item has been archived swordv2-server.state.withdrawn.uri = http://dspace.org/state/withdrawn swordv2-server.state.withdrawn.description = The item has been withdrawn from the archive and is no longer available # URL template for items in the workspace (items in the archive will use # the handle) # # JSPUI # swordv2-server.workspace.url-template = ${dspace.baseUrl}/view-workspaceitem?submit_view=Yes&workspace_id=#wsid# # XMLUI swordv2-server.workspace.url-template = ${dspace.baseUrl}/submit?workspaceID=#wsid#