DataONE Tasks: Issueshttps://redmine.dataone.org/https://redmine.dataone.org/favicon.ico2019-06-19T01:44:19ZDataONE Tasks
Redmine Infrastructure - Bug #8822 (New): Account queries in STAGE-2 failing from web browserhttps://redmine.dataone.org/issues/88222019-06-19T01:44:19ZBryce Mecummecum@nceas.ucsb.edu
<p>Steps to reproduce:</p>
<ol>
<li>Visit <a href="https://search-stage-2.test.dataone.org/">https://search-stage-2.test.dataone.org/</a></li>
<li>Log in</li>
<li>Navigate to <a href="https://search-stage-2.test.dataone.org/data">https://search-stage-2.test.dataone.org/data</a></li>
<li>Observe an HTTP 500 in the Network pane of whichever browser you're using to <a href="https://search-stage-2.test.dataone.org/cn/v2/accounts/?query=%7BYOUR_DN%7D">https://search-stage-2.test.dataone.org/cn/v2/accounts/?query={YOUR_DN}</a></li>
</ol>
<p>Response body:</p>
<pre><?xml version="1.0" encoding="UTF-8"?>
<error detailCode="500" errorCode="500" name="ServiceFailure">
<description>Internal Server Error: The server encountered an unexpected condition which prevented it from fulfilling the request.</description>
</error>
</pre>
<p>Some notes:</p>
<ul>
<li>I notice this in multiple browsers</li>
<li>I notice this only when the request is issued from MetacatUI, not when I visit the URL in my browser or hit it with curl</li>
<li>I don't notice this error on search.dataone.org</li>
<li>MetacatUI on search.dataone.org doesn't even issue this request</li>
<li>MetacatUI on stage-2 is at v2.4.2 and on search is at 2.6.1</li>
</ul>
<p>It seems like a bug to me that we see a service failure but I'm not sure if this is a MetacatUI bug or an issue in the CN stack (i.e., Apache config or something) but I wanted to file it for someone to take a look.</p>
Infrastructure - Decision #8693 (In Progress): Support Google Dataset Search on search.dataone.or...https://redmine.dataone.org/issues/86932018-09-07T00:16:59ZBryce Mecummecum@nceas.ucsb.edu
<a name="Background"></a>
<h2 >Background<a href="#Background" class="wiki-anchor">¶</a></h2>
<p>Yesterday, <a href="https://toolbox.google.com/datasetsearch" class="external">Google Dataset Search</a> launched. We previoiusly attempted to make MetacatUI (and by extension, DataONE Search) compatible with it by <a href="https://github.com/NCEAS/metacatui/issues/482" class="external">injecting Schema.org JSON-LD into appropriate pages</a>. During development and testing, we checked our compatibility with the upcoming Google Dataset Search using Google's <a href="https://search.google.com/structured-data/testing-tool" class="external">Structured Data Testing Tool</a>. During development, this was all working fine and the feature appeared to be compatible but, after launching the feature on search.dataone.org, behavior changed on Google's end making it so Google no longer saw this JSON-LD. The reason for this is likely that, because MetacatUI follows a single page application architecture and we inject the JSON-LD on the client side, Google's JSON-LD crawler only saw what was sent from the server (a nearly empty index.html) and not our full page (with JSON-LD). I was able to test this theory and, while Google's crawler does execute JavaScript, it limits execution to about or exactly five seconds and MetacatUI <em>usually</em> doesn't finish injecting JSON-LD and rendering all content until after that timeout.</p>
<p>Potential paths forward to get DataONE Search compatible with Google's Dataset Search include (none of which are mutually exclusive):</p>
<ol>
<li>The assets that make up MetacatUI and the asset loading strategies could be optimized: <a href="https://github.com/NCEAS/metacatui/issues/224">https://github.com/NCEAS/metacatui/issues/224</a></li>
<li>Move the code (and any dependencies) that injects JSON-LD further up in the app boot so that Google sees it</li>
<li>Inject the appropriate JSON-LD on the server side to guarantee that Google sees it (originally Matt Jones' idea!)</li>
</ol>
<p>(1) is being worked on for sure, and (2) may not be needed if (1) is successful. I want to talk about option (3) because:</p>
<ul>
<li>It's a quicker solution (I already have something working) which would help get us involved in the project faster</li>
<li>It paves the way for future features and/or improvements to MetacatUI (we could be rendering more on the server side than just JSON-LD, like other metadata, more page content, etc)</li>
</ul>
<a name="What-I-did"></a>
<h2 >What I did<a href="#What-I-did" class="wiki-anchor">¶</a></h2>
<p>To test this idea, I modified a <a href="https://github.com/amoeba/backbone-pushstate-example" class="external">previous project</a> which is just a simple Node (Express.js) app that hosts MetacatUI by intercepting every request and serving the appropriate asset. In injects Schema.org JSON-LD, when appropriate, by querying the CN Solr index before sending MetacatUI's index.html to the client. <a href="https://github.com/amoeba/metacatui-ssr" class="external">Code is here</a> and its deployed <a href="http://neutral-cat.nceas.ucsb.edu/" class="external">here</a>. View source on any /view/... pages and you'll see a minimal Schema.org/Dataset description in the head. More properties can be added later. I did it quick and dirty: The app pre-loads MetacatUI's index.html as a <code>String</code> at app boot and injects the JSON-LD into it. No templating language or other magic.</p>
<a name="Things-to-address"></a>
<h2 >Things to address<a href="#Things-to-address" class="wiki-anchor">¶</a></h2>
<ul>
<li>How do we feel abouts switching from hosting MetacatUI via Apache (simple, bullet proof) to a Node based deployment just to support this feature (new territory, at least for me)?</li>
<li>If we do switch, we'd want to make really sure the Node app doesn't have weird failure cases where it doesn't return index.html (e.g., when Solr is down, or slow). The app needs to return index.html (and every other static asset) on every request and do it very fast and we should decide what the cutoff is so that it doesn't hold up app boot if Solr is slow/down.</li>
<li>Can this type of deployment easily be integrated with CN buildouts? I've deployed Node apps before by fronting them with Apache/nginx (via reverse proxy) and then keeping the node process up with Upstart</li>
<li>Is this performant enough for DataONE? I think my implementation is non-blocking but I'm not a Node expert so we'd want to code review and probably benchmark </li>
<li>We could wait on (1) and stick with our current deployment strategy</li>
</ul>
<a name="Other-notes"></a>
<h2 >Other notes<a href="#Other-notes" class="wiki-anchor">¶</a></h2>
<p>Unrelated to the Google Dataset Search issue but related to Google's crawling for Google Search, we've also identified:</p>
<ul>
<li>That the Metacat View Service is often unreasonably slow: <a href="https://github.com/NCEAS/metacat/issues/1234">https://github.com/NCEAS/metacat/issues/1234</a> and are planning to figure out why</li>
<li>That we can and should make use of sitemaps to help Google crawl our pages: <a href="https://github.com/NCEAS/metacat/issues/1263">https://github.com/NCEAS/metacat/issues/1263</a></li>
</ul>
Member Nodes - MNDeployment #7973 (New): Alaska Energy Data Gatewayhttps://redmine.dataone.org/issues/79732017-01-27T15:19:28ZLaura Moyerslmoyers1@utk.edu
<p>At a meeting 26 January 2017, it was mentioned that GINA is working with the Alaska Energy Data Gateway on a proposal where there is a component for implementing a DataONE Member Node for AEDG. This is still very early in the proposal stage, but the possibility exists for an AEDG MN in future.</p>
Member Nodes - MNDeployment #7962 (Deferred): Alaska EPSCoRhttps://redmine.dataone.org/issues/79622017-01-09T19:00:08ZRebecca Koskelarkoskela@unm.edu
<p>GINA also runs the Alaska EPSCoR repository and because it's a separate project, it should also be a separate MN</p>
<p><a href="http://www.alaska.edu/epscor/">http://www.alaska.edu/epscor/</a><br>
Current portal that is hosted by GINA: <a href="http://epscor.alaska.edu/">http://epscor.alaska.edu/</a></p>
DataONE API - Bug #7684 (New): Call to MNStorage.update() via REST API returns java.lang.StackOve...https://redmine.dataone.org/issues/76842016-03-21T23:07:39ZBryce Mecummecum@nceas.ucsb.edu
<p>I was trying to update an object via the REST API via cURL and forgot to enter the correct URL. The cURL command I used and response is:</p>
<p>$ curl -X PUT -H "Authorization: Bearer $TOKEN" -F "pid=resourceMap_doi:10.5065/D6G44NFV" -F "object=@object.xml" -F "sysmeta=@sysmeta.xml" -F "newPid=resourceMap_doi:10.5065/D6G44NFV_v3" $URL<br>
<?xml version="1.0" encoding="UTF-8"?><br>
java.lang.StackOverflowError<br>
</p>
<p>Where $URL was '<a href="https://arcticdata.io/metacat/d1/mn/v2/object">https://arcticdata.io/metacat/d1/mn/v2/object</a>' instead of '<a href="https://arcticdata.io/metacat/d1/mn/v2/object/resourceMap_doi:10.5065/D6G44NFV">https://arcticdata.io/metacat/d1/mn/v2/object/resourceMap_doi:10.5065/D6G44NFV</a>'</p>
<p>I expected to receive some sort of warning/error that I had forgotten to specify the URL properly for this call but instead saw a StackOverflowError.</p>
Member Nodes - MNDeployment #7052 (New): BaMBa - Brazilian Marine Biodiversity Databasehttps://redmine.dataone.org/issues/70522015-04-17T19:58:11ZLaura Moyerslmoyers1@utk.edu
<p>Luiz Gadelha forwarded a MNDD to <a href="mailto:support@dataone.org">support@dataone.org</a>. We need to set up a getting-to-know-you meeting with interested parties.</p>
<p><a href="https://marinebiodiversity.lncc.br">https://marinebiodiversity.lncc.br</a></p>
Member Nodes - MNDeployment #7048 (Deferred): USGS Regional Climate Centershttps://redmine.dataone.org/issues/70482015-04-17T17:24:19ZBruce Wilsonbwilso27@utk.eduMember Nodes - MNDeployment #3684 (New): Branner Earth Sciences Library - Stanford Universityhttps://redmine.dataone.org/issues/36842013-03-22T16:57:33ZLaura Moyerslmoyers1@utk.edu
<p>From DataONE website "contact us" – Want to be DUG member</p>
<p>Website: <a href="http://www-sul.stanford.edu/depts/branner/">http://www-sul.stanford.edu/depts/branner/</a><br>
Entity: Branner Earth Sciences Library – Stanford University<br>
POC: <a href="mailto:winklerh@stanford.edu">winklerh@stanford.edu</a><br>
Date of inquiry: 7/25/12<br>
Responder: Andrew Sallans<br>
Date of response: 8/24/12<br>
Response: You're added. Info on DUG.</p>
Java Client - Story #3666 (In Progress): D1Client.listUpdateHistory() needs to handle changing ac...https://redmine.dataone.org/issues/36662013-03-15T22:51:23ZRob Nahfrnahf@epscor.unm.edu
<p>the current D1Client.listUpdateHistory() method needs to gracefully handle the situation where a NotAuthorized request is returned. the ObsoletesChain client class may need to be refactored to allow for this exception to be held so it can notify the user where appropriate.</p>
<p>Ostensibly, with a NotAuthorized, the user will not have access to either the tail or head of the chain, so can't return the head or tail, depending on how access changes.</p>
Member Nodes - MNDeployment #3633 (New): Bay Delta Member Nodehttps://redmine.dataone.org/issues/36332013-03-01T15:42:38ZJohn Cobbjohnw.cobb+dataoneRM@gmail.com
<p>MN lead from Bob Cook at the AGU meeting.</p>
<p>The following note is from a January 21, 2013 e-mail</p>
<p>Hi Mike and John</p>
<p>Have you seen this?</p>
<p>Bay Delta Live:<br>
<a href="http://www.baydeltalive.com/">http://www.baydeltalive.com/</a></p>
<p>At AGU, I met one of the staff who run the data system behind this Web site (pulling data from various sources in near real time) and visualizing for resource managers.</p>
<p>They are interested in becoming a DataONE Member Node.</p>
<p>Attached is a talk they sent: </p>
<p>Something worth considering!<br>
Bob</p>
Member Nodes - MNDeployment #3520 (New): ARCTOS Collaborative Collection Management Solutionhttps://redmine.dataone.org/issues/35202013-01-25T19:33:16ZRebecca Koskelarkoskela@unm.edu
<p>Arctos is a collaborative Collection Management Information System that currently serves over 1.7 million records from multiple natural history collections. The data reside in an Oracle database administered by the Texas Advanced Computing Center. We are looking for off-site options for data backup and disaster recovery, and would like to discuss the possibility of partnering with DataONE for this purpose. Perhaps we can set up a conference call to discuss this?</p>
<p>Contacts:Carla Cicero <a href="mailto:ccicero@berkeley.edu">ccicero@berkeley.edu</a> <br>
Dusty McDonald <a href="mailto:dustymc@gmail.com">dustymc@gmail.com</a>,<br>
Chris Jordan <a href="mailto:ctjordan@tacc.utexas.edu">ctjordan@tacc.utexas.edu</a>,<br>
Link Olson <a href="mailto:leolson@alaska.edu">leolson@alaska.edu</a>,<br>
Gordon Jarrell <a href="mailto:gordon.jarrell@gmail.com">gordon.jarrell@gmail.com</a></p>
<p>Conference Call on 24 January 2013</p>
Member Nodes - MNDeployment #3241 (New): ALA - Atlas of Living Australia member nodehttps://redmine.dataone.org/issues/32412012-09-07T01:46:59ZDave Vieglaisdave.vieglais@gmail.com
<p>The Atlas of Living Australia has been identified as a potential member node. This issue track progress towards that goal.</p>
<p>ALA - <a href="http://www.ala.org.au/">http://www.ala.org.au/</a></p>
Member Nodes - MNDeployment #3240 (New): AZGS - Arizona Geological Survey member nodehttps://redmine.dataone.org/issues/32402012-09-07T01:45:24ZDave Vieglaisdave.vieglais@gmail.com
<p>The Arizona Geological Survey (AZGS) has been identified as a potential member node. This issue track progress towards that goal.</p>
<p>Lee Allison has been identified as an initial contact.</p>
<p><a href="http://www.azgs.az.gov/">http://www.azgs.az.gov/</a></p>
Infrastructure - Task #1585 (New): add exec-maven-plugin to trigger python integration tests at v...https://redmine.dataone.org/issues/15852011-05-23T22:34:17ZRob Nahfrnahf@epscor.unm.edu
<p>see:</p>
<p><a href="http://steveberczuk.blogspot.com/2009/12/continuous-integration-of-python-code.html">http://steveberczuk.blogspot.com/2009/12/continuous-integration-of-python-code.html</a><br>
and<br>
<a href="http://mojo.codehaus.org/exec-maven-plugin/examples/example-exec-using-plugin-dependencies.html">http://mojo.codehaus.org/exec-maven-plugin/examples/example-exec-using-plugin-dependencies.html</a></p>
Requirements - Requirement #317 (In Progress): (Requirement) Identifiers for all objectshttps://redmine.dataone.org/issues/3172010-03-10T16:57:35ZDave Vieglaisdave.vieglais@gmail.com
<p>All objects in the <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> system have an identifier that is unique within all of the <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> infrastructure and can be used to retrieve the object from the system.</p>
<p>Rationale:</p>
<p>Unique identifiers provide the fundamental, low level mechanism for<br>
interacting with content stored in the <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> system. Unique identifiers help prevent duplication and improve re-usability of information.</p>
<p>Fit Criteria:</p>
<ul>
<li><p>Any object stored within <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> receives an identifier that is unique within the <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> infrastructure.</p></li>
<li><p>Any object with a <a class="wiki-page new" href="https://redmine.dataone.org/projects/d1req/wiki/DataONE">DataONE</a> identifier can be retrieved from the infrastructure.</p></li>
<li><p>Attempts to create a duplicate identifier are prevented.</p></li>
</ul>