mirror of
https://github.com/Cian-H/invenio-config-iform.git
synced 2025-12-22 21:11:57 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f2cf9f800 | ||
|
|
db0c7a4e21 | ||
|
|
91464bbd7c | ||
|
|
d7fe2926c7 | ||
|
|
d5fcf60cf7 | ||
|
|
772b21c93a | ||
|
|
c39221378f | ||
|
|
a42f86fcdf | ||
|
|
0dd0db04e2 | ||
|
|
b02ce8a755 | ||
|
|
41dcb8f437 | ||
|
|
35854691bd | ||
|
|
f2e18b95c3 | ||
|
|
16c10593d6 | ||
|
|
dbd870d106 | ||
|
|
f02e992acd |
23
CHANGES.rst
23
CHANGES.rst
@@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
Copyright (C) 2020 Mojib Wali.
|
Copyright (C) 2020 - 2022 Graz University of Technology.
|
||||||
|
|
||||||
invenio-config-tugraz is free software; you can redistribute it and/or
|
invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the MIT License; see LICENSE file for more
|
modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -7,6 +7,27 @@
|
|||||||
|
|
||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
Version 0.8.2 (released 2022-03-03)
|
||||||
|
|
||||||
|
- config: new introduced to v8 of invenioRDM
|
||||||
|
|
||||||
|
Version 0.8.1 (released 2022-02-28)
|
||||||
|
|
||||||
|
- config: set samesite cookie to strict
|
||||||
|
- dep: bump in base dependencies
|
||||||
|
|
||||||
|
Version 0.8.0 (released 2022-02-09)
|
||||||
|
|
||||||
|
- dep: bump rdm-records version
|
||||||
|
|
||||||
|
Version 0.7.1 (released 2021-12-07)
|
||||||
|
|
||||||
|
- configs: adds new & changed configs for v7 #76
|
||||||
|
|
||||||
|
Version 0.7.0 (released 2021-12-06)
|
||||||
|
|
||||||
|
- fix: update blueprint reorder #74
|
||||||
|
- dep: upgrade rdm-records version & OAI #72
|
||||||
|
|
||||||
Version 0.1.0 (released TBD)
|
Version 0.1.0 (released TBD)
|
||||||
|
|
||||||
|
|||||||
@@ -332,6 +332,8 @@ texinfo_documents = [
|
|||||||
# Example configuration for intersphinx: refer to the Python standard library.
|
# Example configuration for intersphinx: refer to the Python standard library.
|
||||||
intersphinx_mapping = {
|
intersphinx_mapping = {
|
||||||
"python": ("https://docs.python.org/", None),
|
"python": ("https://docs.python.org/", None),
|
||||||
|
'flask': ('https://flask.palletsprojects.com/', None),
|
||||||
|
'werkzeug': ('https://werkzeug.palletsprojects.com/', None),
|
||||||
# TODO: Configure external documentation references, eg:
|
# TODO: Configure external documentation references, eg:
|
||||||
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ INVENIO_CONFIG_TUGRAZ_IP_RANGES =
|
|||||||
[["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]]
|
[["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
CONFIG_TUGRAZ_ROUTES = {
|
CONFIG_TUGRAZ_ROUTES = {
|
||||||
"guide": "/guide",
|
"guide": "/guide",
|
||||||
"terms": "/terms",
|
"terms": "/terms",
|
||||||
@@ -40,25 +41,12 @@ CONFIG_TUGRAZ_ROUTES = {
|
|||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-app.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-app.readthedocs.io/en/latest/configuration.html
|
||||||
|
|
||||||
APP_ALLOWED_HOSTS = [
|
|
||||||
"0.0.0.0",
|
|
||||||
"localhost",
|
|
||||||
"127.0.0.1",
|
|
||||||
"invenio-dev01.tugraz.at",
|
|
||||||
"invenio-test.tugraz.at",
|
|
||||||
"repository.tugraz.at",
|
|
||||||
]
|
|
||||||
"""Allowed Hosts"""
|
|
||||||
|
|
||||||
APP_DEFAULT_SECURE_HEADERS = {
|
APP_DEFAULT_SECURE_HEADERS = {
|
||||||
"content_security_policy": {
|
"content_security_policy": {
|
||||||
"default-src": [
|
"default-src": [
|
||||||
"'self'",
|
"'self'",
|
||||||
"fonts.googleapis.com",
|
|
||||||
"*.gstatic.com",
|
|
||||||
"data:",
|
"data:",
|
||||||
"'unsafe-inline'",
|
"'unsafe-inline'",
|
||||||
"'unsafe-eval'",
|
|
||||||
"blob:",
|
"blob:",
|
||||||
"ub-support.tugraz.at", # zammad contact form
|
"ub-support.tugraz.at", # zammad contact form
|
||||||
],
|
],
|
||||||
@@ -78,6 +66,15 @@ APP_DEFAULT_SECURE_HEADERS = {
|
|||||||
"strict_transport_security_preload": False,
|
"strict_transport_security_preload": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Invenio-I18N
|
||||||
|
# ============
|
||||||
|
# See https://invenio-i18n.readthedocs.io/en/latest/configuration.html
|
||||||
|
BABEL_DEFAULT_LOCALE = "en"
|
||||||
|
# Default time zone
|
||||||
|
BABEL_DEFAULT_TIMEZONE = "Europe/Vienna"
|
||||||
|
# Other supported languages (do not include BABEL_DEFAULT_LOCALE in list).
|
||||||
|
I18N_LANGUAGES = [("de", _("German"))]
|
||||||
|
|
||||||
# Invenio-Mail
|
# Invenio-Mail
|
||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
||||||
@@ -239,10 +236,22 @@ password from ``users.yaml`` will be used. If that is also absent, a password
|
|||||||
will be generated randomly.
|
will be generated randomly.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
DATACITE_FORMAT = "{prefix}/{id}"
|
||||||
|
"""Customize the generated DOI string."""
|
||||||
|
|
||||||
|
DATACITE_DATACENTER_SYMBOL = ""
|
||||||
|
""""The OAI-PMH server's metadata format oai_datacite
|
||||||
|
that allows you to harvest record from InvenioRDM in DataCite XML needs
|
||||||
|
to be configured with your DataCite data center symbol.
|
||||||
|
This is only required if you want your records to be harvestable in DataCite XML format.
|
||||||
|
"""
|
||||||
|
|
||||||
# Invenio-app-rdm
|
# Invenio-app-rdm
|
||||||
# =========================
|
# =========================
|
||||||
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py
|
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py
|
||||||
APP_RDM_DEPOSIT_FORM_DEFAULTS = {}
|
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
|
||||||
|
"publisher": "Graz University of Technology",
|
||||||
|
}
|
||||||
"""Default values for new records in the deposit UI.
|
"""Default values for new records in the deposit UI.
|
||||||
|
|
||||||
The keys denote the dot-separated path, where in the record's metadata
|
The keys denote the dot-separated path, where in the record's metadata
|
||||||
@@ -251,6 +260,12 @@ If the value is callable, its return value will be used for the field
|
|||||||
(e.g. lambda/function for dynamic calculation of values).
|
(e.g. lambda/function for dynamic calculation of values).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = "search"
|
||||||
|
"""Enable autocompleting names search field for creators/contributors.
|
||||||
|
|
||||||
|
(e,g, "searc_only" or "off")
|
||||||
|
"""
|
||||||
|
|
||||||
SQLALCHEMY_ECHO = False
|
SQLALCHEMY_ECHO = False
|
||||||
"""Enable to see all SQL queries."""
|
"""Enable to see all SQL queries."""
|
||||||
|
|
||||||
@@ -312,3 +327,31 @@ reopened regularly.
|
|||||||
|
|
||||||
See https://docs.sqlalchemy.org/en/latest/core/engines.html.
|
See https://docs.sqlalchemy.org/en/latest/core/engines.html.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Redis (cache)
|
||||||
|
# ========
|
||||||
|
# Cache or Redis configurations
|
||||||
|
RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute"
|
||||||
|
"""Increase defaults for authenticated users."""
|
||||||
|
|
||||||
|
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
|
||||||
|
"""Increase defaults for guest users."""
|
||||||
|
|
||||||
|
SESSION_COOKIE_SAMESITE = 'Strict'
|
||||||
|
"""Sets cookie with the samesite flag to 'Strict' by default."""
|
||||||
|
|
||||||
|
|
||||||
|
# OAI-PMH
|
||||||
|
# =======
|
||||||
|
# See https://github.com/inveniosoftware/invenio-oaiserver/blob/master/invenio_oaiserver/config.py
|
||||||
|
|
||||||
|
OAISERVER_ID_PREFIX = "repository.tugraz.at"
|
||||||
|
"""The prefix that will be applied to the generated OAI-PMH ids."""
|
||||||
|
|
||||||
|
OAISERVER_ADMIN_EMAILS = [
|
||||||
|
'oai@repository.tugraz.at',
|
||||||
|
]
|
||||||
|
"""The e-mail addresses of administrators of the repository.
|
||||||
|
|
||||||
|
It **must** include one or more instances.
|
||||||
|
"""
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -12,4 +12,4 @@ This file is imported by ``invenio_config_tugraz.__init__``,
|
|||||||
and parsed by ``setup.py``.
|
and parsed by ``setup.py``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "0.6.1"
|
__version__ = "0.8.2"
|
||||||
|
|||||||
@@ -33,21 +33,18 @@ def ui_blueprint(app):
|
|||||||
|
|
||||||
@blueprint.before_app_first_request
|
@blueprint.before_app_first_request
|
||||||
def rank_higher():
|
def rank_higher():
|
||||||
"""Rank this modules blueprint higher than blueprint of security module."""
|
"""Rank this modules blueprint higher than blueprint of security module.
|
||||||
blueprints = current_app._blueprint_order
|
|
||||||
our_index = None
|
|
||||||
security_index = None
|
|
||||||
|
|
||||||
for index, bp in enumerate(blueprints):
|
Needed in order to overwrite email templates.
|
||||||
if bp.name == "security":
|
|
||||||
security_index = index
|
|
||||||
if bp.name == "invenio_config_tugraz":
|
|
||||||
our_index = index
|
|
||||||
|
|
||||||
if (security_index is not None) and (our_index > security_index):
|
Since the blueprints are in a dict and the order of insertion is
|
||||||
temp = blueprints[security_index]
|
retained, popping and reinserting all items (except ours), ensures
|
||||||
blueprints[security_index] = blueprints[our_index]
|
our blueprint will be in front.
|
||||||
blueprints[our_index] = temp
|
"""
|
||||||
|
bps = current_app.blueprints
|
||||||
|
for blueprint_name in list(bps.keys()):
|
||||||
|
if blueprint_name != "invenio_config_tugraz":
|
||||||
|
bps.update({blueprint_name: bps.pop(blueprint_name)})
|
||||||
|
|
||||||
return blueprint
|
return blueprint
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ trap cleanup EXIT
|
|||||||
|
|
||||||
|
|
||||||
python -m check_manifest --ignore ".*-requirements.txt"
|
python -m check_manifest --ignore ".*-requirements.txt"
|
||||||
python -m sphinx.cmd.build -qnNW docs docs/_build/html
|
python -m sphinx.cmd.build -qnN docs docs/_build/html
|
||||||
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
||||||
python -m pytest
|
python -m pytest
|
||||||
tests_exit_code=$?
|
tests_exit_code=$?
|
||||||
python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
|
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
||||||
exit "$tests_exit_code"
|
exit "$tests_exit_code"
|
||||||
|
|||||||
19
setup.py
19
setup.py
@@ -16,13 +16,12 @@ readme = open("README.rst").read()
|
|||||||
history = open("CHANGES.rst").read()
|
history = open("CHANGES.rst").read()
|
||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
"pytest-invenio>=1.4.0",
|
"pytest-invenio>=1.4.1",
|
||||||
"invenio-app>=1.3.0,<2.0.0",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Should follow invenio-app-rdm
|
# Should follow invenio-app-rdm
|
||||||
invenio_search_version = ">=1.4.0,<1.5.0"
|
invenio_search_version = ">=1.4.2,<1.5.0"
|
||||||
invenio_db_version = ">=1.0.9,<1.1.0"
|
invenio_db_version = ">=1.0.11,<1.1.0"
|
||||||
|
|
||||||
extras_require = {
|
extras_require = {
|
||||||
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
||||||
@@ -30,7 +29,7 @@ extras_require = {
|
|||||||
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
||||||
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
||||||
"docs": [
|
"docs": [
|
||||||
"Sphinx>=3",
|
"Sphinx==4.2.0",
|
||||||
],
|
],
|
||||||
"tests": tests_require,
|
"tests": tests_require,
|
||||||
}
|
}
|
||||||
@@ -47,14 +46,13 @@ for name, reqs in extras_require.items():
|
|||||||
extras_require["all"].extend(reqs)
|
extras_require["all"].extend(reqs)
|
||||||
|
|
||||||
setup_requires = [
|
setup_requires = [
|
||||||
"Babel>=1.3",
|
"Babel>=2.8,<3",
|
||||||
"pytest-runner>=3.0.0,<5",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
install_requires = [
|
install_requires = [
|
||||||
"Flask-BabelEx>=0.9.4",
|
|
||||||
# keep this in sync with invenioRDM release
|
# keep this in sync with invenioRDM release
|
||||||
"invenio_app_rdm==4.0.0",
|
"invenio-rdm-records>=0.34.5,<0.35.0",
|
||||||
|
"invenio-cache>=1.1.0"
|
||||||
]
|
]
|
||||||
|
|
||||||
packages = find_packages()
|
packages = find_packages()
|
||||||
@@ -110,6 +108,7 @@ setup(
|
|||||||
"Programming Language :: Python :: 3.6",
|
"Programming Language :: Python :: 3.6",
|
||||||
"Programming Language :: Python :: 3.7",
|
"Programming Language :: Python :: 3.7",
|
||||||
"Programming Language :: Python :: 3.8",
|
"Programming Language :: Python :: 3.8",
|
||||||
"Development Status :: 3 - Alpha",
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user