hyrax 4.0.0.beta2 → 4.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +66 -54
  3. data/.dassie/Gemfile +1 -1
  4. data/.dassie/app/controllers/catalog_controller.rb +1 -1
  5. data/.dassie/config/initializers/hyrax.rb +4 -0
  6. data/.github/SUPPORT.md +2 -3
  7. data/.github/workflows/main.yml +4 -4
  8. data/.github/workflows/release.yml +10 -4
  9. data/.koppie/Gemfile +1 -2
  10. data/.koppie/app/controllers/catalog_controller.rb +1 -1
  11. data/.koppie/config/authorities/licenses.yml +7 -7
  12. data/.koppie/config/initializers/file_services.rb +4 -0
  13. data/.koppie/db/schema.rb +2 -2
  14. data/.koppie/yarn.lock +1 -1
  15. data/CONTAINERS.md +2 -2
  16. data/CONTRIBUTING.md +2 -2
  17. data/Dockerfile +21 -9
  18. data/README.md +24 -97
  19. data/app/assets/stylesheets/hyrax/_catalog.scss +4 -0
  20. data/app/assets/stylesheets/hyrax/_forms.scss +4 -0
  21. data/app/controllers/concerns/hyrax/controller.rb +1 -23
  22. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +1 -0
  23. data/app/controllers/hyrax/dashboard/collections_controller.rb +1 -1
  24. data/app/controllers/hyrax/downloads_controller.rb +16 -1
  25. data/app/controllers/hyrax/file_sets_controller.rb +9 -2
  26. data/app/controllers/hyrax/my/works_controller.rb +3 -1
  27. data/app/controllers/hyrax/transfers_controller.rb +4 -1
  28. data/app/controllers/hyrax/workflow_actions_controller.rb +3 -2
  29. data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
  30. data/app/forms/hyrax/forms/file_set_form.rb +8 -35
  31. data/app/forms/hyrax/forms/pcdm_object_form.rb +46 -0
  32. data/app/forms/hyrax/forms/resource_form.rb +9 -34
  33. data/app/helpers/hyrax/hyrax_helper_behavior.rb +1 -1
  34. data/app/indexers/hyrax/valkyrie_file_set_indexer.rb +1 -1
  35. data/app/jobs/characterize_job.rb +3 -2
  36. data/app/jobs/valkyrie_create_derivatives_job.rb +0 -2
  37. data/app/models/concerns/hyrax/ability.rb +1 -1
  38. data/app/models/concerns/hyrax/collection_behavior.rb +0 -47
  39. data/app/models/concerns/hyrax/solr_document/metadata.rb +1 -0
  40. data/app/models/concerns/hyrax/suppressible.rb +0 -8
  41. data/app/models/file_download_stat.rb +4 -4
  42. data/app/models/hyrax/collection_type.rb +0 -16
  43. data/app/models/hyrax/file_metadata.rb +5 -12
  44. data/app/models/hyrax/file_set.rb +1 -9
  45. data/app/models/hyrax/statistic.rb +4 -4
  46. data/app/models/sipity.rb +27 -6
  47. data/app/presenters/hyrax/collection_presenter.rb +1 -1
  48. data/app/presenters/hyrax/iiif_manifest_presenter.rb +14 -4
  49. data/app/presenters/hyrax/work_show_presenter.rb +1 -1
  50. data/app/presenters/hyrax/workflow_presenter.rb +1 -1
  51. data/app/search_builders/hyrax/collection_search_builder.rb +1 -0
  52. data/app/search_builders/hyrax/filter_suppressed_with_roles.rb +1 -1
  53. data/app/services/hyrax/admin_set_service.rb +1 -1
  54. data/app/services/hyrax/collections/nested_collection_query_service.rb +2 -2
  55. data/app/services/hyrax/database_migrator.rb +1 -1
  56. data/app/services/hyrax/edit_permissions_service.rb +21 -3
  57. data/app/services/hyrax/restriction_service.rb +1 -1
  58. data/app/services/hyrax/solr_query_service.rb +10 -2
  59. data/app/services/hyrax/solr_service.rb +22 -16
  60. data/app/services/hyrax/thumbnail_path_service.rb +10 -2
  61. data/app/services/hyrax/valkyrie_persist_derivatives.rb +26 -15
  62. data/app/services/hyrax/valkyrie_upload.rb +23 -30
  63. data/app/services/hyrax/visibility_propagator.rb +5 -5
  64. data/app/services/hyrax/workflow/status_list_service.rb +1 -1
  65. data/app/views/hyrax/base/_attribute_rows.html.erb +2 -0
  66. data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +1 -1
  67. data/app/views/hyrax/file_sets/_permission.html.erb +1 -1
  68. data/app/views/hyrax/file_sets/edit.html.erb +1 -1
  69. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +1 -1
  70. data/app/views/hyrax/file_sets/media_display/_default.html.erb +1 -1
  71. data/app/views/hyrax/file_sets/media_display/_image.html.erb +1 -1
  72. data/app/views/hyrax/file_sets/media_display/_office_document.html.erb +1 -1
  73. data/app/views/hyrax/file_sets/media_display/_pdf.html.erb +1 -1
  74. data/app/views/hyrax/file_sets/media_display/_video.html.erb +1 -1
  75. data/app/views/hyrax/uploads/_js_templates.html.erb +8 -8
  76. data/app/views/hyrax/uploads/_js_templates_branding.html.erb +2 -2
  77. data/app/views/hyrax/users/_vitals.html.erb +4 -4
  78. data/chart/hyrax/Chart.yaml +7 -7
  79. data/chart/hyrax/README.md +5 -0
  80. data/chart/hyrax/templates/_helpers.tpl +14 -6
  81. data/chart/hyrax/templates/cron-embargo.yaml +1 -1
  82. data/chart/hyrax/templates/cron-lease.yaml +1 -1
  83. data/chart/hyrax/templates/deployment-worker.yaml +2 -2
  84. data/chart/hyrax/templates/extra-list.yaml +8 -0
  85. data/chart/hyrax/templates/secrets.yaml +3 -3
  86. data/chart/hyrax/values.yaml +22 -15
  87. data/config/locales/hyrax.de.yml +7 -7
  88. data/config/locales/hyrax.es.yml +7 -7
  89. data/config/locales/hyrax.fr.yml +8 -8
  90. data/config/locales/hyrax.it.yml +7 -7
  91. data/config/locales/hyrax.pt-BR.yml +7 -7
  92. data/config/locales/hyrax.zh.yml +8 -8
  93. data/config/metadata/file_set_metadata.yaml +130 -0
  94. data/documentation/MAINTENANCE.md +77 -0
  95. data/documentation/developing-your-hyrax-based-app.md +2 -2
  96. data/documentation/legacyREADME.md +2 -2
  97. data/hyrax.gemspec +4 -4
  98. data/lib/generators/hyrax/templates/catalog_controller.rb +1 -1
  99. data/lib/hyrax/configuration.rb +5 -0
  100. data/lib/hyrax/engine.rb +0 -1
  101. data/lib/hyrax/transactions/container.rb +0 -2
  102. data/lib/hyrax/transactions/steps/save_collection_banner.rb +1 -1
  103. data/lib/hyrax/transactions/steps/save_collection_logo.rb +1 -1
  104. data/lib/hyrax/version.rb +1 -1
  105. data/lib/valkyrie/indexing/solr/indexing_adapter.rb +1 -1
  106. data/lib/wings/active_fedora_converter/file_metadata_node.rb +1 -1
  107. data/samvera-fall-TM3.svg +376 -0
  108. data/template.rb +1 -1
  109. metadata +36 -45
  110. data/app/conversions/power_converters/polymorphic_type.rb +0 -9
  111. data/app/conversions/power_converters/sipity_action.rb +0 -11
  112. data/app/conversions/power_converters/sipity_action_name.rb +0 -10
  113. data/app/conversions/power_converters/sipity_agent.rb +0 -9
  114. data/app/conversions/power_converters/sipity_entity.rb +0 -14
  115. data/app/conversions/power_converters/sipity_role.rb +0 -10
  116. data/app/conversions/power_converters/sipity_workflow_id.rb +0 -17
  117. data/app/conversions/power_converters/sipity_workflow_state.rb +0 -13
  118. data/app/conversions/power_converters.rb +0 -7
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hyrax::ValkyrieUpload
3
+ class Hyrax::ValkyrieUpload
4
4
  # @param [IO] io
5
5
  # @param [String] filename
6
6
  # @param [Hyrax::FileSet] file_set
7
+ # @param [Valkyrie::StorageAdapter] storage_adapter
7
8
  # @param [RDF::URI] use
8
9
  # @param [User] user
9
10
  #
@@ -19,31 +20,33 @@ module Hyrax::ValkyrieUpload
19
20
  use: Hyrax::FileMetadata::Use::ORIGINAL_FILE,
20
21
  user: nil
21
22
  )
23
+ new(storage_adapter: storage_adapter)
24
+ .upload(filename: filename, file_set: file_set, io: io, use: use, user: user)
25
+ end
22
26
 
23
- streamfile = storage_adapter.upload(
24
- file: io,
25
- original_filename: filename,
26
- resource: file_set,
27
- use: use
28
- )
29
- io.close
27
+ ##
28
+ # @!attribute [r] storage_adapter
29
+ # @return [Valkyrie::StorageAdapter] storage_adapter
30
+ attr_reader :storage_adapter
31
+ ##
32
+ # @param [Valkyrie::StorageAdapter] storage_adapter
33
+ def initialize(storage_adapter: Hyrax.storage_adapter)
34
+ @storage_adapter = storage_adapter
35
+ end
30
36
 
31
- file_metadata = find_or_create_metadata(id: streamfile.id, file: streamfile)
37
+ def upload(filename:, file_set:, io:, use: Hyrax::FileMetadata::Use::ORIGINAL_FILE, user: nil)
38
+ streamfile = storage_adapter.upload(file: io, original_filename: filename, resource: file_set)
39
+ file_metadata = Hyrax::FileMetadata(streamfile)
32
40
  file_metadata.file_set_id = file_set.id
41
+ file_metadata.type += [use]
33
42
 
34
- case use
35
- when Hyrax::FileMetadata::Use::ORIGINAL_FILE
43
+ if use == Hyrax::FileMetadata::Use::ORIGINAL_FILE
36
44
  # Set file set label.
37
45
  reset_title = file_set.title.first == file_set.label
38
46
  # set title to label if that's how it was before this characterization
39
47
  file_set.title = file_metadata.original_filename if reset_title
40
48
  # always set the label to the original_name
41
49
  file_set.label = file_metadata.original_filename
42
- when Hyrax::FileMetadata::Use::THUMBNAIL
43
- # TODO: the parent work's thumbnail_id remains incorrect (it's set to the
44
- # FileSet ID, rather than the ID of this thumbnail FileMetadata; but
45
- # trying to update the parent attributes here doesn't seem to stick
46
- file_set.thumbnail_id = file_metadata.id
47
50
  end
48
51
 
49
52
  saved_metadata = Hyrax.persister.save(resource: file_metadata)
@@ -64,7 +67,7 @@ module Hyrax::ValkyrieUpload
64
67
  # @param [::User] user the user performing the add
65
68
  #
66
69
  # @return [Hyrax::FileSet] updated file set
67
- def self.add_file_to_file_set(file_set:, file_metadata:, user:)
70
+ def add_file_to_file_set(file_set:, file_metadata:, user:)
68
71
  file_set.file_ids << file_metadata.id
69
72
  set_file_use_ids(file_set, file_metadata)
70
73
 
@@ -72,12 +75,14 @@ module Hyrax::ValkyrieUpload
72
75
  Hyrax.publisher.publish('object.membership.updated', object: file_set, user: user)
73
76
  end
74
77
 
78
+ private
79
+
75
80
  # @api private
76
81
  # @param [Hyrax::FileSet] file_set the file set to add to
77
82
  # @param [Hyrax::FileMetadata] file_metadata the metadata object representing
78
83
  # the file to add
79
84
  # @return [void]
80
- def self.set_file_use_ids(file_set, file_metadata)
85
+ def set_file_use_ids(file_set, file_metadata)
81
86
  file_metadata.type.each do |type|
82
87
  case type
83
88
  when Hyrax::FileMetadata::Use::ORIGINAL_FILE
@@ -91,16 +96,4 @@ module Hyrax::ValkyrieUpload
91
96
  end
92
97
  end
93
98
  end
94
-
95
- # @api private
96
- # @param [#to_s] id
97
- # @param [Valkyrie::StorageAdapter::StreamFile] file
98
- def self.find_or_create_metadata(id:, file:)
99
- Hyrax.custom_queries.find_file_metadata_by(id: id)
100
- rescue Valkyrie::Persistence::ObjectNotFoundError => e
101
- Hyrax.logger.warn "Failed to find existing metadata for #{id}:"
102
- Hyrax.logger.warn e.message
103
- Hyrax.logger.warn "Creating Hyrax::FileMetadata now"
104
- Hyrax::FileMetadata.for(file: file)
105
- end
106
99
  end
@@ -15,13 +15,13 @@ module Hyrax
15
15
  when Hyrax::Resource # Valkyrie
16
16
  ResourceVisibilityPropagator.new(source: source)
17
17
  else
18
- NullVisibilityPropogator.new(source: source)
18
+ NullVisibilityPropagator.new(source: source)
19
19
  end
20
20
  end
21
21
 
22
22
  ##
23
- # Provides a null/logging implementation of the visibility propogator.
24
- class NullVisibilityPropogator
23
+ # Provides a null/logging implementation of the visibility propagator.
24
+ class NullVisibilityPropagator
25
25
  ##
26
26
  # @!attribute [rw] source
27
27
  # @return [#visibility]
@@ -36,8 +36,8 @@ module Hyrax
36
36
  ##
37
37
  # @return [void]
38
38
  # @raise [RuntimeError] if we're in development mode
39
- def propogate
40
- message = "Tried to propogate visibility to members of #{source} " \
39
+ def propagate
40
+ message = "Tried to propagate visibility to members of #{source} " \
41
41
  "but didn't know what kind of object it is. Model " \
42
42
  "name #{source.try(:model_name)}. Called from #{caller[0]}."
43
43
 
@@ -69,7 +69,7 @@ module Hyrax
69
69
  actionable_roles = roles_for_user
70
70
  Hyrax.logger.debug("Actionable roles for #{@user.user_key} are #{actionable_roles}")
71
71
  return [] if actionable_roles.empty?
72
- WorkRelation.new.search_with_conditions(query(actionable_roles), method: :post)
72
+ WorkRelation.new.search_with_conditions(query(actionable_roles), method: Hyrax.config.solr_default_method)
73
73
  end
74
74
 
75
75
  def query(actionable_roles)
@@ -1,9 +1,11 @@
1
+ <%= presenter.attribute_to_html(:alternative_title, html_dl: true) %>
1
2
  <%= presenter.attribute_to_html(:abstract, html_dl: true) %>
2
3
  <%= presenter.attribute_to_html(:date_modified, label: t('hyrax.base.show.last_modified'), html_dl: true) %>
3
4
  <%= presenter.attribute_to_html(:creator, render_as: :faceted, html_dl: true) %>
4
5
  <%= presenter.attribute_to_html(:contributor, render_as: :faceted, html_dl: true) %>
5
6
  <%= presenter.attribute_to_html(:subject, render_as: :faceted, html_dl: true) %>
6
7
  <%= presenter.attribute_to_html(:publisher, render_as: :faceted, html_dl: true) %>
8
+ <%= presenter.attribute_to_html(:bibliographic_citation, html_dl: true) %>
7
9
  <%= presenter.attribute_to_html(:language, render_as: :faceted, html_dl: true) %>
8
10
  <%= presenter.attribute_to_html(:identifier, render_as: :linked, search_field: 'identifier_tesim', html_dl: true) %>
9
11
  <%= presenter.attribute_to_html(:keyword, render_as: :faceted, html_dl: true) %>
@@ -14,7 +14,7 @@
14
14
  <p><%= t("hyrax.collection.select_form.select_heading") %></p>
15
15
 
16
16
  <% if @add_works_to_collection.present? %>
17
- <%= text_field_tag 'member_of_collection_label', @add_works_to_collection_label, size: '90', disabled: true %>
17
+ <%= text_field_tag 'member_of_collection_label', @add_works_to_collection_label, disabled: true %>
18
18
  <%= hidden_field_tag 'member_of_collection_ids', @add_works_to_collection %>
19
19
  <% else %>
20
20
  <%= text_field_tag 'member_of_collection_ids', nil,
@@ -1,5 +1,5 @@
1
1
  <div id="permissions_display" class="tab-pane">
2
- <%= simple_form_for [main_app, file_set],
2
+ <%= simple_form_for [main_app, form_object],
3
3
  html: { multipart: true,
4
4
  id: 'permission',
5
5
  data: { param_key: file_set.model_name.param_key },
@@ -33,7 +33,7 @@
33
33
  <h2><%= t('.descriptions') %></h2>
34
34
  <%= render "form" %>
35
35
  </div>
36
- <%= render "permission", file_set: curation_concern %>
36
+ <%= render "permission", file_set: curation_concern, form_object: @form %>
37
37
  <%= render "versioning", file_set: curation_concern %>
38
38
  </div>
39
39
  </div>
@@ -8,7 +8,7 @@
8
8
  </audio>
9
9
  <%= link_to t('hyrax.file_set.show.downloadable_content.audio_link'),
10
10
  hyrax.download_path(file_set),
11
- data: { label: file_set.id },
11
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids },
12
12
  target: :_blank,
13
13
  id: "file_download" %>
14
14
  </div>
@@ -4,7 +4,7 @@
4
4
  <p /><%= link_to t('hyrax.file_set.show.download'),
5
5
  hyrax.download_path(file_set),
6
6
  id: "file_download",
7
- data: { label: file_set.id },
7
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids },
8
8
  target: "_new" %>
9
9
  <% end %>
10
10
  </div>
@@ -7,7 +7,7 @@
7
7
  role: "presentation") %>
8
8
  <%= link_to t('hyrax.file_set.show.downloadable_content.image_link'),
9
9
  hyrax.download_path(file_set),
10
- data: { label: file_set.id },
10
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids },
11
11
  target: :_blank,
12
12
  id: "file_download" %>
13
13
  </div>
@@ -9,7 +9,7 @@
9
9
  hyrax.download_path(file_set),
10
10
  target: :_blank,
11
11
  id: "file_download",
12
- data: { label: file_set.id } %>
12
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids } %>
13
13
  </div>
14
14
  <% else %>
15
15
  <div>
@@ -9,7 +9,7 @@
9
9
  hyrax.download_path(file_set),
10
10
  target: :_blank,
11
11
  id: "file_download",
12
- data: { label: file_set.id } %>
12
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids } %>
13
13
  </div>
14
14
  <% else %>
15
15
  <div>
@@ -8,7 +8,7 @@
8
8
  </video>
9
9
  <%= link_to t('hyrax.file_set.show.downloadable_content.video_link'),
10
10
  hyrax.download_path(file_set),
11
- data: { label: file_set.id },
11
+ data: { label: file_set.id, work_id: @presenter.id, collection_ids: @presenter.member_of_collection_ids },
12
12
  target: :_blank,
13
13
  id: "file_download" %>
14
14
  </div>
@@ -3,18 +3,18 @@
3
3
  <script id="template-upload" type="text/x-tmpl">
4
4
  {% for (var i=0, file; file=o.files[i]; i++) { %}
5
5
  <tr class="template-upload <%= fade_class_if_not_test %>">
6
- <td>
6
+ <span>
7
7
  <span class="preview"></span>
8
- </td>
9
- <td>
8
+ </span>
9
+ <span>
10
10
  <p class="name">{%=file.name%}</p>
11
11
  <strong class="error text-danger"></strong>
12
- </td>
13
- <td>
12
+ </span>
13
+ <span>
14
14
  <p class="size">Processing...</p>
15
15
  <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-striped progress-bar-animated bg-success" style="width:0%;"></div></div>
16
- </td>
17
- <td class="text-right">
16
+ </span>
17
+ <span class="text-right">
18
18
  {% if (!i && !o.options.autoUpload) { %}
19
19
  <button class="btn btn-primary start" disabled>
20
20
  <span class="fa fa-upload"></span>
@@ -27,7 +27,7 @@
27
27
  <span><%= t('helpers.action.cancel') %></span>
28
28
  </button>
29
29
  {% } %}
30
- </td>
30
+ </span>
31
31
  </tr>
32
32
  {% } %}
33
33
  </script>
@@ -37,7 +37,7 @@
37
37
  <!-- The template to display the banner once upload is complete -->
38
38
  <script id="template-download" type="text/x-tmpl">
39
39
  {% for (var i=0, file; file=o.files[i]; i++) { %}
40
- <span class="template-download fade">
40
+ <span class="template-download fade show">
41
41
  <div id="banner">
42
42
  <div class="row branding-banner-row">
43
43
  <div class="col-sm-3">
@@ -69,7 +69,7 @@
69
69
  <!-- The template to display logo in the table once upload is complete -->
70
70
  <script id="logo-template-download" type="text/x-tmpl">
71
71
  {% for (var i=0, file; file=o.files[i]; i++) { %}
72
- <span class="template-download fade">
72
+ <span class="template-download fade show">
73
73
  <div class="row branding-logo-row">
74
74
  <div class="col-sm-3">
75
75
  <span class="preview">
@@ -3,16 +3,16 @@
3
3
  </div>
4
4
 
5
5
  <div class="list-group-item">
6
- <span class="badge"><%= number_of_collections(user) %></span>
6
+ <span class="badge dark-text"><%= number_of_collections(user) %></span>
7
7
  <span class="fa fa-folder-open" aria-hidden="true"></span> <%= link_to_field('', '', t("hyrax.dashboard.stats.collections"), {generic_type: "Collection", depositor: user.to_s}) %>
8
8
  </div>
9
9
 
10
10
  <div class="list-group-item">
11
- <span class="badge"><%= number_of_works(user) %></span>
11
+ <span class="badge dark-text"><%= number_of_works(user) %></span>
12
12
  <span class="fa fa-upload" aria-hidden="true"></span> <%= link_to_field('', '', t("hyrax.dashboard.stats.works"), {generic_type: "Work", depositor: user.to_s}) %>
13
13
 
14
14
  <ul class="views-downloads-dashboard list-unstyled">
15
- <li><span class="badge badge-optional"><%= user.total_file_views %></span> <%= t("hyrax.dashboard.stats.file_views").pluralize(user.total_file_views) %></li>
16
- <li><span class="badge badge-optional"><%= user.total_file_downloads %></span> <%= t("hyrax.dashboard.stats.file_downloads").pluralize(user.total_file_downloads) %></li>
15
+ <li><span class="badge badge-optional dark-text"><%= user.total_file_views %></span> <%= t("hyrax.dashboard.stats.file_views").pluralize(user.total_file_views) %></li>
16
+ <li><span class="badge badge-optional dark-text"><%= user.total_file_downloads %></span> <%= t("hyrax.dashboard.stats.file_downloads").pluralize(user.total_file_downloads) %></li>
17
17
  </ul>
18
18
  </div>
@@ -2,7 +2,7 @@ apiVersion: v2
2
2
  name: hyrax
3
3
  description: An open-source, Samvera-powered digital repository system
4
4
  type: application
5
- version: 1.6.0
5
+ version: 3.1.0
6
6
  appVersion: 3.3.0
7
7
  dependencies:
8
8
  - name: fcrepo
@@ -10,26 +10,26 @@ dependencies:
10
10
  repository: oci://ghcr.io/samvera
11
11
  condition: fcrepo.enabled
12
12
  - name: memcached
13
- version: 4.2.21
13
+ version: 6.3.13
14
14
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
15
15
  condition: memcached.enabled
16
16
  - name: minio
17
- version: 6.7.2
17
+ version: 12.1.14
18
18
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
19
19
  condition: minio.enabled
20
20
  - name: postgresql
21
- version: 10.3.13
21
+ version: 12.2.5
22
22
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
23
23
  condition: postgresql.enabled
24
24
  - name: redis
25
- version: 10.7.16
25
+ version: 17.8.7
26
26
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
27
27
  condition: redis.enabled
28
28
  - name: solr
29
- version: 1.0.1
29
+ version: 7.2.1
30
30
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
31
31
  condition: solr.enabled
32
32
  - name: nginx
33
- version: 9.8.0
33
+ version: 13.2.30
34
34
  repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
35
35
  condition: nginx.enabled
@@ -11,6 +11,11 @@ production-ready setup for Hyrax applications. By default it deploys:
11
11
  - Solr (in a cloud configuration, including Apache Zookeeper)
12
12
  - Redis
13
13
 
14
+ ## Minimum requirements
15
+
16
+ - Kubernetes 1.21
17
+ - Helm 3
18
+
14
19
  ## A base Hyrax deployment
15
20
 
16
21
  Because Hyrax is a [Rails Engine][engine]---not a stand-alone application---
@@ -51,6 +51,14 @@ app.kubernetes.io/name: {{ include "hyrax.name" . }}
51
51
  app.kubernetes.io/instance: {{ .Release.Name }}
52
52
  {{- end }}
53
53
 
54
+ {{/*
55
+ Worker Selector labels
56
+ */}}
57
+ {{- define "hyrax.workerSelectorLabels" -}}
58
+ app.kubernetes.io/name: {{ include "hyrax.name" . }}-worker
59
+ app.kubernetes.io/instance: {{ .Release.Name }}
60
+ {{- end }}
61
+
54
62
  {{/*
55
63
  Create the name of the service account to use
56
64
  */}}
@@ -100,7 +108,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
100
108
 
101
109
  {{- define "hyrax.postgresql.database" -}}
102
110
  {{- if .Values.postgresql.enabled }}
103
- {{- .Values.postgresql.postgresqlDatabase }}
111
+ {{- .Values.postgresql.auth.database }}
104
112
  {{- else }}
105
113
  {{- .Values.externalPostgresql.database | default ( include "hyrax.fullname" . ) }}
106
114
  {{- end }}
@@ -108,7 +116,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
108
116
 
109
117
  {{- define "hyrax.postgresql.username" -}}
110
118
  {{- if .Values.postgresql.enabled }}
111
- {{- .Values.postgresql.postgresqlUsername }}
119
+ {{- .Values.postgresql.auth.username }}
112
120
  {{- else }}
113
121
  {{- .Values.externalPostgresql.username | default "postgres" }}
114
122
  {{- end }}
@@ -116,7 +124,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
116
124
 
117
125
  {{- define "hyrax.postgresql.password" -}}
118
126
  {{- if .Values.postgresql.enabled }}
119
- {{- .Values.postgresql.postgresqlPassword }}
127
+ {{- .Values.postgresql.auth.password }}
120
128
  {{- else }}
121
129
  {{- .Values.externalPostgresql.password }}
122
130
  {{- end }}
@@ -149,7 +157,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
149
157
 
150
158
  {{- define "hyrax.solr.username" -}}
151
159
  {{- if .Values.solr.enabled }}
152
- {{- .Values.solr.authentication.adminUsername }}
160
+ {{- .Values.solr.auth.adminUsername }}
153
161
  {{- else }}
154
162
  {{- .Values.externalSolrUser }}
155
163
  {{- end }}
@@ -157,7 +165,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
157
165
 
158
166
  {{- define "hyrax.solr.password" -}}
159
167
  {{- if .Values.solr.enabled }}
160
- {{- .Values.solr.authentication.adminPassword }}
168
+ {{- .Values.solr.auth.adminPassword }}
161
169
  {{- else }}
162
170
  {{- .Values.externalSolrPassword }}
163
171
  {{- end }}
@@ -180,7 +188,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
180
188
  {{- end -}}
181
189
 
182
190
  {{- define "hyrax.redis.url" -}}
183
- {{- printf "redis://:%s@%s:%s" .Values.redis.password (include "hyrax.redis.host" .) "6379/0" -}}
191
+ {{- printf "redis://:%s@%s:%s" .Values.redis.auth.password (include "hyrax.redis.host" .) "6379/0" -}}
184
192
  {{- end -}}
185
193
 
186
194
  {{- define "hyrax.nginx.host" -}}
@@ -1,5 +1,5 @@
1
1
  {{- if .Values.embargoRelease.enabled }}
2
- apiVersion: batch/v1beta1
2
+ apiVersion: batch/v1
3
3
  kind: CronJob
4
4
  metadata:
5
5
  metadata:
@@ -1,5 +1,5 @@
1
1
  {{- if .Values.leaseRelease.enabled }}
2
- apiVersion: batch/v1beta1
2
+ apiVersion: batch/v1
3
3
  kind: CronJob
4
4
  metadata:
5
5
  metadata:
@@ -9,7 +9,7 @@ spec:
9
9
  replicas: {{ .Values.worker.replicaCount }}
10
10
  selector:
11
11
  matchLabels:
12
- {{- include "hyrax.selectorLabels" . | nindent 6 }}
12
+ {{- include "hyrax.workerSelectorLabels" . | nindent 6 }}
13
13
  template:
14
14
  metadata:
15
15
  {{- with .Values.podAnnotations }}
@@ -17,7 +17,7 @@ spec:
17
17
  {{- toYaml . | nindent 8 }}
18
18
  {{- end }}
19
19
  labels:
20
- {{- include "hyrax.selectorLabels" . | nindent 8 }}
20
+ {{- include "hyrax.workerSelectorLabels" . | nindent 8 }}
21
21
  spec:
22
22
  initContainers:
23
23
  - name: db-wait
@@ -0,0 +1,8 @@
1
+ {{- range .Values.extraDeploy }}
2
+ ---
3
+ {{- if typeIs "string" . }}
4
+ {{- tpl . $ }}
5
+ {{- else }}
6
+ {{- tpl (. | toYaml) $ }}
7
+ {{- end }}
8
+ {{- end }}
@@ -10,13 +10,13 @@ data:
10
10
  DB_PASSWORD: {{ include "hyrax.postgresql.password" . | b64enc }}
11
11
  DATABASE_URL: {{ printf "postgresql://%s:%s@%s/%s?pool=5" ( include "hyrax.postgresql.username" . ) ( include "hyrax.postgresql.password" . ) ( include "hyrax.postgresql.host" . ) ( include "hyrax.postgresql.database" . ) | b64enc }}
12
12
  {{- if .Values.minio.enabled }}
13
- MINIO_ACCESS_KEY: {{ .Values.minio.accessKey.password | b64enc}}
14
- MINIO_SECRET_KEY: {{ .Values.minio.secretKey.password | b64enc}}
13
+ MINIO_ACCESS_KEY: {{ .Values.minio.auth.rootUser | b64enc}}
14
+ MINIO_SECRET_KEY: {{ .Values.minio.auth.rootPassword | b64enc}}
15
15
  {{- end }}
16
16
  {{- if not .Values.solrExistingSecret }}
17
17
  SOLR_ADMIN_PASSWORD: {{ include "hyrax.solr.password" . | b64enc }}
18
18
  {{- end }}
19
19
  {{- if .Values.redis.enabled }}
20
- REDIS_PASSWORD: {{ .Values.redis.password | b64enc}}
20
+ REDIS_PASSWORD: {{ .Values.redis.auth.password | b64enc}}
21
21
  SIDEKIQ_REDIS_URL: {{ include "hyrax.redis.url" . | b64enc }}
22
22
  {{- end }}
@@ -66,6 +66,10 @@ extraEnvFrom: []
66
66
  # tty: true
67
67
  extraContainerConfiguration: []
68
68
 
69
+ ## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template)
70
+ ##
71
+ extraDeploy: []
72
+
69
73
  # an existing volume containing a Hyrax-based application
70
74
  # must be a ReadWriteMany volume if worker is enabled
71
75
  applicationExistingClaim: ""
@@ -229,10 +233,9 @@ memcached:
229
233
 
230
234
  minio:
231
235
  enabled: false
232
- accessKey:
233
- password: hyrax-access-key
234
- secretKey:
235
- password: hyrax-secret-key
236
+ auth:
237
+ rootUser: hyrax-access-key
238
+ rootPassword: hyrax-secret-key
236
239
  persistence:
237
240
  enabled: false
238
241
  # defaultBuckets: bucketOne;bucketTwo
@@ -242,15 +245,18 @@ postgresql:
242
245
  image:
243
246
  repository: bitnami/postgresql
244
247
  tag: 12.3.0
245
- postgresqlUsername: hyrax
246
- postgresqlPassword: hyrax_pass
247
- postgresqlDatabase: hyrax
248
- servicePort: 5432
249
- # cpu: 1000m
250
- # memory: 1Gi
251
- # persistence:
252
- # size: 10Gi
253
-
248
+ auth:
249
+ database: hyrax
250
+ password: hyrax_pass
251
+ username: hyrax
252
+ primary:
253
+ service:
254
+ ports:
255
+ postgresql: 5432
256
+ readReplicas:
257
+ service:
258
+ ports:
259
+ postgresql: 5432
254
260
 
255
261
  ## Nginx proxy is used to keep puma from having to serve static assets
256
262
  ## and to act as an auth proxy for Cantelope
@@ -391,14 +397,15 @@ nginx:
391
397
 
392
398
  redis:
393
399
  enabled: true
394
- password: mysecret
400
+ auth:
401
+ password: mysecret
395
402
 
396
403
  solr:
397
404
  enabled: true
398
405
  image:
399
406
  repository: bitnami/solr
400
407
  tag: 8.11.1
401
- authentication:
408
+ auth:
402
409
  enabled: true
403
410
  adminUsername: admin
404
411
  adminPassword: admin
@@ -589,7 +589,7 @@ de:
589
589
  depositor: Deponent
590
590
  directions: Unabhängig von den Sichtbarkeitseinstellungen für diese Arbeit können Sie sie auch für andere Benutzer und Gruppen freigeben.
591
591
  group: Gruppe
592
- permissions_save_note_html: Berechtigungen werden <strong> nicht </ strong> gespeichert, bis die Option & quot; Speichern & quot; Die Taste wird unten auf der Seite gedrückt.
592
+ permissions_save_note_html: Berechtigungen werden <strong> nicht </strong> gespeichert, bis die Option & quot; Speichern & quot; Die Taste wird unten auf der Seite gedrückt.
593
593
  use_add_button: Verwenden Sie die Schaltfläche "Hinzufügen", um Zugriff auf jeweils eine %{account_label} zu gewähren (diese wird der folgenden Liste hinzugefügt). Wählen Sie den Benutzer nach Name oder %{account_label} \ aus. Wählen Sie dann die Zugriffsebene aus, die Sie gewähren möchten, und klicken Sie auf Add this %{account_label}, um das Hinzufügen der Berechtigung abzuschließen.
594
594
  form_thumbnail:
595
595
  help_html: Wählen Sie die Datei aus, die als Miniaturansicht für diese Arbeit verwendet werden soll.
@@ -1405,14 +1405,14 @@ de:
1405
1405
  count:
1406
1406
  collections:
1407
1407
  collections_listing: Auflistung der Sammlungen
1408
- in_repo: "<strong> %{total_count} Sammlungen </ strong> im Repository"
1409
- you_manage: "<strong> %{total_count} Sammlungen </ strong>, die Sie im Repository verwalten können"
1410
- you_own: "<strong> %{total_count} Sammlungen </ strong>, die Sie im Repository besitzen"
1408
+ in_repo: "<strong> %{total_count} Sammlungen </strong> im Repository"
1409
+ you_manage: "<strong> %{total_count} Sammlungen </strong>, die Sie im Repository verwalten können"
1410
+ you_own: "<strong> %{total_count} Sammlungen </strong>, die Sie im Repository besitzen"
1411
1411
  works:
1412
- in_repo: "<strong> %{total_count} Arbeiten </ strong> im Repository"
1412
+ in_repo: "<strong> %{total_count} Arbeiten </strong> im Repository"
1413
1413
  works_listing: Auflistung der Arbeiten
1414
- you_manage: "<strong> %{total_count} Arbeiten </ strong>, das Sie im Repository verwalten können"
1415
- you_own: "<strong> %{total_count} Arbeiten </ strong>, das Sie im Repository besitzen"
1414
+ you_manage: "<strong> %{total_count} Arbeiten </strong>, das Sie im Repository verwalten können"
1415
+ you_own: "<strong> %{total_count} Arbeiten </strong>, das Sie im Repository besitzen"
1416
1416
  sort_and_per_page:
1417
1417
  number_of_results_to_display_per_page: Anzahl der anzuzeigenden Ergebnisse pro Seite
1418
1418
  nav_safety:
@@ -1412,14 +1412,14 @@ es:
1412
1412
  count:
1413
1413
  collections:
1414
1414
  collections_listing: Listado de colecciones
1415
- in_repo: "<strong> colecciones %{total_count} </ strong> en el repositorio"
1416
- you_manage: "<strong> colecciones %{total_count} </ strong> puede administrar en el repositorio"
1417
- you_own: "<strong> colecciones %{total_count} </ strong> que posee en el repositorio"
1415
+ in_repo: "<strong> colecciones %{total_count} </strong> en el repositorio"
1416
+ you_manage: "<strong> colecciones %{total_count} </strong> puede administrar en el repositorio"
1417
+ you_own: "<strong> colecciones %{total_count} </strong> que posee en el repositorio"
1418
1418
  works:
1419
- in_repo: "<strong> %{total_count} funciona </ strong> en el repositorio"
1419
+ in_repo: "<strong> %{total_count} funciona </strong> en el repositorio"
1420
1420
  works_listing: Listado de obras
1421
- you_manage: "<strong> %{total_count} funciona </ strong> puedes administrar en el repositorio"
1422
- you_own: "<strong> %{total_count} funciona </ strong> en el repositorio"
1421
+ you_manage: "<strong> %{total_count} funciona </strong> puedes administrar en el repositorio"
1422
+ you_own: "<strong> %{total_count} funciona </strong> en el repositorio"
1423
1423
  sort_and_per_page:
1424
1424
  number_of_results_to_display_per_page: Número de resultados a mostrar por página
1425
1425
  nav_safety:
@@ -1840,4 +1840,4 @@ es:
1840
1840
  html: <span class="badge badge-info required-tag">obligatorio</span>
1841
1841
  total_view:
1842
1842
  one: Este trabajo tiene 1 vista total
1843
- other: Este trabajo tiene un total de %{count} visualizaciones
1843
+ other: Este trabajo tiene un total de %{count} visualizaciones