
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
CLI tool to generate human-readable HTML documentation for an Apache Avro schema AVSC file.
Want Avro schema docs? 'avdoc!
Software required outside of Python package dependencies:
Install the avdoc
package on PyPI:
pip install --upgrade avdoc
[python -m] avdoc tests/example.avsc > out/example.html && open out/example.html
To provide a version ID, e.g. the current git commit:
[python -m] avdoc --schema-version $(git rev-parse --short head) example.avsc > out/example.html
$ avdoc --help
usage: avdoc [-h] [--schema-title SCHEMA_TITLE]
[--schema-version SCHEMA_VERSION]
avsc
CLI tool to generate HTML documentation for an Apache Avro schema
positional arguments:
avsc
options:
-h, --help show this help message and exit
--schema-title SCHEMA_TITLE
--schema-version SCHEMA_VERSION
"doc"
stringsThe output should:
devenv shell
should set up Python & Poetry with dependencies installed.
Use .venv/bin/python
as your Python interpreter.
bumpversion major|minor|patch
Run mdsh
.
Configure Poetry credentials with PyPI token and run:
poetry publish --build
Not much to speak of.
avdoc
is a couple of hundred lines of Python script
generating static HTML, with a bit of string munging to get component outputs
into the final HTML output page.
This code is purpose-oriented.
The output is opinionated, but not much time has been spent on the code
past getting it working for my own needs.
It's not intended to be exemplary of anything in particular.
I probably won't pay too much attention to avdoc
maintenance
once it's suitable for my own needs.
I'd like to try to ensure that dependencies are kept up to date.
Fork for your own needs. Raise a PR if you'd like me to consider including your changes. Make sure you adhere to the license by ensuring your users have access to your modifications.
AGPL:
avdoc
is released as copyleft software.
If you modify avdoc
then you must make changes available to your users.
If the AGPL license is an issue, and you want to relicense avdoc
privately,
then reach out to discuss pricing.
avdoc
is intended as a replacement for avrodoc-plus,
which itself was intended as a replacement for avrodoc,
via a long line of forks.
To run avrodoc-plus
and see its output:
npm install @mikaello/avrodoc-plus
node_modules/@mikaello/avrodoc-plus/bin/avrodoc-plus.js example.avsc --output out/avrodocplus.html
Unfortunately the original avrodoc and forks are all in varying stages of software decay, mostly due to NodeJS ecosystem churn. Their NPM package dependencies include packages which have themselves gone unmaintained or had breaking changes in following versions, with CVEs piling up against the transitive dependencies. avrodoc-plus has about 10 critical CVEs in its dependency graph. This isn't necessarily an issue in itself unless you're running these avrodoc tools in an online capacity or on untrusted input. But at $WORK it was generating a lot of false-positives in automatic SBOM security scanners which had to be explained to infosec specialists.
The HTML output from the avrodoc tools is also rather dynamic, requiring JS to render, when it could just be a classic HTML page.
I have taken the opportunity to implement some quality-of-life improvements for readers. See §Design Goals for more info.
Why the name avdoc
specifically?
The Apache Software Foundation protects project name trademarks
(quite rightly) and I wanted to avoid the kcat naming issue.
avdoc
is "Powered by Apache Avro™" but not a part of Apache Avro™.
FAQs
CLI tool to generate HTML documentation for an Apache Avro schema
We found that avdoc demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.