Skip to main content

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 details


Download files

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

Source Distribution

koschey-0.1.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

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

koschey-0.1.1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

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

Hashes for koschey-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d7148562d594899b2bd5701f2104ba6a1af48ba7bf91e6eeba71a9f3c3241382
MD5 d3c1c903b352bdd2fbc37559780b2797
BLAKE2b-256 33333a512f4883fb0d9eca7ba4e8f3ffccb9f57f601fe2edd22ceeb8b05810c1

See more details on using hashes here.

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

Hashes for koschey-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e13fcc076ffd8fa9598ab82243d51331aecf04ca21fd098d64a42ba298c41592
MD5 e3836e7b756ab687cc301a93f6679248
BLAKE2b-256 23e4244d4e0bbe959da44af477327c115f17146c3671aa5443f772157b488624

See more details on using hashes here.

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