You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/install/requirements.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ For running and building the application locally you will also need:
38
38
InvenioRDM depends on the following services. During the installation we start these services in containers, but you could as well use externally hosted services for them:
39
39
40
40
- Databases: PostgreSQL 12+
41
-
- Search: OpenSearch (2.0+)
41
+
- Search: OpenSearch (2.12+)
42
42
- Cache: Redis, memcached
43
43
- Message broker: RabbitMQ, Redis
44
44
- Storage systems: Network storage, S3, XRootD, and more
Copy file name to clipboardExpand all lines: docs/operate/customize/jobs.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ celery -A invenio_app.celery beat --scheduler invenio_jobs.services.scheduler:Ru
20
20
```
21
21
22
22
!!! note
23
-
Be sure to run this additional Celery beat scheduler in your production or deployed environment. Without it, scheduled and on-demand jobs will not be executed.
23
+
Be sure to run this additional Celery beat scheduler in your production or deployed environments. Without it, scheduled and on-demand jobs will not be executed.
24
24
25
25
## How to create a new job
26
26
This guide walks developers through implementing a new job using the engine provided by the `invenio-jobs` module. Jobs are asynchronous tasks that can be triggered from the admin UI or REST API. They run using Celery and support logging, argument validation, and result tracking.
The new PDF file previewer is based on `pdfjs-dist` v4, which uses ECMAScript modules (`.mjs`) over CommonJS files (`.js`).
140
-
These files are not registered in the [default configuration](https://github.com/nginx/nginx/blob/master/conf/mime.types#L8) for `nginx`.
141
-
This can result in the MIME type being reported incorrectly, and thus being blocked by the browser, leading to a broken PDF preview.
142
-
143
-
Luckily, this can be simply fixed by adding a custom [`types`](https://nginx.org/en/docs/http/ngx_http_core_module.html#types) entry;
144
-
e.g. in the `http` block in [`nginx.conf`](https://github.com/inveniosoftware/cookiecutter-invenio-rdm/blob/master/%7B%7Bcookiecutter.project_shortname%7D%7D/docker/nginx/nginx.conf)
145
-
(cf. this [Cookiecutter PR](https://github.com/inveniosoftware/cookiecutter-invenio-rdm/pull/299)).
146
-
147
-
```nginx
148
-
include /etc/nginx/mime.types;
149
-
default_type application/octet-stream;
150
-
types {
151
-
# Tell nginx that ECMAScript modules are also JS
152
-
application/javascript js mjs;
153
-
}
154
-
```
155
-
156
-
### if you plan to use `APP_RDM_DEPOSIT_NG_FILES_UI_ENABLED`
157
-
158
-
you have to add following
159
-
160
-
```
161
-
"script-src": [
162
-
"'self'", "blob:", "'wasm-unsafe-eval'" # for WASM-based workers, e.g. hash-wasm
163
-
],
135
+
```bash
136
+
invenio index destroy --yes-i-know
137
+
invenio index init
138
+
# if you have records custom fields
139
+
invenio rdm-records custom-fields init
140
+
# if you have communities custom fields
141
+
invenio communities custom-fields init
142
+
invenio rdm rebuild-all-indices
164
143
```
165
144
166
-
in the `invenio.cfg` file to the
167
-
168
-
```
169
-
APP_DEFAULT_SECURE_HEADERS = {
170
-
"content_security_policy": {}
171
-
}
172
-
```
145
+
From v12 onwards, search indices for statistics (record's views and downloads) are not
146
+
affected by `invenio index destroy --yes-i-know` and are totally functional after the rebuild step.
173
147
174
-
configuration.
148
+
!!! info "Permission issue"
149
+
If you encounter an error similar to this when indexing:
150
+
```
151
+
opensearchpy.exceptions.AuthorizationException: AuthorizationException(403, 'security_exception', 'no permissions for [cluster:admin/component_template/put] and User [name=<my-name>, backend_roles=[], requestedTenant=null]')
152
+
opensearchpy.exceptions.AuthorizationException: AuthorizationException(403, 'security_exception', 'no permissions for [indices:admin/index_template/put] and User [name=<my-name>, backend_roles=[], requestedTenant=null]')
153
+
```
154
+
This means your OpenSearch user does not have sufficient permissions to create or update index templates.
155
+
To resolve this, grant the necessary permissions to your user in the OpenSearch cluster:
156
+
1. Go to **OpenSearch Dashboards** -> **Security** -> **Roles** -> *<yourrolename>*.
157
+
2. Edit the role and add the following cluster and index permissions:
158
+
- `cluster:admin/component_template/put`
159
+
- `indices:admin/index_template/put`
175
160
176
-
### Jobs
161
+
### Updated affiliations and funders
162
+
InvenioRDM now integrates the updated schema version v2 of ROR (see [announcement here](https://ror.org/blog/2024-04-15-announcing-ror-v2/)). This new version introduces additional fields and improvements, so you will need to re-import both the affiliations and funders vocabularies to ensure your data is up to date.
177
163
178
-
#### New worker beat scheduler
164
+
To re-import, you can either set up a job or perform the import manually via the CLI. Please follow the instructions in the [affiliations](../../operate/customize/vocabularies/affiliations.md) and [funders](../../operate/customize/vocabularies/funding.md) documentation pages for detailed steps.
179
165
180
-
```
181
-
celery -A invenio_app.celery beat --scheduler invenio_jobs.services.scheduler:RunScheduler
182
-
```
166
+
## Infrastructure/configuration changes
183
167
184
-
#### New Index Template for Job Logs
168
+
###Required changes
185
169
186
-
Replace `localhost:9200` and `__SEARCH_INDEX_PREFIX__ `with your instance values.
170
+
#### OpenSearch version
171
+
The minimum required OpenSearch version is now **v2.12**. This change is necessary due to a bug in earlier OpenSearch versions that affects the handling of `geo-shape` fields introduced in InvenioRDM v13.
172
+
For more details, see the related [InvenioRDM issue](https://github.com/inveniosoftware/invenio-rdm-records/issues/1807) and the [OpenSearch issue and discussion](https://github.com/opensearch-project/OpenSearch/issues/10958#issuecomment-2037882756).
187
173
188
-
Then run:
174
+
To check the current version, connect to the OpenSearch Dashboard with your browser or run the following CLI command:
From v12 onwards, record statistics will be stored in search indices rather than the
229
-
database. These indices are created through some _index templates_ machinery
230
-
rather than having indices registered directly in `Invenio-Search`. As such, the
231
-
search indices for statistics are not affected by `invenio index destroy
232
-
--yes-i-know` and are totally functional after the rebuild step.
233
-
234
-
#### possible live update
235
-
236
-
CHECK if that works
237
-
```bash
238
-
invenio index update names-name-v2.0.0 --no-check
179
+
...
180
+
"version": {
181
+
"distribution":"opensearch",
182
+
"number":"2.17.1",
183
+
...
184
+
},
185
+
...
186
+
}
239
187
```
240
188
241
-
TODO: this is also required to create the mapping for the new `copyright` field.
242
-
243
-
189
+
Add `-u <username>:<password>` if you require authentication, or `-k` to ignore SSL certificate warnings.
244
190
245
-
### Updated vocabularies
191
+
Please refer to the official [OpenSearch upgrade documentation](https://docs.opensearch.org/docs/latest/install-and-configure/upgrade-opensearch/index/).
192
+
If you choose to delete and re-create your search cluster as part of the upgrade, remember to **back up and restore your statistics indices** (see [how to do this here](../../maintenance/internals/statistics.md)).
193
+
Be sure to repeat the [Rebuild search indices](#rebuild-search-indices) step to ensure your system is fully functional.
246
194
247
-
InvenioRDM now supports ROR v2, and you should update your affiliations and
248
-
funders vocabularies following the
249
-
instructions on the [affiliations](../../operate/customize/vocabularies/affiliations.md)
250
-
and [funders](../../operate/customize/vocabularies/funding.md) documentation pages.
195
+
#### Jobs
196
+
The new Jobs feature uses a custom celery task scheduler which requires a separate celery beat. See the [related documentation](../../operate/customize/jobs.md#scheduler) on how to add it or [this change](https://github.com/inveniosoftware/cookiecutter-invenio-rdm/pull/314) in the InvenioRDM boilerplate for reference.
251
197
198
+
!!! note
199
+
Be sure to run this additional Celery beat scheduler in your production or deployed environments. Without it, scheduled and on-demand jobs will not be executed.
252
200
253
-
### FAIR signposting level 1
201
+
#### Updated PDF previewer
202
+
The updated PDF file previewer (PDF.js v4) now uses ECMAScript modules (`.mjs`) instead of CommonJS files (`.js`). By default, the `nginx` web server does not recognize `.mjs` files in its [default MIME types configuration](https://github.com/nginx/nginx/blob/master/conf/mime.types#L8). As a result, the MIME type may be reported incorrectly, causing browsers to block the file and resulting in broken PDF previews.
254
203
255
-
However, since enabling FAIR signposting level 1 does increase the size of HTTP response headers, it is recommended to edit the `nginx` configuration and specify [`uwsgi_buffer_size`](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_buffer_size) with a higher limit than the default values. If you have enabled `uwsgi_buffering on;`, then [`uwsgi_buffers`](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_buffers) may also be adjusted.
204
+
To resolve this, simply add a custom [`types`](https://nginx.org/en/docs/http/ngx_http_core_module.html#types) entry in your `nginx.conf` (for example, in the `http` block). See [this change](https://github.com/inveniosoftware/cookiecutter-invenio-rdm/pull/299) in the InvenioRDM boilerplate for reference.
256
205
257
-
```nginx
258
-
server {
259
-
# ...
260
-
# Allow for larger HTTP response headers for FAIR signposting level 1 support
261
-
uwsgi_buffer_size 16k;
262
-
# optional if uwsgi_buffering on;
263
-
uwsgi_buffers 8 16k;
264
-
265
-
# ...
266
-
}
206
+
```diff
207
+
...
208
+
include /etc/nginx/mime.types;
209
+
default_type application/octet-stream;
210
+
+ types {
211
+
+ # Ensure nginx treats ECMAScript modules as JavaScript
212
+
+ application/javascript js mjs;
213
+
+ }
214
+
...
267
215
```
268
216
269
-
### New roles
270
-
nothing yet
217
+
### Optional changes
271
218
219
+
#### Deprecated configurations
220
+
With the upgrade to Flask version 3, the configuration variable `APP_ALLOWED_HOSTS` has been renamed to `TRUSTED_HOSTS`. The value remains unchanged.
221
+
You should review your `invenio.cfg`, environment variables, and deployment configuration for any occurrences of the old variable name.
222
+
It is recommended to update all references to `TRUSTED_HOSTS` to avoid deprecation warnings in the console.
272
223
273
-
### New configuration variables
224
+
#### Display versions in administration panel
225
+
As described in the [release notes](./version-v13.0.0.md#miscellaneous-additions), you can now display the versions of your installed modules directly in the Administration panel.
226
+
To enable this feature, add the following to your `invenio.cfg`:
- improvement: search mappings and analyzers to improve performance
293
-
- OpenSearch min version now required v2.12 due to breaking changes in `geo-shape` fields, see issue [here](https://github.com/inveniosoftware/invenio-rdm-records/issues/1807) and related OpenSearch issue and comment [here](https://github.com/opensearch-project/OpenSearch/issues/10958#issuecomment-2037882756).
294
-
- dashboard: `shared_with_me` drafts and requests. See [issue[(https://github.com/inveniosoftware/docs-invenio-rdm/blob/master/docs/releases/v13/upgrade-v13.0.md)
- experimental: using uv (instead of pipenv), rspack (instead of webpack) and pnpm (instead of npm)
298
-
299
-
Document this error, or actually add it to the upgrade recipe
300
-
301
-
302
-
## OPEN PROBLEMS
303
-
304
-
```
305
-
opensearchpy.exceptions.AuthorizationException: AuthorizationException(403, 'security_exception', 'no permissions for [cluster:admin/component_template/put] and User [name=inveniordm-qa, backend_roles=[], requestedTenant=null]')
306
-
307
-
opensearchpy.exceptions.AuthorizationException: AuthorizationException(403, 'security_exception', 'no permissions for [indices:admin/index_template/put] and User [name=inveniordm-qa, backend_roles=[], requestedTenant=null]')
308
-
```
309
-
310
-
To solve it, grant permission to the user in OpenSearch cluster:
311
-
Go to OpenSearch Dashboards -> Security -> Roles -> <instancename>, edit role and add:
312
-
313
-
-`cluster:admin/component_template/put`
314
-
-`indices:admin/index_template/put`
236
+
#### FAIR signposting level 1
237
+
If you have enabled FAIR Signposting, ensure that you have updated your web server configuration as required. See the [documentation here](../../operate/customize/FAIR-signposting.md#level-1) for detailed instructions.
315
238
239
+
Failing to apply these changes may result in errors when accessing certain records.
316
240
317
-
##OPEN PROBLEMS
318
-
nothing yet
241
+
#### Enhanced File Uploader (Uppy)
242
+
If you plan to use the new Uppy file uploader, ensure that your Content Security Policy (CSP) settings are updated in your `invenio.cfg`as described in the [enhanced file uploader documentation](../../operate/customize/file-uploads/uploader.md#enhanced-file-uploader-uppy). Failing to update your CSP rules may prevent the uploader from functioning correctly.
Copy file name to clipboardExpand all lines: docs/releases/v13/version-v13.0.0.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -206,8 +206,10 @@ Here is a quick summary of the myriad other improvements in this release:
206
206
- ...and many more bug fixes!
207
207
208
208
## Breaking changes
209
+
- The minimum required OpenSearch version is now **v2.12**. This change is necessary due to a bug in earlier OpenSearch versions that affects the handling of `geo-shape` fields introduced in InvenioRDM v13. See the [upgrade guide](upgrade-v13.0.md#opensearch-version) for more information.
210
+
- The new search improvements and the enhanced subjects and awards features require the recreation of the search mappings for Subjects, Awards, Records _(including percolators)_, Drafts and Communities. See the [upgrade guide](upgrade-v13.0.md#rebuild-search-indices) for more information.
211
+
- The integration with the new ROR schema v2 requires to re-import both the affiliations and funders vocabularies. See the [upgrade guide](upgrade-v13.0.md#updated-affiliations-and-funders) for more information.
209
212
- The upgrade of the PDF previewer requires a small change to the webserver configuration. See the [upgrade guide](upgrade-v13.0.md) for more information.
210
-
- The new search improvements and the enhanced subjects and awards features require the recreation of the search mappings for Subjects, Awards, Records _(including percolators)_, Drafts and Communities. See the [upgrade guide](upgrade-v13.0.md) for more information.
211
213
- Direct Python imports of identifier schemes (e.g., `from idutils.isbn import normalize_isbn`) are now deprecated and will be removed in future versions. If you have custom code that directly imports scheme modules, you'll need to update it to use the new API.
212
214
213
215
## Requirements
@@ -217,7 +219,7 @@ InvenioRDM v13 supports:
217
219
- Python 3.9 (end of life October 2025), 3.11 and 3.12
0 commit comments