Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
Arjun K
Hi all. I have a question related to JSON reference resolution using Invenio. I have a requirement in my project whereby relative URLs of other records stored in the same invenio server will be specified in $ref fields of records (for instance, "$ref": "/author/<pid>") and these references have to be resolved during indexing . I have already tried using jsonresolver as mentioned in this training exercise and had success in resolving absolute URLs but not with relative ones. I have also tried using invenio_indexer.signals.before_record_index as mentioned in this training exercise, but invenio_indexer tries to resolve $ref URLs before reaching this step and hence fails when relative URLs are used. Is there any way in which relative URL references can be resolved?
@lnielsen Thank you for your replies on version update and ML. I have been going through the documentation on updates, and trying to get the application working with v3.3, including webpack. I will look at the references you had given for ML. Thank you very much.
Gabriele Corso

Hi everyone, i was tring to bring up the full docker-compose setup, after update the
docker.base from FROM inveniosoftware/centos7-python:3.6 to FROM inveniosoftware/centos8-python:3.7, i run ./docker/build-images.sh as the tutorial says here, but i have this error:

Sending build context to Docker daemon  6.613MB
Step 1/3 : FROM inveniosoftware/centos8-python:3.7
 ---> 46f21d656dbe
Step 2/3 : COPY Pipfile Pipfile.lock ./
 ---> Using cache
 ---> b4805106ec82
Step 3/3 : RUN pipenv install --deploy --system
 ---> Running in 6275bbf48bb9
Installing dependencies from Pipfile.lock (8df3d0)…
An error occurred while installing -e .! Will try again.
Installing initially failed dependencies…
[pipenv.exceptions.InstallError]:   File "/usr/bin/python3/lib/python3.7/site-packages/pipenv/core.py", line 1874, in do_install
[pipenv.exceptions.InstallError]:       keep_outdated=keep_outdated
[pipenv.exceptions.InstallError]:   File "/usr/bin/python3/lib/python3.7/site-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/usr/bin/python3/lib/python3.7/site-packages/pipenv/core.py", line 859, in do_install_dependencies
[pipenv.exceptions.InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[pipenv.exceptions.InstallError]:   File "/usr/bin/python3/lib/python3.7/site-packages/pipenv/core.py", line 763, in batch_install
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
[pipenv.exceptions.InstallError]:   File "/usr/bin/python3/lib/python3.7/site-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: []
[pipenv.exceptions.InstallError]: ['ERROR: File "setup.py" not found. Directory cannot be installed in editable mode: /opt/invenio/src']
ERROR: ERROR: Package installation failed...
The command '/bin/sh -c pipenv install --deploy --system' returned a non-zero code: 1
Sending build context to Docker daemon  6.615MB
Step 2/6 : FROM fare-base:${DEPENDENCIES_VERSION}
pull access denied for fare-base, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

how can i fix it?

Obinna Nnenanya
Hi @CorsoGabriele, you may want to chown /opt/invenio/src so you have write access to it. I've not been working directly on Invenio recently, so my suggestion is not Invenio-based; it's general. For the docker image from fare-base, it seems to be private. In which case you need to log in to your docker and also be granted access to it by the owner. Just giving a general clue.
Gabriele Corso
@kingobi1_twitter thanks for your reply, i have not the file /opt/invenio/src, do i have to create it manually?
Obinna Nnenanya
@CorsoGabriele sorry for the late response. I see; this is supposed to be inside a docker container. Hope you are running this command in the invenio root folder.
Gabriele Corso

@kingobi1_twitter debbugging i discovered that the line fare = {editable=true,path="."} in the Pipfile cause the problem, so i removed it and now i have:

 File "/usr/bin/python3/lib/python3.7/site-packages/invenio_logging/fs.py", line 62, in install_handler
    'Log directory {0} does not exists.'.format(basedir))
ValueError: Log directory /var/log/fare does not exists.
The command '/bin/sh -c pip install . &&     invenio collect -v  &&     invenio webpack create &&     invenio webpack install --unsafe &&     invenio webpack build' returned a non-zero code: 1

the folder /var/log/fare is present in my filesystem and i tried to create it with a command in the Dockerfile.base, but it didn't work

Hi @CorsoGabriele, opt/invenio/src is a folder created inside the docker container. If you check the logs you posted, everything is running inside containers so your filesystem is definitely not the cause of the problem. Since running pip install -e . basically inserts the line you posted in the Pipfile, to solve the first problem you may have to copy the entire workdir in the container and not just Pipfile and the Pipfile.lock. Then to solve the second issue you have to create the folder manually in the Dockerfile.base since the system is somehow expecting to see it there. The build should pass then.
Dan Granville
Daniel Kopecký

Hi all, I am writing new extension for Invenio (https://github.com/oarepo/invenio-taxonomies). In setup.py, I have dependency on our wrapper for installing Invenio (https://github.com/oarepo/oarepo).

I tried to init invenio database in my venv:

invenio db init

And I got this responce (traceback):

Traceback (most recent call last):
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/bin/invenio", line 8, in <module>
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/flask/cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/flask/cli.py", line 426, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/flask_migrate/cli.py", line 31, in init
    _init(directory, multidb)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/flask_migrate/__init__.py", line 96, in wrapped
    f(*args, **kwargs)
  File "/home/semtex/GoogleDrive/Projekty/Pracovní/oarepo/invenio-taxonomies/venv/lib/python3.8/site-packages/flask_migrate/__init__.py", line 126, in init
    directory = current_app.extensions['migrate'].directory
KeyError: 'migrate'

For complete imformation, here is pip list:


Does anybody know, why I got error that Flask-Migrate is missing in extensions, altough it is in pip list? Invenio shell is working and current_app.extensions are following: https://pastebin.com/XwYfvTex

1 reply
Lars Holm Nielsen
Invenio-DB uses Flask-Alembic instead of Flask-Migrate for configuring Alembic, so that’s likely why……..
alternatively, it might be you can register Flask-Migrate on the Invenio application……not sure if it’s going to working, but it might
Mirek Simek
Hi folks, I've added a pull request for invenio-jsonschemas - handling nested allOf + fixing isort build problems. Please consider merging. Thanks.
Lars Holm Nielsen
@ntarocco In my application using Invenio v3.3, I am trying to add/change styles. In which file should i add the changes in virtualenv and run any command (like invenio webpack buildall)? I tried adding them to styles.scss in virtualenv. They don't get picked up. Thank you.
Lars Holm Nielsen

Heads up

We are planning a move from Gitter to Discord as the primary chat application for Invenio projects. We have been testing out Discord for the past months on the InvenioRDM project. Gitter development has been staled for quite some time, and the applications (desktop/mobile) is at often buggy. In addition to a more stable application, Discord have integrated video calls. We are planning an official move during the coming week. Instructions will be posted here and on inveniosoftware.org on how to gain access to Discord.
Eugenio Corso

@ntarocco In my application using Invenio v3.3, I am trying to add/change styles. In which file should i add the changes in virtualenv and run any command (like invenio webpack buildall)? I tried adding them to styles.scss in virtualenv. They don't get picked up. Thank you.

i have the same issue when i deploy the app with the docker-compose.full.yml, i have modified the css in my_site/theme/assets/scss/my_site/theme.scss, added some js files in my_site/theme/assets/js/my_site/ and finally added images in my_site/theme/static/images but none of this are found

Volodymyr Kushnarenko

@osoo_gitlab Invenio comes with an object store API, so filenames are in fact “keys” that can contain slashes etc, that you could use to build a file hierarchy
:point_up: 7. Juli 2020 17:35

Dear community, do we have already some module to represent a file hierarchy in GUI (e.g. like in Dataverse - http://guides.dataverse.org/en/latest/user/dataset-management.html#file-path)? Is such implementation planned in InvenioRDM? Currently I can not find some real Invenio Instance, which has a file hierarchy in GUI (folders, subfolders). Many thanks in advance. It is an important feature for preservation of digital legacy materials in archives.

Lars Holm Nielsen
@vkush Each object in the object store (Invenio-Files-REST) defines a key. Most of the time, this is simply a filename, however it can include a path components (e.g. afolder/bfolder/myfile.txt) so that you can represent a directory structure
In the rendering of the landing page (UI side of things), there’s no special rendering implemented. It would be up to you to implement.
That said, many times a Zip file does as good a job - we’re displaying the file hierarchy in the previewer and it’s easy to download + zip is good for preservation
also, in terms of preservation, actually single files without structure is much easier to preserve because you remove complexity of direcotry structure above it.
Mirek Simek
Hi folks, one enhancement question: would it be possible to add extra signals during invenio loading? We already have app_loaded (at https://github.com/inveniosoftware/invenio-base/blob/master/invenio_base/app.py#L123) and for my use-case (modifying RECORDS_REST_ENDPOINTS dynamically after extensions are loaded but before loading blueprints) it would be great to have extensions_loadedand maybe even config_loaded. If it makes sense I'd create an issue and pull request. thanks.
Lars Holm Nielsen
Have you tried to see if blueprint.record() or blueprint.record_once() could be used? But yes, in principle we could add the signals: app_config_loaded, app_converters_loaded, app_extensions_loaded
Mirek Simek
Unfortunately these I can not use - I cat get the blueprint too late when it is already registered within the application and thus unmodifiable. I've added an issue inveniosoftware/invenio-base#156 and will prepare a pull request if it helps. Thanks.
Sébastien Délèze

Hi, when a SVG file is uploaded with invenio-files-rest, the mime type is well guessed:

    "links": {
        "self": "https://localhost:5000/api/files/2615f001-65a8-4ece-85da-87d120bcc7f7/logo.svg",
        "version": "https://localhost:5000/api/files/2615f001-65a8-4ece-85da-87d120bcc7f7/logo.svg?versionId=8e455c6c-cb34-444a-9fed-21abd3cca4af",
        "uploads": "https://localhost:5000/api/files/2615f001-65a8-4ece-85da-87d120bcc7f7/logo.svg?uploads"
    "is_head": true,
    "delete_marker": false,
    "version_id": "8e455c6c-cb34-444a-9fed-21abd3cca4af",
    "created": "2020-09-01T09:29:22.312312+00:00",
    "tags": {},
    "mimetype": "image/svg+xml",
    "checksum": "md5:8fef00abde7378bed4e9de313fe7cfe3",
    "updated": "2020-09-01T09:29:22.327441+00:00",
    "key": "logo.svg",
    "size": 1294

But when trying to get the file, the mime type is text/plain. I think it's because image/svg+xml is not present in the MIMETYPE_WHITELIST list. I would be great if this whitelist could be configured per project.

@sebastiendeleze what do you mean with I would be great if this whitelist could be configured per project.?
You can se tthe MIMETYPE_WHITELIST variable if you need
Sébastien Délèze
@ntarocco Thanks for you answer, but MIMETYPE_WHITELIST is defined in file helpers.py and is not configurable. I think it should be in config.py, and MIMETYPE_TEXTFILES, MIMETYPE_PLAINTEXT, too.
Johnny Mariéthoz
Hello if I have invenio-userprofile installed can my users can log to the system with the username instead of the email address?
Johnny Mariéthoz
Hello I try to use invenio-accounts 1.3 REST API. I post a JSON request to the https://localhost:5000/api/login but I go an error that suggest that I have a problem with Flask-Login which defined /api/login/ and invenio-accounts that defines /api/login. Here is the error: flask.debughelpers.FormDataRoutingRedirect: b'A request was sent to this URL (https://localhost:5000/api/login) but a redirect was issued automatically by the routing system to "https://localhost:5000/api/login/&quot;. Any idea?
Zacharias Zacharodimos
Hey @jma which version of invenio-accounts are you using?
Zacharias Zacharodimos
Have you set the ACCOUNTS_REGISTER_BLUEPRINT variable? It should be left to None if so...
Johnny Mariéthoz
@zzacharo version 1.3.0 with ACCOUNTS_REGISTER_BLUEPRINT = True
Zacharias Zacharodimos
@jma can you set it to None? Or actually don't set it at all? invenio-accounts is doing the correct job out of the box....I think that config variable it confuses a bit....
Johnny Mariéthoz
@zzacharo ok probably I miss the meaning of this configuration can you explain me what is the purpose of this? Thanks in advance.
Zacharias Zacharodimos

@jma the variable is used to register or not the flask-security blueprints. In the latest version of invenio-accounts we integrated the rest views from invenio-accounts-rest and we register all the endpoints that flask-security was registering in the InvenioAccountsREST extension. That said, when setting the ACCOUNTS_REGISTER_BLUEPRINT variable, initially controlling the registration of the flask-security blueprints, it works fine for the UI application e.g /login, /logout etc. but it conflicts with the REST application i.e /api/login, /api/logout. The problem is that it tries to register twice the same endpoints and thus giving you the error you saw...

In your application do you need to access the authentication views i.e login, logout etc through jinja or you have an SPA making requests to the API application? The scope of the REST application is to give back a REST response instead of rendering the corresponding templates e.g for the login page...

Johnny Mariéthoz
@zzacharo both, we use jinja2 view for public view and REST API for professional view.
Lanxin Ma
Hello, When I run "./docker/build-images.sh" I get many errors, i.e. Installing dependencies from Pipfile.lock (c5dba8)â¦
An error occurred while installing alembic==1.4.3 --hash=sha256:4e02ed2aa796bd179965041afa092c55b51fb077de19d61835673cc80672c01c --hash=sha256:5334f32314fb2a56d86b4c4dd1ae34b08c03cae4cb888bc699942104d66bc245! Will try again.
An error occurred while installing amqp==2.6.1 --hash=sha256:70cdb10628468ff14e57ec2f751c7aa9e48e7e3651cfd62d431213c0c4e58f21 --hash=sha256:aa7f313fb887c91f15474c1229907a04dac0b8135822d6603437803424c0aa59! Will try again.
What does cause these errors ? I am an newer on Invenio. Could any body help ? Thx.
Lanxin Ma
Hello, I am settin up my own INvenio3.3 instance. When I run './scripts/bootstrap', I get the error .
[2020-10-15 19:00:30,556] ERROR in app: Failed to initialize entry point: invenio_previewer = invenio_previewer:InvenioPreviewer
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/invenio3-gVyQboDv/lib/python3.6/site-packages/pkg_resources/init.py", line 2736, in requires
KeyError: 'execute'

"/root/.local/share/virtualenvs/invenio3-gVyQboDv/lib/python3.6/site-packages/pkg_resources/init.py", line 2740, in requires
) from e
pkg_resources.UnknownExtra: nbconvert 6.0.7 has no such extra feature 'execute'

I do not understand the error. Could anybody help ? Thx.

Johnny Mariéthoz
@malanxin_gitlab Try to add this requirement contraint: nbconvert = {version = ">=5.6.1,<6.0.0", extras = ["execute"]} this has been done in the master branch of invenio-previewer but not yet in the release: https://github.com/inveniosoftware/invenio-previewer/blob/340121b967f3bc8e942ee947bbce7fd332ba93d9/setup.py#L58
Arjun K

Hi. I am trying to connect to use Amazon Elasticsearch Service with Invenio. As per the currrent implementation, I configure the Elasticsearch params -as shown in this tutorial - in SEARCH_ELASTIC_HOSTS . But the problem with this is that the session_token passed in the AWS4Auth object expires after a while which would cause the subsequent requests to fail.

Since the Elasticsearch parameters are configured during app initialization, there seems to be no way to refresh the token and/or re-initialize the ES object with a new token. Is there any way to handle this issue?

Michael Groh
Hi. I'm trying to set up my first invenio instance for evaluation at my university. But every method I tried ends with unresolved dependencies with pipenv. This happens both under debian10/python7 Ubuntu20.04/python7 and Ubuntu18.04/python6 (tutorial ova) . Unfortunately I have no previous experience with pipenv and therefore I am not sure how to solve the problem.
If someone could help me over this barrier it would help me a lot.
Osagie Sammy
Good afternoon great to be here
This is my first time.
I have a question do not really know the etiquette here, has anyone deploy Invenio in AWS?
Kanász-Nagy Zoltán

Hello Guys,

We have stucked in the middle of a fresh Invenio RDM Installation process.
Could anyone in this room could help us?