InvenioRDM user documentation web site.
$ mkvirtualenv docs-invenio-rdm
$ pip install -r requirements.txt
$ mkdocs serve
$ firefox http://127.0.0.1:8000
InvenioRDM docs
Home Page: https://inveniordm.docs.cern.ch/
License: MIT License
InvenioRDM user documentation web site.
$ mkvirtualenv docs-invenio-rdm
$ pip install -r requirements.txt
$ mkdocs serve
$ firefox http://127.0.0.1:8000
Package version (if known):
invenio-cli, version 0.22.0
A clear and concise description of what the bug is.
https://inveniordm.docs.cern.ch/reference/rest_api/#create-a-record-draft
JSON-code in "Request" is not valid (and after fixing, invenio-validation complains about missing fields).
{
"access": {
"metadata": false,
"files": false,
"owned_by": [{"user": 1}],
"access_right": "open"
},
"metadata": {
"resource_type": { "type": "image", "subtype": "image-photo" },
"title": "A Romans story",
"publication_date": "2020-06-01",
"creators": [
"person_or_org": {
"family_name": "Brown",
"given_name": "Troy",
"type": "personal"
},
{
"person_or_org": {
"family_name": "Collins",
"given_name": "Thomas",
"identifiers": [
{"scheme": "orcid", "identifier": "0000-0002-1825-0097"}
],
"name": "Collins, Thomas",
"type": "personal"
},
"affiliations": [
{
"identifiers": [
{"scheme": "ror", "identifier": "03yrm5c26"}
],
"name": "Entity One"
}
]
}
]
}
}
Error: Parse error on line 13:
... "person_or_org": { "family_
-----------------------^
Expecting 'EOF', '}', ',', ']', got ':'
No validation error.
This validation error can be fixed by putting the first appearance of person_or_org
into {}
.
{
"access": {
"metadata": false,
"files": false,
"owned_by": [
{
"user": 1
}
],
"access_right": "open"
},
"metadata": {
"resource_type": {
"type": "image",
"subtype": "image-photo"
},
"title": "A Romans story",
"publication_date": "2020-06-01",
"creators": [
{
"person_or_org": {
"family_name": "Brown",
"given_name": "Troy",
"type": "personal"
}
},
{
"person_or_org": {
"family_name": "Collins",
"given_name": "Thomas",
"identifiers": [
{
"scheme": "orcid",
"identifier": "0000-0002-1825-0097"
}
],
"name": "Collins, Thomas",
"type": "personal"
},
"affiliations": [
{
"identifiers": [
{
"scheme": "ror",
"identifier": "03yrm5c26"
}
],
"name": "Entity One"
}
]
}
]
}
}
However, putting this in test.js
and then trying to create the draft:
curl --oauth2-bearer <TOKEN> --insecure -H "Content-Type: application/json" -X POST --data '@test.js' https://127.0.0.1:5000/api/records
Gives us the following error message:
{"status": 400, "message": "A validation error occurred.", "errors": [{"field": "access", "messages": ["'record'"]}]}
Put the following code in working-test.js
{
"metadata": {
"title": "UNIBA-TITLE",
"publisher": "UNIBA",
"publication_date": "2321-03-24",
"rights": [
{
"description": "UNIBA-API-draft-test.",
"link": "https://creativecommons.org/licenses/by/4.0/legalcode",
"title": "Creative Commons Attribution 4.0 International",
"id": "cc-by-4.0"
}
]
},
"access": {
"record": "public",
"embargo": {
"reason": null,
"until": null,
"active": false
},
"files": "public",
"owned_by": [
{
"user": 2
}
]
}
}
curl --oauth2-bearer <TOKEN> --insecure -H "Content-Type: application/json" -X POST --data '@working-test.js' https://127.0.0.1:5000/api/records
Returns a successful creation of a draft (with some missing required fields).
{"expires_at": "2021-03-24 11:34:35.977783", "links": {"files": "https://127.0.0.1:5000/api/records/aw7xv-fd194/draft/files", "self_html": "https://127.0.0.1:5000/uploads/aw7xv-fd194", "publish": "https://127.0.0.1:5000/api/records/aw7xv-fd194/draft/actions/publish", "self": "https://127.0.0.1:5000/api/records/aw7xv-fd194/draft"}, "revision_id": 2, "status": "draft", "updated": "2021-03-24 11:34:35.990164", "published": false, "conceptid": "2c4n0-5m451", "created": "2021-03-24 11:34:35.977759", "metadata": {"publisher": "UNIBA", "publication_date": "2321-03-24", "rights": [{"description": "UNIBA-API-draft-test.", "link": "https://creativecommons.org/licenses/by/4.0/legalcode", "title": "Creative Commons Attribution 4.0 International", "id": "cc-by-4.0"}], "title": "UNIBA-TITLE"}, "access": {"record": "public", "embargo": {"reason": null, "until": null, "active": false}, "files": "public", "owned_by": [{"user": 2}]}, "id": "aw7xv-fd194", "errors": [{"field": "metadata.resource_type", "messages": ["Missing data for required field."]}, {"field": "metadata.creators", "messages": ["Missing data for required field."]}]}
Feel free to adapt and fix the fields now containing UNIBA
(exspecially in the rights-description). ;)
We should document
Either part of 1 or separate issue for:
2) How to perform bulk imports of larger number of records.
Global installation of node
is using as global node-modules
a folder that it requires root
access. As a result, when you install locally a react-module and you try to link it, it files due to permission errors!
Nvm is setting up properly the node executable and the global node-modules folder so no root is required.
It might be worth checking the input/outputs of search and data creation (e.g. here https://inveniordm.docs.cern.ch/develop/run/#create-records) and update whats required.
Add list of running instances to the site. Please comment on this issue and we will add them somehow :)
node 8 is out of support IIRC. We should bump the corresponding ones.
The "Pre-Requirements" section in https://inveniordm.docs.cern.ch/install/ should include a section on making sure that docker has enough resources, and probably also the trick needed for ES:
comma needs inserted in “ISNI ORCID” under Supported identifier schemes section.
Package version (if known):
Instructions to Change the record landing page might not be working importing the RECORDS_UI_ENDPOINTS from invenio_rdm_records.config fails
Same as #38 but for controlled vocabularies.
The datamodel shown in the run
section of develop
still shows the old datamodel. The GET
is just confusing since visually it's a different JSON output. However POST
operations will fail if copied.
As a user I would like to know what are the default configurations so I can edit any variable that does not appear on the invenio.cfg or config.py
Example: inveniosoftware/invenio-app-rdm#101
Package version (if known): november release
Update https://inveniordm.docs.cern.ch/reference/metadata/#creators-1-n to indicate that for personal types the family name / given name is required while it is ignored for organizational type and vice-versa.
Package version (if known):
invenio-cli, version 0.22.0
A clear and concise description of what the bug is.
Following the instructions given here:
https://github.com/inveniosoftware/docs-invenio-rdm/blob/e9b1bcfe0b34594a4acbdc0a2add3c19d8db52fa/docs/develop/make_it_your_own.md#modify-inveniocfg
I get the following error:
ImportError: cannot import name 'BibliographicRecordServiceConfig' from 'invenio_rdm_records.services' (/home/chriz/rz/git/invenio/icli-0-22-0/venv/lib/python3.7/site-packages/invenio_rdm_records/services/__init__.py)
invenio-cli run
).invenio.cfg
invenio-cli run
ImportError: cannot import name 'BibliographicRecordServiceConfig' from 'invenio_rdm_records.services' (/home/chriz/rz/git/invenio/icli-0-22-0/venv/lib/python3.7/site-packages/invenio_rdm_records/services/__init__.py)
invenio-cli run
goes through without errors and permissions are set as described.
BibliographicRecordServiceConfig
was recently renamend (and moved?). Possible fix:
from invenio_rdm_records.services import RDMRecordPermissionPolicy
from invenio_rdm_records.services.config import RDMRecordServiceConfig
from invenio_records_permissions.generators import SuperUser
class MyRecordPermissionPolicy(RDMRecordPermissionPolicy):
can_create = [SuperUser()]
class MyBibliographicRecordServiceConfig(RDMRecordServiceConfig):
permission_policy_cls = MyRecordPermissionPolicy
RDM_RECORDS_BIBLIOGRAPHIC_SERVICE_CONFIG = MyBibliographicRecordServiceConfig
I'm preparing a PR.
invenio.cfg
?invenio.cfg
Test and document:
The only mention of the commands to create an admin account during the setup is in this "Disabled" page of the "Customize" guide, reachable only via search: https://inveniordm.docs.cern.ch/customize/disabled/
It may be worth adding pipenv run invenio users create [email protected] --password=123456 --active
and pipenv run invenio roles add [email protected] admin
in the Install Guide
Document how to upgrade from v1 to v2
Random thoughs below:
Bump versions in Pipfile
invenio.cfg
Upgrade Invenio-cli
Docker file:
Records:
Upgrade to a new major version of InvenioRDM
Upgrade to a minor version.
There is an extra comma ,
in the field identifiers
.
"identifiers": {
"DOI": "10.9999/rdm.0",
},
which results in an error:
{
"message": "Failed to decode JSON object: Expecting property name enclosed in double quotes: line 15 column 5 (char 313)",
"status": 400
}
Package version (if known):
invenio-cli, version 0.22.0
A clear and concise description of what the bug is.
JSON-code in "Request" is not valid
{
"enabled": true,
"default_preview": "article.pdf",
}
Error: Parse error on line 3:
...ew": "article.pdf",}
----------------------^
Expecting 'STRING', got '}'
No validation error.
Removing the ,
after "article.pdf"
fixes the issue.
I could do a PR, if desired.
Package version (if known): february release
For example https://inveniordm.docs.cern.ch/reference/metadata/#contributors-0-n has "role": "Editor"
when it should be "role": "editor"
. There are surely other instances with recent changes.
This is confusing for other developers (e.g. at Northwestern) trying to craft input for the API.
Going through this section and the API section would be very helpful.
Document a basic development workflow for starting to develop on an NPM module.
The 'Edit this page' button for this page: https://inveniordm.docs.cern.ch/install/install/
Points to https://github.com/inveniosoftware/docs-invenio-rdm/edit/master/docs/install/install.md
But the file is here: https://github.com/inveniosoftware/docs-invenio-rdm/blob/master/docs/install/build-setup-run.md
Package version (if known):
invenio-cli, version 0.22.0
Following the instructions here:
https://inveniordm.docs.cern.ch/customize/styling/#change-the-record-landing-page
doesn't change the record-landing-page.
The record landing page is adjusted.
For me the issue is in the folder-path:
To override the record landing page, add the following folders and file in your templates/ folder: invenio_app_rdm/records/detail.html.
It works if I add the semantic-ui
directory:
icli-0-23-0-dev/templates$ tree -a
.
├── .gitkeep
└── semantic-ui
└── invenio_app_rdm
└── records
└── detail.html
I'm not sure whether this is an error in the documentation or the implementation. Since https://inveniordm.docs.cern.ch/customize/styling/#change-other-pages says explicitely to 'exclude' the semantic-ui
-folder: Copy the filepath relative to templates/semantic-ui/ in invenio-app-rdm into your instance's templates/ folder.
See
Home Develop Extensions Deploy
. It's missing Install Preview
.Home Install Preview
. It's missing Develop Extensions Deploy
.Install Preview Develop Extensions Deploy
(but it's the page menu so that's ok albeit confusing).Home Install Preview Develop Extensions Deploy
Document and test:
How to add a custom extension process (as explained on the demo)
The documentation site should only update on a new release. This way we can accumulate documentation changes as we move through the sprint and not confuse readers with documentation for a version of InvenioRDM that has not been released yet.
Currently we only have "current" and "latest". We should be able to support "versioning" of those.
At the moment there are many issues open in mkdocs: mkdocs/mkdocs#193, mkdocs/mkdocs#614, etc.
There are two plugins available:
I successfully built one version, however when trying the second one I run into zayd62/mkdocs-versioning#32. Waiting for answers on it.
variables, etc.
Sometimes the clipboard-copy icon, copies the output as well which isn't intended. By separating the blocks of code, this can be fixed and only the command line commands are copied.
Package version (if known): 3.0 release
I'm getting an error that seems to be related to a missing font, which impacts the DOI badge rendering.
Clean install of 3.0 release on a Mac
Activate DOI minting in invenio.cfg
Go to a landing page
See error:
font = ImageFont.truetype("DejaVuSans", 11)
File "/Users/tmorrell/.local/share/virtualenvs/inveniordm-caltechdata-test-l4e_NXA1/lib/python3.8/site-packages/PIL/ImageFont.py", line 853, in truetype
return freetype(font)
File "/Users/tmorrell/.local/share/virtualenvs/inveniordm-caltechdata-test-l4e_NXA1/lib/python3.8/site-packages/PIL/ImageFont.py", line 850, in freetype
return FreeTypeFont(font, size, index, encoding, layout_engine)
File "/Users/tmorrell/.local/share/virtualenvs/inveniordm-caltechdata-test-l4e_NXA1/lib/python3.8/site-packages/PIL/ImageFont.py", line 209, in init
self.font = core.getfont(
OSError: cannot open resource
There should be documentation on how to install this font.
IMPORTANT: Note that there is a PR with quite some work already done.
module_install
to install the extension?Document very well how to override the login page template to change background and to add a header/footer with some terms and conditions (without checkbox, only info text)
Example project name given in the documentation is month-based which requires us to change it every month everywhere. A more generic project name will allow us to leave it be across monthly releases.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.