Coder Social home page Coder Social logo

eudat-b2share / b2share Goto Github PK

View Code? Open in Web Editor NEW
35.0 23.0 32.0 76.16 MB

B2SHARE software for the EUDAT CDI services.

Home Page: https://b2share.eudat.eu

License: GNU General Public License v2.0

Shell 0.57% Python 76.12% HTML 0.38% JavaScript 20.23% CSS 2.30% Dockerfile 0.39% Procfile 0.01%
inveniosoftware eudat research-data-repository research-data open-data open-science open-research-data scientific-publications digital-library flask

b2share's Introduction

B2SHARE

image

image

image

image

B2SHARE is an user-friendly, secure, robust, reliable, and trusted service to share and publish your research data. B2SHARE is able to add value to your research data via (domain tailored) metadata, and assigning Persistent Identifiers PIDs to ensure long-lasting access and references. B2SHARE is one of the B2 services developed via EUDAT.

Deposit and release your data via the generic interface, or select a community extension including domain-specific metadata fields. Share your data with others in a safe and trusted environment. Scientific communities are able to brand templates, and use their own collections with specific metadata.

B2SHARE is based on Invenio. Invenio enables you to run your own electronic preprint server, your own online library catalogue or a digital document system on the web. It complies with the Open Archive Initiative metadata harvesting protocol.

Main service is running at: https://b2share.eudat.eu/

Developer documentation

A developer documentation is available. It can be built like this:

$ pip install -r requirements.txt # install dependencies
$ pip install -e .[all]
$ cd docs
$ make html
$ # open in your browser docs/_build/html/index.html

Acknowledgement

This work is co-funded by the EOSC-hub project (Horizon 2020) under Grant number 777536.

image

image

b2share's People

Contributors

cjhak avatar crepererum avatar dblommesteijn avatar egabancho avatar emanueldima avatar fjorba avatar gek20 avatar greut avatar hevp avatar jalavik avatar jeromecaffaro avatar jirikuncar avatar jmartinm avatar kaplun avatar kasioumis avatar kneczaj avatar lnielsen avatar ludmilamarian avatar manzikki avatar nharraud avatar noumar avatar osso avatar ppiotr avatar pxke avatar sarahba avatar tgbaron avatar thijscobben avatar tiborsimko avatar valkyriesavage avatar wohthan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

b2share's Issues

Stopping / Restarting upload of Big Data

(EUDAT-364c on CSC JIRA)

When uploading a file, the file is split into chunks, and then recombined when the entire file is uploaded. When stopping the upload of a large file, the progress bar goes back down to zero. If you resume the upload, the upload starts again from scatch, instead of resuming from where it left off, (or starting again with the first uncompleted chunk.)

If a file upload is permanently halted, the chunks remain in the upload directory.

Running on a virtual machine with limited space and memory, I was unable to test how the upload performs with really large data, but I verified that it works on a file size of 354MB. The upload for that file took about 4 minutes, even though it was on a local machine.

Some links on the home screen are empty

Because we only copy templates/*.html files to the invenio directory we don't have our markdown files there. These markdown files provide the content for about/faq/tou and therefore we need to copy them. This is solved with pull request #48

GUI for DRIHM

  • Use feedback from #19.
  • Check the elements and values for controlled vocabularies with the community

Adequate (end) user documentation

Carl Johan

  • As a wiki page here at Github
    • Always up-to-date. Changes from here deployed to the application.
  • Integrated as online help/how to in the B2SHARE application

EUDAT-443: Align license label on the right

(Copied from CSC JIRA)

The formatting of the metadata fields is poor: "Description" is aligned to the top of the text entry, and the "Open Access" switch button is the wrong size or should be aligned right. (It's not totally clear which is better.)

EUDAT-411: Add a cron script for cleaning up simplestore upload folder

(Issue copied from CSC JIRA)

Once bibupload is done, the temporary uploaded file can be safely deleted.

  • cron job, select e.g. 3 week old files (tunable by a script parameter)
  • cleanup-b2share-upload-files.sh
  • make use of the Invenio configuration setting for the upload location.

Create abuse form - create basic form

The B2SHARE UI must have an section with a CAPTCHA protected form for "Report Abuse or Inappropriate Content" which creates a B2SHARE-Abuse RT Ticket
The Form must contain following fields:
Report Subject: Abuse or Inappropriate content | Copyrighted material | No research data | Illegal content (choose one)
URL of Inappropriate content within B2SHARE
Why is the content Inappropriate? (500 char)
Your claim is based on: The content violates my rights | I am annoyed by the content | I am the legal owner of the content
Your name:
Your affiliation
Your email address
Your address
Your phone number
B2SHARE UI must also contain a valid link to B2SHARE ToU (Terms of Use)

Deploy KTH version

https://test-eudatis.csc.fi/

is now running the same version of Invenio + Simplestore as KTH.
There was some config issues, though. Because the older version of
Invenio/Simplestore uses Jinja 2.6 and the new one Jinja 2.7

From /opt/invenio/lib/python/invenio/jinja2utils.py

had to be commented off:

jinja2._markupsafe.escape = utf8escape

jinja2._markupsafe.Markup = Markup

I guess it's because jinja2 2.6 had _markupsafe-subdir under the jinja2 dir
and jinja2 2.7 uses the MarkupSafe-module. And the requirements for the jinja2 was
installed orginally from the requirements which we got from:

https://raw.github.com/SimpleStore/invenio-scripts/master/install/install-invenio-deps-rh.sh

https://b2share.eudat.eu is still running the version, which is installed from the git.

Development virtual machines as clones of the CSC deployment

We need a way for developers to work in the same environment, especially configured in the same way, as the deployment machine uses.

CSC guys already have a common development VM for us, which has the same environment as the public deployment at b2share.eudat.eu.

So we need an efficient way for each developer to request (or make himself) a clone of this common dev virtual machine.

This is a blocker issue. Until it is resolved we can't solve quite a few other things.

Pause while depositing an item(s)

After the metadata fields are filled in and the "Deposit" button is clicked, there is a pause while a PID is retrieved from the EPIC server. There should be some feedback to the user while this is happening, similar to the "Loading Form" message after you select a Domain.

Create abuse form - intergrate with RT and mail

See related ticket: Create abuse form - basic

A confirmation email should be sent to the requestor address above, after that a RT ticket can be created

After that, a confirmation email for created RT ticket is to be sent to the submitter:
" Thank you for submitting an abuse resolve request to B2SHARE Abuse. Your request will be handled by our administrators. You will receive an reply to your request.

**

Note. Also consider how to implement the mail intergation so that email cannot be used by spammers to relay spam,,...

Metadata tooltips do not use the correct attributes

In simplestore-addmeta-table.html, there are options at the bottom of the file for how the tooltip should appear. These are not currently working - instead default values are being used. There is no delay, and the trigger is set to both hover & focus.

persistent XSS-issue

I've now played around a little bit more now with this persistent XSS-issue and it seems that the description/tag-fields are atleast vulnerable, possible others also. How it works is that the attacker can add some malicious code in <script></script>-tags to description/tag field (possible to others also) and after that it can be executed for example when some other user finds the malicious record from the search-records.
Solution is that the input from the fields needs to be also escaped. There are some good ways explained in http://en.wikipedia.org/wiki/Cross-site_scripting
This is more Simplestore-related issue, and not in relation to the reflected cross-size scripting issue which was found in Invenio

Browse mode not working

In the search box open the options-ticker. There is "Browse" button down that should show all records. It shows none.

Search result output is throwing a 500

When searching with an empty string. Logs below.

2014-01-14 19:00:50,181 ERROR: Exception on /search [GET] [in /usr/lib/python2.6/site-packages/flask/app.py:1423]
Traceback (most recent call last):
  File "/usr/lib64/python2.6/site-packages/invenio/webinterface_handler_flask.py", line 244, in __call__
    response = self.app.full_dispatch_request()
  File "/usr/lib/python2.6/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python2.6/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python2.6/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python2.6/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/lib64/python2.6/site-packages/invenio/webinterface_handler_flask_utils.py", line 199, in decorated_function
    return render(template_name, **ctx)
  File "/usr/lib/python2.6/site-packages/flask/templating.py", line 128, in render_template
    context, ctx.app)
  File "/usr/lib/python2.6/site-packages/flask/templating.py", line 110, in _render
    rv = template.render(context)
  File "/usr/lib/python2.6/site-packages/jinja2/environment.py", line 969, in render
    return self.environment.handle_exception(exc_info, True)
  File "/usr/lib/python2.6/site-packages/jinja2/environment.py", line 742, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/opt/invenio/etc/templates/websearch_search.html", line 21, in top-level template code
    {% from "websearch_results.html" import render_search_results with context %}
  File "/usr/lib/python2.6/site-packages/jinja2/environment.py", line 1013, in make_module
    return TemplateModule(self, self.new_context(vars, shared, locals))
  File "/usr/lib/python2.6/site-packages/jinja2/environment.py", line 1070, in __init__
    self._body_stream = list(template.root_render_func(context))
  File "/opt/invenio/etc/templates/websearch_results.html", line 225, in top-level template code
    {{ render_search_results(recids, collection, pagination, format_record) }}
  File "/opt/invenio/etc/templates/page.html", line 114, in top-level template code
    {% block page_body -%}
  File "/opt/invenio/etc/templates/page.html", line 146, in block "page_body"
    {% block body %}
  File "/opt/invenio/etc/templates/websearch_results.html", line 222, in block "body"
    {{ render_search_results(recids, collection, pagination, format_record) }}
  File "/opt/invenio/etc/templates/websearch_results.html", line 159, in template
    {%- if of[0] == 'h' -%}
  File "/usr/lib/python2.6/site-packages/jinja2/environment.py", line 378, in getitem
    return obj[argument]
UndefinedError: 'of' is undefined

Start/Stop Upload

(EUDAT-364b on the CSC JIRA)

When uploading several files, if you stop and start the upload quickly, occasionally, the red "Stop Upload" button is placed to the right of the green "Start Upload" button, and both are briefly visible. I was unable to consistently generate this error, and it does not happen every time.

This is a minor error, as the problem fixes itself, and the files themselves appear to be uploaded correctly.

Collections and other facets empty

There are facets for faceted browsing in the search results. Currently they are empty, even though they should be populated by attributes from the records.

Possibly related to #35 and #36.

Registry and Monitoring

  • Include the B2SHARE services into the central registry and
  • monitoring.
  • Clarify the operational policy (specify OLA)

(split the issue as needed, guys)

OAI-PMH interface showing no records

We now have several testing records (search for empty string to list):
https://b2share.eudat.eu/search?p=&action_search=z

OAI-PMH server displays no records:
https://b2share.eudat.eu/oai2d?verb=ListRecords&metadataPrefix=oai_dc

bibupload won't work in CSC instance

On the logs it will generate error:

2013-12-18 08:15:06 --> Input file '/invenioupload/var/tmp-shared/webdeposit_2013-12-18_08:13:57NTUywM.marcxml', input mode 'replace'.
2013-12-18 08:15:06 --> Stage 2 failed: Error while elaborating FFT tags: Incorrect padding
2013-12-18 08:15:06 -->

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.