hyrax 3.0.0.pre.rc2 → 3.0.0.pre.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +5 -5
- data/.dassie/.env +4 -0
- data/.dassie/.gitignore +27 -0
- data/.dassie/Gemfile +57 -0
- data/.dassie/README.md +3 -0
- data/.dassie/Rakefile +6 -0
- data/.dassie/app/actors/hyrax/actors/generic_work_actor.rb +8 -0
- data/.dassie/app/actors/hyrax/actors/namespaced_works/nested_work_actor.rb +8 -0
- data/.dassie/app/assets/config/manifest.js +3 -0
- data/.dassie/app/assets/images/.keep +0 -0
- data/.dassie/app/assets/images/unauthorized.png +0 -0
- data/.dassie/app/assets/images/us_404.svg +91 -0
- data/.dassie/app/assets/javascripts/application.js +26 -0
- data/.dassie/app/assets/javascripts/blacklight_gallery.js +1 -0
- data/.dassie/app/assets/javascripts/cable.js +13 -0
- data/.dassie/app/assets/javascripts/channels/.keep +0 -0
- data/.dassie/app/assets/javascripts/openseadragon.js +2 -0
- data/.dassie/app/assets/stylesheets/application.css +16 -0
- data/.dassie/app/assets/stylesheets/hyrax.scss +17 -0
- data/.dassie/app/assets/stylesheets/openseadragon.css +3 -0
- data/.dassie/app/channels/application_cable/channel.rb +4 -0
- data/.dassie/app/channels/application_cable/connection.rb +4 -0
- data/.dassie/app/controllers/application_controller.rb +14 -0
- data/.dassie/app/controllers/catalog_controller.rb +300 -0
- data/.dassie/app/controllers/concerns/.keep +0 -0
- data/.dassie/app/controllers/hyrax/generic_works_controller.rb +14 -0
- data/.dassie/app/controllers/hyrax/monographs_controller.rb +17 -0
- data/.dassie/app/controllers/hyrax/namespaced_works/nested_works_controller.rb +14 -0
- data/.dassie/app/forms/hyrax/generic_work_form.rb +9 -0
- data/.dassie/app/forms/hyrax/namespaced_works/nested_work_form.rb +9 -0
- data/.dassie/app/forms/monograph_form.rb +20 -0
- data/.dassie/app/helpers/application_helper.rb +2 -0
- data/.dassie/app/helpers/hyrax_helper.rb +6 -0
- data/.dassie/app/indexers/generic_work_indexer.rb +18 -0
- data/.dassie/app/indexers/monograph_indexer.rb +16 -0
- data/.dassie/app/indexers/namespaced_works/nested_work_indexer.rb +18 -0
- data/.dassie/app/jobs/application_job.rb +2 -0
- data/.dassie/app/mailers/application_mailer.rb +4 -0
- data/.dassie/app/models/ability.rb +21 -0
- data/.dassie/app/models/application_record.rb +3 -0
- data/.dassie/app/models/collection.rb +8 -0
- data/.dassie/app/models/concerns/.keep +0 -0
- data/.dassie/app/models/file_set.rb +5 -0
- data/.dassie/app/models/generic_work.rb +14 -0
- data/.dassie/app/models/monograph.rb +8 -0
- data/.dassie/app/models/namespaced_works/nested_work.rb +16 -0
- data/.dassie/app/models/qa.rb +5 -0
- data/.dassie/app/models/qa/local_authority.rb +2 -0
- data/.dassie/app/models/qa/local_authority_entry.rb +3 -0
- data/.dassie/app/models/search_builder.rb +16 -0
- data/.dassie/app/models/solr_document.rb +28 -0
- data/.dassie/app/models/time_span.rb +22 -0
- data/.dassie/app/models/user.rb +26 -0
- data/.dassie/app/presenters/hyrax/generic_work_presenter.rb +6 -0
- data/.dassie/app/presenters/hyrax/namespaced_works/nested_work_presenter.rb +6 -0
- data/.dassie/app/views/hyrax/generic_works/_generic_work.html.erb +2 -0
- data/.dassie/app/views/hyrax/monographs/_monograph.html.erb +2 -0
- data/.dassie/app/views/hyrax/namespaced_works/nested_works/_nested_work.html.erb +2 -0
- data/.dassie/app/views/layouts/application.html.erb +15 -0
- data/.dassie/app/views/layouts/mailer.html.erb +13 -0
- data/.dassie/app/views/layouts/mailer.text.erb +1 -0
- data/.dassie/bin/bundle +3 -0
- data/.dassie/bin/rails +9 -0
- data/.dassie/bin/rake +9 -0
- data/.dassie/bin/setup +36 -0
- data/.dassie/bin/spring +17 -0
- data/.dassie/bin/update +31 -0
- data/.dassie/bin/yarn +11 -0
- data/.dassie/config.ru +5 -0
- data/.dassie/config/analytics.yml +6 -0
- data/.dassie/config/application.rb +22 -0
- data/.dassie/config/arkivo.yml +6 -0
- data/.dassie/config/authorities/licenses.yml +46 -0
- data/.dassie/config/authorities/resource_types.yml +41 -0
- data/.dassie/config/authorities/rights_statements.yml +37 -0
- data/.dassie/config/blacklight.yml +9 -0
- data/.dassie/config/boot.rb +4 -0
- data/.dassie/config/browse_everything_providers.yml +2 -0
- data/.dassie/config/cable.yml +10 -0
- data/.dassie/config/credentials.yml.enc +1 -0
- data/.dassie/config/environment.rb +5 -0
- data/.dassie/config/environments/development.rb +69 -0
- data/.dassie/config/environments/production.rb +94 -0
- data/.dassie/config/environments/test.rb +51 -0
- data/.dassie/config/fedora.yml +15 -0
- data/.dassie/config/initializers/arkivo_constraint.rb +12 -0
- data/.dassie/config/initializers/assets.rb +2 -0
- data/.dassie/config/initializers/clamav.rb +2 -0
- data/.dassie/config/initializers/cookies_serializer.rb +1 -0
- data/.dassie/config/initializers/devise.rb +13 -0
- data/.dassie/config/initializers/filter_parameter_logging.rb +1 -0
- data/.dassie/config/initializers/hydra_config.rb +6 -0
- data/.dassie/config/initializers/hyrax.rb +48 -0
- data/.dassie/config/initializers/mailboxer.rb +21 -0
- data/.dassie/config/initializers/mime_types.rb +4 -0
- data/.dassie/config/initializers/mini_magick.rb +6 -0
- data/.dassie/config/initializers/redis_config.rb +4 -0
- data/.dassie/config/initializers/riiif.rb +27 -0
- data/.dassie/config/initializers/simple_form.rb +28 -0
- data/.dassie/config/initializers/simple_form_bootstrap.rb +143 -0
- data/.dassie/config/initializers/wrap_parameters.rb +3 -0
- data/.dassie/config/locales/blacklight.en.yml +3 -0
- data/.dassie/config/locales/devise.en.yml +65 -0
- data/.dassie/config/locales/generic_work.de.yml +8 -0
- data/.dassie/config/locales/generic_work.en.yml +8 -0
- data/.dassie/config/locales/generic_work.es.yml +10 -0
- data/.dassie/config/locales/generic_work.fr.yml +8 -0
- data/.dassie/config/locales/generic_work.it.yml +8 -0
- data/.dassie/config/locales/generic_work.pt-BR.yml +8 -0
- data/.dassie/config/locales/generic_work.zh.yml +10 -0
- data/.dassie/config/locales/hyrax.de.yml +58 -0
- data/.dassie/config/locales/hyrax.en.yml +58 -0
- data/.dassie/config/locales/hyrax.es.yml +58 -0
- data/.dassie/config/locales/hyrax.fr.yml +58 -0
- data/.dassie/config/locales/hyrax.it.yml +58 -0
- data/.dassie/config/locales/hyrax.pt-BR.yml +58 -0
- data/.dassie/config/locales/hyrax.zh.yml +58 -0
- data/.dassie/config/locales/namespaced_works/nested_work.de.yml +8 -0
- data/.dassie/config/locales/namespaced_works/nested_work.en.yml +8 -0
- data/.dassie/config/locales/namespaced_works/nested_work.es.yml +10 -0
- data/.dassie/config/locales/namespaced_works/nested_work.fr.yml +8 -0
- data/.dassie/config/locales/namespaced_works/nested_work.it.yml +8 -0
- data/.dassie/config/locales/namespaced_works/nested_work.pt-BR.yml +8 -0
- data/.dassie/config/locales/namespaced_works/nested_work.zh.yml +10 -0
- data/.dassie/config/metadata/monograph.yaml +55 -0
- data/.dassie/config/metadata/sample_metadata.yaml +3 -0
- data/.dassie/config/puma.rb +6 -0
- data/.dassie/config/redis.yml +9 -0
- data/.dassie/config/role_map.yml +24 -0
- data/.dassie/config/routes.rb +35 -0
- data/.dassie/config/solr.yml +7 -0
- data/.dassie/config/spring.rb +6 -0
- data/.dassie/config/storage.yml +7 -0
- data/.dassie/config/tinymce.yml +12 -0
- data/.dassie/config/uv/uv-config.json +3 -0
- data/.dassie/config/uv/uv.html +87 -0
- data/.dassie/config/valkyrie_index.yml +12 -0
- data/.dassie/config/workflows/default_workflow.json +21 -0
- data/.dassie/config/workflows/mediated_deposit_workflow.json +76 -0
- data/.dassie/config/zotero.yml +6 -0
- data/.dassie/db/migrate/20200821212749_create_searches.blacklight.rb +17 -0
- data/.dassie/db/migrate/20200821212750_create_bookmarks.blacklight.rb +19 -0
- data/.dassie/db/migrate/20200821212751_add_polymorphic_type_to_bookmarks.blacklight.rb +9 -0
- data/.dassie/db/migrate/20200821212803_devise_create_users.rb +44 -0
- data/.dassie/db/migrate/20200821212806_add_devise_guests_to_users.rb +15 -0
- data/.dassie/db/migrate/20200821212828_create_version_committers.hyrax.rb +15 -0
- data/.dassie/db/migrate/20200821212829_create_checksum_audit_logs.hyrax.rb +19 -0
- data/.dassie/db/migrate/20200821212830_create_single_use_links.hyrax.rb +12 -0
- data/.dassie/db/migrate/20200821212831_add_social_to_users.hyrax.rb +13 -0
- data/.dassie/db/migrate/20200821212832_add_ldap_attrs_to_user.hyrax.rb +27 -0
- data/.dassie/db/migrate/20200821212833_add_avatars_to_users.hyrax.rb +15 -0
- data/.dassie/db/migrate/20200821212834_create_trophies.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212835_add_linkedin_to_users.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212836_create_tinymce_assets.hyrax.rb +8 -0
- data/.dassie/db/migrate/20200821212837_create_content_blocks.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212838_create_featured_works.hyrax.rb +12 -0
- data/.dassie/db/migrate/20200821212839_add_external_key_to_content_blocks.hyrax.rb +6 -0
- data/.dassie/db/migrate/20200821212840_create_proxy_deposit_rights.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212841_create_proxy_deposit_requests.hyrax.rb +15 -0
- data/.dassie/db/migrate/20200821212842_create_file_view_stats.hyrax.rb +12 -0
- data/.dassie/db/migrate/20200821212843_create_file_download_stats.hyrax.rb +12 -0
- data/.dassie/db/migrate/20200821212844_add_orcid_to_users.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212845_create_user_stats.hyrax.rb +19 -0
- data/.dassie/db/migrate/20200821212846_create_work_view_stats.hyrax.rb +12 -0
- data/.dassie/db/migrate/20200821212847_add_works_to_user_stats.hyrax.rb +13 -0
- data/.dassie/db/migrate/20200821212848_change_trophy_generic_file_id_to_work_id.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212849_change_proxy_deposit_generic_file_id_to_work_id.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212850_change_audit_log_generic_file_id_to_file_set_id.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212851_change_proxy_deposit_request_generic_file_id_to_work_id.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212852_create_uploaded_files.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212853_create_features.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212854_create_operations.hyrax.rb +23 -0
- data/.dassie/db/migrate/20200821212855_change_featured_work_generic_file_id_to_work_id.hyrax.rb +6 -0
- data/.dassie/db/migrate/20200821212856_add_arkivo_to_users.hyrax.rb +8 -0
- data/.dassie/db/migrate/20200821212857_create_sipity.hyrax.rb +163 -0
- data/.dassie/db/migrate/20200821212858_create_sipity_workflow_methods.hyrax.rb +10 -0
- data/.dassie/db/migrate/20200821212859_create_permission_template.hyrax.rb +11 -0
- data/.dassie/db/migrate/20200821212860_create_permission_template_access.hyrax.rb +11 -0
- data/.dassie/db/migrate/20200821212861_add_release_to_permission_templates.hyrax.rb +6 -0
- data/.dassie/db/migrate/20200821212862_add_permission_template_to_sipity_workflow.hyrax.rb +26 -0
- data/.dassie/db/migrate/20200821212863_tidy_up_because_of_bad_exception.hyrax.rb +13 -0
- data/.dassie/db/migrate/20200821212864_add_allows_access_grant_to_workflow.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212865_change_checksum_audit_log.hyrax.rb +18 -0
- data/.dassie/db/migrate/20200821212866_create_job_io_wrappers.hyrax.rb +15 -0
- data/.dassie/db/migrate/20200821212867_create_collection_types.hyrax.rb +17 -0
- data/.dassie/db/migrate/20200821212868_update_collection_type_column_names.hyrax.rb +9 -0
- data/.dassie/db/migrate/20200821212869_update_collection_type_column_options.hyrax.rb +17 -0
- data/.dassie/db/migrate/20200821212870_create_collection_branding_infos.hyrax.rb +15 -0
- data/.dassie/db/migrate/20200821212871_create_collection_type_participants.hyrax.rb +11 -0
- data/.dassie/db/migrate/20200821212872_rename_admin_set_id_to_source_id.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212873_add_preferred_locale_to_users.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212874_add_collection_type_sharing_options.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212875_add_unique_constraint_to_permission_template_accesses.hyrax.rb +8 -0
- data/.dassie/db/migrate/20200821212876_add_branding_to_collection_type.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212877_add_badge_color_to_collection_types.hyrax.rb +5 -0
- data/.dassie/db/migrate/20200821212878_update_single_use_links_column_names.hyrax.rb +6 -0
- data/.dassie/db/migrate/20200821212879_change_sipity_entity_specific_responsibility.hyrax.rb +9 -0
- data/.dassie/db/migrate/20200821212880_create_mailboxer.mailboxer_engine.rb +65 -0
- data/.dassie/db/migrate/20200821212881_add_conversation_optout.mailboxer_engine.rb +15 -0
- data/.dassie/db/migrate/20200821212882_add_missing_indices.mailboxer_engine.rb +20 -0
- data/.dassie/db/migrate/20200821212883_add_delivery_tracking_info_to_mailboxer_receipts.mailboxer_engine.rb +8 -0
- data/.dassie/db/migrate/20200821212884_create_qa_local_authorities.rb +10 -0
- data/.dassie/db/migrate/20200821212885_create_qa_local_authority_entries.rb +12 -0
- data/.dassie/db/migrate/20200821212902_create_minter_states.noid_rails_engine.rb +17 -0
- data/.dassie/db/migrate/20200821212903_rename_minter_state_random_to_rand.noid_rails_engine.rb +8 -0
- data/.dassie/db/schema.rb +563 -0
- data/.dassie/db/seeds.rb +14 -0
- data/.dassie/lib/assets/.keep +0 -0
- data/.dassie/lib/tasks/.keep +0 -0
- data/.dassie/log/.keep +0 -0
- data/.dassie/package.json +17 -0
- data/.dassie/public/404.html +67 -0
- data/.dassie/public/422.html +67 -0
- data/.dassie/public/500.html +66 -0
- data/.dassie/public/apple-touch-icon-precomposed.png +0 -0
- data/.dassie/public/apple-touch-icon.png +0 -0
- data/.dassie/public/favicon.ico +0 -0
- data/.dassie/public/robots.txt +1 -0
- data/.dassie/solr/conf/_rest_managed.json +3 -0
- data/.dassie/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/.dassie/solr/conf/schema.xml +367 -0
- data/.dassie/solr/conf/scripts.conf +24 -0
- data/.dassie/solr/conf/solrconfig.xml +208 -0
- data/.dassie/solr/conf/stopwords.txt +58 -0
- data/.dassie/solr/conf/stopwords_en.txt +58 -0
- data/.dassie/solr/conf/xslt/example.xsl +132 -0
- data/.dassie/solr/conf/xslt/example_atom.xsl +67 -0
- data/.dassie/solr/conf/xslt/example_rss.xsl +66 -0
- data/.dassie/solr/conf/xslt/luke.xsl +337 -0
- data/.dassie/solr/sample_solr_documents.yml +2692 -0
- data/.dassie/storage/.keep +0 -0
- data/.dassie/values.stage.yaml +7 -0
- data/.dassie/values.yaml +15 -0
- data/.dassie/vendor/.keep +0 -0
- data/.dockerignore +11 -0
- data/.env +26 -0
- data/.github/CODE_OF_CONDUCT.md +4 -4
- data/.github/CONTRIBUTING.md +1 -1
- data/.github/SUPPORT.md +13 -1
- data/.gitignore +1 -1
- data/.regen +1 -1
- data/.rubocop.yml +1 -0
- data/.rubocop_fixme.yml +4 -0
- data/CODE_OF_CONDUCT.md +4 -4
- data/CONTAINERS.md +148 -0
- data/CONTRIBUTING.md +1 -1
- data/Dockerfile +75 -0
- data/Gemfile +26 -35
- data/README.md +61 -288
- data/app/actors/hyrax/actors/attach_members_actor.rb +7 -5
- data/app/actors/hyrax/actors/base_actor.rb +0 -1
- data/app/actors/hyrax/actors/create_with_files_ordered_members_actor.rb +28 -28
- data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +2 -3
- data/app/actors/hyrax/actors/create_with_remote_files_ordered_members_actor.rb +23 -28
- data/app/actors/hyrax/actors/default_admin_set_actor.rb +20 -21
- data/app/actors/hyrax/actors/file_actor.rb +32 -32
- data/app/actors/hyrax/actors/file_set_actor.rb +4 -15
- data/app/actors/hyrax/actors/initialize_workflow_actor.rb +8 -0
- data/app/actors/hyrax/actors/transfer_request_actor.rb +5 -0
- data/app/assets/javascripts/hyrax.js +1 -0
- data/app/assets/javascripts/hyrax/skip_to_content.js +15 -0
- data/app/assets/stylesheets/hyrax/_usage-stats.scss +1 -1
- data/app/authorities/qa/authorities/collections.rb +18 -8
- data/app/authorities/qa/authorities/find_works.rb +20 -5
- data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +15 -6
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +62 -31
- data/app/controllers/hyrax/dashboard/collections_controller.rb +22 -12
- data/app/controllers/hyrax/dashboard/works_controller.rb +3 -4
- data/app/controllers/hyrax/file_sets_controller.rb +19 -10
- data/app/controllers/hyrax/homepage_controller.rb +11 -11
- data/app/controllers/hyrax/my/collections_controller.rb +5 -6
- data/app/controllers/hyrax/my/highlights_controller.rb +2 -3
- data/app/controllers/hyrax/my/shares_controller.rb +2 -3
- data/app/controllers/hyrax/my/works_controller.rb +1 -6
- data/app/controllers/hyrax/my_controller.rb +10 -2
- data/app/controllers/hyrax/permissions_controller.rb +1 -0
- data/app/controllers/hyrax/single_use_links_viewer_controller.rb +11 -5
- data/app/controllers/hyrax/users_controller.rb +5 -10
- data/app/forms/hyrax/forms/failed_submission_form_wrapper.rb +136 -0
- data/app/forms/hyrax/forms/resource_form.rb +8 -4
- data/app/helpers/hyrax/collections_helper.rb +1 -1
- data/app/helpers/hyrax/dashboard_helper_behavior.rb +7 -2
- data/app/helpers/hyrax/embargo_helper.rb +5 -1
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +10 -5
- data/app/helpers/hyrax/lease_helper.rb +5 -1
- data/app/indexers/hyrax/pcdm_collection_indexer.rb +21 -0
- data/app/indexers/hyrax/resource_indexer.rb +3 -1
- data/app/indexers/hyrax/valkyrie_collection_indexer.rb +3 -12
- data/app/indexers/hyrax/valkyrie_indexer.rb +45 -17
- data/app/indexers/hyrax/valkyrie_work_indexer.rb +16 -0
- data/app/jobs/attach_files_to_work_job.rb +3 -41
- data/app/jobs/embargo_expiry_job.rb +15 -0
- data/app/jobs/event_job.rb +14 -7
- data/app/jobs/hyrax/application_job.rb +6 -1
- data/app/jobs/import_url_job.rb +11 -5
- data/app/jobs/inherit_permissions_job.rb +6 -25
- data/app/jobs/lease_expiry_job.rb +15 -0
- data/app/models/admin_set.rb +1 -1
- data/app/models/concerns/hyrax/ability.rb +192 -21
- data/app/models/concerns/hyrax/ability/admin_set_ability.rb +0 -5
- data/app/models/concerns/hyrax/collection_behavior.rb +7 -13
- data/app/models/concerns/hyrax/permissions/writable.rb +2 -2
- data/app/models/concerns/hyrax/solr_document/characterization.rb +35 -2
- data/app/models/concerns/hyrax/solr_document_behavior.rb +37 -5
- data/app/models/hyrax/change_set.rb +5 -1
- data/app/models/hyrax/collection_type.rb +59 -22
- data/app/models/hyrax/event.rb +5 -7
- data/app/models/hyrax/file_metadata.rb +15 -4
- data/app/models/hyrax/pcdm_collection.rb +13 -0
- data/app/models/hyrax/uploaded_file.rb +9 -2
- data/app/models/hyrax/{active_job_proxy.rb → valkyrie_global_id_proxy.rb} +6 -5
- data/app/models/hyrax/virus_scanner.rb +2 -1
- data/app/models/hyrax/work.rb +1 -1
- data/app/models/sipity.rb +6 -0
- data/app/models/sipity/entity.rb +1 -1
- data/app/models/sipity/workflow.rb +23 -3
- data/app/presenters/hyrax/admin/repository_object_presenter.rb +7 -2
- data/app/presenters/hyrax/collection_presenter.rb +1 -1
- data/app/presenters/hyrax/file_set_presenter.rb +3 -0
- data/app/presenters/hyrax/iiif_manifest_presenter.rb +3 -3
- data/app/presenters/hyrax/permission_badge.rb +1 -1
- data/app/presenters/hyrax/presenter_factory.rb +0 -2
- data/app/presenters/hyrax/select_collection_type_presenter.rb +16 -3
- data/app/presenters/hyrax/select_type_presenter.rb +3 -2
- data/app/presenters/hyrax/stats_usage_presenter.rb +0 -1
- data/app/presenters/hyrax/work_show_presenter.rb +1 -1
- data/app/renderers/hyrax/renderers/attribute_renderer.rb +16 -6
- data/app/search_builders/hyrax/README.md +3 -3
- data/app/search_builders/hyrax/admin_admin_set_member_search_builder.rb +8 -2
- data/app/search_builders/hyrax/collection_member_search_builder.rb +21 -7
- data/app/search_builders/hyrax/dashboard/managed_search_filters.rb +1 -1
- data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +1 -1
- data/app/search_builders/hyrax/embargo_search_builder.rb +0 -1
- data/app/search_builders/hyrax/filter_by_type.rb +3 -1
- data/app/search_builders/hyrax/lease_search_builder.rb +0 -1
- data/app/search_builders/hyrax/nested_collections_parent_search_builder.rb +12 -2
- data/app/search_builders/hyrax/search_builder.rb +1 -4
- data/app/search_builders/hyrax/search_filters.rb +0 -2
- data/app/services/hyrax/access_control_list.rb +33 -2
- data/app/services/hyrax/adapters/nesting_index_adapter.rb +26 -7
- data/app/services/hyrax/admin_set_member_service.rb +18 -4
- data/{lib/hyrax/callbacks/registry.rb → app/services/hyrax/callbacks.rb} +23 -0
- data/app/services/hyrax/change_content_depositor_service.rb +4 -1
- data/app/services/hyrax/collection_member_service.rb +5 -1
- data/app/services/hyrax/collection_types/permissions_service.rb +0 -2
- data/app/services/hyrax/collections/collection_member_service.rb +44 -64
- data/app/services/hyrax/collections/managed_collections_service.rb +15 -2
- data/app/services/hyrax/collections/migration_service.rb +9 -3
- data/app/services/hyrax/collections/nested_collection_persistence_service.rb +1 -1
- data/app/services/hyrax/collections/nested_collection_query_service.rb +39 -19
- data/app/services/hyrax/collections/permissions_service.rb +0 -1
- data/app/services/hyrax/collections_service.rb +12 -12
- data/app/services/hyrax/custom_queries/find_collections_by_type.rb +1 -1
- data/app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb +14 -3
- data/app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb +14 -3
- data/app/services/hyrax/custom_queries/navigators/child_works_navigator.rb +10 -3
- data/app/services/hyrax/custom_queries/navigators/collection_members.rb +1 -0
- data/app/services/hyrax/custom_queries/navigators/find_files.rb +3 -0
- data/app/services/hyrax/database_migrator.rb +13 -10
- data/app/services/hyrax/default_middleware_stack.rb +0 -6
- data/app/services/hyrax/ensure_well_formed_admin_set_service.rb +27 -0
- data/app/services/hyrax/file_set_fixity_check_service.rb +16 -17
- data/app/services/hyrax/file_set_type_service.rb +55 -0
- data/app/services/hyrax/graph_exporter.rb +64 -8
- data/app/services/hyrax/list_source_exporter.rb +16 -34
- data/app/services/hyrax/listeners.rb +22 -0
- data/app/services/hyrax/listeners/proxy_deposit_listener.rb +20 -0
- data/app/services/hyrax/listeners/workflow_listener.rb +36 -0
- data/app/services/hyrax/multiple_membership_checker.rb +2 -1
- data/app/services/hyrax/quick_classification_query.rb +2 -3
- data/app/services/hyrax/resource_visibility_propagator.rb +1 -1
- data/app/services/hyrax/search_service.rb +108 -0
- data/app/services/hyrax/simple_schema_loader.rb +3 -1
- data/app/services/hyrax/statistics/depositors/summary.rb +0 -1
- data/app/services/hyrax/statistics/system_stats.rb +0 -1
- data/app/services/hyrax/thumbnail_path_service.rb +6 -1
- data/app/services/hyrax/time_service.rb +10 -0
- data/app/services/hyrax/versioning_service.rb +4 -28
- data/app/services/hyrax/work_uploads_handler.rb +166 -0
- data/app/services/hyrax/workflow/action_taken_service.rb +14 -1
- data/app/services/hyrax/workflow/grant_edit_to_depositor.rb +3 -1
- data/app/services/hyrax/workflow/permission_generator.rb +14 -9
- data/app/services/hyrax/workflow/workflow_action_service.rb +1 -1
- data/app/services/hyrax/workflow/workflow_factory.rb +12 -10
- data/app/services/hyrax/working_directory.rb +0 -1
- data/app/services/hyrax/works/managed_works_service.rb +14 -2
- data/app/views/_controls.html.erb +1 -1
- data/app/views/hyrax/admin/collection_types/index.html.erb +1 -1
- data/app/views/hyrax/base/_member.html.erb +1 -1
- data/app/views/hyrax/base/_representative_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 +2 -2
- data/app/views/hyrax/batch_select/_add_button.html.erb +1 -1
- data/app/views/hyrax/collections/_default_group.html.erb +2 -0
- data/app/views/hyrax/collections/show.html.erb +1 -1
- data/app/views/hyrax/dashboard/works/_default_group.html.erb +2 -0
- data/app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb +1 -1
- data/app/views/hyrax/leases/_list_expired_active_leases.html.erb +2 -1
- data/app/views/hyrax/my/works/_default_group.html.erb +2 -0
- data/app/views/layouts/hyrax.html.erb +0 -15
- data/bin/db-migrate-seed.sh +9 -0
- data/bin/db-wait.sh +14 -0
- data/bin/hyrax-entrypoint.sh +15 -0
- data/chart/fcrepo/.gitignore +2 -0
- data/chart/fcrepo/.helmignore +23 -0
- data/chart/fcrepo/Chart.yaml +11 -0
- data/chart/fcrepo/README.md +50 -0
- data/chart/fcrepo/templates/NOTES.txt +21 -0
- data/chart/fcrepo/templates/_helpers.tpl +68 -0
- data/chart/fcrepo/templates/configmap-env.yaml +19 -0
- data/chart/fcrepo/templates/deployment.yaml +109 -0
- data/chart/fcrepo/templates/ingress.yaml +41 -0
- data/chart/fcrepo/templates/pvc.yaml +20 -0
- data/chart/fcrepo/templates/secret.yaml +12 -0
- data/chart/fcrepo/templates/service.yaml +15 -0
- data/chart/fcrepo/templates/serviceaccount.yaml +12 -0
- data/chart/fcrepo/templates/tests/test-connection.yaml +15 -0
- data/chart/fcrepo/values.yaml +79 -0
- data/chart/hyrax/.gitignore +2 -0
- data/chart/hyrax/.helmignore +23 -0
- data/chart/hyrax/Chart.yaml +27 -0
- data/chart/hyrax/README.md +69 -0
- data/chart/hyrax/templates/NOTES.txt +21 -0
- data/chart/hyrax/templates/_helpers.tpl +92 -0
- data/chart/hyrax/templates/configmap-env.yaml +32 -0
- data/chart/hyrax/templates/deployment.yaml +79 -0
- data/chart/hyrax/templates/fcrepo-secret.yaml +13 -0
- data/chart/hyrax/templates/hpa.yaml +28 -0
- data/chart/hyrax/templates/ingress.yaml +41 -0
- data/chart/hyrax/templates/secrets.yaml +12 -0
- data/chart/hyrax/templates/service.yaml +15 -0
- data/chart/hyrax/templates/serviceaccount.yaml +12 -0
- data/chart/hyrax/templates/tests/test-connection.yaml +15 -0
- data/chart/hyrax/values.yaml +97 -0
- data/config/initializers/indexing_adapter_initializer.rb +7 -12
- data/config/initializers/listeners.rb +2 -0
- data/config/locales/hyrax.en.yml +1 -1
- data/config/metadata/basic_metadata.yaml +13 -0
- data/db/seeds.rb +20 -0
- data/docker-compose.yml +132 -0
- data/documentation/developing-your-hyrax-based-app.md +271 -0
- data/documentation/legacyREADME.md +336 -0
- data/documentation/note-about-versions.md +15 -0
- data/hyrax.gemspec +7 -8
- data/lib/generators/hyrax/templates/config/initializers/hyrax.rb +4 -6
- data/lib/generators/hyrax/templates/config/locales/hyrax.es.yml +1 -1
- data/lib/generators/hyrax/templates/db/seeds.rb +16 -14
- data/lib/generators/hyrax/templates/uv.html +1 -1
- data/lib/generators/hyrax/work_resource/templates/controller.rb.erb +0 -5
- data/lib/generators/hyrax/work_resource/templates/form.rb.erb +1 -1
- data/lib/generators/hyrax/work_resource/templates/work.html.erb_spec.rb.erb +3 -2
- data/lib/hyrax.rb +17 -0
- data/lib/hyrax/configuration.rb +340 -200
- data/lib/hyrax/event_store.rb +5 -0
- data/lib/hyrax/form_fields.rb +1 -1
- data/lib/hyrax/indexer.rb +19 -3
- data/lib/hyrax/publisher.rb +71 -2
- data/lib/hyrax/resource_sync/change_list_writer.rb +1 -1
- data/lib/hyrax/resource_sync/resource_list_writer.rb +1 -1
- data/lib/hyrax/schema.rb +2 -2
- data/lib/hyrax/specs/capybara.rb +98 -0
- data/lib/hyrax/specs/clamav.rb +15 -0
- data/lib/hyrax/specs/disable_animations_in_test_environment.rb +53 -0
- data/lib/hyrax/specs/engine_routes.rb +11 -0
- data/lib/hyrax/specs/shared_specs/change_set.rb +11 -0
- data/lib/hyrax/specs/shared_specs/factories/strategies/json_strategy.rb +13 -0
- data/lib/hyrax/specs/shared_specs/factories/strategies/valkyrie_resource.rb +0 -11
- data/lib/hyrax/specs/shared_specs/hydra_works.rb +6 -0
- data/lib/hyrax/specs/shared_specs/indexers.rb +22 -5
- data/lib/hyrax/specs/shared_specs/metadata.rb +64 -0
- data/lib/hyrax/specs/spy_listener.rb +52 -26
- data/lib/hyrax/transactions/container.rb +13 -1
- data/lib/hyrax/transactions/steps/add_file_sets.rb +35 -0
- data/lib/hyrax/transactions/steps/save.rb +10 -4
- data/lib/hyrax/transactions/steps/save_access_control.rb +29 -0
- data/lib/hyrax/transactions/steps/set_default_admin_set.rb +1 -1
- data/lib/hyrax/transactions/update_work.rb +3 -1
- data/lib/hyrax/transactions/work_create.rb +3 -1
- data/lib/hyrax/version.rb +1 -1
- data/lib/tasks/collection_type_global_id.rake +22 -0
- data/lib/tasks/default_admin_set.rake +5 -0
- data/lib/wings.rb +1 -1
- data/lib/wings/active_fedora_converter.rb +71 -123
- data/lib/wings/active_fedora_converter/default_work.rb +129 -0
- data/lib/wings/active_fedora_converter/nested_resource.rb +25 -0
- data/lib/wings/attribute_transformer.rb +28 -1
- data/lib/wings/converter_value_mapper.rb +70 -3
- data/lib/wings/model_registry.rb +4 -3
- data/lib/wings/model_transformer.rb +25 -7
- data/lib/wings/orm_converter.rb +19 -23
- data/lib/wings/services/custom_queries/find_collections_by_type.rb +1 -1
- data/lib/wings/services/custom_queries/find_file_metadata.rb +65 -38
- data/lib/wings/services/file_converter_service.rb +6 -55
- data/lib/wings/services/file_metadata_builder.rb +12 -8
- data/lib/wings/setup.rb +56 -9
- data/lib/wings/transformer_value_mapper.rb +1 -0
- data/lib/wings/valkyrie/metadata_adapter.rb +2 -2
- data/lib/wings/valkyrie/persister.rb +13 -14
- data/lib/wings/valkyrie/storage.rb +94 -0
- data/tasks/benchmark.rake +56 -0
- data/template.rb +1 -3
- metadata +346 -54
- data/lib/hyrax/callbacks.rb +0 -27
- data/lib/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior.rb +0 -28
- data/lib/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior.rb +0 -28
- data/lib/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior.rb +0 -171
- data/lib/wings/hydra/works/models/concerns/collection_valkyrie_behavior.rb +0 -31
- data/lib/wings/hydra/works/models/concerns/file_set_valkyrie_behavior.rb +0 -31
- data/lib/wings/hydra/works/models/concerns/work_valkyrie_behavior.rb +0 -60
- data/lib/wings/models/concerns/collection_behavior.rb +0 -39
- data/lib/wings/models/multi_checksum.rb +0 -18
- data/lib/wings/services/id_converter_service.rb +0 -15
- data/lib/wings/valkyrie/storage/active_fedora.rb +0 -27
File without changes
|
data/.dassie/values.yaml
ADDED
File without changes
|
data/.dockerignore
ADDED
data/.env
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
CAPYBARA_SERVER=http://app:3010
|
2
|
+
CHROME_HEADLESS_MODE=false
|
3
|
+
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
|
4
|
+
DATABASE_TEST_URL=postgresql://hyrax_user:hyrax_password@postgres/hyrax_test?pool=5
|
5
|
+
DATABASE_URL=postgresql://hyrax_user:hyrax_password@postgres/hyrax?pool=5
|
6
|
+
DB_PORT=5432
|
7
|
+
DB_HOST=postgres
|
8
|
+
FCREPO_PORT=8080
|
9
|
+
FCREPO_HOST=fcrepo
|
10
|
+
FCREPO_REST_PATH=fcrepo/rest
|
11
|
+
FCREPO_TEST_BASE_PATH=/test
|
12
|
+
HUB_URL=http://chrome:4444/wd/hub
|
13
|
+
HYRAX_DERIVATIVES_PATH=/app/samvera/hyrax-webapp/derivatives/
|
14
|
+
HYRAX_ENGINE_PATH=/app/samvera/hyrax-engine
|
15
|
+
HYRAX_UPLOAD_PATH=/app/samvera/hyrax-webapp/uploads/
|
16
|
+
IN_DOCKER=true
|
17
|
+
RACK_ENV=development
|
18
|
+
RAILS_ENV=development
|
19
|
+
RAILS_ROOT=.dassie
|
20
|
+
REDIS_HOST=redis
|
21
|
+
SOLR_PORT=8983
|
22
|
+
SOLR_HOST=solr
|
23
|
+
SOLR_TEST_URL=http://solr:8983/solr/hyrax_test
|
24
|
+
SOLR_URL=http://solr:8983/solr/hyrax
|
25
|
+
VALKYRIE_SOLR_PORT=8983
|
26
|
+
VALKYRIE_SOLR_HOST=solr
|
data/.github/CODE_OF_CONDUCT.md
CHANGED
@@ -22,15 +22,15 @@ mutual respect and reasoned argument.
|
|
22
22
|
Community members work together to promote a respectful and safe
|
23
23
|
community. In the event that someone’s conduct is causing offence or
|
24
24
|
distress, Samvera has a detailed
|
25
|
-
[Anti-Harassment Policy and Protocol](https://wiki.
|
25
|
+
[Anti-Harassment Policy and Protocol](https://wiki.lyrasis.org/display/samvera/Anti-Harassment+Policy)
|
26
26
|
which can be applied to address the problem. The first step in dealing
|
27
27
|
with any serious misconduct is to contact a local meeting organizer,
|
28
28
|
the
|
29
|
-
[Samvera community helpers](https://wiki.
|
29
|
+
[Samvera community helpers](https://wiki.lyrasis.org/display/samvera/Samvera+Community+Helpers)
|
30
30
|
([email](mailto:helpers@samvera.org)), a community member you
|
31
31
|
trust, or the
|
32
|
-
[Samvera Steering Group](https://wiki.
|
32
|
+
[Samvera Steering Group](https://wiki.lyrasis.org/display/samvera/Samvera+Steering+Group+membership)
|
33
33
|
immediately; at Samvera events, these people can be identified by
|
34
34
|
distinctive name badges. The
|
35
|
-
[Policy and Protocol](https://wiki.
|
35
|
+
[Policy and Protocol](https://wiki.lyrasis.org/display/samvera/Anti-Harassment+Policy)
|
36
36
|
should be consulted for fuller details.
|
data/.github/CONTRIBUTING.md
CHANGED
@@ -18,7 +18,7 @@ All code contributors must have an Individual Contributor License Agreement
|
|
18
18
|
an institution, the institution must have a Corporate Contributor License
|
19
19
|
Agreement (cCLA) on file.
|
20
20
|
|
21
|
-
https://wiki.
|
21
|
+
https://wiki.lyrasis.org/display/samvera/Samvera+Community+Intellectual+Property+Licensing+and+Ownership
|
22
22
|
|
23
23
|
You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
|
24
24
|
|
data/.github/SUPPORT.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# Getting Help
|
2
|
+
|
3
|
+
If you have questions or need help, please email [the Samvera community tech list](mailto:samvera-tech@googlegroups.com) or stop by the #dev channel in [the Samvera community Slack team](https://wiki.lyrasis.org/pages/viewpage.action?pageId=87460391#Getintouch!-Slack).
|
4
|
+
|
5
|
+
The [Hyrax wiki](https://github.com/samvera/hyrax/wiki) gathers documentation as the community tries things and learns what works. There is useful knowledge and history there but please keep in mind that this information can age quickly. Refer to the [README.md](./README.md) for the best updated guidance we have to offer.
|
6
|
+
|
7
|
+
You can also look in the [Samvera Community Knowledge Base](https://samvera.github.io) for help with Hyrax or other Samvera Community questions.
|
8
|
+
|
9
|
+
## Reporting Issues
|
10
|
+
|
1
11
|
If you would like to report an issue with Hyrax, first do search [the list of issues](https://github.com/samvera/hyrax/issues/) to see if someone else has already reported it, and then feel free to [create a new issue](https://github.com/samvera/hyrax/issues/new).
|
2
12
|
|
3
|
-
|
13
|
+
## Reporting Security Issues
|
14
|
+
|
15
|
+
To report a security vulnerability, email [samvera-steering@googlegroups.com](mailto:samvera-steering@googlegroups.com) and the Steering Group will coordinate the community response. In your message, please document to the best of your ability cases (relevant software versions, conditions, etc.) where the vulnerability is applicable, the potential negative effects, and any known workarounds or fixes to mitigate the risk. Steering will communicate this to the Partners and the rest of the community in a timely fashion.
|
data/.gitignore
CHANGED
data/.regen
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
35idx
|
data/.rubocop.yml
CHANGED
data/.rubocop_fixme.yml
CHANGED
@@ -127,6 +127,10 @@ RSpec/AnyInstance:
|
|
127
127
|
- 'spec/services/hyrax/workflow/sipity_actions_generator_spec.rb'
|
128
128
|
- 'spec/services/hyrax/workflow/state_machine_generator_spec.rb'
|
129
129
|
- 'spec/services/hyrax/workflow/workflow_permissions_generator_spec.rb'
|
130
|
+
- 'spec/controllers/hyrax/homepage_controller_spec.rb'
|
131
|
+
- 'spec/controllers/hyrax/my/collections_controller_spec.rb'
|
132
|
+
- 'spec/controllers/hyrax/my/works_controller_spec.rb'
|
133
|
+
- 'spec/presenters/hyrax/admin/repository_object_presenter_spec.rb'
|
130
134
|
|
131
135
|
# Offense count: 51
|
132
136
|
RSpec/ExpectInHook:
|
data/CODE_OF_CONDUCT.md
CHANGED
@@ -22,15 +22,15 @@ mutual respect and reasoned argument.
|
|
22
22
|
Community members work together to promote a respectful and safe
|
23
23
|
community. In the event that someone’s conduct is causing offence or
|
24
24
|
distress, Samvera has a detailed
|
25
|
-
[Anti-Harassment Policy and Protocol](https://wiki.
|
25
|
+
[Anti-Harassment Policy and Protocol](https://wiki.lyrasis.org/display/samvera/Anti-Harassment+Policy)
|
26
26
|
which can be applied to address the problem. The first step in dealing
|
27
27
|
with any serious misconduct is to contact a local meeting organizer,
|
28
28
|
the
|
29
|
-
[Samvera community helpers](https://wiki.
|
29
|
+
[Samvera community helpers](https://wiki.lyrasis.org/display/samvera/Samvera+Community+Helpers)
|
30
30
|
([email](mailto:helpers@samvera.org)), a community member you
|
31
31
|
trust, or the
|
32
|
-
[Samvera Steering Group](https://wiki.
|
32
|
+
[Samvera Steering Group](https://wiki.lyrasis.org/display/samvera/Samvera+Steering+Group+membership)
|
33
33
|
immediately; at Samvera events, these people can be identified by
|
34
34
|
distinctive name badges. The
|
35
|
-
[Policy and Protocol](https://wiki.
|
35
|
+
[Policy and Protocol](https://wiki.lyrasis.org/display/samvera/Anti-Harassment+Policy)
|
36
36
|
should be consulted for fuller details.
|
data/CONTAINERS.md
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
Hyrax-in-a-Container
|
2
|
+
====================
|
3
|
+
|
4
|
+
Our goal is to provide a practical, reusable "reference environment for applications. The first step is providing
|
5
|
+
on on-ramp for Hyrax engine development. Then providing help with Hyrax-based application development. Finally,
|
6
|
+
providing better guidance around deployment.
|
7
|
+
|
8
|
+
Where are we at? It's complicated. What we have below is experimental support, but one that we want to push
|
9
|
+
towards. We need your help to keep pushing in this direction. So dig in and prepare to get your hands dirty.
|
10
|
+
|
11
|
+
The [Hyrax Engine Development](#hyrax-engine-development) is further along than the [Docker Image for Hyrax-based Applications](docker-image-for-hyrax-based-applications) which is further along than [Deploying to Production](#deploying-to-production).
|
12
|
+
|
13
|
+
<!-- NOTE: This title is referenced in the top-level README.md. Keep that in mind if you change it. -->
|
14
|
+
## Hyrax Engine Development
|
15
|
+
|
16
|
+
We support a `docker-compose`-based development environment for folks working on
|
17
|
+
the Hyrax engine. This environment is substantially more like a Hyrax production
|
18
|
+
setup than the older `fedora_wrapper`/`solr_wrapper` approach.
|
19
|
+
|
20
|
+
First, make sure you have installed [Docker](https://www.docker.com/). Then clone [the Hyrax repository](https://github.com/samvera/hyrax).
|
21
|
+
|
22
|
+
Within your cloned repository, tell Docker to get started installing your development environment:
|
23
|
+
|
24
|
+
```sh
|
25
|
+
docker-compose build
|
26
|
+
docker-compose up
|
27
|
+
```
|
28
|
+
|
29
|
+
This starts containers for:
|
30
|
+
|
31
|
+
- a `hyrax` test application (`.dassie`);
|
32
|
+
- Fedora
|
33
|
+
- Solr
|
34
|
+
- Postgresql
|
35
|
+
- Redis
|
36
|
+
- Memcached
|
37
|
+
- SideKiq (for background jobs)
|
38
|
+
|
39
|
+
It also runs database migrations. This will also bring up a development application on `http://localhost:3000`.
|
40
|
+
|
41
|
+
To stop the containers for the Hyrax-based application, type <kbd>Ctrl</kbd>+<kbd>c</kbd>. To restart the containers you need only run `docker-compose up`.
|
42
|
+
|
43
|
+
_**Note:** Starting and stopping Docker in this way will preserve your data between restarts._
|
44
|
+
|
45
|
+
### Code Changes and Testing
|
46
|
+
|
47
|
+
With `docker-compose up` running, any changes you make to your cloned Hyrax code-base should show up in `http://localhost:3000`; There may be cases where you need to restart your test application (e.g. stop the containers and start them up again).
|
48
|
+
|
49
|
+
Any changes you make to Hyrax should be tested. You can run the full test suite using the following command:
|
50
|
+
|
51
|
+
```sh
|
52
|
+
docker-compose exec -w /app/samvera/hyrax-engine app sh -c "bundle exec rspec"
|
53
|
+
```
|
54
|
+
|
55
|
+
Let's break down the above command:
|
56
|
+
|
57
|
+
<dl>
|
58
|
+
<dt><code>docker-compose exec</code></dt>
|
59
|
+
<dd>Tell docker to run the following:</dd>
|
60
|
+
<dt><code>-w /app/samvera/hyrax-engine</code></dt>
|
61
|
+
<dd>In the working directory "/app/samvera/hyrax-engine" (e.g. your cloned Hyrax repository)</dd>
|
62
|
+
<dt><code>app</code></dt>
|
63
|
+
<dd>of the container named "app"</dd>
|
64
|
+
<dt><code>sh -c</code>
|
65
|
+
<dd>run the following shell script</dd>
|
66
|
+
<dt><code>"bundle exec rspec"</code></dt>
|
67
|
+
<dd>run the rspec test suite</dd>
|
68
|
+
</dl>
|
69
|
+
|
70
|
+
_**Note:**_ The `bundle exec rspec` portion of the command runs the whole test suite. See the [rspec command documentation](https://github.com/rspec/rspec-core#the-rspec-command) for how to refine your test runs.
|
71
|
+
|
72
|
+
_**Note**: The `/app/samvera/hyrax-webapp` is analogous to the `.internal_test_app` that we generate as part of the Hyrax engine Continuous Integration._
|
73
|
+
|
74
|
+
### The Docker Container Named "app"
|
75
|
+
|
76
|
+
As a developer, you may need to run commands against the Hyrax-based application and/or the Hyrax engine. Examples
|
77
|
+
of those commands are `rails db:migrate` and `rspec`. You would run `rails db:migrate` on the Hyrax-based
|
78
|
+
application, and `rspec` on the Hyrax engine.
|
79
|
+
|
80
|
+
In the engine development `app` container, the `.dassie` test Hyrax-based application is setup as a docker
|
81
|
+
bind mount to `/app/samvera/hyrax-webapp`, and your local development copy of Hyrax (eg. the clone [samvera/hyrax](https://github.com/samvera/hyrax)) is bound to
|
82
|
+
`/app/samvera/hyrax-engine`. Those directories are defined as part of the [Dockerfile](Dockerfile) configuration.
|
83
|
+
.
|
84
|
+
What does this structure mean? Let's look at an example. The following command will list the rake tasks for the Hyrax-based application running in Docker:
|
85
|
+
|
86
|
+
```sh
|
87
|
+
docker-compose exec -w /app/samvera/hyrax-webapp app sh -c "bundle exec rake -T"
|
88
|
+
```
|
89
|
+
|
90
|
+
And this command lists the rake tasks for the Hyrax engine that is in Docker:
|
91
|
+
|
92
|
+
```sh
|
93
|
+
docker-compose exec -w /app/samvera/hyrax-engine app sh -c "bundle exec rake -T"
|
94
|
+
```
|
95
|
+
|
96
|
+
In the two examples, note the difference in the `-w` switch. In the first case, it's referencing the Hyrax-based application. In the latter case, it's referencing the Hyrax engine.
|
97
|
+
|
98
|
+
<!-- NOTE: This title is referenced in the top-level documentation/developing-your-hyrax-based-app.md. Keep that in mind if you change it. -->
|
99
|
+
## Docker Image for Hyrax-based Applications
|
100
|
+
|
101
|
+
We also provide a base image which can be reused for your Hyrax applications: `hyrax`.
|
102
|
+
|
103
|
+
```sh
|
104
|
+
echo "FROM samveralabs/hyrax" > Dockerfile
|
105
|
+
```
|
106
|
+
|
107
|
+
_This is for applications that mount Hyrax and is separate from the docker containers for Hyrax engine development._
|
108
|
+
|
109
|
+
### Maintaining
|
110
|
+
|
111
|
+
We publish several Hyrax images to hub.docker.com under the
|
112
|
+
[`samveralabs` group][dockerhub-samveralabs]. To build them, do:
|
113
|
+
|
114
|
+
```sh
|
115
|
+
# build an image for an app using Postgresql (`gem 'pg'`)
|
116
|
+
docker build --target hyrax --tag samveralabs/hyrax:(git rev-parse HEAD) .
|
117
|
+
docker push samveralabs/hyrax:(git rev-parse HEAD)
|
118
|
+
|
119
|
+
# or; build a development image with sqlite
|
120
|
+
docker build --target hyrax --tag samveralabs/hyrax:(git rev-parse HEAD)-sqlite --build-arg DATABASE_APK_PACKAGE="sqlite" .
|
121
|
+
docker push samveralabs/hyrax:(git rev-parse HEAD)-sqlite
|
122
|
+
```
|
123
|
+
|
124
|
+
We also publish an image for the stable test application `dassie`:
|
125
|
+
|
126
|
+
```sh
|
127
|
+
docker build --target hyrax-engine-dev --tag samveralabs/dassie:(git rev-parse HEAD) .
|
128
|
+
|
129
|
+
docker tag samveralabs/dassie:(git rev-parse HEAD) samveralabs/dassie:$HYRAX_VERSION
|
130
|
+
|
131
|
+
docker push samveralabs/dassie:(git rev-parse HEAD)
|
132
|
+
docker push samveralabs/dassie:$HYRAX_VERSION
|
133
|
+
```
|
134
|
+
|
135
|
+
## Deploying to Production
|
136
|
+
|
137
|
+
Also under development is a Helm chart, which we are developing into a robust,
|
138
|
+
configurable production environment for Hyrax applications.
|
139
|
+
|
140
|
+
If you have a Kubernetes cluster configured (`kubectl cluster-info`), you can
|
141
|
+
deploy the `dassie` test applications with:
|
142
|
+
|
143
|
+
```sh
|
144
|
+
helm dependency update chart/hyrax
|
145
|
+
helm install -n hyrax --set image.tag=(git rev-parse HEAD) dassie chart/hyrax
|
146
|
+
```
|
147
|
+
|
148
|
+
[dockerhub-samveralabs]: https://hub.docker.com/r/samveralabs
|
data/CONTRIBUTING.md
CHANGED
@@ -18,7 +18,7 @@ All code contributors must have an Individual Contributor License Agreement
|
|
18
18
|
an institution, the institution must have a Corporate Contributor License
|
19
19
|
Agreement (cCLA) on file.
|
20
20
|
|
21
|
-
https://wiki.
|
21
|
+
https://wiki.lyrasis.org/display/samvera/Samvera+Community+Intellectual+Property+Licensing+and+Ownership
|
22
22
|
|
23
23
|
You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
|
24
24
|
|
data/Dockerfile
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
ARG RUBY_VERSION=2.7.2
|
2
|
+
FROM ruby:$RUBY_VERSION-alpine as hyrax-base
|
3
|
+
|
4
|
+
ARG DATABASE_APK_PACKAGE="postgresql-dev"
|
5
|
+
ARG EXTRA_APK_PACKAGES="git"
|
6
|
+
|
7
|
+
RUN apk --no-cache upgrade && \
|
8
|
+
apk --no-cache add build-base \
|
9
|
+
imagemagick \
|
10
|
+
tzdata \
|
11
|
+
nodejs \
|
12
|
+
yarn \
|
13
|
+
$DATABASE_APK_PACKAGE \
|
14
|
+
$EXTRA_APK_PACKAGES
|
15
|
+
|
16
|
+
RUN addgroup -S --gid 101 app && \
|
17
|
+
adduser -S -G app -u 1001 -s /bin/sh -h /app app
|
18
|
+
USER app
|
19
|
+
|
20
|
+
RUN gem update bundler
|
21
|
+
|
22
|
+
RUN mkdir -p /app/samvera/hyrax-webapp
|
23
|
+
WORKDIR /app/samvera/hyrax-webapp
|
24
|
+
|
25
|
+
COPY --chown=1001:101 ./bin /app/samvera
|
26
|
+
ENV PATH="/app/samvera:$PATH"
|
27
|
+
ENV RAILS_ROOT="/app/samvera/hyrax-webapp"
|
28
|
+
ENV RAILS_SERVE_STATIC_FILES="1"
|
29
|
+
|
30
|
+
ENTRYPOINT ["hyrax-entrypoint.sh"]
|
31
|
+
CMD ["bundle", "exec", "puma", "-v", "-b", "tcp://0.0.0.0:3000"]
|
32
|
+
|
33
|
+
|
34
|
+
FROM hyrax-base as hyrax
|
35
|
+
|
36
|
+
ARG APP_PATH=.
|
37
|
+
ARG BUNDLE_WITHOUT="development test"
|
38
|
+
|
39
|
+
ONBUILD COPY --chown=1001:101 $APP_PATH /app/samvera/hyrax-webapp
|
40
|
+
ONBUILD RUN bundle install --jobs "$(nproc)"
|
41
|
+
ONBUILD RUN DB_ADAPTER=nulldb DATABASE_URL='postgresql://fake' bundle exec rake assets:precompile
|
42
|
+
|
43
|
+
FROM hyrax-base as hyrax-engine-dev
|
44
|
+
|
45
|
+
ARG APP_PATH=.dassie
|
46
|
+
ARG BUNDLE_WITHOUT=
|
47
|
+
|
48
|
+
ENV HYRAX_ENGINE_PATH /app/samvera/hyrax-engine
|
49
|
+
|
50
|
+
COPY --chown=1001:101 $APP_PATH /app/samvera/hyrax-webapp
|
51
|
+
COPY --chown=1001:101 . /app/samvera/hyrax-engine
|
52
|
+
|
53
|
+
RUN cd /app/samvera/hyrax-engine; bundle install --jobs "$(nproc)"
|
54
|
+
RUN DB_ADAPTER=nulldb DATABASE_URL='postgresql://fake' bundle exec rake assets:precompile
|
55
|
+
|
56
|
+
|
57
|
+
FROM hyrax-engine-dev as hyrax-engine-dev-worker
|
58
|
+
|
59
|
+
ENV MALLOC_ARENA_MAX=2
|
60
|
+
|
61
|
+
USER root
|
62
|
+
RUN apk --no-cache add bash \
|
63
|
+
openjdk11-jre \
|
64
|
+
perl \
|
65
|
+
mediainfo
|
66
|
+
USER app
|
67
|
+
|
68
|
+
RUN wget http://projects.iq.harvard.edu/files/fits/files/fits-1.0.5.zip -O fits.zip \
|
69
|
+
&& unzip fits.zip -d /app \
|
70
|
+
&& rm fits.zip \
|
71
|
+
&& mv /app/fits-1.0.5 /app/fits \
|
72
|
+
&& chmod a+x /app/fits/fits.sh
|
73
|
+
ENV PATH="${PATH}:/app/fits"
|
74
|
+
|
75
|
+
CMD bundle exec sidekiq
|
data/Gemfile
CHANGED
@@ -1,53 +1,44 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
source 'https://rubygems.org'
|
2
|
+
source 'https://rubygems.org' do
|
3
|
+
# Please see hyrax.gemspec for dependency information.
|
4
|
+
gemspec
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
group :development, :test do
|
7
|
+
gem 'benchmark-ips'
|
8
|
+
gem 'easy_translate'
|
9
|
+
gem 'i18n-tasks'
|
10
|
+
gem 'okcomputer'
|
11
|
+
gem 'pry' unless ENV['CI']
|
12
|
+
gem 'pry-byebug' unless ENV['CI']
|
13
|
+
gem 'ruby-prof', require: false
|
14
|
+
gem "simplecov", require: false
|
15
|
+
end
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
|
22
|
-
if File.exist?(file)
|
18
|
+
test_app_path = ENV['RAILS_ROOT'] ||
|
19
|
+
ENV.fetch('ENGINE_CART_DESTINATION', File.expand_path('.internal_test_app', File.dirname(__FILE__)))
|
20
|
+
test_app_gemfile = File.expand_path('Gemfile', test_app_path)
|
21
|
+
|
22
|
+
if File.exist?(test_app_gemfile)
|
23
23
|
begin
|
24
|
-
eval_gemfile
|
24
|
+
eval_gemfile test_app_gemfile
|
25
25
|
rescue Bundler::GemfileError => e
|
26
|
-
Bundler.ui.warn '[
|
26
|
+
Bundler.ui.warn '[Hyrax] Skipping Rails application dependencies:'
|
27
27
|
Bundler.ui.warn e.message
|
28
28
|
end
|
29
29
|
else
|
30
|
-
Bundler.ui.warn "[
|
30
|
+
Bundler.ui.warn "[Hyrax] Unable to find test application dependencies in #{test_app_gemfile}, using placeholder dependencies"
|
31
31
|
|
32
|
+
# rubocop:disable Bundler/DuplicatedGem
|
32
33
|
if ENV['RAILS_VERSION']
|
33
34
|
if ENV['RAILS_VERSION'] == 'edge'
|
34
|
-
gem 'rails', github: 'rails/rails'
|
35
|
+
gem 'rails', github: 'rails/rails', source: 'https://rubygems.org'
|
35
36
|
ENV['ENGINE_CART_RAILS_OPTIONS'] = '--edge --skip-turbolinks'
|
36
37
|
else
|
37
|
-
gem 'rails', ENV['RAILS_VERSION']
|
38
|
+
gem 'rails', ENV['RAILS_VERSION'], source: 'https://rubygems.org'
|
38
39
|
end
|
39
40
|
end
|
41
|
+
# rubocop:enable Bundler/DuplicatedGem
|
40
42
|
|
41
|
-
|
42
|
-
when /^4.2/
|
43
|
-
gem 'coffee-rails', '~> 4.1.0'
|
44
|
-
gem 'responders', '~> 2.0'
|
45
|
-
gem 'sass-rails', '>= 5.0'
|
46
|
-
when /^4.[01]/
|
47
|
-
gem 'sass-rails', '< 5.0'
|
48
|
-
end
|
43
|
+
eval_gemfile File.expand_path('spec/test_app_templates/Gemfile.extra', File.dirname(__FILE__))
|
49
44
|
end
|
50
|
-
# END ENGINE_CART BLOCK
|
51
|
-
# rubocop:enable Bundler/DuplicatedGem
|
52
|
-
|
53
|
-
eval_gemfile File.expand_path('spec/test_app_templates/Gemfile.extra', File.dirname(__FILE__)) unless File.exist?(file)
|