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
|
@@ -19,11 +19,6 @@
|
|
|
19
19
|
<config>
|
|
20
20
|
<luceneMatchVersion>5.0.0</luceneMatchVersion>
|
|
21
21
|
|
|
22
|
-
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
|
|
23
|
-
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
|
|
24
|
-
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
|
|
25
|
-
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
|
|
26
|
-
|
|
27
22
|
<directoryFactory name="DirectoryFactory"
|
|
28
23
|
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
|
|
29
24
|
</directoryFactory>
|
|
@@ -205,4 +200,25 @@
|
|
|
205
200
|
<str name="uprefix">ignored_</str>
|
|
206
201
|
</lst>
|
|
207
202
|
</requestHandler>
|
|
203
|
+
|
|
204
|
+
<!-- Needed for Blacklight Dynamic Sitemap if noids are enabled -->
|
|
205
|
+
<updateRequestProcessorChain name="add_hashed_id">
|
|
206
|
+
<processor class="solr.processor.SignatureUpdateProcessorFactory">
|
|
207
|
+
<bool name="enabled">true</bool>
|
|
208
|
+
<str name="signatureField">hashed_id_ssi</str>
|
|
209
|
+
<bool name="overwriteDupes">false</bool>
|
|
210
|
+
<str name="fields">id</str>
|
|
211
|
+
<str name="signatureClass">solr.processor.Lookup3Signature</str>
|
|
212
|
+
</processor>
|
|
213
|
+
<processor class="solr.LogUpdateProcessorFactory" />
|
|
214
|
+
<processor class="solr.RunUpdateProcessorFactory" />
|
|
215
|
+
</updateRequestProcessorChain>
|
|
216
|
+
|
|
217
|
+
<!-- Update the /update handler -->
|
|
218
|
+
<requestHandler name="/update" class="solr.UpdateRequestHandler">
|
|
219
|
+
<lst name="defaults">
|
|
220
|
+
<str name="update.chain">add_hashed_id</str>
|
|
221
|
+
</lst>
|
|
222
|
+
</requestHandler>
|
|
223
|
+
<!-- End Blacklight Dynamic Sitemap section -->
|
|
208
224
|
</config>
|
|
@@ -15,6 +15,10 @@ on:
|
|
|
15
15
|
required: false
|
|
16
16
|
default: false
|
|
17
17
|
|
|
18
|
+
concurrency:
|
|
19
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
18
22
|
env:
|
|
19
23
|
REGISTRY: ghcr.io
|
|
20
24
|
IMAGE_NAME: ${{ github.repository }}-dev
|
|
@@ -99,7 +103,7 @@ jobs:
|
|
|
99
103
|
strategy:
|
|
100
104
|
fail-fast: false
|
|
101
105
|
matrix:
|
|
102
|
-
ci_test_app: [dassie,koppie,sirenia]
|
|
106
|
+
ci_test_app: [dassie,koppie,sirenia,allinson]
|
|
103
107
|
ci_node_total: [4]
|
|
104
108
|
ci_node_index: [0,1,2,3]
|
|
105
109
|
steps:
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Release Charts
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- "chart/**"
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
debug_enabled:
|
|
12
|
+
type: boolean
|
|
13
|
+
description: "Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)"
|
|
14
|
+
required: false
|
|
15
|
+
default: false
|
|
16
|
+
jobs:
|
|
17
|
+
release:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
permissions:
|
|
20
|
+
contents: write
|
|
21
|
+
packages: write
|
|
22
|
+
steps:
|
|
23
|
+
- name: Setup tmate session
|
|
24
|
+
uses: mxschmitt/action-tmate@v3
|
|
25
|
+
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
|
|
26
|
+
with:
|
|
27
|
+
detached: true
|
|
28
|
+
|
|
29
|
+
- name: Checkout
|
|
30
|
+
uses: actions/checkout@v3
|
|
31
|
+
with:
|
|
32
|
+
fetch-depth: 0
|
|
33
|
+
|
|
34
|
+
- name: Configure Git
|
|
35
|
+
run: |
|
|
36
|
+
git config user.name "$GITHUB_ACTOR"
|
|
37
|
+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
38
|
+
|
|
39
|
+
- name: Run chart-releaser
|
|
40
|
+
uses: samvera-labs/helm-oci-charts-releaser@main
|
|
41
|
+
with:
|
|
42
|
+
charts_dir: chart
|
|
43
|
+
oci_registry: ghcr.io/samvera
|
|
44
|
+
oci_username: samvera
|
|
45
|
+
oci_password: ${{ secrets.GITHUB_TOKEN }}
|
|
46
|
+
oci_path: charts
|
|
47
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
48
|
+
tag_name_pattern: "{chartName}-chart"
|
data/.gitignore
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
ruby-version
|
|
5
5
|
ruby-gemset
|
|
6
6
|
.rvmrc
|
|
7
|
+
mise.toml
|
|
7
8
|
Gemfile*.lock
|
|
8
9
|
|
|
9
10
|
# don't push around data files (for dev envs only)
|
|
@@ -90,3 +91,8 @@ spec/reports
|
|
|
90
91
|
/spec/examples.txt
|
|
91
92
|
node_modules
|
|
92
93
|
.env.*
|
|
94
|
+
.zed
|
|
95
|
+
.claude
|
|
96
|
+
CLAUDE.md
|
|
97
|
+
docker-compose.override.yml
|
|
98
|
+
plans/*
|
data/.koppie/.env
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
APP_NAME=koppie
|
|
2
|
+
BROWSE_EVERYTHING_FS_PROVIDER_PATH=/app/samvera/hyrax-engine/spec/fixtures
|
|
2
3
|
BUNDLE_GEMFILE=Gemfile.koppie
|
|
3
4
|
BUNDLE_PATH=/app/bundle
|
|
4
5
|
CH12N_TOOL=fits_servlet
|
|
@@ -14,6 +15,7 @@ DB_USERNAME=hyrax_user
|
|
|
14
15
|
FEDORA_URL=http://fedoraAdmin:fedoraAdmin@fcrepo:8080/fcrepo/rest
|
|
15
16
|
FITS_SERVLET_URL=http://fits:8080/fits
|
|
16
17
|
HUB_URL=http://chrome:4444/wd/hub
|
|
18
|
+
HYRAX_CLAMAV=false
|
|
17
19
|
HYRAX_DERIVATIVES_PATH=/app/samvera/hyrax-webapp/derivatives/
|
|
18
20
|
HYRAX_ENGINE_PATH=/app/samvera/hyrax-engine
|
|
19
21
|
HYRAX_UPLOAD_PATH=/app/samvera/hyrax-webapp/uploads/
|
|
@@ -41,10 +43,12 @@ SOLR_COLLECTION_NAME=koppie
|
|
|
41
43
|
SOLR_CORE_CONF_DIR=/opt/solr/server/configsets/hyraxconf
|
|
42
44
|
SOLR_CORES=koppie
|
|
43
45
|
SOLR_HOST=solr
|
|
46
|
+
SOLR_MODULES=analysis-extras,extraction
|
|
44
47
|
SOLR_PORT=8983
|
|
45
48
|
SOLR_URL=http://solr:8983/solr/koppie
|
|
46
49
|
SOLR_TEST_URL=http://solr:8983/solr/koppie-test
|
|
47
|
-
|
|
50
|
+
RSPEC_SPLIT_CONFIGURATION_PATH=/app/samvera/hyrax-engine/.koppie/rspec_split_configuration.json
|
|
51
|
+
TB_RSPEC_OPTIONS="--order defined --format RspecJunitFormatter --out rspec.xml"
|
|
48
52
|
TB_RSPEC_FORMATTER=progress
|
|
49
53
|
VALKYRIE_METADATA_ADAPTER=pg_metadata
|
|
50
54
|
VALKYRIE_STORAGE_ADAPTER=versioned_disk_storage
|
data/.koppie/Gemfile
CHANGED
|
@@ -10,6 +10,8 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
|
10
10
|
|
|
11
11
|
gem 'bootsnap', '>= 1.1.0', require: false
|
|
12
12
|
gem 'bootstrap', '~> 4.0'
|
|
13
|
+
gem 'bulkrax', github: 'samvera/bulkrax', branch: 'grounded'
|
|
14
|
+
gem 'clamby', '~> 1.6', require: ENV['HYRAX_CLAMAV'] == 'true'
|
|
13
15
|
gem 'coffee-rails', '~> 4.2'
|
|
14
16
|
gem 'dalli'
|
|
15
17
|
gem 'devise'
|
|
@@ -36,7 +38,7 @@ gem 'pg', '~> 1.3'
|
|
|
36
38
|
gem 'puma'
|
|
37
39
|
gem 'rack-mini-profiler', require: ['prepend_net_http_patch']
|
|
38
40
|
gem 'rails', '~> 7.2', '< 8.0'
|
|
39
|
-
gem 'riiif', '~> 2.
|
|
41
|
+
gem 'riiif', '~> 2.8'
|
|
40
42
|
gem 'rsolr', '>= 1.0', '< 3'
|
|
41
43
|
gem 'sass-rails', '~> 6.0'
|
|
42
44
|
gem 'sidekiq', '~> 7.0'
|
|
Binary file
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
//
|
|
17
17
|
// Required by Blacklight
|
|
18
18
|
//= require jquery3
|
|
19
|
+
//= require jquery-ui
|
|
19
20
|
//= require rails-ujs
|
|
20
21
|
//= require popper
|
|
21
22
|
//= require twitter/typeahead
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
//= require blacklight/blacklight
|
|
26
27
|
//= require blacklight_gallery
|
|
27
28
|
|
|
29
|
+
//= require bulkrax/application
|
|
28
30
|
//= require_tree .
|
|
29
31
|
//= require hyrax
|
|
30
32
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
class CatalogController < ApplicationController
|
|
3
3
|
include Hydra::Catalog
|
|
4
4
|
include Hydra::Controller::ControllerBehavior
|
|
5
|
-
|
|
5
|
+
include Hyrax::FlexibleCatalogBehavior if Hyrax.config.flexible?
|
|
6
6
|
# This filter applies the hydra access controls
|
|
7
7
|
before_action :enforce_show_permissions, only: :show
|
|
8
8
|
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:collection_resource CollectionResource`
|
|
5
5
|
class CollectionResourceForm < Hyrax::Forms::PcdmCollectionForm
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if Hyrax.config.collection_include_metadata?
|
|
7
|
+
include Hyrax::FormFields(:basic_metadata)
|
|
8
|
+
include Hyrax::FormFields(:collection_resource)
|
|
9
|
+
end
|
|
10
|
+
check_if_flexible(CollectionResource)
|
|
8
11
|
end
|
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
# @see https://github.com/samvera/hyrax/wiki/Hyrax-Valkyrie-Usage-Guide#forms
|
|
7
7
|
# @see https://github.com/samvera/valkyrie/wiki/ChangeSets-and-Dirty-Tracking
|
|
8
8
|
class GenericWorkForm < Hyrax::Forms::ResourceForm(GenericWork)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if Hyrax.config.work_include_metadata?
|
|
10
|
+
include Hyrax::FormFields(:basic_metadata)
|
|
11
|
+
include Hyrax::FormFields(:generic_work)
|
|
12
|
+
end
|
|
13
|
+
check_if_flexible(GenericWork)
|
|
12
14
|
# Define custom form fields using the Valkyrie::ChangeSet interface
|
|
13
15
|
#
|
|
14
16
|
# property :my_custom_form_field
|
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
# @see https://github.com/samvera/hyrax/wiki/Hyrax-Valkyrie-Usage-Guide#forms
|
|
7
7
|
# @see https://github.com/samvera/valkyrie/wiki/ChangeSets-and-Dirty-Tracking
|
|
8
8
|
class MonographForm < Hyrax::Forms::ResourceForm(Monograph)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if Hyrax.config.work_include_metadata?
|
|
10
|
+
include Hyrax::FormFields(:basic_metadata)
|
|
11
|
+
include Hyrax::FormFields(:monograph)
|
|
12
|
+
end
|
|
13
|
+
check_if_flexible(Monograph)
|
|
12
14
|
# Define custom form fields using the Valkyrie::ChangeSet interface
|
|
13
15
|
#
|
|
14
16
|
# property :my_custom_form_field
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:collection_resource CollectionResource`
|
|
5
5
|
class CollectionResourceIndexer < Hyrax::PcdmCollectionIndexer
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if Hyrax.config.collection_include_metadata?
|
|
7
|
+
include Hyrax::Indexer(:basic_metadata)
|
|
8
|
+
include Hyrax::Indexer(:collection_resource)
|
|
9
|
+
end
|
|
10
|
+
check_if_flexible(CollectionResource)
|
|
8
11
|
end
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:work_resource GenericWork`
|
|
5
5
|
class GenericWorkIndexer < Hyrax::ValkyrieWorkIndexer
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
if Hyrax.config.work_include_metadata?
|
|
7
|
+
include Hyrax::Indexer(:core_metadata)
|
|
8
|
+
include Hyrax::Indexer(:basic_metadata)
|
|
9
|
+
include Hyrax::Indexer(:generic_work)
|
|
10
|
+
end
|
|
11
|
+
check_if_flexible(GenericWork)
|
|
9
12
|
# Uncomment this block if you want to add custom indexing behavior:
|
|
10
13
|
# def to_solr
|
|
11
14
|
# super.tap do |index_document|
|
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:work_resource Monograph`
|
|
5
5
|
class MonographIndexer < Hyrax::ValkyrieWorkIndexer
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if Hyrax.config.work_include_metadata?
|
|
7
|
+
include Hyrax::Indexer(:core_metadata)
|
|
8
|
+
include Hyrax::Indexer(:basic_metadata)
|
|
9
|
+
include Hyrax::Indexer(:monograph)
|
|
10
|
+
end
|
|
11
|
+
check_if_flexible(Monograph)
|
|
8
12
|
|
|
9
13
|
# Uncomment this block if you want to add custom indexing behavior:
|
|
10
14
|
# def to_solr
|
|
@@ -27,6 +27,8 @@ class CollectionResource < Hyrax::PcdmCollection
|
|
|
27
27
|
# * add Valkyrie attributes to this class
|
|
28
28
|
# * update form and indexer to process the attributes
|
|
29
29
|
#
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
if Hyrax.config.collection_include_metadata
|
|
31
|
+
include Hyrax::Schema(:basic_metadata)
|
|
32
|
+
include Hyrax::Schema(:collection_resource)
|
|
33
|
+
end
|
|
32
34
|
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Bulkrax::HasLocalProcessing
|
|
4
|
+
# This method is called during build_metadata
|
|
5
|
+
# add any special processing here, for example to reset a metadata property
|
|
6
|
+
# to add a custom property from outside of the import data
|
|
7
|
+
def add_local; end
|
|
8
|
+
end
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:work_resource GenericWork`
|
|
5
5
|
class GenericWork < Hyrax::Work
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if Hyrax.config.work_include_metadata?
|
|
7
|
+
include Hyrax::Schema(:core_metadata)
|
|
8
|
+
include Hyrax::Schema(:basic_metadata)
|
|
9
|
+
include Hyrax::Schema(:generic_work)
|
|
10
|
+
end
|
|
8
11
|
end
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
# Generated via
|
|
4
4
|
# `rails generate hyrax:work_resource Monograph`
|
|
5
5
|
class Monograph < Hyrax::Work
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if Hyrax.config.work_include_metadata?
|
|
7
|
+
include Hyrax::Schema(:core_metadata)
|
|
8
|
+
include Hyrax::Schema(:basic_metadata)
|
|
9
|
+
include Hyrax::Schema(:monograph)
|
|
10
|
+
end
|
|
8
11
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
xml.instruct! :xml, version: '1.0', encoding: 'UTF-8'
|
|
4
|
+
xml.urlset(
|
|
5
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
|
|
6
|
+
'xsi:schemaLocation' => 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd',
|
|
7
|
+
'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9'
|
|
8
|
+
) do
|
|
9
|
+
config = BlacklightDynamicSitemap::Engine.config
|
|
10
|
+
@sitemap_entries.each do |doc|
|
|
11
|
+
solr_doc = SolrDocument.new(doc)
|
|
12
|
+
|
|
13
|
+
xml.url do
|
|
14
|
+
# Use Hyrax's routing logic: collections go through hyrax engine, works through main_app
|
|
15
|
+
url_parts = solr_doc.collection? ? [hyrax, solr_doc] : [main_app, solr_doc]
|
|
16
|
+
xml.loc(polymorphic_url(url_parts))
|
|
17
|
+
|
|
18
|
+
last_modified = doc[config.last_modified_field]
|
|
19
|
+
xml.lastmod(config.format_last_modified&.call(last_modified) || last_modified)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require_relative '../config/environment'
|
|
5
|
+
|
|
6
|
+
require 'slop'
|
|
7
|
+
|
|
8
|
+
def main(opts = {})
|
|
9
|
+
check_required_params
|
|
10
|
+
|
|
11
|
+
update = opts[:importer_id].present?
|
|
12
|
+
port = opts[:port].presence
|
|
13
|
+
url = build_url(opts.delete(:importer_id), opts.delete(:url), port)
|
|
14
|
+
|
|
15
|
+
headers = { 'Content-Type' => 'application/json' }
|
|
16
|
+
headers['Authorization'] = "Token: #{opts.delete(:auth_token)}"
|
|
17
|
+
params = build_params(opts)
|
|
18
|
+
|
|
19
|
+
Rails.logger.info("POST to #{url} - PARAMS #{params}")
|
|
20
|
+
|
|
21
|
+
conn = Faraday.new(
|
|
22
|
+
url: url,
|
|
23
|
+
headers: headers
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
response = if update
|
|
27
|
+
conn.put do |request|
|
|
28
|
+
request.body = params.to_json
|
|
29
|
+
end
|
|
30
|
+
else
|
|
31
|
+
conn.post do |request|
|
|
32
|
+
request.body = params.to_json
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
puts "#{response.status} - #{response.body.truncate(200)}"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def check_required_params
|
|
40
|
+
if opts[:importer_id].blank? && invalid?(opts)
|
|
41
|
+
puts 'Missing required parameters'
|
|
42
|
+
help
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
if opts[:auth_token].blank? # rubocop:disable Style/GuardClause
|
|
46
|
+
puts 'Missing Authentication Token --auth_token'
|
|
47
|
+
exit
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def invalid?(opts)
|
|
52
|
+
required_params.each do |p|
|
|
53
|
+
return true if opts[p.to_sym].blank?
|
|
54
|
+
end
|
|
55
|
+
return false
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def required_params
|
|
59
|
+
Bulkrax.api_definition['bulkrax']['importer'].map { |key, value| key if value['required'] == true }.compact
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def build_params(opts = {})
|
|
63
|
+
params = {}
|
|
64
|
+
params[:commit] = opts.delete(:commit)
|
|
65
|
+
parser_fields = {
|
|
66
|
+
metadata_file_name: opts.delete(:metadata_file_name),
|
|
67
|
+
metadata_format: opts.delete(:metadata_format),
|
|
68
|
+
rights_statement: opts.delete(:rights_statement),
|
|
69
|
+
override_rights_statement: opts.delete(:override_rights_statement),
|
|
70
|
+
import_file_path: opts.delete(:import_file_path),
|
|
71
|
+
metadata_prefix: opts.delete(:metadata_prefix),
|
|
72
|
+
set: opts.delete(:set),
|
|
73
|
+
collection_name: opts.delete(:collection_name)
|
|
74
|
+
}.compact
|
|
75
|
+
params[:importer] = opts.compact
|
|
76
|
+
params[:importer][:user_id] = opts.delete(:user_id)
|
|
77
|
+
params[:importer][:admin_set_id] = opts.delete(:admin_set_id)
|
|
78
|
+
params[:importer][:parser_fields] = parser_fields || {}
|
|
79
|
+
return params.compact
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def build_url(importer_id, url, port = nil)
|
|
83
|
+
if url.nil?
|
|
84
|
+
protocol = Rails.application.config.force_ssl ? 'https://' : 'http://'
|
|
85
|
+
host = Rails.application.config.action_mailer.default_url_options[:host]
|
|
86
|
+
url = "#{protocol}#{host}"
|
|
87
|
+
url = "#{url}:#{port}" if port
|
|
88
|
+
end
|
|
89
|
+
path = Bulkrax::Engine.routes.url_helpers.polymorphic_path(Bulkrax::Importer)
|
|
90
|
+
url = File.join(url, path)
|
|
91
|
+
url = File.join(url, importer_id) if importer_id
|
|
92
|
+
return url
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def version
|
|
96
|
+
puts "Bulkrax #{Bulkrax::VERSION}"
|
|
97
|
+
puts "Slop #{Slop::VERSION}"
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Format the help for the CLI
|
|
101
|
+
def help
|
|
102
|
+
puts 'CREATE:'
|
|
103
|
+
puts ' bin/importer --name "My Import" --parser_klass Bulkrax::CsvParser --commit "Create and Import" --import_file_path /data/tmp/import.csv --auth_token 12345'
|
|
104
|
+
puts 'UPDATE:'
|
|
105
|
+
puts ' bin/importer --importer_id 1 --commit "Update and Re-Import (update metadata only)" --import_file_path /data/tmp/import.csv --auth_token 12345'
|
|
106
|
+
puts 'PARAMETERS:'
|
|
107
|
+
Bulkrax.api_definition['bulkrax']['importer'].each_pair do |key, value|
|
|
108
|
+
next if key == 'parser_fields'
|
|
109
|
+
puts " --#{key}"
|
|
110
|
+
value.each_pair do |k, v|
|
|
111
|
+
next if k == 'contained_in'
|
|
112
|
+
puts " #{k}: #{v}"
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
puts ' --url'
|
|
116
|
+
puts " Repository URL"
|
|
117
|
+
exit
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Setup the options
|
|
121
|
+
options = Slop.parse do |o|
|
|
122
|
+
o.on '--version', 'Print the version' do
|
|
123
|
+
version
|
|
124
|
+
exit
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
o.on '--help', 'Print help' do
|
|
128
|
+
help
|
|
129
|
+
exit
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
Bulkrax.api_definition['bulkrax']['importer'].each_pair do |key, value|
|
|
133
|
+
if value['required'].blank?
|
|
134
|
+
o.string "--#{key}", value['definition'], default: nil
|
|
135
|
+
else
|
|
136
|
+
o.string "--#{key}", value['definition']
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
o.string '--url', 'Repository URL'
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
main(options.to_hash)
|
data/.koppie/bin/web
ADDED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
# The file_system provider can be a path to any directory on the server where your application is running.
|
|
4
4
|
#
|
|
5
5
|
---
|
|
6
|
+
file_system:
|
|
7
|
+
home: <%= ENV.fetch('BROWSE_EVERYTHING_FS_PROVIDER_PATH', Rails.root.join('test_files')) %>
|
|
6
8
|
# file_system:
|
|
7
9
|
# :home: "/tmp"
|
|
8
10
|
# dropbox:
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
bulkrax:
|
|
2
|
+
importer:
|
|
3
|
+
importer_id:
|
|
4
|
+
definition: 'The ID of the Importer. Used for Update only. CLI only.'
|
|
5
|
+
name:
|
|
6
|
+
definition: 'Name for the Importer'
|
|
7
|
+
required: true
|
|
8
|
+
admin_set_id:
|
|
9
|
+
definition: 'AdminSet ID. If not supplied the default AdminSet is used.'
|
|
10
|
+
parser_fields:
|
|
11
|
+
definition: 'Contains additional information which varies depending on the parser. Some is required.'
|
|
12
|
+
type: container
|
|
13
|
+
rights_statement:
|
|
14
|
+
definition: 'Supply a URI from the application rights statements'
|
|
15
|
+
valid_values: <%= Hyrax.config.rights_statement_service_class.new.select_active_options.map(&:last) %>
|
|
16
|
+
contained_in: parser_fields
|
|
17
|
+
override_rights_statement:
|
|
18
|
+
definition: 'Override any existing rights statements: 1 for yes | 0 for no'
|
|
19
|
+
valid_values:
|
|
20
|
+
- 0
|
|
21
|
+
- 1
|
|
22
|
+
contained_in: parser_fields
|
|
23
|
+
import_file_path:
|
|
24
|
+
definition: 'Path to the import file - required for CSV and BagIt only'
|
|
25
|
+
required:
|
|
26
|
+
- 'Bulkrax::BagitParser'
|
|
27
|
+
- 'Bulkrax::CsvParser'
|
|
28
|
+
contained_in: parser_fields
|
|
29
|
+
selected_files:
|
|
30
|
+
definition: 'Used by browse everything to retrieve files from cloud URLs'
|
|
31
|
+
metadata_file_name:
|
|
32
|
+
definition: 'Filename used for metadata files - required for BagIt only'
|
|
33
|
+
required:
|
|
34
|
+
- 'Bulkrax::BagitParser'
|
|
35
|
+
contained_in: parser_fields
|
|
36
|
+
metadata_format:
|
|
37
|
+
definition: 'RDF or CSV - required for BagIt only'
|
|
38
|
+
required:
|
|
39
|
+
- 'Bulkrax::BagitParser'
|
|
40
|
+
valid_values:
|
|
41
|
+
- 'Bulkrax::RdfEntry'
|
|
42
|
+
- 'Bulkrax::CsvEntry'
|
|
43
|
+
contained_in: parser_fields
|
|
44
|
+
set:
|
|
45
|
+
definition: 'The OAI setSpec - required for OAI only'
|
|
46
|
+
required:
|
|
47
|
+
- 'Bulkrax::OaiParser'
|
|
48
|
+
contained_in: parser_fields
|
|
49
|
+
collection_name:
|
|
50
|
+
definition: 'The OAI setName - required for required for OAI only'
|
|
51
|
+
required:
|
|
52
|
+
- 'Bulkrax::OaiParser'
|
|
53
|
+
contained_in: parser_fields
|
|
54
|
+
parser_klass:
|
|
55
|
+
definition: 'Parser name eg. Bulkrax::CsvParser'
|
|
56
|
+
required: true
|
|
57
|
+
valid_values: <%= Bulkrax.parsers.map {|p|p[:class_name]} %>
|
|
58
|
+
limit:
|
|
59
|
+
definition: 'Number of records to import; blank for all'
|
|
60
|
+
frequency:
|
|
61
|
+
definition: ISO 8601 Durations <%= Bulkrax::Importer.frequency_enums.map(&:first).join('; ') %>
|
|
62
|
+
valid_values: <%= Bulkrax::Importer.frequency_enums.map(&:last) %>
|
|
63
|
+
field_mapping:
|
|
64
|
+
definition: 'See bulkrax/lib/bulkrax.rb for further information'
|
|
65
|
+
user_id:
|
|
66
|
+
definition: 'ID of the User creating the Importer. If not supplied, the batch_user will be used.'
|
|
67
|
+
base_url:
|
|
68
|
+
definition: 'Base URL for the Endpoint - required for OAI Only'
|
|
69
|
+
required:
|
|
70
|
+
- 'Bulkrax::OaiParser'
|
|
71
|
+
commit:
|
|
72
|
+
definition: 'Commit Message, Bulkrax uses commit messages to decide what action to take.'
|
|
73
|
+
required: true
|
|
74
|
+
valid_values:
|
|
75
|
+
- "Create"
|
|
76
|
+
- "Create and Import"
|
|
77
|
+
- "Update Importer"
|
|
78
|
+
- "Update and Re-Import (update metadata and replace files)"
|
|
79
|
+
- "Update and Harvest Updated Items', 'Update and Re-Harvest All Items"
|
|
80
|
+
- "Update and Re-Import (update metadata only)"
|
|
81
|
+
- "Update and Import (importer has not yet been run)"
|
|
82
|
+
auth_token:
|
|
83
|
+
definition: 'Authentication token. Required for JSON requests only.'
|
|
84
|
+
required: true
|
|
85
|
+
port:
|
|
86
|
+
definition: 'Port to use in http request. Defaults to 80. May need to set to 3000 when running in the development environment'
|