dor-services 2.2.4 → 4.4.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/bin/dor-indexer +108 -0
- data/bin/dor-indexerd +73 -0
- data/bin/nokogiri +19 -0
- data/bin/rake +19 -0
- data/bin/ruby_noexec_wrapper +14 -0
- data/bin/solrizer +19 -0
- data/bin/solrizerd +19 -0
- data/config/certs/README +1 -0
- data/config/config_defaults.yml +62 -0
- data/config/dev_console_env.rb.example +67 -0
- data/config/predicate_mappings.yml +55 -0
- data/lib/dor-services.rb +152 -19
- data/lib/dor/config.rb +133 -35
- data/lib/dor/datastreams/administrative_metadata_ds.rb +84 -0
- data/lib/dor/datastreams/content_metadata_ds.rb +337 -0
- data/lib/dor/datastreams/datastream_spec_solrizer.rb +18 -0
- data/lib/dor/datastreams/default_object_rights_ds.rb +52 -0
- data/lib/dor/datastreams/desc_metadata_ds.rb +39 -0
- data/lib/{datastreams → dor/datastreams}/embargo_metadata_ds.rb +25 -20
- data/lib/{datastreams → dor/datastreams}/events_ds.rb +14 -9
- data/lib/dor/datastreams/identity.xsl +8 -0
- data/lib/dor/datastreams/identity_metadata_ds.rb +112 -0
- data/lib/dor/datastreams/role_metadata_ds.rb +51 -0
- data/lib/dor/datastreams/simple_dublin_core_ds.rb +45 -0
- data/lib/dor/datastreams/version_metadata_ds.rb +214 -0
- data/lib/dor/datastreams/workflow_definition_ds.rb +113 -0
- data/lib/dor/datastreams/workflow_ds.rb +103 -0
- data/lib/dor/exceptions.rb +0 -1
- data/lib/dor/migrations/content_metadata_ds/change_content_type.rb +7 -0
- data/lib/dor/migrations/identifiable/assert_adminPolicy.rb +9 -0
- data/lib/dor/migrations/identifiable/fix_model_assertions.rb +13 -0
- data/lib/dor/migrations/identifiable/record_remediation.rb +18 -0
- data/lib/dor/migrations/identifiable/uriify_augmented_contentlocation_refs.rb +18 -0
- data/lib/dor/migrations/identifiable/uriify_contentlocation_refs.rb +18 -0
- data/lib/dor/migrations/processable/unify_workflows.rb +17 -0
- data/lib/dor/migrations/versionable/add_missing_version_md.rb +9 -0
- data/lib/dor/models/admin_policy_object.rb +16 -0
- data/lib/dor/models/assembleable.rb +14 -0
- data/lib/dor/models/collection.rb +14 -0
- data/lib/dor/models/contentable.rb +227 -0
- data/lib/dor/models/describable.rb +194 -0
- data/lib/dor/models/discoverable.rb +66 -0
- data/lib/dor/models/editable.rb +267 -0
- data/lib/dor/models/embargoable.rb +97 -0
- data/lib/dor/models/eventable.rb +12 -0
- data/lib/dor/models/governable.rb +162 -0
- data/lib/dor/models/identifiable.rb +211 -0
- data/lib/dor/models/item.rb +44 -0
- data/lib/dor/models/itemizable.rb +66 -0
- data/lib/dor/{mods2dc.xslt → models/mods2dc.xslt} +39 -12
- data/lib/dor/models/preservable.rb +50 -0
- data/lib/dor/models/processable.rb +229 -0
- data/lib/dor/models/publishable.rb +74 -0
- data/lib/dor/models/set.rb +12 -0
- data/lib/dor/models/shelvable.rb +27 -0
- data/lib/dor/models/upgradable.rb +74 -0
- data/lib/dor/models/versionable.rb +94 -0
- data/lib/dor/models/workflow_object.rb +54 -0
- data/lib/dor/services/cleanup_service.rb +47 -0
- data/lib/dor/services/digital_stacks_service.rb +55 -0
- data/lib/dor/services/merge_service.rb +96 -0
- data/lib/dor/{metadata_handlers → services/metadata_handlers}/catalog_handler.rb +0 -2
- data/lib/dor/{metadata_handlers → services/metadata_handlers}/mdtoolkit_handler.rb +0 -2
- data/lib/dor/{metadata_service.rb → services/metadata_service.rb} +1 -3
- data/lib/dor/services/registration_service.rb +181 -0
- data/lib/dor/services/sdr_ingest_service.rb +181 -0
- data/lib/dor/services/search_service.rb +131 -0
- data/lib/dor/services/suri_service.rb +32 -0
- data/lib/dor/services/technical_metadata_service.rb +226 -0
- data/lib/dor/{tei2dc.xslt → services/tei2dc.xslt} +0 -0
- data/lib/dor/utils/ng_tidy.rb +37 -0
- data/lib/dor/utils/predicate_patch.rb +23 -0
- data/lib/dor/utils/solr_doc_helper.rb +9 -0
- data/lib/dor/utils/utc_date_field_mapper.rb +7 -0
- data/lib/dor/version.rb +3 -0
- data/lib/dor/workflow/document.rb +131 -0
- data/lib/dor/workflow/graph.rb +166 -0
- data/lib/dor/workflow/process.rb +99 -0
- data/lib/gsearch/demoFoxmlToSolr.xslt +340 -122
- data/lib/tasks/dor.rake +39 -0
- metadata +494 -384
- data/lib/datastreams/content_metadata_ds.rb +0 -12
- data/lib/datastreams/identity_metadata_ds.rb +0 -28
- data/lib/datastreams/ng_tidy.rb +0 -19
- data/lib/datastreams/simple_dublin_core_ds.rb +0 -23
- data/lib/datastreams/workflow_definition_ds.rb +0 -105
- data/lib/datastreams/workflow_ds.rb +0 -16
- data/lib/dor/admin_policy_object.rb +0 -11
- data/lib/dor/base.rb +0 -81
- data/lib/dor/cleanup_service.rb +0 -32
- data/lib/dor/digital_stacks_service.rb +0 -82
- data/lib/dor/druid_utils.rb +0 -41
- data/lib/dor/embargo.rb +0 -41
- data/lib/dor/item.rb +0 -141
- data/lib/dor/provenance_metadata_service.rb +0 -65
- data/lib/dor/registration_service.rb +0 -87
- data/lib/dor/rsolr.rb +0 -27
- data/lib/dor/sdr_ingest_service.rb +0 -117
- data/lib/dor/search_service.rb +0 -86
- data/lib/dor/suri_service.rb +0 -37
- data/lib/dor/workflow_object.rb +0 -13
- data/lib/dor/workflow_service.rb +0 -111
- data/lib/xml_models/foxml.rb +0 -261
- data/lib/xml_models/identity_metadata/dublin_core.rb +0 -119
- data/lib/xml_models/identity_metadata/identity_metadata.rb +0 -288
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YWJmMDE5MTIzMTg4MWU2NmZkNjYwNDYxZTMxMTE5YmFiZTIyYmVjOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZGI0NGRlNzU4NWY0Zjg3YmUwNzRhMzhlMzk1YjVlN2MzMmM1MzJiMg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGI2NjgyNTc3ZmI2NWFmZjFmMmM2ZDRmMzhlM2ZlMWIwOGI4MTFkNGJhNTZj
|
10
|
+
YjdhMGFkZTAxMDQ5MTMxY2E1ODg2NzFjNmIyOGZiOTQ3MDI0NzQ1NmU0MjA4
|
11
|
+
OWQ4MTQwNWJhMDczZTlmOWVmMmVkNTIxMjJkMzIxNzA4NDI0ZmY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NThiODVlMDIzODJjZTg5ZTc1MTBkNTUzMmFhMDdhM2Q0NDFlMDNjMTMzZWUw
|
14
|
+
YzdhMjcxZDE0N2Q1ZmI3NjhmMjdlZDdjODA1YjVjMDNmNTZlN2YyMjFkY2M3
|
15
|
+
OGE5NWJiYmJmZTgzMzQzY2NkY2E2MmFjMTk2OGUzNWZjYmJhMjY=
|
data/bin/dor-indexer
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'optparse'
|
5
|
+
require 'stomp'
|
6
|
+
require 'timeout'
|
7
|
+
require 'dor-services'
|
8
|
+
|
9
|
+
options = { :log_level => Logger::WARN }
|
10
|
+
|
11
|
+
optparse = OptionParser.new do|opts|
|
12
|
+
opts.banner = "Usage: #{File.basename(__FILE__)} [options]"
|
13
|
+
|
14
|
+
options[:dor_config] = nil
|
15
|
+
opts.on( '--dor-config PATH', 'Load the dor-services configuration file at this path' ) do |path|
|
16
|
+
puts "Configuring dor-services..."
|
17
|
+
options[:dor_config] = path
|
18
|
+
require options[:dor_config]
|
19
|
+
end
|
20
|
+
|
21
|
+
options[:destination] = '/topic/fedora.apim.update'
|
22
|
+
opts.on('-d','--destination TOPIC', 'Topic to listen to') do |destination|
|
23
|
+
options[:destination] = destination
|
24
|
+
end
|
25
|
+
|
26
|
+
options[:client_id] = "fedora_stomper"
|
27
|
+
opts.on('-c', '--client-id ID', 'Stomp client ID') do |client_id|
|
28
|
+
Dor::Config.stomp.client_id = client_id
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on('-v', 'Verbose') do
|
32
|
+
options[:log_level] -= 1 if options[:log_level] > 0
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.on('-h', '--help', 'Display this screen') do
|
36
|
+
puts opts
|
37
|
+
exit
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
optparse.parse!
|
42
|
+
|
43
|
+
begin; require 'rubygems'; rescue; end
|
44
|
+
|
45
|
+
unless options[:dor_config]
|
46
|
+
$stderr.puts "The --dor-config PATH option is mandatory. Please provide the path to a valid dor-services configuration file."
|
47
|
+
exit 1
|
48
|
+
end
|
49
|
+
|
50
|
+
puts "loading listener"
|
51
|
+
|
52
|
+
begin
|
53
|
+
@clientid = options[:client_id]
|
54
|
+
@destination = options[:destination]
|
55
|
+
|
56
|
+
|
57
|
+
@conn = Dor::Config.stomp.connection
|
58
|
+
$stderr.print Time.now.to_s + " Getting output from #{@destination}\n"
|
59
|
+
|
60
|
+
@conn.subscribe(@destination, {"activemq.subscriptionName" => @clientid, :ack =>"client" })
|
61
|
+
while true
|
62
|
+
|
63
|
+
begin
|
64
|
+
Timeout::timeout(300) do
|
65
|
+
@msg = @conn.receive
|
66
|
+
end
|
67
|
+
if @msg.nil?
|
68
|
+
$stderr.print 'nil message\n'
|
69
|
+
else
|
70
|
+
pid = @msg.headers["pid"]
|
71
|
+
method = @msg.headers["methodName"]
|
72
|
+
|
73
|
+
if ["addDatastream", "addRelationship","ingest","modifyDatastreamByValue","modifyDatastreamByReference","modifyObject","purgeDatastream","purgeRelationship","reindex"].include? method
|
74
|
+
begin
|
75
|
+
obj = Dor.load_instance pid
|
76
|
+
Dor::SearchService.solr.add(obj.to_solr, :add_attributes => {:commitWithin => 10}) unless obj.nil?
|
77
|
+
rescue
|
78
|
+
end
|
79
|
+
elsif method == "purgeObject"
|
80
|
+
Dor::SearchService.solr.delete_by_id(pid)
|
81
|
+
else
|
82
|
+
$stderr.print Time.now.to_s + " Unknown Method: #{method} for PID #{pid}"
|
83
|
+
end
|
84
|
+
$stderr.print Time.now.to_s + " updated solr index for #{pid}\n"
|
85
|
+
@conn.ack @msg.headers["message-id"]
|
86
|
+
end
|
87
|
+
rescue Timeout::Error
|
88
|
+
begin
|
89
|
+
$stderr.print Time.now.to_s +" Sending heartbeat\n"
|
90
|
+
@conn.begin('heartbeat')
|
91
|
+
@conn.commit('heartbeat')
|
92
|
+
rescue Exception => e
|
93
|
+
body = "Unable to send heartbeat to broker\n"
|
94
|
+
body << "\n\nExeption:\n" << he.inspect << "\n" << he.backtrace.join("\n")
|
95
|
+
$stderr.print(Time.now.to_s + " Unable to send heartbeat")
|
96
|
+
$stderr.print(body)
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
rescue Exception => e
|
101
|
+
$stderr.print Time.now.to_s + " failed to update solr index for #{pid}: #<#{e.class.name}: #{e.message}>"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
@conn.join
|
105
|
+
rescue Exception => e
|
106
|
+
p e
|
107
|
+
end
|
108
|
+
|
data/bin/dor-indexerd
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'daemons'
|
5
|
+
require 'stomp'
|
6
|
+
|
7
|
+
banner=<<-EOC
|
8
|
+
Usage: #{File.basename(__FILE__)} command --dor-config PATH [options]
|
9
|
+
PATH must point to a valid dor-services configuration file
|
10
|
+
Commands:
|
11
|
+
start start an instance of the application
|
12
|
+
stop stop all instances of the application
|
13
|
+
restart stop all instances and restart them afterwards
|
14
|
+
status show status (PID) of application instances
|
15
|
+
Options:
|
16
|
+
--dor-config PATH Load the dor-services configuration file at this path
|
17
|
+
-d, --destination TOPIC Topic to listen to (default: /topic/fedora.apim.update)
|
18
|
+
-c, --client-id Stomp client ID (default: fedora_stomper)
|
19
|
+
-h, --help Display this screen
|
20
|
+
EOC
|
21
|
+
|
22
|
+
|
23
|
+
# check for a valid command
|
24
|
+
unless ['start','stop','restart','status'].include? ARGV[0]
|
25
|
+
puts banner
|
26
|
+
exit 7
|
27
|
+
end
|
28
|
+
|
29
|
+
if ARGV.include?('-h') || ARGV.include?('--help')
|
30
|
+
puts banner
|
31
|
+
exit 0
|
32
|
+
end
|
33
|
+
|
34
|
+
# Make sure --dor-config was set for the start and restart commands
|
35
|
+
if ARGV[0] == 'start' || ARGV[0] == 'restart'
|
36
|
+
unless ARGV[1] == '--dor-config'
|
37
|
+
puts "ERROR: You must --dor-config to specify the path to a valid dor-services gem configuration file"
|
38
|
+
exit 8
|
39
|
+
end
|
40
|
+
end
|
41
|
+
#4th arg should be --log_dir and 5th is the path.
|
42
|
+
log_dir=nil
|
43
|
+
if ARGV[3]=='--log_dir'
|
44
|
+
log_dir=ARGV[4]
|
45
|
+
else
|
46
|
+
puts "Log dir not specified"
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
if log_dir.empty?
|
51
|
+
File.join(Dir.pwd,'log')
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
options = {
|
56
|
+
:multiple=>ARGV.any? { |arg| arg =~ %r{^/queue/}},
|
57
|
+
:dir_mode=>:normal,
|
58
|
+
:dir=>'/tmp',
|
59
|
+
:log_dir=> log_dir,
|
60
|
+
:log_output=>true,
|
61
|
+
:backtrace=>true
|
62
|
+
}
|
63
|
+
argv_array = []
|
64
|
+
argv_array << ARGV[0]
|
65
|
+
argv_array << '--'
|
66
|
+
ARGV[1..-1].each {|ele| argv_array << ele }
|
67
|
+
options[:ARGV] = argv_array
|
68
|
+
|
69
|
+
version = '>=0'
|
70
|
+
#app = Gem.bin_path('dor-services','dor-indexer',version)
|
71
|
+
app = File.expand_path('../dor-indexer',__FILE__)
|
72
|
+
Daemons.run(app,options)
|
73
|
+
|
data/bin/nokogiri
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby_noexec_wrapper
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'nokogiri' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
|
11
|
+
version = ">= 0"
|
12
|
+
|
13
|
+
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
|
14
|
+
version = $1
|
15
|
+
ARGV.shift
|
16
|
+
end
|
17
|
+
|
18
|
+
gem 'nokogiri', version
|
19
|
+
load Gem.bin_path('nokogiri', 'nokogiri', version)
|
data/bin/rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby_noexec_wrapper
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'rake' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
|
11
|
+
version = ">= 0"
|
12
|
+
|
13
|
+
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
|
14
|
+
version = $1
|
15
|
+
ARGV.shift
|
16
|
+
end
|
17
|
+
|
18
|
+
gem 'rake', version
|
19
|
+
load Gem.bin_path('rake', 'rake', version)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
original_file=ARGV[0]
|
4
|
+
ARGV.shift
|
5
|
+
$PROGRAM_NAME=original_file
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
begin
|
9
|
+
require 'rubygems-bundler/noexec'
|
10
|
+
rescue LoadError
|
11
|
+
warn "unable to load rubygems-bundler/noexec" if ENV.key?('NOEXEC_DEBUG')
|
12
|
+
end
|
13
|
+
|
14
|
+
eval File.read(original_file), binding, original_file
|
data/bin/solrizer
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby_noexec_wrapper
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'solrizer' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
|
11
|
+
version = ">= 0"
|
12
|
+
|
13
|
+
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
|
14
|
+
version = $1
|
15
|
+
ARGV.shift
|
16
|
+
end
|
17
|
+
|
18
|
+
gem 'solrizer', version
|
19
|
+
load Gem.bin_path('solrizer', 'solrizer', version)
|
data/bin/solrizerd
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby_noexec_wrapper
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'solrizer' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
|
11
|
+
version = ">= 0"
|
12
|
+
|
13
|
+
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
|
14
|
+
version = $1
|
15
|
+
ARGV.shift
|
16
|
+
end
|
17
|
+
|
18
|
+
gem 'solrizer', version
|
19
|
+
load Gem.bin_path('solrizer', 'solrizerd', version)
|
data/config/certs/README
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
If you want to use the console, copy the robots-dor-dev.crt and .key from sul-lyberservices-dev
|
@@ -0,0 +1,62 @@
|
|
1
|
+
---
|
2
|
+
:cleanup:
|
3
|
+
:local_workspace_root: /dor/workspace
|
4
|
+
:local_assembly_root: /dor/assembly
|
5
|
+
:local_export_home: /dor/export
|
6
|
+
:ssl:
|
7
|
+
:cert_file:
|
8
|
+
:key_file:
|
9
|
+
:key_pass: ""
|
10
|
+
:fedora:
|
11
|
+
:url:
|
12
|
+
:safeurl:
|
13
|
+
:stomp:
|
14
|
+
:host:
|
15
|
+
:user: ""
|
16
|
+
:password: ""
|
17
|
+
:port: 61613
|
18
|
+
:client_id: 'dor-services'
|
19
|
+
:solrizer:
|
20
|
+
:url:
|
21
|
+
:opts: {}
|
22
|
+
:gsearch:
|
23
|
+
:rest_url:
|
24
|
+
:url:
|
25
|
+
:metadata:
|
26
|
+
:catalog:
|
27
|
+
:url:
|
28
|
+
:exist:
|
29
|
+
:url:
|
30
|
+
:sdr:
|
31
|
+
:local_workspace_root: /dor/workspace
|
32
|
+
:local_export_home: /dor/export
|
33
|
+
:datastreams:
|
34
|
+
:rightsMetadata: optional
|
35
|
+
:descMetadata: required
|
36
|
+
:sourceMetadata: optional
|
37
|
+
:identityMetadata: required
|
38
|
+
:provenanceMetadata: required
|
39
|
+
:relationshipMetadata: required
|
40
|
+
:technicalMetadata: required
|
41
|
+
:contentMetadata: required
|
42
|
+
:rest_url: ""
|
43
|
+
:stacks:
|
44
|
+
:local_workspace_root: /dor
|
45
|
+
:storage_root: /stacks
|
46
|
+
:document_cache_storage_root:
|
47
|
+
:host:
|
48
|
+
:user:
|
49
|
+
:document_cache_host:
|
50
|
+
:document_cache_user:
|
51
|
+
:local_stacks_root: /stacks
|
52
|
+
:local_document_cache_root: /purl
|
53
|
+
:suri:
|
54
|
+
:pass:
|
55
|
+
:id_namespace: druid
|
56
|
+
:url:
|
57
|
+
:user:
|
58
|
+
:mint_ids: false
|
59
|
+
:workflow:
|
60
|
+
:url:
|
61
|
+
:dor_services:
|
62
|
+
:url:
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Copied from common-accessioning config/environments
|
2
|
+
|
3
|
+
cert_dir = File.join(File.dirname(__FILE__), ".", "certs")
|
4
|
+
|
5
|
+
Dor::Config.configure do
|
6
|
+
fedora do
|
7
|
+
url 'https://dor.edu/fedora'
|
8
|
+
end
|
9
|
+
|
10
|
+
ssl do
|
11
|
+
cert_file File.join(cert_dir,"robots-dor-dev.crt")
|
12
|
+
key_file File.join(cert_dir,"robots-dor-dev.key")
|
13
|
+
key_pass ''
|
14
|
+
end
|
15
|
+
|
16
|
+
suri do
|
17
|
+
mint_ids true
|
18
|
+
id_namespace 'druid'
|
19
|
+
url 'https://suri-server'
|
20
|
+
user ''
|
21
|
+
pass ''
|
22
|
+
end
|
23
|
+
|
24
|
+
metadata do
|
25
|
+
exist.url 'http://server/exist/rest/'
|
26
|
+
catalog.url 'http://lyberservices-prod.stanford.edu/catalog/mods'
|
27
|
+
end
|
28
|
+
|
29
|
+
stacks do
|
30
|
+
document_cache_storage_root '/home/lyberadmin/document_cache'
|
31
|
+
document_cache_host 'purl-dev.stanford.edu'
|
32
|
+
document_cache_user ''
|
33
|
+
local_workspace_root '/dor/workspace'
|
34
|
+
storage_root '/stacks'
|
35
|
+
host 'host'
|
36
|
+
user ''
|
37
|
+
local_stacks_root '/stacks'
|
38
|
+
local_document_cache_root '/purl'
|
39
|
+
end
|
40
|
+
|
41
|
+
gsearch.url 'https://host/solr/gsearch'
|
42
|
+
solrizer.url 'https://host/solr'
|
43
|
+
workflow.url 'https://host/workflow/'
|
44
|
+
dor_services.url 'https://host/dor/v1'
|
45
|
+
|
46
|
+
cleanup do
|
47
|
+
local_workspace_root '/dor/workspace'
|
48
|
+
local_export_home '/dor/export'
|
49
|
+
end
|
50
|
+
|
51
|
+
sdr do
|
52
|
+
local_workspace_root '/dor/workspace'
|
53
|
+
local_export_home '/dor/export'
|
54
|
+
datastreams do
|
55
|
+
contentMetadata 'required'
|
56
|
+
descMetadata 'required'
|
57
|
+
identityMetadata 'required'
|
58
|
+
provenanceMetadata 'required'
|
59
|
+
relationshipMetadata 'required'
|
60
|
+
rightsMetadata 'optional'
|
61
|
+
sourceMetadata 'optional'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
accessioning_robot_sleep_time 30
|
66
|
+
|
67
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# The default namespace maps to the default namespace for generating rels_ext from solr
|
2
|
+
:default_namespace: info:fedora/fedora-system:def/relations-external#
|
3
|
+
|
4
|
+
# namespace mappings---
|
5
|
+
# you can add specific mappings for your institution by providing the following:
|
6
|
+
# namespace_uri:
|
7
|
+
# :relationship_symbol: relationship_identifier
|
8
|
+
#
|
9
|
+
# For example, if you have the following element in your rels_ext:
|
10
|
+
#
|
11
|
+
# <oai:itemID>oai:example.edu:changeme:500</oai:itemID>
|
12
|
+
#
|
13
|
+
# With the last two lines of this file uncommented, the relationships hash of your object will include:
|
14
|
+
# :oai_item_id => ["info:fedora/oai:example.edu:changeme:500"]
|
15
|
+
#
|
16
|
+
:predicate_mapping:
|
17
|
+
info:fedora/fedora-system:def/relations-external#:
|
18
|
+
:conforms_to: conformsTo
|
19
|
+
:has_annotation: hasAnnotation
|
20
|
+
:has_collection_member: hasCollectionMember
|
21
|
+
:has_constituent: hasConstituent
|
22
|
+
:has_dependent: hasDependent
|
23
|
+
:has_derivation: hasDerivation
|
24
|
+
:has_description: hasDescription
|
25
|
+
:has_equivalent: hasEquivalent
|
26
|
+
:has_metadata: hasMetadata
|
27
|
+
:has_member: hasMember
|
28
|
+
:has_model: hasModel
|
29
|
+
:has_part: hasPart
|
30
|
+
:has_subset: hasSubset
|
31
|
+
:is_annotation_of: isAnnotationOf
|
32
|
+
:is_constituent_of: isConstituentOf
|
33
|
+
:is_dependent_of: isDependentOf
|
34
|
+
:is_derivation_of: isDerivationOf
|
35
|
+
:is_description_of: isDescriptionOf
|
36
|
+
:is_member_of: isMemberOf
|
37
|
+
:is_member_of_collection: isMemberOfCollection
|
38
|
+
:is_metadata_for: isMetadataFor
|
39
|
+
:is_part_of: isPartOf
|
40
|
+
:is_subset_of: isSubsetOf
|
41
|
+
:is_topic_of: isTopicOf
|
42
|
+
info:fedora/fedora-system:def/model#:
|
43
|
+
:has_model: hasModel
|
44
|
+
:has_service: hasService
|
45
|
+
http://www.openarchives.org/OAI/2.0/:
|
46
|
+
:oai_item_id: itemID
|
47
|
+
http://projecthydra.org/ns/relations#:
|
48
|
+
:is_governed_by: isGovernedBy
|
49
|
+
:references_agreement: referencesAgreement
|
50
|
+
:referencesAgreement: referencesAgreement
|
51
|
+
:predicate_namespaces:
|
52
|
+
:hydra: http://projecthydra.org/ns/relations#
|
53
|
+
:fedora: info:fedora/fedora-system:def/relations-external#
|
54
|
+
:fedora-model: info:fedora/fedora-system:def/model#
|
55
|
+
:oai: http://www.openarchives.org/OAI/2.0/
|