# MuseHub Dependency License Audit **Date: 2026-04-05** **MuseHub version: current** This document records the license of each direct dependency. All licenses listed are compatible with MuseHub's distribution model (server-side SaaS deployment, not binary redistribution). --- ## Direct Dependencies | Package | Version range | License | OSI approved | Notes | |---------|--------------|---------|:---:|-------| | fastapi | >=0.135.1 | MIT | Yes | Web framework | | jinja2 | >=3.1.6 | BSD-3-Clause | Yes | HTML templating | | aiofiles | >=25.1.0 | Apache-2.0 | Yes | Async file I/O | | uvicorn | >=0.42.0 | BSD-3-Clause | Yes | ASGI server | | httpx | >=0.28.1 | BSD-3-Clause | Yes | Async HTTP client | | pydantic | >=2.12.5 | MIT | Yes | Data validation | | pydantic-settings | >=2.13.1 | MIT | Yes | Settings management | | websockets | >=15.0.1 | BSD-3-Clause | Yes | WebSocket support | | sqlalchemy | >=2.0.48 | MIT | Yes | ORM + async DB | | asyncpg | >=0.31.0 | Apache-2.0 | Yes | PostgreSQL async driver | | alembic | >=1.18.4 | MIT | Yes | DB migrations | | psycopg2-binary | >=2.9.10 | LGPL-3.0 | Yes | PostgreSQL driver; LGPL applies only to the library itself, not to application code linking it dynamically | | slowapi | >=0.1.9 | MIT | Yes | Rate limiting | | cryptography | >=46.0.5 | Apache-2.0 AND BSD-3-Clause | Yes | Ed25519 / Fernet | | boto3 | >=1.42.71 | Apache-2.0 | Yes | AWS SDK (S3, CloudWatch) | | mido | >=1.3.3 | MIT | Yes | MIDI parsing | | pyyaml | >=6.0.2 | MIT | Yes | YAML parsing | | mistune | >=3.0.0 | BSD-3-Clause | Yes | Markdown rendering | | typer | >=0.15.4 | MIT | Yes | CLI framework | | msgpack | >=1.1 | Apache-2.0 | Yes | Binary serialization | --- ## Notable Notes ### psycopg2-binary (LGPL-3.0) LGPL-3.0 requires that users be able to replace the LGPL library with a modified version. In a SaaS deployment where we do not distribute binaries to end users, the LGPL dynamic-linking exception effectively means there are no obligations beyond attribution. No action required. ### cryptography (Apache-2.0 + BSD-3-Clause) The `cryptography` package bundles OpenSSL (Apache-2.0) and its own Python layer (BSD-3-Clause). Both are permissive. No action required. --- ## Transitive Dependencies Transitive licenses are not audited individually in this document. The key constraints are: - We have no GPL-2.0-only transitive dependencies (which would require open-sourcing our application code). - LGPL transitive dependencies are acceptable under the dynamic-linking exception for server-side SaaS. - All MIT, Apache-2.0, BSD-2/3-Clause transitive dependencies are unrestricted. Run `pip-licenses --from=mixed --format=markdown` to generate a full transitive audit. --- ## Review Schedule This audit should be updated whenever a new direct dependency is added or a major version is bumped. Target: quarterly review. **Next review: 2026-07-05**