Nerium

Latest version: v0.13.2

Safety actively analyzes 630217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.7.0

- Webapp is now able to parse a JSON body sent to `v2/results` endpoints
- Puts back support for `v1/<query_name>` style endpoints for results for now (with deprecation note in README)
- Makes `/reports` discovery endpoints `v2`-only

0.6.2

- Bump alpine base image version
- add git executable for gitpython dependency
- pin gunicorn for compatibility with alpine py3-gevent package

0.6.0

Flask

While there was much to love about Kenneth Reitz's 'Responder' framework, it was ultimately pulling in too many dependencies, for reasons that Nerium doesn't really need. I decided to stick with Flask for the foreseeable future, and this release rewrites `app.py` using Flask.

There is also a significant change to the public web API. This was unrelated to the Flask move, and in fact implemented on Responder first before porting over:

Report discovery

🎉 The release adds "discovery" endpoints:

- list reports available on the server
- get a description of each report by name, including columns returned, parameters expected, and other metadata if provided

See README for more details. Here, note that it was impossible to add these without changing the URL paths to distinguish between discovery endpoints and report results endpoints. Base paths are now:

- `/v1/reports/<name>` for discovery endpoints
- `/v1/results/<name>` for reporting results (formerly the whole app)

Query metadata formatting

Instead of using the `frontmatter` library and making query files a mashup of SQL and YAML, as of this release YAML metadata should be placed in a multiline comment, with a special `:meta` label introducing the comment. Again, usage is covered in the README

Remove plugin architecture for other query types

The library portion of Nerium had a fair amount of logic—some of it arguably verging on indirection and cruft—devoted to the idea that we might some day support non-SQL query languages, either by adding more `nerium.resultset` modules, or allowing third parties to provide `nerium-*` plugins. This was probably hurting performance, was certainly hurting maintainability, and the use case for it was speculative at best. This release drops all that, in favor of a single `db` module, using SQLAlchemy. Output formats can still be customized, with Marshmallow schemas.

0.5.4

I was always a little embarrassed by using `munch` for the query object. Replaced that with `SimpleNamespace` which is StandardLibrary now, and nicer in other respects.

0.4.1

Avoids some issues between responder and starlette by pinning starlette ourselves, because responder doesn't. Easier than the workarounds I've been suggesting in https://github.com/OAODEV/nerium/issues/38

0.4

- Implement formatting using marshmallow schemas
- Provide for custom formats via additional schemas in format_files directory

This one is pretty cool, if I do say so myself. (I do.)

[Responder](https://python-responder.org) is the framework Nerium was waiting for, and I wish I'd thought of [marshmallow](https://marshmallow.readthedocs.io) for formats in the first place. I was thinking about maybe using jinja templates for that, until I came across a Stack Overflow comment that (correctly) pointed out the risk of generating invalid JSON that way. Marshmallow was made for the task.

If you've been using Nerium, you should upgrade.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.