hyrax 5.2.0 → 5.3.0
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 +4 -4
- data/.dassie/.env +5 -1
- data/.dassie/Gemfile +4 -2
- data/.dassie/app/assets/images/bulkrax/removed.png +0 -0
- data/.dassie/app/assets/javascripts/application.js +2 -0
- data/.dassie/app/assets/stylesheets/application.css +1 -0
- data/.dassie/app/controllers/catalog_controller.rb +1 -0
- data/.dassie/app/forms/admin_set_resource_form.rb +6 -0
- data/.dassie/app/forms/collection_resource_form.rb +5 -2
- data/.dassie/app/forms/generic_work_resource_form.rb +5 -2
- data/.dassie/app/forms/monograph_form.rb +5 -3
- data/.dassie/app/indexers/admin_set_resource_indexer.rb +5 -0
- data/.dassie/app/indexers/collection_resource_indexer.rb +3 -3
- data/.dassie/app/indexers/generic_work_resource_indexer.rb +6 -3
- data/.dassie/app/indexers/monograph_indexer.rb +6 -2
- data/.dassie/app/models/ability.rb +8 -0
- data/.dassie/app/models/collection_resource.rb +4 -2
- data/.dassie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
- data/.dassie/app/models/generic_work_resource.rb +5 -2
- data/.dassie/app/models/monograph.rb +5 -2
- data/.dassie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/.dassie/bin/importer +142 -0
- data/.dassie/bin/web +4 -0
- data/.dassie/config/browse_everything_providers.yml +1 -1
- data/.dassie/config/bulkrax_api.yml +86 -0
- data/.dassie/config/initializers/bulkrax.rb +92 -0
- data/.dassie/config/initializers/clamav.rb +2 -0
- data/.dassie/config/initializers/hyrax.rb +7 -1
- data/.dassie/config/initializers/riiif.rb +4 -80
- data/.dassie/config/initializers/wings.rb +1 -1
- data/.dassie/config/metadata_profiles/m3_profile.yaml +929 -0
- data/.dassie/config/puma.rb +4 -2
- data/.dassie/config/routes.rb +7 -0
- data/.dassie/config/sidekiq.yml +17 -0
- data/.dassie/config/uv/uv.html +63 -81
- data/.dassie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
- data/.dassie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
- data/.dassie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
- data/.dassie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
- data/.dassie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
- data/.dassie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
- data/.dassie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
- data/.dassie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
- data/.dassie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
- data/.dassie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
- data/.dassie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
- data/.dassie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
- data/.dassie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
- data/.dassie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
- data/.dassie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
- data/.dassie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
- data/.dassie/db/schema.rb +154 -1
- data/.dassie/package.json +1 -1
- data/.dassie/rspec_split_configuration.json +835 -0
- data/.dassie/solr/conf/solrconfig.xml +21 -5
- data/.github/{ISSUE_TEMPLATE.md → ISSUE_TEMPLATE/issue_template.md} +5 -0
- data/.github/workflows/lint-build-test.yml +5 -1
- data/.github/workflows/release-charts.yml +48 -0
- data/.gitignore +6 -0
- data/.koppie/.env +5 -1
- data/.koppie/Gemfile +3 -1
- data/.koppie/app/assets/images/bulkrax/removed.png +0 -0
- data/.koppie/app/assets/javascripts/application.js +2 -0
- data/.koppie/app/assets/stylesheets/application.css +1 -0
- data/.koppie/app/controllers/catalog_controller.rb +1 -1
- data/.koppie/app/forms/collection_resource_form.rb +5 -2
- data/.koppie/app/forms/file_set_form.rb +5 -0
- data/.koppie/app/forms/generic_work_form.rb +5 -3
- data/.koppie/app/forms/monograph_form.rb +5 -3
- data/.koppie/app/indexers/collection_resource_indexer.rb +5 -2
- data/.koppie/app/indexers/file_set_indexer.rb +7 -0
- data/.koppie/app/indexers/generic_work_indexer.rb +6 -3
- data/.koppie/app/indexers/monograph_indexer.rb +6 -2
- data/.koppie/app/models/ability.rb +8 -0
- data/.koppie/app/models/collection_resource.rb +4 -2
- data/.koppie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
- data/.koppie/app/models/generic_work.rb +5 -2
- data/.koppie/app/models/monograph.rb +5 -2
- data/.koppie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/.koppie/bin/importer +142 -0
- data/.koppie/bin/web +4 -0
- data/.koppie/config/browse_everything_providers.yml +2 -0
- data/.koppie/config/bulkrax_api.yml +86 -0
- data/.koppie/config/initializers/bulkrax.rb +92 -0
- data/.koppie/config/initializers/clamav.rb +2 -0
- data/.koppie/config/initializers/hyrax.rb +11 -3
- data/.koppie/config/initializers/riiif.rb +4 -82
- data/.koppie/config/metadata_profiles/m3_profile.yaml +930 -0
- data/.koppie/config/routes.rb +7 -0
- data/.koppie/config/sidekiq.yml +2 -0
- data/.koppie/config/uv/uv.html +63 -81
- data/.koppie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
- data/.koppie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
- data/.koppie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
- data/.koppie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
- data/.koppie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
- data/.koppie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
- data/.koppie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
- data/.koppie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
- data/.koppie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
- data/.koppie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
- data/.koppie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
- data/.koppie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
- data/.koppie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
- data/.koppie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
- data/.koppie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
- data/.koppie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
- data/.koppie/db/schema.rb +154 -1
- data/.koppie/package.json +1 -1
- data/.koppie/rspec_split_configuration.json +835 -0
- data/.koppie/solr/conf/solrconfig.xml +0 -5
- data/.koppie/yarn.lock +5587 -752
- data/.rubocop.yml +1 -0
- data/CONTAINERS.md +2 -0
- data/Dockerfile +9 -22
- data/Gemfile +0 -1
- data/Gemfile.allinson +2 -0
- data/README.md +1 -2
- data/app/actors/hyrax/actors/file_actor.rb +2 -0
- data/app/actors/hyrax/actors/file_set_actor.rb +1 -1
- data/app/assets/javascripts/hyrax/app.js.erb +143 -10
- data/app/assets/javascripts/hyrax/collection_select.js +68 -0
- data/app/assets/javascripts/hyrax/copy_permalink_button.js +28 -0
- data/app/assets/javascripts/hyrax/redirects.js +45 -0
- data/app/assets/javascripts/hyrax/relationships/control.es6 +21 -1
- data/app/assets/javascripts/hyrax/select_work_type.es6 +7 -2
- data/app/assets/javascripts/hyrax.js +3 -1
- data/app/assets/stylesheets/hyrax/_file-show.scss +1 -0
- data/app/assets/stylesheets/hyrax/_viewer.scss +8 -0
- data/app/assets/stylesheets/hyrax/dashboard.scss +22 -1
- data/app/assets/stylesheets/hyrax/sidebar.scss +98 -3
- data/app/authorities/qa/authorities/collections.rb +9 -9
- data/app/controllers/concerns/hyrax/analytics_error_handling.rb +97 -0
- data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +3 -1
- data/app/controllers/concerns/hyrax/ensure_migrated_behavior.rb +50 -0
- data/app/controllers/concerns/hyrax/flexible_catalog_behavior.rb +206 -0
- data/app/controllers/concerns/hyrax/flexible_schema_behavior.rb +17 -0
- data/app/controllers/concerns/hyrax/redirect_to_display_url.rb +54 -0
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +52 -10
- data/app/controllers/hyrax/admin/admin_sets_controller.rb +21 -13
- data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -0
- data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +1 -0
- data/app/controllers/hyrax/admin/metadata_profiles_controller.rb +66 -0
- data/app/controllers/hyrax/batch_uploads_controller.rb +2 -0
- data/app/controllers/hyrax/dashboard/collections_controller.rb +27 -6
- data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +2 -1
- data/app/controllers/hyrax/dashboard_controller.rb +2 -1
- data/app/controllers/hyrax/file_sets_controller.rb +19 -1
- data/app/controllers/hyrax/homepage_controller.rb +7 -0
- data/app/controllers/hyrax/my/works_controller.rb +2 -21
- data/app/controllers/hyrax/permissions_controller.rb +4 -2
- data/app/controllers/hyrax/redirects_controller.rb +56 -0
- data/app/controllers/hyrax/single_use_links_viewer_controller.rb +2 -1
- data/app/controllers/hyrax/transcripts_controller.rb +31 -0
- data/app/controllers/hyrax/uploads_controller.rb +18 -9
- data/app/forms/concerns/hyrax/based_near_field_behavior.rb +77 -0
- data/app/forms/concerns/hyrax/flexible_form_behavior.rb +37 -0
- data/app/forms/concerns/hyrax/redirects_field_behavior.rb +95 -0
- data/app/forms/concerns/hyrax/transcripts_behavior.rb +40 -0
- data/app/forms/hyrax/forms/admin_set_form.rb +1 -1
- data/app/forms/hyrax/forms/administrative_set_form.rb +3 -0
- data/app/forms/hyrax/forms/batch_edit_form.rb +1 -3
- data/app/forms/hyrax/forms/batch_upload_form.rb +14 -0
- data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
- data/app/forms/hyrax/forms/file_set_form.rb +6 -7
- data/app/forms/hyrax/forms/pcdm_collection_form.rb +17 -5
- data/app/forms/hyrax/forms/pcdm_object_form.rb +11 -3
- data/app/forms/hyrax/forms/resource_batch_edit_form.rb +8 -22
- data/app/forms/hyrax/forms/resource_form.rb +110 -10
- data/app/forms/hyrax/forms.rb +1 -0
- data/app/helpers/hyrax/attributes_helper.rb +109 -0
- data/app/helpers/hyrax/blacklight_override.rb +26 -0
- data/app/helpers/hyrax/collections_helper.rb +2 -0
- data/app/helpers/hyrax/file_set_form_helper.rb +24 -0
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +51 -2
- data/app/helpers/hyrax/iiif_helper.rb +11 -1
- data/app/helpers/hyrax/permalink_helper.rb +37 -0
- data/app/helpers/hyrax/redirects_tab_helper.rb +29 -0
- data/app/helpers/hyrax/work_form_helper.rb +9 -5
- data/app/helpers/hyrax/works_helper.rb +14 -0
- data/app/indexers/concerns/hyrax/workflow_indexer.rb +30 -0
- data/app/indexers/hyrax/file_set_indexer.rb +1 -0
- data/app/indexers/hyrax/indexers/administrative_set_indexer.rb +2 -1
- data/app/indexers/hyrax/indexers/file_set_indexer.rb +6 -2
- data/app/indexers/hyrax/indexers/pcdm_collection_indexer.rb +11 -1
- data/app/indexers/hyrax/indexers/pcdm_object_indexer.rb +25 -4
- data/app/indexers/hyrax/indexers/redirects_indexer.rb +29 -0
- data/app/indexers/hyrax/indexers/resource_indexer.rb +4 -0
- data/app/indexers/hyrax/indexers.rb +2 -0
- data/app/inputs/controlled_vocabulary_input.rb +7 -1
- data/app/jobs/content_deposit_error_event_job.rb +14 -0
- data/app/jobs/create_work_job.rb +2 -0
- data/app/jobs/migrate_files_to_valkyrie_job.rb +7 -1
- data/app/models/batch_upload_item.rb +4 -0
- data/app/models/concerns/hyrax/ability/flexible_metadata_ability.rb +10 -0
- data/app/models/concerns/hyrax/ability.rb +3 -1
- data/app/models/concerns/hyrax/collection_behavior.rb +4 -0
- data/app/models/concerns/hyrax/file_set/transcripts.rb +16 -0
- data/app/models/concerns/hyrax/file_set_behavior.rb +9 -0
- data/app/models/concerns/hyrax/flexibility.rb +107 -0
- data/app/models/concerns/hyrax/redirects_normalization.rb +38 -0
- data/app/models/concerns/hyrax/solr_document/characterization.rb +1 -1
- data/app/models/concerns/hyrax/solr_document/metadata.rb +9 -0
- data/app/models/concerns/hyrax/solr_document/ordered_members.rb +4 -0
- data/app/models/concerns/hyrax/solr_document_behavior.rb +28 -6
- data/app/models/concerns/hyrax/suppressible.rb +1 -1
- data/app/models/concerns/hyrax/valkyrie_lazy_migration.rb +1 -1
- data/app/models/concerns/hyrax/with_embargoes_and_leases.rb +30 -0
- data/app/models/concerns/hyrax/work_behavior.rb +8 -0
- data/app/models/hyrax/administrative_set.rb +1 -1
- data/app/models/hyrax/change_set.rb +3 -1
- data/app/models/hyrax/embargo.rb +3 -1
- data/app/models/hyrax/file_set.rb +4 -2
- data/app/models/hyrax/flexible_schema.rb +219 -0
- data/app/models/hyrax/lease.rb +3 -1
- data/app/models/hyrax/pcdm_collection.rb +4 -1
- data/app/models/hyrax/redirect.rb +64 -0
- data/app/models/hyrax/redirect_path.rb +14 -0
- data/app/models/hyrax/resource.rb +22 -25
- data/app/models/hyrax/riiif/file.rb +43 -0
- data/app/models/hyrax/riiif/file_resolver.rb +65 -0
- data/app/models/hyrax/uploaded_file.rb +9 -0
- data/app/models/hyrax/virus_scanner.rb +16 -3
- data/app/models/hyrax/work.rb +4 -1
- data/app/models/job_io_wrapper.rb +12 -3
- data/app/models/user_mailbox.rb +3 -1
- data/app/presenters/hyrax/admin_set_presenter.rb +11 -0
- data/app/presenters/hyrax/annotates_content.rb +35 -0
- data/app/presenters/hyrax/collection_presenter.rb +5 -1
- data/app/presenters/hyrax/displays_content.rb +133 -0
- data/app/presenters/hyrax/displays_image.rb +11 -4
- data/app/presenters/hyrax/displays_transcripts.rb +59 -0
- data/app/presenters/hyrax/file_set_presenter.rb +8 -18
- data/app/presenters/hyrax/google_scholar_presenter.rb +39 -0
- data/app/presenters/hyrax/iiif_manifest_presenter.rb +22 -4
- data/app/presenters/hyrax/missing_method_behavior.rb +15 -0
- data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -4
- data/app/presenters/hyrax/work_show_presenter.rb +56 -14
- data/app/renderers/hyrax/renderers/attribute_renderer.rb +6 -2
- data/app/renderers/hyrax/renderers/license_attribute_renderer.rb +10 -10
- data/app/renderers/hyrax/renderers/redirects_label_attribute_renderer.rb +25 -0
- data/app/renderers/hyrax/renderers/rights_statement_attribute_renderer.rb +10 -11
- data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +1 -5
- data/app/search_builders/hyrax/filter_by_type.rb +1 -1
- data/app/services/hyrax/action/create_valkyrie_work.rb +3 -2
- data/app/services/hyrax/authority_rendering_helper.rb +28 -0
- data/app/services/hyrax/authority_service.rb +107 -0
- data/app/services/hyrax/callbacks.rb +2 -2
- data/app/services/hyrax/collections/nested_collection_query_service.rb +9 -3
- data/app/services/hyrax/collections_service.rb +17 -0
- data/app/services/hyrax/custom_queries/find_by_property_value.rb +89 -0
- data/app/services/hyrax/edit_permissions_service.rb +4 -4
- data/app/services/hyrax/file_set_type_service.rb +12 -4
- data/app/services/hyrax/flexible_schema_validator_service.rb +153 -0
- data/app/services/hyrax/flexible_schema_validators/class_validator.rb +123 -0
- data/app/services/hyrax/flexible_schema_validators/core_metadata_validator.rb +211 -0
- data/app/services/hyrax/flexible_schema_validators/existing_records_validator.rb +83 -0
- data/app/services/hyrax/flexible_schema_validators/redirects_validator.rb +116 -0
- data/app/services/hyrax/flexible_schema_validators/schema_validator.rb +34 -0
- data/app/services/hyrax/flexible_schema_validators/sort_properties_validator.rb +54 -0
- data/app/services/hyrax/license_service.rb +1 -1
- data/app/services/hyrax/listeners/metadata_index_listener.rb +11 -0
- data/app/services/hyrax/m3_profile_editor.rb +32 -0
- data/app/services/hyrax/m3_schema_loader.rb +119 -0
- data/app/services/hyrax/manifest_builder_service.rb +18 -24
- data/app/services/hyrax/permalink_path.rb +25 -0
- data/app/services/hyrax/qa_select_service.rb +9 -5
- data/app/services/hyrax/redirect_path_normalizer.rb +58 -0
- data/app/services/hyrax/redirects_lookup.rb +59 -0
- data/app/services/hyrax/resource_permissions_visibility_propagator.rb +54 -0
- data/app/services/hyrax/resource_types_service.rb +3 -20
- data/app/services/hyrax/rights_statement_service.rb +1 -1
- data/app/services/hyrax/schema_loader.rb +205 -0
- data/app/services/hyrax/search_service.rb +1 -1
- data/app/services/hyrax/simple_schema_loader.rb +28 -127
- data/app/services/hyrax/solr_service.rb +39 -2
- data/app/services/hyrax/tolerant_select_service.rb +5 -3
- data/app/services/hyrax/valkyrie_upload.rb +2 -2
- data/app/services/hyrax/visibility_propagator.rb +4 -1
- data/app/services/hyrax/work_uploads_handler.rb +17 -9
- data/app/services/hyrax/workflow/workflow_factory.rb +5 -4
- data/app/services/migrate_resource_service.rb +7 -1
- data/app/uploaders/hyrax/uploaded_file_uploader.rb +2 -2
- data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +1 -1
- data/app/utils/hyrax/required_data_seeder.rb +1 -0
- data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +1 -1
- data/app/utils/hyrax/required_data_seeders/flexible_profile_seeder.rb +28 -0
- data/app/validators/hyrax/controlled_vocabulary_validator.rb +64 -0
- data/app/validators/hyrax/redirect_validator.rb +128 -0
- data/app/views/catalog/_thumbnail_list_default.html.erb +2 -2
- data/app/views/collections/edit_fields/_schema_version.html.erb +1 -0
- data/app/views/hyrax/admin/admin_sets/_form_metadata.html.erb +24 -2
- data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/admin/admin_sets/show.html.erb +1 -1
- data/app/views/hyrax/admin/analytics/_analytics_error.html.erb +42 -0
- data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +11 -9
- data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +60 -57
- data/app/views/hyrax/admin/features/index.html.erb +1 -1
- data/app/views/hyrax/admin/metadata_profiles/_import_modal.html.erb +20 -0
- data/app/views/hyrax/admin/metadata_profiles/index.html.erb +54 -0
- data/app/views/hyrax/base/_attribute_rows.html.erb +4 -21
- data/app/views/hyrax/base/_citations.html.erb +1 -0
- data/app/views/hyrax/base/_currently_shared.html.erb +2 -1
- data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
- data/app/views/hyrax/base/_form_member_of_collections.html.erb +6 -6
- data/app/views/hyrax/base/_form_redirects.html.erb +125 -0
- data/app/views/hyrax/base/_form_share.html.erb +7 -2
- data/app/views/hyrax/base/_member.html.erb +1 -1
- data/app/views/hyrax/base/_social_media.html.erb +1 -1
- data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +1 -1
- data/app/views/hyrax/base/show.html.erb +3 -0
- data/app/views/hyrax/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/collections/_list_works.html.erb +1 -1
- data/app/views/hyrax/collections/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/collections/show.html.erb +4 -0
- data/app/views/hyrax/dashboard/_sidebar.html.erb +4 -2
- data/app/views/hyrax/dashboard/collections/_button_for_update_collection.html.erb +2 -1
- data/app/views/hyrax/dashboard/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/dashboard/collections/_form.html.erb +17 -0
- data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -10
- data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/dashboard/collections/_list_works.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +1 -8
- data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +1 -1
- data/app/views/hyrax/dashboard/profiles/show.html.erb +5 -5
- data/app/views/hyrax/dashboard/sidebar/_metadata.html.erb +11 -0
- data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +1 -0
- data/app/views/hyrax/dashboard/works/_default_group.html.erb +3 -0
- data/app/views/hyrax/dashboard/works/_list_works.html.erb +4 -2
- data/app/views/hyrax/file_sets/_form.html.erb +16 -3
- data/app/views/hyrax/file_sets/_metadata.html.erb +35 -0
- data/app/views/hyrax/file_sets/_valkyrie_form.html.erb +37 -0
- data/app/views/hyrax/file_sets/edit.html.erb +14 -8
- data/app/views/hyrax/file_sets/media_display/_audio.html.erb +4 -0
- data/app/views/hyrax/file_sets/media_display/_image.html.erb +2 -2
- data/app/views/hyrax/file_sets/media_display/_video.html.erb +4 -0
- data/app/views/hyrax/homepage/_explore_collections.html.erb +1 -1
- data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
- data/app/views/hyrax/homepage/_recent_document.html.erb +1 -1
- data/app/views/hyrax/homepage/robots.text.erb +17 -0
- data/app/views/hyrax/my/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/my/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +2 -2
- data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +2 -2
- data/app/views/hyrax/my/works/_default_group.html.erb +3 -0
- data/app/views/hyrax/my/works/_list_works.html.erb +5 -2
- data/app/views/hyrax/shared/_copy_permalink.html.erb +10 -0
- data/app/views/hyrax/users/_user_info.html.erb +1 -6
- data/app/views/layouts/_head_tag_content.html.erb +2 -0
- data/app/views/layouts/hyrax/dashboard.html.erb +2 -1
- data/app/views/records/edit_fields/_contexts.html.erb +1 -0
- data/app/views/records/edit_fields/_license.html.erb +17 -5
- data/app/views/records/edit_fields/_resource_type.html.erb +16 -2
- data/app/views/records/edit_fields/_rights_statement.html.erb +17 -5
- data/app/views/records/edit_fields/_schema_version.html.erb +1 -0
- data/app/views/records/edit_fields/_transcript_ids.html.erb +18 -0
- data/app/views/records/show_fields/_rights.html.erb +1 -1
- data/app/views/shared/_citations.html.erb +46 -31
- data/app/views/shared/_schema_version.html.erb +38 -0
- data/bin/dev-entrypoint.sh +14 -4
- data/chart/hyrax/Chart.yaml +4 -4
- data/chart/hyrax/templates/ingress.yaml +3 -0
- data/chart/hyrax/values.yaml +10 -8
- data/config/features.rb +27 -0
- data/config/initializers/blacklight_dynamic_sitemap.rb +43 -0
- data/config/initializers/deprecation_patch.rb +27 -0
- data/config/initializers/hydra_works.rb +3 -0
- data/config/initializers/i18n_extensions.rb +197 -0
- data/config/initializers/storage_adapter_initializer.rb +15 -9
- data/config/locales/hyrax.de.yml +172 -54
- data/config/locales/hyrax.en.yml +183 -66
- data/config/locales/hyrax.es.yml +174 -49
- data/config/locales/hyrax.fr.yml +169 -45
- data/config/locales/hyrax.it.yml +172 -48
- data/config/locales/hyrax.pt-BR.yml +172 -54
- data/config/locales/hyrax.zh.yml +145 -21
- data/config/metadata/basic_metadata.yaml +66 -0
- data/config/metadata/batch_edit_metadata.yaml +119 -0
- data/config/metadata/file_set_metadata.yaml +19 -0
- data/config/metadata/redirects.yaml +15 -0
- data/config/metadata_profiles/m3_json_schema.json +487 -0
- data/config/metadata_profiles/m3_profile.yaml +954 -0
- data/config/routes.rb +9 -0
- data/docker-compose-allinson.yml +176 -0
- data/docker-compose-dassie.yml +14 -6
- data/docker-compose-koppie.yml +18 -10
- data/docker-compose-sirenia.yml +20 -10
- data/documentation/copy_permalink.md +29 -0
- data/documentation/developing-your-hyrax-based-app.md +2 -2
- data/documentation/file-ingest-characterization.md +763 -0
- data/documentation/flexible_metadata.md +113 -0
- data/documentation/forms/field_behaviors.md +297 -0
- data/documentation/redirects.md +428 -0
- data/hyrax.gemspec +7 -2
- data/lib/freyja/metadata_adapter.rb +1 -1
- data/lib/freyja/persister.rb +25 -1
- data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +2 -2
- data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +5 -1
- data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +5 -1
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +6 -1
- data/lib/generators/hyrax/iiif_viewer/USAGE +22 -0
- data/lib/generators/hyrax/iiif_viewer/iiif_viewer_generator.rb +49 -0
- data/lib/generators/hyrax/iiif_viewer/templates/_clover.html.erb +7 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.css +3328 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.html +16 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.js +237 -0
- data/lib/generators/hyrax/install_generator.rb +25 -1
- data/lib/generators/hyrax/riiif_generator.rb +1 -1
- data/lib/generators/hyrax/templates/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/lib/generators/hyrax/templates/config/clamav.rb +2 -0
- data/lib/generators/hyrax/templates/config/initializers/riiif.rb +4 -80
- data/lib/generators/hyrax/templates/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb.erb +9 -0
- data/lib/generators/hyrax/templates/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb.erb +5 -0
- data/lib/generators/hyrax/templates/db/migrate/20260430000001_create_hyrax_redirect_paths.rb.erb +22 -0
- data/lib/generators/hyrax/templates/db/migrate/20260521003627_add_additional_redirect_info.rb.erb +39 -0
- data/lib/generators/hyrax/templates/package.json +1 -1
- data/lib/generators/hyrax/templates/uv.html +60 -82
- data/lib/generators/hyrax/work/templates/indexer.rb.erb +1 -1
- data/lib/generators/hyrax/work/templates/model.rb.erb +5 -1
- data/lib/generators/hyrax/work_resource/templates/form.rb.erb +5 -2
- data/lib/generators/hyrax/work_resource/templates/indexer.rb.erb +6 -2
- data/lib/generators/hyrax/work_resource/templates/work.rb.erb +5 -2
- data/lib/generators/hyrax/work_resource/work_resource_generator.rb +1 -0
- data/lib/hyrax/active_fedora_dummy_model.rb +6 -0
- data/lib/hyrax/configuration.rb +197 -3
- data/lib/hyrax/deprecation.rb +31 -0
- data/lib/hyrax/engine.rb +2 -0
- data/lib/hyrax/form_fields.rb +17 -5
- data/lib/hyrax/indexer.rb +31 -2
- data/lib/hyrax/resource_sync/resource_list_writer.rb +3 -0
- data/lib/hyrax/schema.rb +15 -4
- data/lib/hyrax/specs/shared_specs/factories/administrative_sets.rb +12 -0
- data/lib/hyrax/specs/shared_specs/factories/hyrax_embargo.rb +1 -1
- data/lib/hyrax/specs/shared_specs/factories/hyrax_file_set.rb +13 -0
- data/lib/hyrax/specs/shared_specs/factories/hyrax_lease.rb +5 -1
- data/lib/hyrax/specs/shared_specs/factories/hyrax_work.rb +14 -0
- data/lib/hyrax/specs/shared_specs/simple_work.rb +41 -0
- data/lib/hyrax/specs/shared_specs.rb +1 -0
- data/lib/hyrax/transactions/collection_create.rb +2 -1
- data/lib/hyrax/transactions/collection_destroy.rb +1 -0
- data/lib/hyrax/transactions/collection_update.rb +2 -1
- data/lib/hyrax/transactions/container.rb +28 -0
- data/lib/hyrax/transactions/steps/apply_permission_template_on_update.rb +65 -0
- data/lib/hyrax/transactions/steps/apply_workflow_on_admin_set_change.rb +97 -0
- data/lib/hyrax/transactions/steps/ensure_admin_set.rb +1 -1
- data/lib/hyrax/transactions/steps/remove_redirect_paths.rb +35 -0
- data/lib/hyrax/transactions/steps/save.rb +10 -0
- data/lib/hyrax/transactions/steps/set_default_admin_set.rb +1 -1
- data/lib/hyrax/transactions/steps/sync_redirect_paths.rb +141 -0
- data/lib/hyrax/transactions/work_create.rb +2 -1
- data/lib/hyrax/transactions/work_destroy.rb +1 -0
- data/lib/hyrax/transactions/work_update.rb +4 -1
- data/lib/hyrax/version.rb +1 -1
- data/lib/hyrax.rb +61 -0
- data/lib/tasks/m3_profile_cleanup.rake +35 -0
- data/template.rb +4 -1
- metadata +313 -19
- data/.dassie/public/robots.txt +0 -1
- data/.koppie/public/robots.txt +0 -1
- data/app/forms/concerns/hyrax/basic_metadata_form_fields_behavior.rb +0 -39
- data/app/views/catalog/_thumbnail_list_collection.html.erb +0 -4
data/config/routes.rb
CHANGED
|
@@ -6,12 +6,16 @@ Hyrax::Engine.routes.draw do
|
|
|
6
6
|
# Route the home page as the root
|
|
7
7
|
root to: 'homepage#index'
|
|
8
8
|
|
|
9
|
+
get '/robots', to: 'homepage#robots'
|
|
10
|
+
|
|
9
11
|
# Handle routes that existed in Hyrax < 7
|
|
10
12
|
# e.g. https://scholarsphere.psu.edu/files/gm80hv36p
|
|
11
13
|
get '/files/:id', to: redirect('/concern/generic_works/%{id}')
|
|
12
14
|
|
|
13
15
|
resources :downloads, only: :show
|
|
14
16
|
|
|
17
|
+
get 'transcripts/:id.:file_ext', to: 'transcripts#show', as: :transcript
|
|
18
|
+
|
|
15
19
|
# ResourceSync routes
|
|
16
20
|
get '/.well-known/resourcesync' => 'resource_sync#source_description', as: :source_description
|
|
17
21
|
get '/capabilitylist' => 'resource_sync#capability_list', as: :capability_list
|
|
@@ -245,6 +249,11 @@ Hyrax::Engine.routes.draw do
|
|
|
245
249
|
resource :appearance
|
|
246
250
|
resources :collection_types, except: :show
|
|
247
251
|
resources :collection_type_participants, only: [:create, :destroy]
|
|
252
|
+
# Metadata profiles routes
|
|
253
|
+
resources :metadata_profiles, except: [:update, :show, :destroy] do
|
|
254
|
+
collection { post :import }
|
|
255
|
+
get 'export'
|
|
256
|
+
end
|
|
248
257
|
end
|
|
249
258
|
|
|
250
259
|
resources :content_blocks, only: [] do
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Requires Docker Compose v2
|
|
2
|
+
name: allinson
|
|
3
|
+
services:
|
|
4
|
+
web:
|
|
5
|
+
build:
|
|
6
|
+
context: .
|
|
7
|
+
target: hyrax-engine-dev
|
|
8
|
+
args:
|
|
9
|
+
- EXTRA_APK_PACKAGES=git less
|
|
10
|
+
- BUNDLE_GEMFILE=Gemfile.allinson
|
|
11
|
+
image: ghcr.io/samvera/hyrax-dev:${GITHUB_SHA:-latest}
|
|
12
|
+
command: sh -c 'bundle exec puma -v -b tcp://0.0.0.0:3000'
|
|
13
|
+
stdin_open: true
|
|
14
|
+
tty: true
|
|
15
|
+
user: root
|
|
16
|
+
env_file:
|
|
17
|
+
- .koppie/.env
|
|
18
|
+
environment:
|
|
19
|
+
- APP_NAME=allinson
|
|
20
|
+
- RAILS_ROOT=/app/samvera/hyrax-webapp
|
|
21
|
+
- HYRAX_FLEXIBLE=true
|
|
22
|
+
- HYRAX_FLEXIBLE_CLASSES=Hyrax::AdministrativeSet,CollectionResource,FileSet,GenericWork,Monograph
|
|
23
|
+
- HYRAX_DISABLE_INCLUDE_METADATA=true
|
|
24
|
+
depends_on:
|
|
25
|
+
- worker
|
|
26
|
+
- chrome
|
|
27
|
+
- fits
|
|
28
|
+
- memcached
|
|
29
|
+
- postgres
|
|
30
|
+
- redis
|
|
31
|
+
- solr
|
|
32
|
+
ports:
|
|
33
|
+
- 3003:3000
|
|
34
|
+
- 9879:9876
|
|
35
|
+
- 1051:1048
|
|
36
|
+
volumes:
|
|
37
|
+
- ./bin:/app/samvera
|
|
38
|
+
- .koppie:/app/samvera/hyrax-webapp
|
|
39
|
+
- .:/app/samvera/hyrax-engine
|
|
40
|
+
- bundle:/app/bundle
|
|
41
|
+
- clamav:/var/lib/clamav
|
|
42
|
+
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
43
|
+
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
44
|
+
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
45
|
+
- rails-public:/app/samvera/hyrax-webapp/public
|
|
46
|
+
- rails-tmp:/app/samvera/hyrax-webapp/tmp
|
|
47
|
+
networks:
|
|
48
|
+
- allinson
|
|
49
|
+
|
|
50
|
+
worker:
|
|
51
|
+
image: ghcr.io/samvera/hyrax-dev:${GITHUB_SHA:-latest}
|
|
52
|
+
entrypoint: worker-entrypoint.sh
|
|
53
|
+
command: sh -c 'bundle exec sidekiq'
|
|
54
|
+
user: root
|
|
55
|
+
env_file:
|
|
56
|
+
- .koppie/.env
|
|
57
|
+
environment:
|
|
58
|
+
- APP_NAME=allinson
|
|
59
|
+
- RAILS_ROOT=/app/samvera/hyrax-webapp
|
|
60
|
+
- HYRAX_FLEXIBLE=true
|
|
61
|
+
- HYRAX_FLEXIBLE_CLASSES=Hyrax::AdministrativeSet,CollectionResource,FileSet,GenericWork,Monograph
|
|
62
|
+
- HYRAX_DISABLE_INCLUDE_METADATA=true
|
|
63
|
+
depends_on:
|
|
64
|
+
- fits
|
|
65
|
+
- memcached
|
|
66
|
+
- postgres
|
|
67
|
+
- redis
|
|
68
|
+
- solr
|
|
69
|
+
volumes:
|
|
70
|
+
- ./bin:/app/samvera
|
|
71
|
+
- .koppie:/app/samvera/hyrax-webapp
|
|
72
|
+
- .:/app/samvera/hyrax-engine
|
|
73
|
+
- bundle:/app/bundle
|
|
74
|
+
- clamav:/var/lib/clamav
|
|
75
|
+
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
76
|
+
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
77
|
+
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
78
|
+
- rails-public:/app/samvera/hyrax-webapp/public
|
|
79
|
+
- rails-tmp:/app/samvera/hyrax-webapp/tmp
|
|
80
|
+
networks:
|
|
81
|
+
- allinson
|
|
82
|
+
|
|
83
|
+
chrome:
|
|
84
|
+
image: selenium/standalone-chromium:4
|
|
85
|
+
environment:
|
|
86
|
+
# - START_XVFB=false
|
|
87
|
+
- SE_NODE_SESSION_TIMEOUT=800
|
|
88
|
+
- SE_ENABLE_TRACING=false
|
|
89
|
+
- SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true
|
|
90
|
+
- SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage
|
|
91
|
+
- SE_BROWSER_ARGS_HEADLESS=--headless=new
|
|
92
|
+
# logging:
|
|
93
|
+
# driver: none
|
|
94
|
+
volumes:
|
|
95
|
+
- /dev/shm:/dev/shm
|
|
96
|
+
shm_size: 2g
|
|
97
|
+
ports:
|
|
98
|
+
- "4448:4444"
|
|
99
|
+
- "5963:5900"
|
|
100
|
+
- "7963:7900"
|
|
101
|
+
networks:
|
|
102
|
+
- allinson
|
|
103
|
+
|
|
104
|
+
postgres:
|
|
105
|
+
image: postgres:15-alpine
|
|
106
|
+
env_file:
|
|
107
|
+
- .koppie/.env
|
|
108
|
+
ports:
|
|
109
|
+
- "5435:5432"
|
|
110
|
+
volumes:
|
|
111
|
+
- db:/var/lib/postgresql/data
|
|
112
|
+
networks:
|
|
113
|
+
- allinson
|
|
114
|
+
|
|
115
|
+
fits:
|
|
116
|
+
image: ghcr.io/samvera/fitsservlet:1.6.0
|
|
117
|
+
ports:
|
|
118
|
+
- 8080
|
|
119
|
+
networks:
|
|
120
|
+
- allinson
|
|
121
|
+
|
|
122
|
+
memcached:
|
|
123
|
+
image: bitnamilegacy/memcached
|
|
124
|
+
ports:
|
|
125
|
+
- "11214:11211"
|
|
126
|
+
networks:
|
|
127
|
+
- allinson
|
|
128
|
+
|
|
129
|
+
redis:
|
|
130
|
+
image: bitnamilegacy/redis:6.2
|
|
131
|
+
env_file:
|
|
132
|
+
- .koppie/.env
|
|
133
|
+
volumes:
|
|
134
|
+
- redis:/bitnamilegacy/redis/data
|
|
135
|
+
networks:
|
|
136
|
+
- allinson
|
|
137
|
+
|
|
138
|
+
solr:
|
|
139
|
+
image: solr:9.9
|
|
140
|
+
env_file:
|
|
141
|
+
- .koppie/.env
|
|
142
|
+
ports:
|
|
143
|
+
- 8986:8983
|
|
144
|
+
command:
|
|
145
|
+
- sh
|
|
146
|
+
- "-c"
|
|
147
|
+
- "precreate-core koppie-test /opt/solr/server/configsets/hyraxconf; solr-precreate koppie /opt/solr/server/configsets/hyraxconf"
|
|
148
|
+
volumes:
|
|
149
|
+
- solr_home:/var/solr:cached
|
|
150
|
+
- .koppie/solr:/opt/solr/server/configsets/hyraxconf
|
|
151
|
+
ulimits:
|
|
152
|
+
nofile:
|
|
153
|
+
soft: 65536
|
|
154
|
+
hard: 524288
|
|
155
|
+
networks:
|
|
156
|
+
- allinson
|
|
157
|
+
|
|
158
|
+
volumes:
|
|
159
|
+
bundle:
|
|
160
|
+
clamav:
|
|
161
|
+
db:
|
|
162
|
+
hyrax-storage:
|
|
163
|
+
hyrax-derivatives:
|
|
164
|
+
hyrax-uploads:
|
|
165
|
+
rails-public:
|
|
166
|
+
rails-tmp:
|
|
167
|
+
redis:
|
|
168
|
+
sidekiq-public:
|
|
169
|
+
sidekiq-tmp:
|
|
170
|
+
solr_home:
|
|
171
|
+
|
|
172
|
+
networks:
|
|
173
|
+
allinson:
|
|
174
|
+
driver: bridge
|
|
175
|
+
driver_opts:
|
|
176
|
+
com.docker.network.bridge.name: br-allinson
|
data/docker-compose-dassie.yml
CHANGED
|
@@ -15,6 +15,9 @@ services:
|
|
|
15
15
|
- .dassie/.env
|
|
16
16
|
environment:
|
|
17
17
|
- RAILS_ROOT=/app/samvera/hyrax-webapp
|
|
18
|
+
- HYRAX_FLEXIBLE=false
|
|
19
|
+
- HYRAX_FLEXIBLE_CLASSES=
|
|
20
|
+
- HYRAX_DISABLE_INCLUDE_METADATA=false
|
|
18
21
|
depends_on:
|
|
19
22
|
- worker
|
|
20
23
|
- chrome
|
|
@@ -32,6 +35,7 @@ services:
|
|
|
32
35
|
- .dassie:/app/samvera/hyrax-webapp
|
|
33
36
|
- .:/app/samvera/hyrax-engine
|
|
34
37
|
- bundle:/app/bundle
|
|
38
|
+
- clamav:/var/lib/clamav
|
|
35
39
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
36
40
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
37
41
|
- rails-public:/app/samvera/hyrax-webapp/public
|
|
@@ -58,6 +62,7 @@ services:
|
|
|
58
62
|
- .dassie:/app/samvera/hyrax-webapp
|
|
59
63
|
- .:/app/samvera/hyrax-engine
|
|
60
64
|
- bundle:/app/bundle
|
|
65
|
+
- clamav:/var/lib/clamav
|
|
61
66
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
62
67
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
63
68
|
- rails-public:/app/samvera/hyrax-webapp/public
|
|
@@ -116,23 +121,25 @@ services:
|
|
|
116
121
|
- hyrax
|
|
117
122
|
|
|
118
123
|
memcached:
|
|
119
|
-
image:
|
|
124
|
+
image: bitnamilegacy/memcached
|
|
120
125
|
ports:
|
|
121
126
|
- "11211:11211"
|
|
122
127
|
networks:
|
|
123
128
|
- hyrax
|
|
124
129
|
|
|
125
130
|
redis:
|
|
126
|
-
image:
|
|
131
|
+
image: bitnamilegacy/redis:6.2
|
|
127
132
|
env_file:
|
|
128
133
|
- .dassie/.env
|
|
129
134
|
volumes:
|
|
130
|
-
- redis:/
|
|
135
|
+
- redis:/bitnamilegacy/redis/data
|
|
131
136
|
networks:
|
|
132
137
|
- hyrax
|
|
133
138
|
|
|
134
139
|
solr:
|
|
135
|
-
image: solr:
|
|
140
|
+
image: solr:9.9
|
|
141
|
+
env_file:
|
|
142
|
+
- .dassie/.env
|
|
136
143
|
ports:
|
|
137
144
|
- 8983:8983
|
|
138
145
|
command:
|
|
@@ -140,8 +147,8 @@ services:
|
|
|
140
147
|
- "-c"
|
|
141
148
|
- "precreate-core hyrax_test /opt/solr/server/configsets/hyraxconf; precreate-core hyrax-valkyrie-test /opt/solr/server/configsets/hyraxconf; precreate-core hyrax-valkyrie-dev /opt/solr/server/configsets/hyraxconf; solr-precreate hyrax /opt/solr/server/configsets/hyraxconf"
|
|
142
149
|
volumes:
|
|
143
|
-
- solr_home:/var/solr
|
|
144
|
-
- .dassie/solr
|
|
150
|
+
- solr_home:/var/solr:cached
|
|
151
|
+
- .dassie/solr:/opt/solr/server/configsets/hyraxconf
|
|
145
152
|
ulimits:
|
|
146
153
|
nofile:
|
|
147
154
|
soft: 65536
|
|
@@ -151,6 +158,7 @@ services:
|
|
|
151
158
|
|
|
152
159
|
volumes:
|
|
153
160
|
bundle:
|
|
161
|
+
clamav:
|
|
154
162
|
db:
|
|
155
163
|
fcrepo:
|
|
156
164
|
hyrax-derivatives:
|
data/docker-compose-koppie.yml
CHANGED
|
@@ -17,6 +17,9 @@ services:
|
|
|
17
17
|
- .koppie/.env
|
|
18
18
|
environment:
|
|
19
19
|
- RAILS_ROOT=/app/samvera/hyrax-webapp
|
|
20
|
+
- HYRAX_FLEXIBLE=false
|
|
21
|
+
- HYRAX_FLEXIBLE_CLASSES=
|
|
22
|
+
- HYRAX_DISABLE_INCLUDE_METADATA=false
|
|
20
23
|
depends_on:
|
|
21
24
|
- worker
|
|
22
25
|
- chrome
|
|
@@ -34,6 +37,7 @@ services:
|
|
|
34
37
|
- .koppie:/app/samvera/hyrax-webapp
|
|
35
38
|
- .:/app/samvera/hyrax-engine
|
|
36
39
|
- bundle:/app/bundle
|
|
40
|
+
- clamav:/var/lib/clamav
|
|
37
41
|
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
38
42
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
39
43
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
@@ -60,6 +64,7 @@ services:
|
|
|
60
64
|
- .koppie:/app/samvera/hyrax-webapp
|
|
61
65
|
- .:/app/samvera/hyrax-engine
|
|
62
66
|
- bundle:/app/bundle
|
|
67
|
+
- clamav:/var/lib/clamav
|
|
63
68
|
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
64
69
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
65
70
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
@@ -71,14 +76,14 @@ services:
|
|
|
71
76
|
chrome:
|
|
72
77
|
image: selenium/standalone-chromium:4
|
|
73
78
|
environment:
|
|
74
|
-
# - START_XVFB=false
|
|
79
|
+
# - START_XVFB=false
|
|
75
80
|
- SE_NODE_SESSION_TIMEOUT=800
|
|
76
81
|
- SE_ENABLE_TRACING=false
|
|
77
82
|
- SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true
|
|
78
83
|
- SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage
|
|
79
84
|
- SE_BROWSER_ARGS_HEADLESS=--headless=new
|
|
80
|
-
# logging:
|
|
81
|
-
# driver: none
|
|
85
|
+
# logging:
|
|
86
|
+
# driver: none
|
|
82
87
|
volumes:
|
|
83
88
|
- /dev/shm:/dev/shm
|
|
84
89
|
shm_size: 2g
|
|
@@ -108,23 +113,25 @@ services:
|
|
|
108
113
|
- koppie
|
|
109
114
|
|
|
110
115
|
memcached:
|
|
111
|
-
image:
|
|
116
|
+
image: bitnamilegacy/memcached
|
|
112
117
|
ports:
|
|
113
|
-
-
|
|
118
|
+
- "11212:11211"
|
|
114
119
|
networks:
|
|
115
120
|
- koppie
|
|
116
121
|
|
|
117
122
|
redis:
|
|
118
|
-
image:
|
|
123
|
+
image: bitnamilegacy/redis:6.2
|
|
119
124
|
env_file:
|
|
120
125
|
- .koppie/.env
|
|
121
126
|
volumes:
|
|
122
|
-
- redis:/
|
|
127
|
+
- redis:/bitnamilegacy/redis/data
|
|
123
128
|
networks:
|
|
124
129
|
- koppie
|
|
125
130
|
|
|
126
131
|
solr:
|
|
127
|
-
image: solr:
|
|
132
|
+
image: solr:9.9
|
|
133
|
+
env_file:
|
|
134
|
+
- .koppie/.env
|
|
128
135
|
ports:
|
|
129
136
|
- 8984:8983
|
|
130
137
|
command:
|
|
@@ -132,8 +139,8 @@ services:
|
|
|
132
139
|
- "-c"
|
|
133
140
|
- "precreate-core koppie-test /opt/solr/server/configsets/hyraxconf; solr-precreate koppie /opt/solr/server/configsets/hyraxconf"
|
|
134
141
|
volumes:
|
|
135
|
-
- solr_home:/var/solr
|
|
136
|
-
- .koppie/solr
|
|
142
|
+
- solr_home:/var/solr:cached
|
|
143
|
+
- .koppie/solr:/opt/solr/server/configsets/hyraxconf
|
|
137
144
|
ulimits:
|
|
138
145
|
nofile:
|
|
139
146
|
soft: 65536
|
|
@@ -143,6 +150,7 @@ services:
|
|
|
143
150
|
|
|
144
151
|
volumes:
|
|
145
152
|
bundle:
|
|
153
|
+
clamav:
|
|
146
154
|
db:
|
|
147
155
|
hyrax-storage:
|
|
148
156
|
hyrax-derivatives:
|
data/docker-compose-sirenia.yml
CHANGED
|
@@ -23,6 +23,7 @@ services:
|
|
|
23
23
|
depends_on:
|
|
24
24
|
- worker
|
|
25
25
|
- chrome
|
|
26
|
+
- fcrepo
|
|
26
27
|
- fits
|
|
27
28
|
- memcached
|
|
28
29
|
- postgres
|
|
@@ -37,6 +38,7 @@ services:
|
|
|
37
38
|
- .koppie:/app/samvera/hyrax-webapp
|
|
38
39
|
- .:/app/samvera/hyrax-engine
|
|
39
40
|
- bundle:/app/bundle
|
|
41
|
+
- clamav:/var/lib/clamav
|
|
40
42
|
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
41
43
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
42
44
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
@@ -57,7 +59,11 @@ services:
|
|
|
57
59
|
- RAILS_ROOT=/app/samvera/hyrax-webapp
|
|
58
60
|
- VALKYRIE_METADATA_ADAPTER=fedora_metadata
|
|
59
61
|
- VALKYRIE_STORAGE_ADAPTER=fedora_storage
|
|
62
|
+
- HYRAX_FLEXIBLE=false
|
|
63
|
+
- HYRAX_FLEXIBLE_CLASSES=
|
|
64
|
+
- HYRAX_DISABLE_INCLUDE_METADATA=false
|
|
60
65
|
depends_on:
|
|
66
|
+
- fcrepo
|
|
61
67
|
- fits
|
|
62
68
|
- memcached
|
|
63
69
|
- postgres
|
|
@@ -68,6 +74,7 @@ services:
|
|
|
68
74
|
- .koppie:/app/samvera/hyrax-webapp
|
|
69
75
|
- .:/app/samvera/hyrax-engine
|
|
70
76
|
- bundle:/app/bundle
|
|
77
|
+
- clamav:/var/lib/clamav
|
|
71
78
|
- hyrax-storage:/app/samvera/hyrax-webapp/storage
|
|
72
79
|
- hyrax-derivatives:/app/samvera/hyrax-webapp/derivatives
|
|
73
80
|
- hyrax-uploads:/app/samvera/hyrax-webapp/uploads
|
|
@@ -79,14 +86,14 @@ services:
|
|
|
79
86
|
chrome:
|
|
80
87
|
image: selenium/standalone-chromium:4
|
|
81
88
|
environment:
|
|
82
|
-
# - START_XVFB=false
|
|
89
|
+
# - START_XVFB=false
|
|
83
90
|
- SE_NODE_SESSION_TIMEOUT=800
|
|
84
91
|
- SE_ENABLE_TRACING=false
|
|
85
92
|
- SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true
|
|
86
93
|
- SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage
|
|
87
94
|
- SE_BROWSER_ARGS_HEADLESS=--headless=new
|
|
88
|
-
# logging:
|
|
89
|
-
# driver: none
|
|
95
|
+
# logging:
|
|
96
|
+
# driver: none
|
|
90
97
|
volumes:
|
|
91
98
|
- /dev/shm:/dev/shm
|
|
92
99
|
shm_size: 2g
|
|
@@ -134,23 +141,25 @@ services:
|
|
|
134
141
|
- sirenia
|
|
135
142
|
|
|
136
143
|
memcached:
|
|
137
|
-
image:
|
|
144
|
+
image: bitnamilegacy/memcached
|
|
138
145
|
ports:
|
|
139
|
-
-
|
|
146
|
+
- "11213:11211"
|
|
140
147
|
networks:
|
|
141
148
|
- sirenia
|
|
142
149
|
|
|
143
150
|
redis:
|
|
144
|
-
image:
|
|
151
|
+
image: bitnamilegacy/redis:6.2
|
|
145
152
|
env_file:
|
|
146
153
|
- .koppie/.env
|
|
147
154
|
volumes:
|
|
148
|
-
- redis:/
|
|
155
|
+
- redis:/bitnamilegacy/redis/data
|
|
149
156
|
networks:
|
|
150
157
|
- sirenia
|
|
151
158
|
|
|
152
159
|
solr:
|
|
153
|
-
image: solr:
|
|
160
|
+
image: solr:9.9
|
|
161
|
+
env_file:
|
|
162
|
+
- .koppie/.env
|
|
154
163
|
ports:
|
|
155
164
|
- 8985:8983
|
|
156
165
|
command:
|
|
@@ -158,8 +167,8 @@ services:
|
|
|
158
167
|
- "-c"
|
|
159
168
|
- "precreate-core koppie-test /opt/solr/server/configsets/hyraxconf; solr-precreate koppie /opt/solr/server/configsets/hyraxconf"
|
|
160
169
|
volumes:
|
|
161
|
-
- solr_home:/var/solr
|
|
162
|
-
- .koppie/solr
|
|
170
|
+
- solr_home:/var/solr:cached
|
|
171
|
+
- .koppie/solr:/opt/solr/server/configsets/hyraxconf
|
|
163
172
|
ulimits:
|
|
164
173
|
nofile:
|
|
165
174
|
soft: 65536
|
|
@@ -189,6 +198,7 @@ services:
|
|
|
189
198
|
|
|
190
199
|
volumes:
|
|
191
200
|
bundle:
|
|
201
|
+
clamav:
|
|
192
202
|
db:
|
|
193
203
|
fcrepo:
|
|
194
204
|
hyrax-storage:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copy permalink button
|
|
2
|
+
|
|
3
|
+
A "Copy permalink" button on the show pages for works and collections lets a viewer copy the record's canonical, UUID-based URL to their clipboard. The canonical URL is the form `…/concern/<work_type>/<uuid>` (for works) or `…/collections/<uuid>` (for collections) — the stable URL that always identifies the record, regardless of any aliases registered for it.
|
|
4
|
+
|
|
5
|
+
## Why
|
|
6
|
+
|
|
7
|
+
When the redirects feature is in use, the show page commonly renders at a registered alias (e.g. `/handle/12345/678`) rather than at the canonical UUID URL. The browser address bar shows the alias. A user who copies that URL is copying the alias, which could later be edited or removed. The permalink button gives one-click access to the canonical URL so the copied link will keep working as long as the record itself exists.
|
|
8
|
+
|
|
9
|
+
The button has value even without redirects enabled, because the canonical URL is the long-term stable form of the address.
|
|
10
|
+
|
|
11
|
+
## Feature flag
|
|
12
|
+
|
|
13
|
+
The button is gated by a Flipflop feature, `copy_permalink_button`, defaulting to **off**. Enable it per environment (via the YAML strategy) or per tenant (via the database strategy) like any other Flipflop feature. When the feature is off, no button is rendered.
|
|
14
|
+
|
|
15
|
+
The feature is independent of the `redirects` feature flag — the permalink button can be enabled standalone.
|
|
16
|
+
|
|
17
|
+
## What appears
|
|
18
|
+
|
|
19
|
+
On a work show page, the button appears in the citations block in the left-hand column. On a collection show page, it appears in the title header next to the collection-type and permission badges. In both cases the button is visible to all users, including anonymous visitors.
|
|
20
|
+
|
|
21
|
+
The button uses ClipboardJS (already a Hyrax dependency) and shows a brief Bootstrap tooltip on successful copy.
|
|
22
|
+
|
|
23
|
+
## Canonical URL in the page head
|
|
24
|
+
|
|
25
|
+
The work and collection show pages also include a `<link rel="canonical" href="...">` tag in the `<head>` regardless of the feature flag. This helps search engines treat the UUID-based URL as authoritative when the same record is reachable via multiple alias paths, avoiding duplicate-content penalties.
|
|
26
|
+
|
|
27
|
+
## Related
|
|
28
|
+
|
|
29
|
+
- [`documentation/redirects.md`](redirects.md) — the redirect aliases feature that motivates the canonical/alias distinction.
|
|
@@ -32,7 +32,7 @@ You can also try [Running Hyrax-based application in local VM](https://github.co
|
|
|
32
32
|
During development, running only the dependent services in a container environment may be beneficial. This avoids potential headaches concerning file permissions and eases the use of debugging tools. The application generation instructions below use [Lando](https://lando.dev) to achieve this setup.
|
|
33
33
|
|
|
34
34
|
This document contains instructions specific to setting up an app with __Hyrax
|
|
35
|
-
v5.
|
|
35
|
+
v5.3.0__. If you are looking for instructions on installing a different
|
|
36
36
|
version, be sure to select the appropriate branch or tag from the drop-down
|
|
37
37
|
menu above.
|
|
38
38
|
|
|
@@ -148,7 +148,7 @@ Generate a new Rails application using the template.
|
|
|
148
148
|
**NOTE:** `HYRAX_SKIP_WINGS` is needed here to avoid loading the Wings compatibility layer during the application generation process.
|
|
149
149
|
|
|
150
150
|
```shell
|
|
151
|
-
HYRAX_SKIP_WINGS=true rails _7.2.2.1_ new my_app --database=postgresql -m https://raw.githubusercontent.com/samvera/hyrax/hyrax-v5.
|
|
151
|
+
HYRAX_SKIP_WINGS=true rails _7.2.2.1_ new my_app --database=postgresql -m https://raw.githubusercontent.com/samvera/hyrax/hyrax-v5.3.0/template.rb
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
|