diff --git a/Gemfile b/Gemfile index 62d79b27..1eddd7b5 100644 --- a/Gemfile +++ b/Gemfile @@ -139,9 +139,10 @@ gem 'tether-rails' gem 'blacklight_advanced_search' gem 'blacklight_range_limit', '6.5.0' +gem 'derivative-rodeo', git: 'https://github.com/scientist-softserv/derivative_rodeo.git', branch: 'main' gem 'dog_biscuits', git: 'https://github.com/samvera-labs/dog_biscuits.git' gem 'hyrax-v2_graph_indexer', git: 'https://github.com/scientist-softserv/hyrax-v2_graph_indexer', branch: 'main' -# rubocop:disable Metrics/LineLength -gem 'iiif_print', git: 'https://github.com/scientist-softserv/iiif_print.git', ref: '56069b5f8bbcbf6629b9973352069d21d5ddaf0f' -# rubocop:enable Metrics/LineLength +gem 'iiif_print', git: 'https://github.com/scientist-softserv/iiif_print.git', branch: 'main' gem 'order_already' +gem 'redis', '~> 4.0' +gem 'redlock', '~> 1.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 918f70ca..a07f89e3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,21 @@ GIT dog_biscuits (0.5.9) hyrax (>= 2, < 3) +GIT + remote: https://github.com/scientist-softserv/derivative_rodeo.git + revision: e860b62effa0d29f74515fec4056eb5acb009d69 + branch: main + specs: + derivative-rodeo (0.5.2) + activesupport (>= 5) + aws-sdk-s3 + aws-sdk-sqs + httparty + marcel + mime-types + mini_magick + nokogiri + GIT remote: https://github.com/scientist-softserv/hyrax-v2_graph_indexer revision: ec2329120dd4658e2af7efc38fd9c7708a18617c @@ -16,8 +31,8 @@ GIT GIT remote: https://github.com/scientist-softserv/iiif_print.git - revision: 56069b5f8bbcbf6629b9973352069d21d5ddaf0f - ref: 56069b5f8bbcbf6629b9973352069d21d5ddaf0f + revision: e4927984003551b3da702ec986dfb1efdb102d01 + branch: main specs: iiif_print (1.0.0) blacklight_iiif_search (>= 1.0, < 3.0) @@ -38,30 +53,30 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.2.6) - actionpack (= 5.2.6) + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.6) - actionpack (= 5.2.6) - actionview (= 5.2.6) - activejob (= 5.2.6) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.6) - actionview (= 5.2.6) - activesupport (= 5.2.6) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.6) - activesupport (= 5.2.6) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - active-fedora (12.1.1) + active-fedora (12.2.4) active-triples (>= 0.11.0, < 2.0.0) activemodel (>= 4.2.10, < 5.3) activesupport (>= 4.2.4, < 5.3) @@ -69,48 +84,47 @@ GEM faraday (~> 0.12) faraday-encoding (= 0.0.4) ldp (>= 0.7.0, < 2) + rdf-vocab (< 3.1.5) rsolr (>= 1.1.2, < 3) ruby-progressbar (~> 1.0) - solrizer (>= 3.4, < 5) - active-triples (1.1.1) + active-triples (1.2.0) activemodel (>= 3.0.0) activesupport (>= 3.0.0) rdf (>= 2.0.2, < 4.0) rdf-vocab (>= 2.0, < 4.0) - active_encode (0.7.0) + active_encode (0.8.2) rails sprockets (< 4) - activejob (5.2.6) - activesupport (= 5.2.6) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) globalid (>= 0.3.6) - activemodel (5.2.6) - activesupport (= 5.2.6) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (5.2.6) - activemodel (= 5.2.6) - activesupport (= 5.2.6) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) arel (>= 9.0) - activerecord-import (1.1.0) - activerecord (>= 3.2) + activerecord-import (1.5.0) + activerecord (>= 4.2) activerecord-nulldb-adapter (0.4.0) activerecord (>= 2.0.0) - activestorage (5.2.6) - actionpack (= 5.2.6) - activerecord (= 5.2.6) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) marcel (~> 1.0.0) - activesupport (5.2.6) + activesupport (5.2.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) almond-rails (0.3.0) rails (>= 4.2) - amazing_print (1.3.0) apartment (2.2.1) activerecord (>= 3.1.2, < 6.0) parallel (>= 0.7.1) @@ -118,28 +132,28 @@ GEM rack (>= 1.3.6) arel (9.0.0) ast (2.4.1) - autoprefixer-rails (10.2.5.0) - execjs (< 2.8.0) - awesome_nested_set (3.4.0) - activerecord (>= 4.0.0, < 7.0) - aws-eventstream (1.1.1) - aws-partitions (1.457.0) - aws-sdk-core (3.114.0) + autoprefixer-rails (10.4.15.0) + execjs (~> 2) + awesome_nested_set (3.6.0) + activerecord (>= 4.0.0, < 7.2) + aws-eventstream (1.2.0) + aws-partitions (1.850.0) + aws-sdk-core (3.186.0) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) - aws-sigv4 (~> 1.1) - jmespath (~> 1.0) - aws-sdk-kms (1.43.0) - aws-sdk-core (~> 3, >= 3.112.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.5) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.94.1) - aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-s3 (1.136.0) + aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.6) + aws-sdk-sqs (1.67.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.29.0) - aws-sdk-core (~> 3, >= 3.99.0) - aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.3) + aws-sigv4 (1.6.1) aws-eventstream (~> 1, >= 1.0.2) babel-source (5.8.35) babel-transpiler (0.7.0) @@ -152,7 +166,7 @@ GEM i18n bcrypt (3.1.13) bindex (0.8.1) - blacklight (6.24.0) + blacklight (6.25.0) bootstrap-sass (~> 3.2) deprecation globalid @@ -192,14 +206,13 @@ GEM sassc (>= 2.0.0) brakeman (5.1.1) breadcrumbs_on_rails (3.0.1) - browse-everything (1.1.2) + browse-everything (1.3.0) addressable (~> 2.5) aws-sdk-s3 - dropbox_api (>= 0.1.10) - google-api-client (~> 0.23) - google_drive (>= 2.1, < 4) - googleauth (>= 0.6.6, < 1.0) - rails (>= 4.2, < 7.0) + dropbox_api (>= 0.1.20) + google-apis-drive_v3 + googleauth (>= 0.6.6, < 2.0) + rails (>= 4.2, < 7.2) ruby-box signet (~> 0.8) typhoeus @@ -229,11 +242,11 @@ GEM rack-test (>= 0.6.3) regexp_parser (~> 1.5) xpath (~> 3.2) - carrierwave (1.3.2) + carrierwave (1.3.4) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) - ssrf_filter (~> 1.0) + ssrf_filter (~> 1.0, < 1.1.0) carrierwave-aws (1.4.0) aws-sdk-s3 (~> 1.0) carrierwave (>= 0.7, < 2.1) @@ -251,11 +264,11 @@ GEM coffee-script-source execjs coffee-script-source (1.12.2) - concurrent-ruby (1.1.9) + concurrent-ruby (1.2.2) config (3.1.0) deep_merge (~> 1.2, >= 1.2.1) dry-validation (~> 1.0, >= 1.0.0) - connection_pool (2.2.5) + connection_pool (2.4.1) coveralls (0.8.23) json (>= 1.8, < 3) simplecov (~> 0.16.1) @@ -266,19 +279,11 @@ GEM safe_yaml (~> 1.0.0) crass (1.0.6) database_cleaner (1.8.5) + date (3.3.4) declarative (0.0.20) deep_merge (1.2.1) deprecation (1.1.0) activesupport - derivative-rodeo (0.5.1) - activesupport (>= 5) - aws-sdk-s3 - aws-sdk-sqs - httparty - marcel - mime-types - mini_magick - nokogiri devise (4.7.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -295,94 +300,97 @@ GEM diff-lcs (1.4.2) docile (1.3.2) docopt (0.5.0) - draper (4.0.1) + draper (4.0.2) actionpack (>= 5.0) activemodel (>= 5.0) activemodel-serializers-xml (>= 1.0) activesupport (>= 5.0) request_store (>= 1.0) - dropbox_api (0.1.18) - faraday (<= 1.0) + ruby2_keywords + dropbox_api (0.1.21) + faraday (< 3.0) oauth2 (~> 1.1) - dry-configurable (0.12.1) - concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5.0) - dry-container (0.7.2) + dry-configurable (0.16.1) + dry-core (~> 0.6) + zeitwerk (~> 2.6) + dry-container (0.11.0) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.1, >= 0.1.3) dry-core (0.9.1) concurrent-ruby (~> 1.0) zeitwerk (~> 2.6) dry-equalizer (0.3.0) - dry-events (0.3.0) + dry-events (0.4.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) - dry-inflector (0.2.0) - dry-initializer (3.0.4) - dry-logic (1.2.0) + dry-core (~> 0.9, >= 0.9) + dry-inflector (0.3.0) + dry-initializer (3.1.1) + dry-logic (1.3.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) + zeitwerk (~> 2.6) dry-matcher (0.9.0) dry-core (~> 0.4, >= 0.4.8) dry-monads (1.4.0) concurrent-ruby (~> 1.0) dry-core (~> 0.7) - dry-schema (1.6.2) + dry-schema (1.11.3) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.8, >= 0.8.3) - dry-core (~> 0.5, >= 0.5) + dry-configurable (~> 0.16, >= 0.16) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-logic (~> 1.0) - dry-types (~> 1.5) - dry-struct (1.4.0) - dry-core (~> 0.5, >= 0.5) - dry-types (~> 1.5) + dry-logic (~> 1.3) + dry-types (~> 1.6) + zeitwerk (~> 2.6) + dry-struct (1.5.2) + dry-core (~> 0.9, >= 0.9) + dry-types (~> 1.6) ice_nine (~> 0.11) - dry-transaction (0.13.2) + zeitwerk (~> 2.6) + dry-transaction (0.14.0) dry-container (>= 0.2.8) - dry-events (>= 0.1.0) + dry-events (>= 0.4.0) dry-matcher (>= 0.7.0) - dry-monads (>= 0.4.0) - dry-types (1.5.1) + dry-monads (>= 0.5.0) + dry-types (1.6.1) concurrent-ruby (~> 1.0) dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.6.0) + dry-logic (~> 1.3, >= 1.3) + zeitwerk (~> 2.6) + dry-validation (1.9.0) concurrent-ruby (~> 1.0) dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.4) - dry-equalizer (~> 0.2) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-schema (~> 1.5, >= 1.5.2) + dry-schema (~> 1.11, >= 1.11.0) + zeitwerk (~> 2.6) easy_translate (0.5.1) thread thread_safe - ebnf (2.1.3) - amazing_print (~> 1.2) + ebnf (2.3.5) htmlentities (~> 4.3) - rdf (~> 3.1) + rdf (~> 3.2) scanf (~> 1.0) - sxp (~> 1.1) - unicode-types (~> 1.6) + sxp (~> 1.2) + unicode-types (~> 1.8) edtf (3.0.5) activesupport (>= 3.0, < 7.0) equivalent-xml (0.6.0) nokogiri (>= 1.4.3) - erubi (1.10.0) + erubi (1.12.0) erubis (2.7.0) et-orbi (1.2.7) tzinfo - ethon (0.14.0) + ethon (0.16.0) ffi (>= 1.15.0) - execjs (2.7.0) + execjs (2.9.1) factory_bot (6.0.2) activesupport (>= 5.0.0) factory_bot_rails (6.0.0) factory_bot (~> 6.0.0) railties (>= 5.0.0) - faraday (0.17.4) + faraday (0.17.6) multipart-post (>= 1.2, < 3) faraday-encoding (0.0.4) faraday @@ -390,28 +398,28 @@ GEM faraday (>= 0.7.4, < 1.0) fcrepo_wrapper (0.9.0) ruby-progressbar - ffi (1.15.0) + ffi (1.16.3) flay (2.12.1) erubis (~> 2.7.0) path_expander (~> 1.0) ruby_parser (~> 3.0) sexp_processor (~> 4.0) - flipflop (2.6.0) + flipflop (2.7.1) activesupport (>= 4.0) + terminal-table (>= 1.8) flot-rails (0.0.7) jquery-rails flutie (2.2.0) - font-awesome-rails (4.7.0.7) - railties (>= 3.2, < 7) + font-awesome-rails (4.7.0.8) + railties (>= 3.2, < 8.0) fugit (1.8.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) - gems (1.2.0) - geocoder (1.6.7) + geocoder (1.8.2) gitlab (4.17.0) httparty (~> 0.18) terminal-table (~> 1.5, >= 1.5.1) - globalid (0.5.2) + globalid (1.1.0) activesupport (>= 5.0) good_job (2.99.0) activejob (>= 5.2.0) @@ -422,55 +430,34 @@ GEM thor (>= 0.14.1) webrick (>= 1.3) zeitwerk (>= 2.0) - google-api-client (0.53.0) - google-apis-core (~> 0.1) - google-apis-generator (~> 0.1) - google-apis-core (0.3.0) + google-apis-core (0.11.2) addressable (~> 2.5, >= 2.5.1) - googleauth (~> 0.14) - httpclient (>= 2.8.1, < 3.0) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) mini_mime (~> 1.0) representable (~> 3.0) - retriable (>= 2.0, < 4.0) + retriable (>= 2.0, < 4.a) rexml - signet (~> 0.14) webrick - google-apis-discovery_v1 (0.2.0) - google-apis-core (~> 0.1) - google-apis-drive_v3 (0.5.0) - google-apis-core (~> 0.1) - google-apis-generator (0.2.0) - activesupport (>= 5.0) - gems (~> 1.2) - google-apis-core (~> 0.1) - google-apis-discovery_v1 (~> 0.0) - thor (>= 0.20, < 2.a) - google-apis-sheets_v4 (0.4.0) - google-apis-core (~> 0.1) - google_drive (3.0.7) - google-apis-drive_v3 (>= 0.5.0, < 1.0.0) - google-apis-sheets_v4 (>= 0.4.0, < 1.0.0) - googleauth (>= 0.5.0, < 1.0.0) - nokogiri (>= 1.5.3, < 2.0.0) - googleauth (0.16.2) - faraday (>= 0.17.3, < 2.0) + google-apis-drive_v3 (0.44.0) + google-apis-core (>= 0.11.0, < 2.a) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.14) - haml (5.2.1) + signet (>= 0.16, < 2.a) + haml (5.2.2) temple (>= 0.8.0) tilt - hamster (3.0.0) - concurrent-ruby (~> 1.0) hashdiff (1.0.1) + hashie (5.0.0) highline (2.0.3) hiredis (0.6.3) htmlentities (4.3.4) - http_logger (0.6.0) - httparty (0.18.1) - mime-types (~> 3.0) + http_logger (0.7.0) + httparty (0.21.0) + mini_mime (>= 1.0.0) multi_xml (>= 0.5.2) httpclient (2.8.3) hydra-access-controls (11.0.7) @@ -483,15 +470,15 @@ GEM hydra-core (11.0.7) hydra-access-controls (= 11.0.7) railties (>= 4.0.0, < 6) - hydra-derivatives (3.5.0) - active-fedora (>= 11.3.1, < 14) + hydra-derivatives (3.7.0) + active-fedora (>= 11.5.6, != 13.2.1, != 13.2.0, != 13.1.3, != 13.1.2, != 13.1.1, != 13.1.0, != 13.0.0, != 12.2.1, != 12.2.0, != 12.1.1, != 12.1.0, != 12.0.3, != 12.0.2, != 12.0.1, != 12.0.0) active_encode (~> 0.1) - activesupport (>= 4.0, < 6) + activesupport (>= 4.0, < 7) addressable (~> 2.5) deprecation mime-types (> 2.0, < 4.0) mini_magick (>= 3.2, < 5) - hydra-editor (5.0.4) + hydra-editor (5.0.5) active-fedora (>= 9.0.0) activerecord (~> 5.0) almond-rails (~> 0.1) @@ -500,22 +487,23 @@ GEM simple_form (>= 4.1.0, < 6.0) sprockets (~> 3.7) sprockets-es6 - hydra-file_characterization (1.1.2) + hydra-file_characterization (1.2.0) activesupport (>= 3.0.0) hydra-head (11.0.7) hydra-access-controls (= 11.0.7) hydra-core (= 11.0.7) rails (>= 5.2, < 6.1) - hydra-pcdm (1.1.0) - active-fedora (>= 10, < 14) + hydra-pcdm (1.3.0) + active-fedora (>= 10, < 15) mime-types (>= 1) + rdf-vocab hydra-works (1.2.0) activesupport (>= 4.2.10, < 6.0) hydra-derivatives (~> 3.0) hydra-file_characterization (~> 1.0) hydra-pcdm (>= 0.9) - hyrax (2.9.5) - active-fedora (>= 11.5.2, < 12.2) + hyrax (2.9.6) + active-fedora (>= 11.5.2, < 13) almond-rails (~> 0.1) awesome_nested_set (~> 3.1) blacklight (~> 6.14) @@ -565,7 +553,7 @@ GEM signet solrizer (>= 3.4, < 5) tinymce-rails (~> 4.1) - i18n (1.8.11) + i18n (1.14.1) concurrent-ruby (~> 1.0) i18n-debug (1.2.0) i18n (< 2) @@ -589,58 +577,59 @@ GEM is_it_working (1.1.0) iso-639 (0.3.5) iso8601 (0.9.1) - jbuilder (2.11.2) + jbuilder (2.11.5) + actionview (>= 5.0.0) activesupport (>= 5.0.0) - jmespath (1.4.0) + jmespath (1.6.2) jquery-datatables-rails (3.4.0) actionpack (>= 3.1) jquery-rails railties (>= 3.1) sass-rails - jquery-rails (4.4.0) + jquery-rails (4.6.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - json (2.5.1) - json-canonicalization (0.2.1) - json-ld (3.1.9) + json (2.6.3) + json-canonicalization (0.3.2) + json-ld (3.2.5) htmlentities (~> 4.3) - json-canonicalization (~> 0.2) + json-canonicalization (~> 0.3, >= 0.3.2) link_header (~> 0.0, >= 0.0.8) - multi_json (~> 1.14) - rack (~> 2.0) - rdf (~> 3.1) - json-ld-preloaded (3.1.5) - json-ld (~> 3.1) - rdf (~> 3.1) - json-schema (2.8.1) - addressable (>= 2.4) - jwt (2.2.3) - kaminari (1.2.1) + multi_json (~> 1.15) + rack (>= 2.2, < 4) + rdf (~> 3.2, >= 3.2.10) + json-ld-preloaded (3.2.2) + json-ld (~> 3.2) + rdf (~> 3.2) + json-schema (4.1.1) + addressable (>= 2.8) + jwt (2.7.1) + kaminari (1.2.2) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.1) - kaminari-activerecord (= 1.2.1) - kaminari-core (= 1.2.1) - kaminari-actionview (1.2.1) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) actionview - kaminari-core (= 1.2.1) - kaminari-activerecord (1.2.1) + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) activerecord - kaminari-core (= 1.2.1) - kaminari-core (1.2.1) + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) kaminari_route_prefix (0.1.1) kaminari (~> 1.0) language_list (1.2.1) launchy (2.5.0) addressable (~> 2.7) - ld-patch (3.1.3) - ebnf (~> 2.1) - rdf (~> 3.1) - rdf-xsd (~> 3.1) - sparql (~> 3.1) - sxp (~> 1.1) + ld-patch (3.2.2) + ebnf (~> 2.3) + rdf (~> 3.2) + rdf-xsd (~> 3.2) + sparql (~> 3.2) + sxp (~> 1.2) ldp (1.0.3) deprecation faraday @@ -651,10 +640,11 @@ GEM rdf-turtle rdf-vocab (>= 0.8) slop - ldpath (1.1.0) + ldpath (1.2.0) nokogiri (~> 1.8) parslet rdf (~> 3.0) + rdf-vocab (~> 3.0) legato (0.7.0) multi_json libxml-ruby (3.2.4) @@ -689,29 +679,33 @@ GEM rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) + logger (1.6.0) lograge (0.11.2) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.12.0) + loofah (2.22.0) crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) + nokogiri (>= 1.12.0) + mail (2.8.1) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp mailboxer (0.15.1) carrierwave (>= 0.5.8) rails (>= 5.0.0) marcel (1.0.2) - memoist (0.16.2) + matrix (0.4.2) method_source (1.0.0) - mime-types (3.3.1) + mime-types (3.5.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) - mini_magick (4.11.0) - mini_mime (1.1.2) - mini_portile2 (2.8.1) - minitest (5.14.4) + mime-types-data (3.2023.1003) + mini_magick (4.12.0) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.20.0) mods (2.4.1) edtf iso-639 @@ -719,18 +713,27 @@ GEM nom-xml (~> 1.0) multi_json (1.15.0) multi_xml (0.6.0) - multipart-post (2.1.1) + multipart-post (2.3.0) nest (3.2.0) redic - net-http-persistent (4.0.1) + net-http-persistent (4.0.2) connection_pool (~> 2.2) - nio4r (2.5.8) + net-imap (0.4.5) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.4.0) + net-protocol + nio4r (2.5.9) noid (0.9.0) noid-rails (3.0.3) actionpack (>= 5.0.0, < 7) noid (~> 0.9) - nokogiri (1.13.10) - mini_portile2 (~> 2.8.0) + nokogiri (1.15.4) + mini_portile2 (~> 2.8.2) racc (~> 1.4) nokogumbo (2.0.5) nokogiri (~> 1.8, >= 1.8.4) @@ -742,13 +745,18 @@ GEM builder (>= 3.1.0) faraday faraday_middleware - oauth (0.5.6) - oauth2 (1.4.7) - faraday (>= 0.8, < 2.0) + oauth (1.1.0) + oauth-tty (~> 1.0, >= 1.0.1) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + oauth-tty (1.0.5) + version_gem (~> 1.1, >= 1.1.1) + oauth2 (1.4.11) + faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) - rack (>= 1.2, < 3) + rack (>= 1.2, < 4) octokit (4.21.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) @@ -757,7 +765,7 @@ GEM order_already (0.2.1) rails-html-sanitizer (~> 1.4) orm_adapter (0.5.0) - os (1.1.1) + os (1.1.4) parallel (1.19.2) parser (2.5.3.0) ast (~> 2.4.0) @@ -788,51 +796,55 @@ GEM pronto-rubocop (0.10.0) pronto (~> 0.10.0) rubocop (~> 0.50, >= 0.49.1) - public_suffix (4.0.6) + public_suffix (5.0.3) pul_uv_rails (2.0.1) puma (4.3.8) nio4r (~> 2.0) - qa (5.6.0) + qa (5.11.0) activerecord-import deprecation - faraday + faraday (< 3.0, != 2.0.0) geocoder ldpath nokogiri (~> 1.6) - rails (>= 5.0, < 6.2) + rails (>= 5.0, < 7.2) rdf raabro (1.4.0) - racc (1.6.2) - rack (2.2.3) + racc (1.7.3) + rack (2.2.8) rack-test (0.7.0) rack (>= 1.0, < 3) - rails (5.2.6) - actioncable (= 5.2.6) - actionmailer (= 5.2.6) - actionpack (= 5.2.6) - actionview (= 5.2.6) - activejob (= 5.2.6) - activemodel (= 5.2.6) - activerecord (= 5.2.6) - activestorage (= 5.2.6) - activesupport (= 5.2.6) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) bundler (>= 1.3.0) - railties (= 5.2.6) + railties (= 5.2.8.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.4.2) - loofah (~> 2.3) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) - rails_autolink (1.1.6) - rails (> 3.1) + rails_autolink (1.1.8) + actionview (> 3.1) + activesupport (> 3.1) + railties (> 3.1) rails_best_practices (1.21.0) activesupport code_analyzer (>= 0.5.2) @@ -841,52 +853,51 @@ GEM json require_all (~> 3.0) ruby-progressbar - railties (5.2.6) - actionpack (= 5.2.6) - activesupport (= 5.2.6) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) - rake (13.0.6) - rb-fsevent (0.11.0) + rake (13.1.0) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rdf (3.1.15) - hamster (~> 3.0) + rdf (3.2.11) link_header (~> 0.0, >= 0.0.8) - rdf-aggregate-repo (3.1.0) - rdf (~> 3.1) - rdf-isomorphic (3.1.1) - rdf (~> 3.1) - rdf-json (3.1.0) - rdf (~> 3.1) + rdf-aggregate-repo (3.2.1) + rdf (~> 3.2) + rdf-isomorphic (3.2.1) + rdf (~> 3.2) + rdf-json (3.2.0) + rdf (~> 3.2) rdf-microdata (3.1.1) htmlentities (~> 4.3) nokogiri (~> 1.10) rdf (~> 3.1) rdf-xsd (~> 3.1) - rdf-n3 (3.1.2) - ebnf (~> 2.1) - rdf (~> 3.1, >= 3.1.8) - sparql (~> 3.1, >= 3.1.4) - sxp (~> 1.1) - rdf-normalize (0.4.0) - rdf (~> 3.1) + rdf-n3 (3.2.1) + ebnf (~> 2.2) + rdf (~> 3.2) + sparql (~> 3.2) + sxp (~> 1.2) + rdf-normalize (0.6.1) + rdf (~> 3.2) rdf-rdfa (3.1.0) haml (~> 5.1) htmlentities (~> 4.3) rdf (~> 3.1) rdf-aggregate-repo (~> 3.1) rdf-xsd (~> 3.1) - rdf-rdfxml (3.1.1) + rdf-rdfxml (3.2.2) + builder (~> 3.2) htmlentities (~> 4.3) - rdf (~> 3.1) - rdf-rdfa (~> 3.1) - rdf-xsd (~> 3.1) - rdf-reasoner (0.7.2) - rdf (~> 3.1, >= 3.1.12) - rdf-xsd (~> 3.1) + rdf (~> 3.2) + rdf-xsd (~> 3.2) + rdf-reasoner (0.8.0) + rdf (~> 3.2) + rdf-xsd (~> 3.2) rdf-tabular (3.1.1) addressable (~> 2.3) bcp47 (~> 0.3, >= 0.3.3) @@ -894,48 +905,48 @@ GEM rdf (~> 3.1) rdf-vocab (~> 3.1) rdf-xsd (~> 3.1) - rdf-trig (3.1.2) - ebnf (~> 2.1) - rdf (~> 3.1) - rdf-turtle (~> 3.1) - rdf-trix (3.1.1) - rdf (~> 3.1) - rdf-xsd (~> 3.1) - rdf-turtle (3.1.3) - ebnf (~> 2.1) - rdf (~> 3.1, >= 3.1.8) + rdf-trig (3.2.0) + ebnf (~> 2.2) + rdf (~> 3.2) + rdf-turtle (~> 3.2) + rdf-trix (3.2.0) + rdf (~> 3.2) + rdf-xsd (~> 3.2) + rdf-turtle (3.2.1) + ebnf (~> 2.3) + rdf (~> 3.2) rdf-vocab (3.1.4) rdf (~> 3.1) - rdf-xsd (3.1.1) - rdf (~> 3.1) + rdf-xsd (3.2.1) + rdf (~> 3.2) rexml (~> 3.2) redic (1.5.3) hiredis - redis (4.2.5) - redis-namespace (1.8.1) - redis (>= 3.0.4) - redlock (1.2.1) + redis (4.8.1) + redis-namespace (1.11.0) + redis (>= 4) + redlock (1.2.2) redis (>= 3.0.0, < 5.0) regexp_parser (1.7.1) - representable (3.1.1) + representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) - request_store (1.5.0) + request_store (1.5.1) rack (>= 1.4) require_all (3.0.0) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) retriable (3.1.2) - rexml (3.2.5) + rexml (3.2.6) riiif (1.7.1) deprecation (>= 1.0.0) railties (>= 4.2, < 6) rolify (5.3.0) - rsolr (2.3.0) + rsolr (2.5.0) builder (>= 2.1.2) - faraday (>= 0.9.0) + faraday (>= 0.9, < 3, != 2.0.0) rspec (3.9.0) rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) @@ -973,7 +984,8 @@ GEM json multipart-post oauth2 - ruby-progressbar (1.11.0) + ruby-progressbar (1.13.0) + ruby2_keywords (0.0.5) ruby_dep (1.5.0) ruby_parser (3.17.0) sexp_processor (~> 4.15, >= 4.15.1) @@ -1009,20 +1021,21 @@ GEM sentry-raven (2.13.0) faraday (>= 0.7.6, < 1.0) sexp_processor (4.15.3) - shex (0.6.1) - ebnf (~> 2.0) - json-ld (~> 3.1) - json-ld-preloaded (~> 3.1) - rdf (~> 3.1) - rdf-xsd (~> 3.1) - sparql (~> 3.1) - sxp (~> 1.1) - signet (0.15.0) - addressable (~> 2.3) - faraday (>= 0.17.3, < 2.0) + shex (0.7.1) + ebnf (~> 2.2) + htmlentities (~> 4.3) + json-ld (~> 3.2) + json-ld-preloaded (~> 3.2) + rdf (~> 3.2) + rdf-xsd (~> 3.2) + sparql (~> 3.2) + sxp (~> 1.2) + signet (0.18.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simple_form (5.1.0) + simple_form (5.3.0) actionpack (>= 5.2) activemodel (>= 5.2) simplecov (0.16.1) @@ -1030,7 +1043,10 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - slop (4.9.0) + slop (4.10.1) + snaky_hash (2.0.1) + hashie + version_gem (~> 1.1, >= 1.1.1) solr_wrapper (2.2.0) faraday retriable @@ -1040,17 +1056,18 @@ GEM activesupport nokogiri xml-simple - sparql (3.1.6) - builder (~> 3.2) - ebnf (~> 2.1) - rdf (~> 3.1, >= 3.1.12) - rdf-aggregate-repo (~> 3.1) - rdf-xsd (~> 3.1) - sparql-client (~> 3.1, >= 3.1.2) - sxp (~> 1.1) - sparql-client (3.1.2) - net-http-persistent (~> 4.0, >= 4.0.1) - rdf (~> 3.1) + sparql (3.2.6) + builder (~> 3.2, >= 3.2.4) + ebnf (~> 2.3, >= 2.3.5) + logger (~> 1.5) + rdf (~> 3.2, >= 3.2.11) + rdf-aggregate-repo (~> 3.2, >= 3.2.1) + rdf-xsd (~> 3.2) + sparql-client (~> 3.2, >= 3.2.2) + sxp (~> 1.2, >= 1.2.4) + sparql-client (3.2.2) + net-http-persistent (~> 4.0, >= 4.0.2) + rdf (~> 3.2, >= 3.2.11) spring (1.7.2) spring-commands-rspec (1.0.4) spring (>= 0.9.1) @@ -1064,15 +1081,16 @@ GEM babel-source (>= 5.8.11) babel-transpiler sprockets (>= 3.0.0) - sprockets-rails (3.3.0) + sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - ssrf_filter (1.0.7) - sxp (1.1.0) - rdf (~> 3.1) + ssrf_filter (1.0.8) + sxp (1.2.4) + matrix (~> 0.4) + rdf (~> 3.2) sync (0.5.0) - temple (0.8.2) + temple (0.10.3) term-ansicolor (1.7.1) tins (~> 1.0) terminal-table (1.8.0) @@ -1082,12 +1100,13 @@ GEM thor (0.20.3) thread (0.2.2) thread_safe (0.3.6) - tilt (2.0.10) + tilt (2.3.0) + timeout (0.4.1) tins (1.25.0) sync tinymce-rails (4.9.11) railties (>= 3.1.1) - trailblazer-option (0.1.1) + trailblazer-option (0.1.2) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) @@ -1097,14 +1116,15 @@ GEM railties (>= 3.1) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.9) + tzinfo (1.2.11) thread_safe (~> 0.1) uber (0.1.0) uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.7.0) - unicode-types (1.6.0) + unicode-display_width (1.8.0) + unicode-types (1.9.0) validatable (1.6.7) + version_gem (1.1.3) warden (1.2.8) rack (>= 2.0.6) web-console (3.7.0) @@ -1120,14 +1140,15 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.7.0) - websocket-driver (0.7.5) + webrick (1.8.1) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - xml-simple (1.1.8) + xml-simple (1.1.9) + rexml xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.7) + zeitwerk (2.6.12) PLATFORMS ruby @@ -1152,6 +1173,7 @@ DEPENDENCIES config (>= 2.2.1, < 4.0) coveralls (~> 0.8, >= 0.8.23) database_cleaner + derivative-rodeo! devise devise-guests (~> 0.3) devise-i18n @@ -1188,6 +1210,8 @@ DEPENDENCIES rack-test (= 0.7.0) rails (~> 5.2.5) rails-controller-testing + redis (~> 4.0) + redlock (~> 1.2.1) riiif (~> 1.1) rolify rsolr (~> 2.0) diff --git a/config/application.rb b/config/application.rb index 6311d6f4..8d8292bc 100644 --- a/config/application.rb +++ b/config/application.rb @@ -100,6 +100,7 @@ class Application < Rails::Application # resolve reloading issue in dev mode config.paths.add 'app/helpers', eager_load: true + config.active_record.yaml_column_permitted_classes = [OpenStruct, Symbol, Time, URI, BigDecimal, Date, DateTime, ActiveSupport::TimeWithZone, ActiveSupport::Duration, ActiveSupport::TimeZone, ActiveSupport::HashWithIndifferentAccess, ActiveSupport::OrderedHash] config.before_initialize do if defined? ActiveElasticJob diff --git a/db/migrate/20231115182428_add_model_details_to_iiif_print_pending_relationships.iiif_print.rb b/db/migrate/20231115182428_add_model_details_to_iiif_print_pending_relationships.iiif_print.rb new file mode 100644 index 00000000..23437715 --- /dev/null +++ b/db/migrate/20231115182428_add_model_details_to_iiif_print_pending_relationships.iiif_print.rb @@ -0,0 +1,8 @@ +# This migration comes from iiif_print (originally 20231110163052) +class AddModelDetailsToIiifPrintPendingRelationships < ActiveRecord::Migration[5.2] + def change + add_column :iiif_print_pending_relationships, :parent_model, :string + add_column :iiif_print_pending_relationships, :child_model, :string + add_column :iiif_print_pending_relationships, :file_id, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 673feee7..015cbaca 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2023_06_08_153601) do +ActiveRecord::Schema.define(version: 2023_11_15_182428) do # These are extensions that must be enabled in order to support this database enable_extension "hstore" @@ -377,6 +377,9 @@ t.string "child_order", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.string "parent_model" + t.string "child_model" + t.string "file_id" t.index ["parent_id"], name: "index_iiif_print_pending_relationships_on_parent_id" end diff --git a/ops/dev-deploy.tmpl.yaml b/ops/dev-deploy.tmpl.yaml index 2c34cffa..1f17a2d2 100644 --- a/ops/dev-deploy.tmpl.yaml +++ b/ops/dev-deploy.tmpl.yaml @@ -263,3 +263,123 @@ externalSolrHost: solr.default.cluster.local externalSolrUser: admin externalSolrPassword: $SOLR_ADMIN_PASSWORD externalSolrCollection: "hyku-adventist-dev" + +global: + hyraxName: hyku-dev-hyrax + +nginx: + service: + port: 80 + enabled: true + image: + registry: registry.gitlab.com + repository: notch8/scripts/bitnami-nginx + tag: 1.21.5-debian-10-r7 + serverBlock: |- + upstream rails_app { + server {{ .Values.global.hyraxName }}; + } + + map ${DOLLAR}status ${DOLLAR}loggable { + ~^444 0; + default 1; + } + + log_format loki 'host=${DOLLAR}host ip=${DOLLAR}http_x_forwarded_for remote_user=${DOLLAR}remote_user [${DOLLAR}time_local] ' + 'request="${DOLLAR}request" status=${DOLLAR}status bytes=${DOLLAR}body_bytes_sent ' + 'referer="${DOLLAR}http_referer" agent="${DOLLAR}http_user_agent" request_time=${DOLLAR}request_time upstream_response_time=${DOLLAR}upstream_response_time upstream_response_length=${DOLLAR}upstream_response_length'; + + error_log /opt/bitnami/nginx/logs/error.log warn; + #tcp_nopush on; + + # Cloudflare ips see for refresh + # https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs-logging-visitor-IP-addresses + # update list https://www.cloudflare.com/ips/ + set_real_ip_from 103.21.244.0/22; + set_real_ip_from 103.22.200.0/22; + set_real_ip_from 103.31.4.0/22; + set_real_ip_from 104.16.0.0/13; + set_real_ip_from 104.24.0.0/14; + set_real_ip_from 108.162.192.0/18; + set_real_ip_from 131.0.72.0/22; + set_real_ip_from 141.101.64.0/18; + set_real_ip_from 162.158.0.0/15; + set_real_ip_from 172.64.0.0/13; + set_real_ip_from 173.245.48.0/20; + set_real_ip_from 188.114.96.0/20; + set_real_ip_from 190.93.240.0/20; + set_real_ip_from 197.234.240.0/22; + set_real_ip_from 198.41.128.0/17; + set_real_ip_from 2400:cb00::/32; + set_real_ip_from 2606:4700::/32; + set_real_ip_from 2803:f800::/32; + set_real_ip_from 2405:b500::/32; + set_real_ip_from 2405:8100::/32; + set_real_ip_from 2a06:98c0::/29; + set_real_ip_from 2c0f:f248::/32; + + real_ip_header X-Forwarded-For; + real_ip_recursive on; + include /opt/bitnami/nginx/conf/conf.d/*.conf; + server { + listen 8080; + server_name _; + root /app/samvera/hyrax-webapp/public; + index index.html; + + client_body_in_file_only clean; + client_body_buffer_size 32K; + client_max_body_size 0; + access_log /opt/bitnami/nginx/logs/access.log loki; + # if=${DOLLAR}loggable; + + sendfile on; + send_timeout 300s; + + include /opt/bitnami/nginx/conf/bots.d/ddos.conf; + include /opt/bitnami/nginx/conf/bots.d/blockbots.conf; + + location ~ (\.php|\.aspx|\.asp) { + return 404; + } + + # deny requests for files that should never be accessed + location ~ /\. { + deny all; + } + + location ~* ^.+\.(rb|log)${DOLLAR} { + deny all; + } + + # serve static (compiled) assets directly if they exist (for rails production) + location ~ ^/(assets|packs|fonts|images|javascripts|stylesheets|swfs|system)/ { + try_files ${DOLLAR}uri @rails; + + # access_log off; + gzip_static on; # to serve pre-gzipped version + + expires max; + add_header Cache-Control public; + + # Some browsers still send conditional-GET requests if there's a + # Last-Modified header or an ETag header even if they haven't + # reached the expiry date sent in the Expires header. + add_header Last-Modified ""; + add_header ETag ""; + break; + } + + # send non-static file requests to the app server + location / { + try_files ${DOLLAR}uri @rails; + } + + location @rails { + proxy_set_header X-Real-IP ${DOLLAR}remote_addr; + proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; + proxy_set_header Host ${DOLLAR}http_host; + proxy_redirect off; + proxy_pass http://rails_app; + } + } diff --git a/ops/production-deploy.tmpl.yaml b/ops/production-deploy.tmpl.yaml index 166e3676..b830391e 100644 --- a/ops/production-deploy.tmpl.yaml +++ b/ops/production-deploy.tmpl.yaml @@ -277,7 +277,7 @@ nginx: image: registry: registry.gitlab.com repository: notch8/scripts/bitnami-nginx - tag: 1.21.5-debian-10-r4 + tag: 1.21.5-debian-10-r7 serverBlock: |- upstream rails_app { server {{ .Values.global.hyraxName }};