Skip to content

feat(storage): backend-agnostic BlobStore layer (S3 / filesystem / IPFS) #89

Description

@kevincodex1

Problem / use case

Summary — Replace the hardcoded Tigris integration with a backend-agnostic BlobStore interface (get/put/head/delete/list) over S3-compatible, local filesystem, and IPFS backends, plus push-latency quick wins. Storage becomes a deployment config concern, not a code
dependency.

Acceptance criteria — no behavior change for existing Tigris deployments; selectable backend; atomic concurrency-safe extraction preserved (the #80 hardening); fmt/clippy/tests green; unit tests for storage::fs + repo_store.

Tracked by: PR #79 · Labels: kind:feature, crate:node, subsystem:storage, sev:medium

Proposed solution

Proposed changes — BlobStore trait + 3 backends; RepoArchive replacing Option; backward-compatible env config (legacy GITLAWB_TIGRIS_BUCKET honored); skip redundant pre-write download on etag match; write-back ack before durable upload.

Alternatives considered

No response

Does this touch the protocol?

No

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

    crate:nodegitlawb-node — the serving node and REST APIkind:featureNew capability or surfacesev:mediumDegraded but workaround existssubsystem:storageBlob/object store, Arweave, IPFS, archives

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions