Skip to main content

Generate open source software notices from SBOM/SPDX documents

Project description

onot

CI Security License OpenSSF Scorecard PyPI Latest release Download for Windows

onot generates open source software notices (OSS Notice) from SBOM documents. It reads SPDX 2.x (JSON/YAML/Tag-Value/RDF), CycloneDX (JSON/XML), and Excel, and produces HTML, Text, Markdown, and PDF notices. License texts are bundled, so it runs fully offline (air-gapped) — your SBOM never leaves the machine. Jointly developed by Kakao and SK telecom.

onot app

User guide: English

Download (desktop app)

No setup required. Grab the latest installer from Releases, open the app, and drop in an SBOM file to preview and download a notice — Windows (onot-Setup-x.y.z.exe) and macOS (.dmg).

The installers are unsigned. On first launch Windows SmartScreen may warn about an "unknown publisher" — choose More info → Run anyway. On macOS, right-click the app and choose Open to pass Gatekeeper.

CLI

pip install "onot[spdx,cyclonedx,excel,api]"   # from PyPI; add ,pdf for PDF output

# SBOM (format auto-detected) → notices in multiple formats
onot generate -i sbom.spdx.json -f html -f markdown --output-dir ./output

#   -f/--format   html | text | markdown | pdf (repeatable)
#   --lang        ko | en
#   --config      onot.yaml (company info, etc.)
#   --online      fetch missing license texts remotely (offline by default)
#   --stdout      write a single text format to stdout

onot formats   # supported output formats
onot version

Input format is auto-detected by extension and content (including SPDX JSON vs. CycloneDX JSON). PDF output needs pip install ".[pdf]" (WeasyPrint); the desktop app uses a built-in converter.

Local API (sidecar)

onot-sidecar --port 8765
# POST /api/parse    upload → parse result
# POST /api/render   upload + format/lang/company → notice
# GET  /api/formats, GET /healthz

Desktop app (Electron)

pnpm -C frontend install && pnpm -C frontend build
pnpm -C electron install && pnpm -C electron start   # dev
pnpm -C electron run dist                            # package (.dmg/.exe/.AppImage)

Upload → preview → download. All processing is local; the SBOM never leaves the machine.

Development

bash .claude/gate.sh   # lint + pytest (cov ≥ 90) + frontend build/test + electron sidecar test

Refresh license data with python scripts/update_license_data.py (bundles SPDX license-list-data). Design and decision records live in docs/2.0/ (TRACEABILITY.md, DECISIONS.md).

Contributing

Contributions are welcome! See CONTRIBUTING.md for how to set up your environment, run the checks, and open a pull request. Please also read our Code of Conduct. To report a security vulnerability, follow SECURITY.md instead of opening a public issue.

Maintainers

Name Company Email
Rogers Kakao um4825@gmail.com
Haksung SK telecom hakssung@gmail.com

License

Apache-2.0

Project details


Download files

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

Source Distribution

onot-1.1.1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onot-1.1.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file onot-1.1.1.tar.gz.

File metadata

  • Download URL: onot-1.1.1.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for onot-1.1.1.tar.gz
Algorithm Hash digest
SHA256 9ce5ea65573690d391a8a8bd4c894ac61186df853cbb290b8de98bb0b6882c9f
MD5 3ea0890cf87d4ed90e79e7b3e7707a13
BLAKE2b-256 b6aa85fbcbbe127e0784f0eccd89b7c3151f3babf3fe26f083f8ae1b7b1b73a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for onot-1.1.1.tar.gz:

Publisher: release.yml on sktelecom/onot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file onot-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: onot-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for onot-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d08ef2ae54d9e79174d06c966dd25c4af514ed8f2e79f26cbed8fa1ff820c7e9
MD5 dc015b83c307ded954f8b792e6fbab1f
BLAKE2b-256 9ff416c085ba484edf6004158db69eb5b5d0c016e3292ba9c1aed14e95f2eb72

See more details on using hashes here.

Provenance

The following attestation bundles were made for onot-1.1.1-py3-none-any.whl:

Publisher: release.yml on sktelecom/onot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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