Coming soon. Depotex is in active development, so features and these docs may still change.

Changelog

What each release of Depotex includes, newest first

1. Since the initial release

DateFeatureChange
2026-11-05AlertsOne problem now sends one System health alert instead of a Cluster health and a System check alert, updated in place as it gets worse, changes or clears, with a daily reminder while it lasts; a new problem the hourly system check finds is checked again two minutes later before it alerts, and a paused server's scheduled jobs get 15 minutes to catch up before they count as overdue. See Alert tuning.
2026-11-05Alert tuningNew Settings → Advanced → Alert tuning: mute a problem, a check, a server or a whole alert category for a while, until it clears or until removed (with Mute… on alerts, the system check and Clustering), turn a check's notifications off or keep only failures, and change how long it waits, how often it reminds and its thresholds (overdue jobs, failed runs, disk space, late heartbeats).
2026-11-02QuarantineQuarantine rules can hold versions with known vulnerabilities of their own the moment a proxy fetches them or they're uploaded (Enterprise, with vulnerability data); proxies leave such versions out of the lists clients resolve from, so ranges pick the fixed version, and a refused download names the advisories and the version that fixes them. Stored versions are judged again when new advisories name them, following the re-check setting, and versions held until checked are released once found clean.
2026-11-02ConanConan archives are checked against each revision's manifest in the background, and a mismatch quarantines the version; version pages show the recipe's licence, description, homepage, topics and sources, and each binary's integrity, size and package revisions; and SBOMs a package ships under metadata/ appear under Security (C/C++ components, and a package's own SBOM listing only itself, stay not covered).
2026-11-02CondaPro: conda versions get SBOMs from their dependencies, and packages fetched through proxies of conda-forge, Bioconda and Anaconda's channels are read with Syft, so the Python and CRAN R packages inside them are checked for vulnerabilities; conda packages themselves, Bioconductor and other R packages, and the few C/C++ libraries Syft recognises show as not covered (most C/C++ libraries inside conda packages aren't listed).
2026-11-02SBOMComponents of a kind no vulnerability data covers (such as C/C++ Conan packages, conda packages or generic entries) now show as not covered instead of clean, a version made only of them no longer gets the green check, versions where only some components are covered (for example container images whose SBOMs list generic or GitHub entries) show "No known vulnerabilities" without the green check, sbom.scan.complete says how many were checked and not covered, and CRAN, Hackage, Swift and Bitnami packages are checked from OSV's data files too.
2026-11-02ConanConan proxies and groups leave blocked versions, and with Hide quarantined versions on the ones quarantine holds, including versions not fetched yet that an age rule would hold by their upstream revision time, out of a version's revisions, its latest revision and search, so a version range such as [>=1.0 <2] installs the newest version that passes (Hidden versions; search looks up the age of at most 50 versions per answer); block-list rules for Conan read Conan version ranges such as >=1.0 <2, ~1.2, ^1.2 and 1.2.*.
2026-11-02CondaConda proxies and groups leave blocked builds out of the metadata conda, micromamba and pixi solve from, and, with Hide quarantined versions on, the builds quarantine holds, including ones not fetched yet that an age rule would hold by when the proxy first saw them, so clients pick the newest build that passes (Hidden versions); block-list rules for conda read conda version specs such as 1.8.*, =1.8 and 1.8|1.9, and existing conda rules are now read the conda way (<2.3 also covers 2.3rc1), while Maven ranges such as (1.0,2.0) keep their meaning.
2026-11-01PromotionPro: promote versions to another repository of their format, in the same space or another, by id or by tag, copied or moved (the source keeps them in its trash), from a tag's Promote button, a version's menu, the API, in the background for up to 5000 versions, or by an AI agent's promote_version tool; works for every format that takes browser uploads and for Docker images, and a policy can require tags first.
2026-11-01TagsPro: spaces have tags with a description and attributes to put on versions from the Tags tab, the API or CI uploads (the X-Depotex-Tag header); tags show on version pages and in search results, and cleanup policies can keep tagged versions.
2026-11-01RepositoriesA repository's Metadata card checks or repairs what it serves to clients against its stored files (index files, package lists, manifest records), and Settings → Repositories does it for every repository or every one of a format; Rebuild metadata.
2026-11-01CleanupVersions a cleanup policy removed can be restored from the space's new Trash tab or purged for good at once, and a policy's last run can be undone in one step.
2026-11-01Proxy repositoriesA proxy's Proxy cache card has Re-check now, which makes it ask its upstream again for everything it cached, and lists the remembered "not found" answers so you can forget one, a folder or all of them; see Re-check with the upstream.
2026-10-29ClusteringJobs that repeat at an interval (system check, vulnerability sync, quarantine expiry and others) now run on one server per interval instead of on every server of a cluster.
2026-10-29PerformanceMany uploads at once into one space no longer wait for each other: in a cluster of three servers, uploads are about 60% faster and their slowest responses about 2.5 times quicker.
2026-10-29InstallationPool settings in DATABASE_URL (pool_max_conns and the other pool_ options) no longer make setup and upgrades fail with "unrecognized configuration parameter".
2026-10-29Block listIn a cluster, a block list's dry run (Check) now includes a rule saved on another server a moment ago, instead of up to 5 seconds later.
2026-10-26ConanConan proxy repositories (Pro): a proxy caches ConanCenter (with the new ConanCenter upstream preset), an Artifactory or conan_server remote or another Depotex, on its own or in a group, checks each revision's manifest against its revision ID before keeping it, and keeps revisions installable after the upstream removes them; new Conan proxies follow Settings → Security → Proxy checksums.
2026-10-25Repository groupsA group's largest upload now also applies to uploads sent without their size (chunked): they are refused once they pass it, with nothing stored.
2026-10-25ConanConan groups: one remote for Conan 2 over several repositories, with revisions, binaries and search merged from the members and conan upload routed by the group's write rules (when a binary's recipe revision is in another member, the refusal names it and conan upload --force completes the upload); a recipe name any hosted member has hides upstream recipes of that name, for downloads too (on by default, in the group's Conan settings).
2026-10-25ConanConan repositories: hosted repositories for Conan 2 (2.0 or later) take recipe revisions and their binaries from conan upload (a revision appears complete when its manifest arrives, and uploading it again with --force keeps it), sign in with an API token as the password, answer install, list, search, download and remove with revisions and metadata files, and show each version's recipe revisions and binaries in the browser, where a revision can be deleted.
2026-10-25RubyGemsRubyGems group repositories: one address for hosted gems and RubyGems.org, with hosted names shadowing upstream ones, pushes routed to a hosted member, and Bundler downloading only what changed
2026-10-25RubyGemsProxy repositories of RubyGems.org and other gem registries (Pro): Bundler and gem install through them, each .gem checked against the registry's SHA-256 (new proxies follow Settings → Security → Proxy checksums), quarantine age rules judged by each version's publish date, and hidden versions left out of what Bundler resolves
2026-10-25Block listVersion ranges are read in each format's own syntax where it has one, so a rule for RubyGems takes requirements such as ~> 1.2 or >= 1.0, < 2 and reads them as gem and Bundler do, and a range is kept as you type it (Maven-style ranges, and spaces inside a version, are still saved without spaces).
2026-10-25CondaConda groups: one channel for conda, micromamba and pixi over hosted channels and proxies, with sharded and whole repodata merged from the members and uploads from rattler-build routed by the group's write rules; hosted package names hide upstream packages of the same name, for downloads too (on by default); and conda proxies also serve an upstream channel whose repodata.json points its packages at another address.
2026-10-24RubyGemsHosted RubyGems repositories, on every license tier: gem push and rake release (a version RubyGems counts as one already pushed, such as 1.0.0 after 1.0, is refused as on RubyGems.org, and pushing a gem again restores its file when the integrity check found it missing), installs with Bundler and gem, platform builds as files of one version, gem yank per platform, gem owner (owners listed by email address, user name or id, each of which --remove takes) and reserved gem names, and .gem files in the upload form.
2026-10-24CondaConda channels: hosted repositories take .conda and .tar.bz2 packages from rattler-build, curl or the web (a rerun upload of the same file passes), serve repodata and, when turned on, sharded repodata to conda, micromamba and pixi, and can yank builds; proxy repositories (Pro) cache conda-forge, Bioconda or another channel, fetching only files the upstream lists and checking each against its sha256; new conda proxies follow Settings → Security → Proxy checksums.
2026-10-23Vibe artifactsEnterprise: gems a Gemfile.lock locks for a platform (such as nokogiri 1.16.8-x86_64-linux) are checked at their version, so vulnerabilities fixed in that version no longer show on check-ins, gems.locked files are read too, and check-ins already pushed are read again in the background after the upgrade (with several servers, re-inspect vibe repositories once every server runs this version).
2026-10-23API tokensPackage managers can send an API token as the user name with an empty password (Bundler's token-only setting), and an OAuth access token on its own with no scheme, so a CI job can publish with the access token it gets through workload identity.
2026-10-23Proxy repositoriesSettings → Security has a Proxy checksums switch (on by default, PROXY_STRICT_CHECKSUMS until saved) that proxy repositories set to the new Checksums value Use the Security setting follow: on, a file whose checksum doesn't match the upstream's is refused; off, it is served with a warning; repositories set to Strict, Warn or Off keep their own setting, and a repository's settings show what Use the Security setting means at the moment.
2026-10-23PoliciesThe Compliance tab of a policy on depot.repository.create now sees each existing repository's type, space, upstream and proxy checksum setting, so a condition such as payload.type == "proxy" && payload.checksum_policy != "strict" lists the proxy repositories that aren't Strict.
2026-10-23APT and YUMGenerated indexes now carry Last-Modified and answer an unchanged If-Modified-Since with 304, so apt-get update no longer downloads an unchanged index again.
2026-10-23RepositoriesThe Browse format filter and the block-list, quarantine and cleanup rule dialogs list formats in the order the API does (Terraform, Composer and Hugging Face move), and a repository's Largest artifact setting explains that, left empty, the format's own limit applies when it is smaller than the installation's, and that a limit set there replaces both.
2026-10-23BrowseA version with several files, such as wheels and a source archive or a jar and its POM, has a File picker on its page that Download, the curl command and the checksums follow, and the AI tools' download link lists the version's files to choose from.
2026-10-22PerformanceEach server keeps spaces, repositories, roles, access grants and repository settings in memory and drops them as soon as they change on any server, so a download reads the database twice instead of eight times; READ_CACHE_ENABLED=false turns this off on a server.
2026-10-17PluginsConnect an AI agent in the profile menu has a Vibepack skill tab to download the agent skill and see how to use it, and plugin screens can offer a .zip from their package to download.
2026-10-17Vibe artifactsEnterprise: the vibepack skill connects an AI agent with the Depotex AI tools or a saved API token, asks for the project's name, status and other details before its first save, and offers screenshots, captured pages or mock-ups; its script saves a check-in from a terminal without an agent, asking the same questions step by step.
2026-10-14QuarantineEnterprise: quarantined versions can be blocked (kept, and refused from then on) or deleted and blocked, in their repository, their space or every space, for one version or every version of the name; repository admins get a Quarantine tab for their repository.
2026-10-14Block listBlock-list rules now refuse uploads and proxy caching of the versions they match too, and rules made from quarantine also refuse their files' content under any name.
2026-10-14Vibe artifactsEnterprise: check-ins record what must keep working, the environment they need and whether their tests passed; the project page offers the last passing check-in to go back to, and milestones can be named or renamed from the Vibe browser.
2026-10-14Vibe artifactsEnterprise: Settings can let pushes with secrets or hidden characters through as high findings, and download the typosquat check's popular-package list from an address you set, daily or on demand, falling back to the built-in list.
2026-10-14Vibe artifactsEnterprise: every push is checked: secrets and hidden characters in AI instruction files refuse it, and packages that don't exist or are new, open database rules, lockfile vulnerabilities and risky code show as findings on the check-in's new Findings tab.
2026-10-14Vibe artifactsEnterprise: AI coding tools can search, pull, compare and publish vibe projects through the Depotex AI tools (MCP); every publish answers with the check-in's link in the Vibe browser.
2026-10-14Vibe artifactsEnterprise: the Vibe browser searches projects, milestones, what changed and screenshot captions, with project and check-in pages, a timeline, a screenshot wall and a zip download of each check-in.
2026-10-13Vibe artifactsEnterprise: vibe artifact repositories hold projects pushed as numbered check-ins with files and screenshots; every push answers with a link to the check-in in the Vibe browser.
2026-10-13Vibe artifactsEnterprise: turn on vibe artifacts in Settings → Repositories → Vibe artifacts to add the Vibe browser to the menu, beside Browse.

2. Initial release

The first release of Depotex: a self-hosted artifact repository that runs on a single server or as a cluster, with the same features either way. Later releases are listed above this one as they ship.

AreaWhat's included
Package formatsMaven, npm, PyPI, Docker and OCI images, Helm, Go, NuGet, Cargo, APT, YUM, Terraform and OpenTofu, Hugging Face, Git LFS, Composer and raw files, each working with its standard client for downloading and publishing.
RepositoriesHosted repositories; proxy repositories that cache Maven Central, npm, PyPI, Docker Hub, internal mirrors or another Depotex; group repositories that combine them behind one address, with a universal address per format in every space. Write policies, upload rules, cleanup policies, storage quotas and uploads from the browser. Deleted repositories can be restored for 7 days. New spaces start with a default storage quota (50 GB, set in Settings → Repositories).
Spaces and accessSpaces that are private, internal or public, with Viewer, Developer, Maintainer and Owner roles for people, groups and service accounts, per-repository access and content selectors.
Browsing and searchThe artifact browser: search across every repository you can see, filters, a tree per repository, and a page per version with install commands, files, checksums, dependencies and security status. Search from the top of every page (Ctrl+K or /) for the spaces, repositories, artifacts, settings, people and groups you can open.
SBOMs and vulnerabilitiesSBOMs in SPDX and CycloneDX, stored with artifacts, uploaded for applications from CI, or made by Depotex from package metadata or a lockfile the package ships, for Maven (with parent POMs), npm, PyPI, Go, Cargo, NuGet and Composer, and read from container images with Syft (Pro); operating system packages checked per distribution release, including those in APT and YUM repositories once their release is set; coverage scores that say how much of each version could be checked (Pro); first-seen dates, "new since upload" and a fix-it checklist with the upgrade command; a Security tab that sums up a version (vulnerabilities, coverage or why there is none, re-check), then cards for each SBOM with its downloads and exports; re-checks that alert instead of quarantining, or quarantine after a grace period; malformed SBOMs listed as unreadable instead of quarantined; completeness scores, each vulnerability explained in place (its weakness by name, the CVSS vector in plain words, the affected versions of every release line and the fix for yours, its description), component search everywhere, vulnerability data from OSV (asked online, or downloaded and matched inside the installation, or uploaded for installations with no internet), scanner plugins whose findings merge with OSV's and count in policies, SBOMs packed inside wheels, NuGet packages and Java archives, re-check and re-inspect on request for a version, a repository or everything, VEX assessments, AI BOMs for models and datasets, and export and sharing.
Supply-chain controlsQuarantine rules and manual holds, the block list, integrity checks of every stored file, and automatic quarantine of unsafe package metadata.
Policies, automation and pluginsPolicies that block, warn about or adjust actions, from templates or your own conditions, with dry runs, exemptions and compliance scans; automation rules that send alerts, webhooks and emails on events; signed plugins, including MCP servers for AI applications and an API explorer.
Users and sign-inDirectories: Local, LDAP, Active Directory, Microsoft Entra ID, Google Workspace and SCIM; single sign-on with OpenID Connect and SAML; your profile settings (avatar, theme and language: English or German, notifications, password, sessions, tokens and connected apps); invitations and password resets by email, profile pictures in every list of people (profiles:view), sessions and timeouts, CAPTCHA, lockout after failed attempts, anonymous access, and GDPR data export and anonymization.
Applications and tokensOAuth applications with consent, device sign-in for command-line tools, service accounts and workload identity for CI; API tokens with permissions, templates to start from, expiry, IP allowlists and rotation; rate limits, overrides and download quotas.
NotificationsIn-app alerts with the bell, a notifications page and preferences; email through SMTP providers or the Amazon SES API with an IAM role; banners for announcements, with an optional title.
AdministrationThe dashboard, the system check and cluster health, scheduled jobs, log levels, log files and exports, the audit log, profiling, Prometheus metrics, branding per theme and your own help links.
Backups and recoveryBackups on a schedule or on demand, encrypted, kept on a separate target, checked and test-restored; restore into a new installation from the setup wizard; recovery mode when an installed server can't start.
InstallationA setup wizard or an unattended setup file; container images and a Helm chart; a single server or a cluster with Redis as one server, Sentinel or Redis Cluster; storage on a local disk, S3 (with IAM roles), MinIO or Azure Blob.