Internal immortal PyPI index — a standards-compliant mirror and package host with quarantine, provenance (PEP 710), and JSON API (PEP 691).
Project description
Internal immortal PyPI index — Koschey, the package keeper.
Koschey is a corporate PyPI index and package quarantine system. It is designed to provide reliability, transparency, and control over internal Python packages.
Why “Koschey”
The name comes from Koschey the Deathless — a figure from Russian folklore who hid his soul inside an egg. Koschey likewise protects the soul of each package — and keeps a close eye on Python eggs. 🥚🐍
pip install koschey
Features
Koschey can act both as a transparent proxy to public Python repositories and as a secure host for proprietary packages. It provides a unified, standards-compliant and reliable internal index for engineering teams.
Mirror and cache. Acts as a proxy to external repositories while keeping local copies of downloaded packages for reliability and auditability. Implements last-serial support for incremental sync and minimal traffic.
Private package hosting. Supports direct upload and storage of proprietary distributions inside your organization.
Quarantine layer. Packages mirrored from external sources are first placed in quarantine: they are downloaded and stored locally, but remain hidden from the simple API for a configured number of days. This allows time for automated checks or manual review. Individual versions can be approved explicitly, or entire projects can be marked as trusted to skip quarantine.
Administrative panel. Provides a web interface with multiple permission levels and flexible ACL integration. Custom authentication or access control can be added through a Python extension.
Configurable networking. Outgoing traffic for mirrors can be routed through custom proxy logic, also extendable via Python.
Standards compliance. Implements key packaging standards: PEP 658 (wheel metadata), PEP 691 (JSON Simple API), and PEP 710 (provenance records).
Simple API. Provides both the classic simple (HTML/XML) interface and JSON endpoints, compatible with pip, uv and other tooling.
High traversal efficiency. Optimized to walk and synchronize large package sets with minimal latency and bandwidth usage.
Architecture
Koschey is built with reliability and transparency in mind. It uses PostgreSQL as the primary database for package metadata, state tracking, and audit logs, and an S3-compatible object storage for package files and signatures. The system consists of several independent components — API, Worker, and Admin Panel — communicating through shared storage and the database.
Requirements
Python >= 3.12
POSIX-compatible system
License
Apache License 2.0 — see the LICENSE file for details.
Project links
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file koschey-0.1.1.tar.gz.
File metadata
- Download URL: koschey-0.1.1.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7148562d594899b2bd5701f2104ba6a1af48ba7bf91e6eeba71a9f3c3241382
|
|
| MD5 |
d3c1c903b352bdd2fbc37559780b2797
|
|
| BLAKE2b-256 |
33333a512f4883fb0d9eca7ba4e8f3ffccb9f57f601fe2edd22ceeb8b05810c1
|
File details
Details for the file koschey-0.1.1-py3-none-any.whl.
File metadata
- Download URL: koschey-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e13fcc076ffd8fa9598ab82243d51331aecf04ca21fd098d64a42ba298c41592
|
|
| MD5 |
e3836e7b756ab687cc301a93f6679248
|
|
| BLAKE2b-256 |
23e4244d4e0bbe959da44af477327c115f17146c3671aa5443f772157b488624
|