---
title: "2026-09-01 histo Factory rootless upload deployment"
description: "Built merged Factory images from main and rolled out the rootless histo upload change."
image: "https://docs.virdx.dev/img/virdx-social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.virdx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-09-01 histo Factory rootless upload deployment

## Work Done

Verified vxData SDK rootless directory upload PR https://github.com/virdx/mono/pull/365 merged to `virdx/mono` main as `dcfd8583905622d6e01ee0434e2b28437652600b`. Submitted `apps/factory/deployments/build.sh` from a clean detached main worktree. Tekton PipelineRuns `build-factory-api-ws5m9` and `build-factory-579rf` both succeeded. Restarted `inference/inference-api`; deployment revision 31 became available with API digest `sha256:e721b634284852a6e812af13116674e8fc01bb4cb23f5f00c2f5d97cf0674833`, one Ready replica, and zero restarts. FastAPI startup logs were clean and the live `/rules` endpoint returned HTTP 200 with seven rules. The still-open HistoMap identifier correction was not present in this build.

## Lessons Learned: Pitfalls

The checked-in build script was not executable, so direct invocation failed before creating any PipelineRun; `sh apps/factory/deployments/build.sh` was required. A dynamic kubectl JSONPath selector expression also failed; querying the deployment JSON with `jq` gave a reliable selector and readiness view.

## Lessons Learned: Improvements

Make `apps/factory/deployments/build.sh` executable or document invocation through `sh`. A deployment SOP should record the exact main SHA, both PipelineRun names, rollout revision, pulled image digest, startup logs, and a live endpoint check, and should state which open Factory PRs were excluded from the build.

Source: https://docs.virdx.dev/knowledge/inbox/2026-09-01-histo-factory-rootless-upload-deployment/index.mdx
