Skip to content

Finish tenant-owned document cleanup and live consumer qualification #48

Description

@sarthakagrawal927

Paused by owner — 12 September 2026

The owner chose to stop this readiness pass and continue this product later. Keep the unfinished requirements open; exclude this issue from the immediate queue.

Resume with: Authenticated live document qualification and separately controlled owned-storage migration/activation.

Remove the queue: excluded label and unarchive the project card when work resumes. Product lifecycle and deployment are unchanged.

Current queue disposition — 11 September 2026

The tested protected indexing/search core is accepted. Owned-file activation, tenant isolation and broader consumer rollout remain qualification gates.

This remains an open repository backlog issue. Its outstanding acceptance criteria are not marked complete. The owner-approved minimum-use review has moved it out of the immediate project queue; the original requirements below and existing README references are preserved. To resume, remove queue: excluded and unarchive the project card.

Private shared retrieval infrastructure; this is not an anonymous upload/search product.

Completed source/local proof (98181c0):

  • Default legacy-path guard rejects known shared raw/hash deletion before mutations; parse reads require tenant ownership. This guard remains non-atomic with concurrent legacy ingestion.
  • Additive file ownership/operation/artifact ledger and publication/visibility schema in migrations 0008/0009. Immutable owner/file raw keys; generation-scoped parse/document/vector identity; retained tombstones and conditional D1 publication.
  • Internally gated integration across upload, text, records, queue/reprocess, inferred upload, imported-file persistence, registration/copy and source-set deletion. Structured fields, provenance, relationship/backfill and citations derive from surviving evidence. Generic routes cannot overwrite/delete owned resources.
  • Actual SQLite migrations/transactions plus real Hono handlers: 23 synthetic ownership tests cover same-content tenants/domains, legacy read compatibility, raw/parse/vector interleavings, retries, uncertain writes, asynchronous vector visibility, independent physical cleanup, durable cross-handler cache invalidation, structured evidence restoration and retained-history source denial.
  • Full local pnpm quality: 387 Worker tests, six dashboard tests, builds/typechecks/docs and all configured code-health gates. No baseline increase or new dependency.

Remaining requirements:

  • Review rollout before enabling the internal protocol. Production still uses the legacy path; no production configuration switch was added. Shared legacy records do not yet support safe independent physical deletion.
  • Implement and locally prove explicit legacy inventory/copy/backfill: drain old writers, copy/verify bytes into owned keys, rebuild per-file indexed/parse provenance, and validate before publication. Retain shared legacy objects until a separate zero-reference garbage-collection review.
  • Implement operational reconciliation for abandoned/uncertain external writes. Running operations never expire or get stolen; elapsed time cannot establish settlement. Such deletion remains truthfully 202/pending.
  • Separately authorize production schema/backfill/activation and verify actual D1/R2/Vectorize binding convergence.
  • Authorized live synthetic consumer workflow: upload, cited query, reopen, tenant denial and cleanup. Signed-in operator dashboard remains unverified.

Deletion removes indexed file artifacts; saved conversations, query traces and coordination/shared identity metadata persist. Responses explain this in plain language. Historical citations cannot fetch deleted files/parse artifacts or republish removed evidence into new queries in the local tests.

Receipts and limitations: docs/development/document-workflow-qualification-2026-09-07.md. Provider bindings/embeddings are deterministic synthetic fixtures; no live retrieval-quality claim. No production migration, backfill, activation, deployment, hosted upload, credentials or provider/model calls were performed. Keep this issue open through the remaining migration/recovery/live gates.

Legacy inventory implementation — 8 September

Before copy/backfill, add an offline, read-only SQLite inventory command over an explicitly supplied complete D1 snapshot. It must retain tenant/file identity, identify shared raw/hash references across scopes, propose distinct owned raw keys, report existing lifecycle and unresolved writer state, and never infer ownership from a key prefix. No provider calls, schema changes, copy, publication or deletion are part of the inventory command. Snapshot metadata cannot prove writer drain, raw-byte integrity or provider convergence.

Scenarios: identical content across tenants/domains remains separate; v2-looking keys without a matching ledger remain blocked; queued/running/unknown ingest states and running operation intents remain unresolved regardless of age; absent ownership migrations remain explicit; unknown project input fails rather than producing a reassuring empty report. Test against the actual migrated SQLite schema and verify the CLI leaves the input file unchanged.

  • Add read-only scoped inventory with cross-scope reference counts and explicit limitations.
  • Prove inventory and unchanged input with real SQLite fixtures.
  • Run full repository quality and exact-source CI. Local quality passed at 3bff4e9: 391 Worker tests, six dashboard tests, builds/typechecks and unchanged code-health gates. Quality CI 34220990487 and docs CI 34220990555 passed. Checkout is clean on main; temporary branch and test fixtures are cleaned up.

This completes only inventory preparation. Byte-copy validation, provenance rebuild, durable backfill publication and external-write reconciliation remain required before activation.

Verified offline raw-copy staging

Continue inventory with an explicit local snapshot/object-export staging command. Verify recorded SHA-256 and byte count before copying; create separate immutable artifacts for each proposed owned R2 key; reread outputs and produce a deterministic manifest. Use hashed local filenames for R2 keys so dot segments, slashes or encoded identity cannot alias filesystem destinations. Reject escaping or non-file source paths, symlink destinations, hash/size mismatch, conflicting output and unresolved inventory state. Retain the complete source export. Retry identical output idempotently. No provider calls, database updates, provenance publication or legacy garbage collection.

  • Implement verified raw staging and manifest with exclusive output writes. Pushed as 4562c71.
  • Exercise distinct tenants, source corruption, unsafe paths, existing output conflicts and retry with actual temporary bytes, including the real CLI. Source bytes and SQLite remain unchanged; temporary fixtures are cleaned after tests.
  • Full local quality and exact-source CI. Local gate passed 395 Worker and 6 dashboard tests, builds/typechecks and unchanged code-health thresholds. Quality CI 34221819695 and docs CI 34221819621 passed. Checkout clean on main; temporary branch removed and validation artifacts archived.

Staging is a prerequisite, not migration completion. Live copy/verification, writer drain, parse/indexed provenance rebuilding and atomic publication remain necessary.

Live browser refresh — 8 September

Public landing visually inspected at measured 390px and 1440px widths with no horizontal overflow; illustrative citation disclosure works. Markdown brief returns 200. This verifies public presentation only. The operator workspace reaches Cloudflare Access; its Cloudflare sign-in enters a browser-verification challenge that repeats after a normal checkbox click. Owner sign-in is pending, so no live private query/upload/tenant-isolation pass is claimed. Site Health receipt: docs/qualification/knowledge-base-live-2026-09-08/README.md.

10 September — never-dispatched cleanup source fix

Commit 2143d4c847e534cc2186060a5670e340b6d1e426 completes cleanup for settled prepared artifact intents, without waiting for nonexistent vectors. Started and unknown writes still remain pending until provider convergence. Focused real-SQLite ownership suite: 43 passed. Full local quality passed: 428 Worker tests, 6 dashboard tests, builds/types/docs and existing quality baselines.

Public production readiness passed (D1/schema, R2, Vectorize health and unauthenticated index denial). This does not qualify private document operations. Source is pushed under owner approval; no production migration, backfill or ownership activation was performed. The existing rollout and live-account requirements above remain open.

September 10 — authenticated production CRUD receipt

Using the existing Infisical Fleet/prod service identity, the repository's bounded smoke-rag-crud.mjs passed on the deployed Worker: health, create temporary index (201), ingest one synthetic document (201, one chunk), retrieve the matching document (200, one result), and delete the temporary index (200). A subsequent authenticated inventory returned 200 and confirmed the test index absent.

This verifies the existing index/document API against live infrastructure. It does not qualify owned-file migration/backfill, tenant isolation, operator dashboard sign-in, or pending protocol activation. No existing corpus was changed. Local receipt: knowledge-base-live-2026-09-10/infisical-crud.json.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    queue: excludedRetained outside the immediate-use project queue; remove label and unarchive to resume.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions