Skip to main content

Invenio-Records is a metadata storage module.

Project description

https://img.shields.io/github/license/inveniosoftware/invenio-records.svg https://travis-ci.org/inveniosoftware/invenio-records.svg?branch=master https://img.shields.io/coveralls/inveniosoftware/invenio-records.svg https://img.shields.io/pypi/v/invenio-records.svg

Invenio-Records is a metadata storage module. A record is a JSON document with revision history identified by a unique UUID .

Features:

  • Generic JSON document storage with revision history.

  • JSONSchema validation of documents.

  • Records creation, update and deletion.

  • Administration interface for CRUD operations on records.

Further documentation available Documentation: https://invenio-records.readthedocs.io/

Changes

Version 1.4.0a3 (released 2020-09-22)

  • Removes the @ prefix that was used to separate metadata fields from other fields.

Version 1.4.0a2 (released 2020-09-21)

  • Adds a SystemFieldContext which allows knowing the record class when accessing the attribute through the class instead of object instance.

  • Adds helpers for caching related objects on the record.

Version 1.4.0a1 (released 2020-09-16)

  • Adds support for JSON encoding/decoding to/from the database. This allows e.g. have records with complex data types such as datetime objects. JSONSchema validation happens on the JSON encoded version of the record.

  • Adds dumpers to support dumping and loading records from secondary copies (e.g. records stored in an Elasticsearch index).

  • Adds support record extensions as a more strict replacement of signals. Allows writing extensions (like the system fields), that integrate into the Records API.

  • Adds support for system fields that are Python data descriptors on the Record which allows for managed access to the Record’s dictionary.

  • Adds support for disabling signals.

  • Adds support for disabling JSONRef replacement.

  • Adds support for specifying JSONSchema format checkers and validator class at a class-level instead of per validate call.

  • Adds support for specifying class-wide JSONSchema format checkers

  • Adds a cleaner definition of a what a soft-deleted record using the is_deleted hybrid property on the database model.

  • Adds support for undeleting a soft-deleted record.

  • Backwards incompatible: By default the versioning table is now disabled in the RecordMetadataBase (the RecordMetadata is still versioned). If you subclasses RecordMetadataBase and needs versioning, you need to add the following line in your class:

    class MyRecordMetadata(db.Model, RecordMetadataBase):
        __versioned__ = {}
  • Backwards incompatible: The Record.validate() method is now split in two methods validate() and _validate(). If you overwrote the validate() method in a subclass, you may need to overwrite instead _validate().

  • Backwards incompatible: Due to the JSON encoding/decoding support, the Python dictionary representing the record and the SQLAlchemy models are separate objects and updating one, won’t automatically update the other. Normally, you should not have accessed record.model.json in your code, however if you did, you need to rewrite it and rely on the create() and commit() methods to update the model’s json column.

Version 1.3.2 (released 2020-05-27)

  • Fixes a bug causing incorrect revisions to be fetched. If record.commit() was called multiple times prior to a db.session.commit(), there would be gaps in the version ids persisted in the database. This meant that if you used record.revisions[revision_id] to access a revision, it was not guaranteed to return that specific revision id. See #221

Version 1.3.1 (released 2020-05-07)

  • Deprecated Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.

  • Removed dependency on Invenio-PIDStore and releated documentation. Functionality was removed in v1.3.0.

Version 1.3.0 (released 2019-08-01)

  • Removed deprecated CLI.

Version 1.2.2 (released 2019-07-11)

  • Fix XSS vulnerability in admin interface.

Version 1.2.1 (released 2019-05-14)

  • Relax Flask dependency to v0.11.1.

Version 1.2.0 (released 2019-05-08)

  • Allow to store RecordMetadata in a custom db table.

Version 1.1.1 (released 2019-07-11)

  • Fix XSS vulnerability in admin interface.

Version 1.1.0 (released 2019-02-22)

  • Removed deprecated Celery task.

  • Deprecated CLI

Version 1.0.2 (released 2019-07-11)

  • Fix XSS vulnerability in admin interface.

Version 1.0.1 (released 2018-12-14)

  • Fix CliRunner exceptions.

  • Fix JSON Schema URL.

Version 1.0.0 (released 2018-03-23)

  • Initial public release.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invenio-records-1.4.0a3.tar.gz (118.6 kB view details)

Uploaded Source

Built Distribution

invenio_records-1.4.0a3-py2.py3-none-any.whl (103.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file invenio-records-1.4.0a3.tar.gz.

File metadata

  • Download URL: invenio-records-1.4.0a3.tar.gz
  • Upload date:
  • Size: 118.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.10

File hashes

Hashes for invenio-records-1.4.0a3.tar.gz
Algorithm Hash digest
SHA256 49f4f4eb48f82f9e9d22aeff5e17cdc568d0f706e1a6ee69409ffd7aede4e84d
MD5 dc5f40e84aa517a12dc5a9a3a5d9db28
BLAKE2b-256 23ef3207a80a894a1da7b8ae9240267a15158dc51a62b1b76bde32bad14f9426

See more details on using hashes here.

Provenance

File details

Details for the file invenio_records-1.4.0a3-py2.py3-none-any.whl.

File metadata

  • Download URL: invenio_records-1.4.0a3-py2.py3-none-any.whl
  • Upload date:
  • Size: 103.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.6.10

File hashes

Hashes for invenio_records-1.4.0a3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 612b50fdcd2c426681254633dd6a33cefabeb7765fe5e9d4a19f766fa5e4ae4d
MD5 549a6f90e80b9b75bf07f62dc3407fdb
BLAKE2b-256 00f713c7c43abc388bd7bbce8205e5f8bef5770e944da319f9bb159a9ab6d7af

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page