dor-services 2.2.4 → 4.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/
|