UWM-Libraries / GeoDiscovery-Utils

Repo for GeoDiscovery middleware
Apache License 2.0
1 stars 2 forks source link

Point to OpenGeoMetadata instead of a Metadata Directory on the Apache Server #24

Closed srappel closed 2 months ago

srappel commented 7 months ago

When you click the Metadata button on AGSL items, you get an error message: image

The above example is from this show page: https://geodiscovery.uwm.edu/catalog/ark:-77981-gmgsj38kh2h

The link to the metadata seems to be working: https://geodata.uwm.edu/metadata/gmgsj38kh2h_ISO.xml redirects to https://liblamp8.ad.uwm.edu/geodata/metadata/gmgsj38kh2h_ISO.xml

Some records from other institutions are working okay, like https://geodiscovery.uwm.edu/catalog/61321D46-8723-4EBA-9BFB-352E5347987F

srappel commented 6 months ago

On my development machine, I'm seeing this in the console when you make a metadata GET request.

Started GET "/catalog/ark:-77981-gmgs0c4sj6k/metadata" for 127.0.0.1 at 2024-04-04 10:29:08 -0500
Processing by CatalogController#metadata as */*
  Parameters: {"id"=>"ark:-77981-gmgs0c4sj6k"}
Solr query: get select {"qt"=>nil, "start"=>0, "q.alt"=>"*:*", "facet"=>true, "facet.field"=>["dct_accessRights_s", "dct_spatial_sm", "gbl_resourceClass_sm", "schema_provider_s", "gbl_resourceType_sm", "gbl_indexYear_im", "dct_format_s", "dct_subject_sm", "dcat_theme_sm", "dct_creator_sm", "dct_publisher_sm", "locn_geometry", "pcdm_memberOf_sm", "dct_isPartOf_sm", "dct_relation_sm", "dct_replaces_sm", "dct_isReplacedBy_sm", "dct_source_sm", "dct_isVersionOf_sm"], "f.dct_accessRights_s.facet.limit"=>6, "f.dct_spatial_sm.facet.limit"=>6, "f.gbl_resourceClass_sm.facet.limit"=>6, "f.schema_provider_s.facet.limit"=>9, "f.gbl_resourceType_sm.facet.limit"=>11, "f.gbl_indexYear_im.facet.limit"=>11, "f.dct_format_s.facet.limit"=>11, "f.dct_subject_sm.facet.limit"=>11, "f.dcat_theme_sm.facet.limit"=>11, "f.dct_creator_sm.facet.limit"=>11, "f.dct_publisher_sm.facet.limit"=>11, "rows"=>10, "sort"=>"score desc, dct_title_sort asc", "q"=>"{!lucene}id:(\"ark:-77981-gmgs0c4sj6k\")", "defType"=>"lucene", "spellcheck"=>"false"}
Solr fetch (5.5ms)
  Rendering /usr/share/rvm/gems/ruby-3.2.1/gems/geoblacklight-4.1.0/app/views/catalog/metadata.html.erb
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/geoblacklight-4.1.0/app/views/catalog/_metadata.html.erb (Duration: 24.6ms | Allocations: 7895)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/geoblacklight-4.1.0/app/views/catalog/metadata.html.erb (Duration: 27.9ms | Allocations: 8276)
Completed 500 Internal Server Error in 40ms (ActiveRecord: 0.0ms | Allocations: 31982)

  Rendering /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_request.text.erb (Duration: 0.4ms | Allocations: 378)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_title.text.erb (Duration: 0.2ms | Allocations: 140)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_session.text.erb (Duration: 0.8ms | Allocations: 1246)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_title.text.erb (Duration: 0.0ms | Allocations: 22)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_environment.text.erb (Duration: 0.9ms | Allocations: 1942)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_title.text.erb (Duration: 0.0ms | Allocations: 22)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/_backtrace.text.erb (Duration: 0.2ms | Allocations: 120)
  Rendered /usr/share/rvm/gems/ruby-3.2.1/gems/exception_notification-4.5.0/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb (Duration: 4.2ms | Allocations: 6379)
#exception_notification: processed outbound mail in 7.8ms
Delivered mail 660ec7442902b_69c9367ac38c8@UWM022141.mail (4.4ms)
Date: Thu, 04 Apr 2024 10:29:08 -0500
From: GeoDiscovery <notifier@UWM022141>
To: digilib@uwm.edu
Message-ID: <660ec7442902b_69c9367ac38c8@UWM022141.mail>
Subject: [GeoDiscovery ERROR]catalog#metadata (ActionView::Template::Error)
 "SSL_connect returned=1 errno=0 peeraddr=129.89.209.6...
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

An ActionView::Template::Error occurred in catalog#metadata:

  SSL_connect returned=1 errno=0 peeraddr=129.89.209.63:443 state=error: certificate verify failed (unable to get local issuer certificate)

-------------------------------
Request:
-------------------------------

  * URL        : http://localhost:3000/catalog/ark:-77981-gmgs0c4sj6k/metadata
  * HTTP Method: GET
  * IP address : 127.0.0.1
  * Parameters : {"controller"=>"catalog", "action"=>"metadata", "id"=>"ark:-77981-gmgs0c4sj6k"}
  * Timestamp  : 2024-04-04 15:29:08 UTC
  * Server : UWM022141
    * Rails root : /home/srappel/GeoDiscovery
  * Process: 433299

-------------------------------
Session:
-------------------------------

  * session id: "61f9d57b9c301c54f08f43527568861a"
  * data: {"session_id"=>"61f9d57b9c301c54f08f43527568861a",
   "_csrf_token"=>"V7w1showaK_2he092ggiFVRIQIx0pIcfaG7Geb7RDJA",
   "history"=>[126],
   "search"=>
    {"id"=>"126",
     "counter"=>"1",
     "per_page"=>nil,
     "document_id"=>"ark:-77981-gmgs0c4sj6k",
     "total"=>775}}

-------------------------------
Environment:
-------------------------------

  * GATEWAY_INTERFACE                                       : CGI/1.2
    * HTTP_ACCEPT                                             : */*
    * HTTP_ACCEPT_ENCODING                                    : gzip, deflate, br
    * HTTP_ACCEPT_LANGUAGE                                    : en-US,en;q=0.5
    * HTTP_CONNECTION                                         : keep-alive
    * HTTP_COOKIE                                             : _ga_SBMT3M6EV2=GS1.1.1712244137.52.1.1712244529.0.0.0; _ga=GA1.1.881754883.1690307389; _geo_discovery_session=CIVb1VL0JbuBWF1%2BmbWRn%2B8kaPEeNLhvdvmX8Hi5aJvteZlw9I3014pf6hB0eSQh8Q2oc28ztV%2FBFnG9Tfl5swCJVkZF5KXNI6x%2F%2FgikQfGcYhOlnfqD8YXwkqC4hLiYjK%2BSqts8nt%2B7kJhrjU7%2BqxqBsZIwG34%2FIil9cnJqiPAni%2BchP%2FuwnbQcSRSC%2FTzZUCXgyg9UsHbJ8x7RhqRfxBjT4M0pWKR3ypX3OguCShZ61xnJP66Ik4NLABOwFYP0e9DGANdZLHdJ0LG6PPPraJskPF7PZjTVo818gkWrDt7XhXzmqmHLoxrRRIxo39WEs5SQO0SujaXzolYHOBraLFkqGku0qGisjbQk5gkCBpPpW7me1Yh%2Fs6wlegChA17JN%2BV7PmxUyYojzLvr%2BGN9HHlit5xOrwmXH%2Fo%2F%2FnJn3kqtrgFKqf7XpIbAPKSzeTLRILSXvtuGY1hH4HvLz6j3xCLgl86Hs992Nvo0fplyaNLamlpS2lC7Q90r--TNW%2BKDGVUZiX5bhs--BDCQxZN2Q%2BNz%2Fm3%2FsUfUjQ%3D%3D
    * HTTP_HOST                                               : localhost:3000
    * HTTP_REFERER                                            : http://localhost:3000/catalog/ark:-77981-gmgs0c4sj6k
    * HTTP_SEC_FETCH_DEST                                     : empty
    * HTTP_SEC_FETCH_MODE                                     : cors
    * HTTP_SEC_FETCH_SITE                                     : same-origin
    * HTTP_USER_AGENT                                         : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0
    * HTTP_VERSION                                            : HTTP/1.1
    * HTTP_X_CSRF_TOKEN                                       : [FILTERED]
    * HTTP_X_REQUESTED_WITH                                   : XMLHttpRequest
    * ORIGINAL_FULLPATH                                       : /catalog/ark:-77981-gmgs0c4sj6k/metadata
    * ORIGINAL_SCRIPT_NAME                                    :
    * PATH_INFO                                               : /catalog/ark:-77981-gmgs0c4sj6k/metadata
    * QUERY_STRING                                            :
    * REMOTE_ADDR                                             : 127.0.0.1
    * REQUEST_METHOD                                          : GET
    * REQUEST_PATH                                            : /catalog/ark:-77981-gmgs0c4sj6k/metadata
    * REQUEST_URI                                             : /catalog/ark:-77981-gmgs0c4sj6k/metadata
    * ROUTES_20720_SCRIPT_NAME                                :
    * ROUTES_20760_SCRIPT_NAME                                :
    * ROUTES_21140_SCRIPT_NAME                                :
    * SCRIPT_NAME                                             :
    * SERVER_NAME                                             : localhost
    * SERVER_PORT                                             : 3000
    * SERVER_PROTOCOL                                         : HTTP/1.1
    * SERVER_SOFTWARE                                         : puma 6.4.2 The Eagle of Durango
    * action_controller.instance                              : #<CatalogController:0x00007f8e35797aa0>
    * action_dispatch.authenticated_encrypted_cookie_salt     : [FILTERED]
    * action_dispatch.authorized_host                         : localhost
    * action_dispatch.backtrace_cleaner                       : #<Rails::BacktraceCleaner:0x00007f8e3c525d38>
    * action_dispatch.content_security_policy                 :
    * action_dispatch.content_security_policy_nonce_directives:
    * action_dispatch.content_security_policy_nonce_generator :
    * action_dispatch.content_security_policy_report_only     : false
    * action_dispatch.cookies                                 : #<ActionDispatch::Cookies::CookieJar:0x00007f8e35f91b98>
    * action_dispatch.cookies_digest                          :
    * action_dispatch.cookies_rotations                       : #<ActiveSupport::Messages::RotationConfiguration:0x00007f8e3fbd9618>
    * action_dispatch.cookies_same_site_protection            : #<Proc:0x00007f8e3c66d8d0 /usr/share/rvm/gems/ruby-3.2.1/gems/railties-7.0.8.1/lib/rails/application.rb:609>
    * action_dispatch.cookies_serializer                      : json
    * action_dispatch.encrypted_cookie_cipher                 : [FILTERED]
    * action_dispatch.encrypted_cookie_salt                   : [FILTERED]
    * action_dispatch.encrypted_signed_cookie_salt            : [FILTERED]
    * action_dispatch.http_auth_salt                          : [FILTERED]
    * action_dispatch.key_generator                           : #<ActiveSupport::CachingKeyGenerator:0x00007f8e3c794ad8>
    * action_dispatch.log_rescued_responses                   : true
    * action_dispatch.logger                                  : #<ActiveSupport::Logger:0x00007f8e3cac7048>
    * action_dispatch.parameter_filter                        : [:passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn]
    * action_dispatch.permissions_policy                      :
    * action_dispatch.redirect_filter                         : []
    * action_dispatch.remote_ip                               : 127.0.0.1
    * action_dispatch.request.accepts                         : [#<Mime::Type:0x00007f8e35473950 @synonyms=[], @symbol=nil, @string="*/*", @hash=717146697814153748>]
    * action_dispatch.request.content_type                    :
    * action_dispatch.request.formats                         : [#<Mime::Type:0x00007f8e35473950 @synonyms=[], @symbol=nil, @string="*/*", @hash=717146697814153748>]
    * action_dispatch.request.parameters                      : {"controller"=>"catalog", "action"=>"metadata", "id"=>"ark:-77981-gmgs0c4sj6k"}
    * action_dispatch.request.path_parameters                 : {:controller=>"catalog", :action=>"metadata", :id=>"ark:-77981-gmgs0c4sj6k"}
    * action_dispatch.request.query_parameters                : {}
    * action_dispatch.request.request_parameters              : {}
    * action_dispatch.request.unsigned_session_cookie         : {"session_id"=>"61f9d57b9c301c54f08f43527568861a", "_csrf_token"=>"[FILTERED]", "history"=>[126], "search"=>{"id"=>"126", "counter"=>"1", "per_page"=>nil, "document_id"=>"ark:-77981-gmgs0c4sj6k", "total"=>775}}
    * action_dispatch.request_id                              : 59bcff37-5092-42dd-b30b-818b19e4f152
    * action_dispatch.routes                                  : #<ActionDispatch::Routing::RouteSet:0x00007f8e3d628040>
    * action_dispatch.secret_key_base                         : [FILTERED]
    * action_dispatch.show_detailed_exceptions                : true
    * action_dispatch.show_exceptions                         : true
    * action_dispatch.signed_cookie_digest                    :
    * action_dispatch.signed_cookie_salt                      : [FILTERED]
    * action_dispatch.use_authenticated_cookie_encryption     : [FILTERED]
    * action_dispatch.use_cookies_with_metadata               : true
    * puma.config                                             : #<Puma::Configuration:0x00007f8e3ca10f00>
    * puma.request_body_wait                                  : 0.002928003668785095
    * puma.socket                                             : #<TCPSocket:0x00007f8e3607d4d0>
    * rack.after_reply                                        : []
    * rack.errors                                             : #<IO:0x00007f8e44558f28>
    * rack.hijack                                             : #<Puma::Client:0x00007f8e35798d60>
    * rack.hijack?                                            : true
    * rack.input                                              : #<Puma::NullIO:0x00007f8e3c7176a0>
    * rack.multiprocess                                       : false
    * rack.multithread                                        : true
    * rack.request.cookie_hash                                : {"_ga_SBMT3M6EV2"=>"GS1.1.1712244137.52.1.1712244529.0.0.0", "_ga"=>"GA1.1.881754883.1690307389", "_geo_discovery_session"=>"CIVb1VL0JbuBWF1+mbWRn+8kaPEeNLhvdvmX8Hi5aJvteZlw9I3014pf6hB0eSQh8Q2oc28ztV/BFnG9Tfl5swCJVkZF5KXNI6x//gikQfGcYhOlnfqD8YXwkqC4hLiYjK+Sqts8nt+7kJhrjU7+qxqBsZIwG34/Iil9cnJqiPAni+c...
    * rack.request.cookie_string                              : _ga_SBMT3M6EV2=GS1.1.1712244137.52.1.1712244529.0.0.0; _ga=GA1.1.881754883.1690307389; _geo_discovery_session=CIVb1VL0JbuBWF1%2BmbWRn%2B8kaPEeNLhvdvmX8Hi5aJvteZlw9I3014pf6hB0eSQh8Q2oc28ztV%2FBFnG9Tfl5swCJVkZF5KXNI6x%2F%2FgikQfGcYhOlnfqD8YXwkqC4hLiYjK%2BSqts8nt%2B7kJhrjU7%2BqxqBsZIwG34%2FIil9cnJqiPAni%2BchP%2FuwnbQcSRSC%2FTzZUCXgyg9UsHbJ8x7RhqRfxBjT4M0pWKR3ypX3OguCShZ61xnJP66Ik4NLABOwFYP0e9DGANdZLHdJ0LG6PPPraJskPF7PZjTVo818gkWrDt7XhXzmqmHLoxrRRIxo39WEs5SQO0SujaXzolYHOBraLFkqGku0qGisjbQk5gkCBpPpW7me1Yh%2Fs6wlegChA17JN%2BV7PmxUyYojzLvr%2BGN9HHlit5xOrwmXH%2Fo%2F%2FnJn3kqtrgFKqf7XpIbAPKSzeTLRILSXvtuGY1hH4HvLz6j3xCLgl86Hs992Nvo0fplyaNLamlpS2lC7Q90r--TNW%2BKDGVUZiX5bhs--BDCQxZN2Q%2BNz%2Fm3%2FsUfUjQ%3D%3D
    * rack.request.query_hash                                 : {}
    * rack.request.query_string                               :
    * rack.run_once                                           : false
    * rack.session                                            : #<ActionDispatch::Request::Session:0x00007f8e35474670>
    * rack.session.options                                    : #<ActionDispatch::Request::Session::Options:0x00007f8e356bc540>
    * rack.tempfiles                                          : []
    * rack.url_scheme                                         : http
    * rack.version                                            : [1, 6]
    * warden                                                  : Warden::Proxy:44480 @config={:default_scope=>:user, :scope_defaults=>{}, :default_strategies=>{:user=>[:rememberable, :database_authenticatable]}, :intercept_401=>false, :failure_app=>#<Devise::Delegator:0x00007f8e3c7d6910>}

ActionView::Template::Error (SSL_connect returned=1 errno=0 peeraddr=129.89.209.63:443 state=error: certificate verify failed (unable to get local issuer certificate)):
    10:              aria-controls="<%= metadata.type %>"
    11:              role="tab"
    12:              data-toggle="pill"
    13:              data-ref-endpoint="<%= metadata.endpoint %>"
    14:              data-ref-download="#btn-metadata-download"><%= formatted_name_reference(metadata.type) %></a>
    15:         </li>
    16:       <% end %>
srappel commented 6 months ago

If I access the page http://localhost:3000/catalog/ark:-77981-gmgs0c4sj6k/metadata, I get a bit more info:

image

 Showing /usr/share/rvm/gems/ruby-3.2.1/gems/geoblacklight-4.1.0/app/views/catalog/_metadata.html.erb where line UWM-Libraries/GeoDiscovery#13 raised:

SSL_connect returned=1 errno=0 peeraddr=129.89.209.63:443 state=error: certificate verify failed (unable to get local issuer certificate)
srappel commented 6 months ago

Grabbing our metadata from Apache (where the XML is) as an HTTP request works, other FGDC data on HTTPS works from other institutions.

srappel commented 4 months ago

Let's just point to the OGM github. That's what BTAA is doing with our records and it works fine.

srappel commented 3 months ago

Need to modify:

https://github.com/UWM-Libraries/GeoDiscovery-Utils/blob/b40888c813d175a93532b41d0c776a0c1e4861de/geometadataedit/geometadataedit/updatemetadata.py#L520C12-L523C1

def bind(self, purge=False) -> requests.models.Response:
# ...
  metadata_URL = (
      f"{FILE_SERVER_URL}metadata/{self.identifier.assignedName}_ISO.xml"
  )
srappel commented 3 months ago

This would be easy to update in the JSON. Harder to update in the ISO.

Updating in the ISO would require retooling the geometadataedit library, which sounds like a PITA.

But then it's there when we need it for metadata Olivia will be working on.

srappel commented 2 months ago

https://github.com/OpenGeoMetadata/edu.uwm/commit/e5a715e3b408e8b9df42669f0893bb694285471e