ecluse:ecluse-core
Safe HaskellNone
LanguageGHC2021

Ecluse.Core.Server.Pipeline.Tarball

Description

Serve artifacts from the private origin or an admitted public fallback.

Private access refusals stop the fallback, and other private misses keep the first-party restriction. GET and HEAD share policy. The private leg lives in Ecluse.Core.Server.Pipeline.Tarball.Private, the gated public leg in Ecluse.Core.Server.Pipeline.Tarball.Public, and this module and the public leg render refusals through Ecluse.Core.Server.Pipeline.Tarball.Refusal.

Synopsis

Documentation

tarballAction :: TarballReplies response -> Method -> PackageName -> Version -> Filename -> ResponseAction response Source #

The action a read route names for an artifact coordinate. A HEAD runs the same policy as GET without pumping upstream bytes.

serveTarball :: TarballReplies response -> PackageName -> Version -> Filename -> Request -> (response -> IO ResponseReceived) -> Handler ResponseReceived Source #

Serve an artifact with the caller's credential confined to the private origin.

headTarball :: TarballReplies response -> PackageName -> Version -> Filename -> Request -> (response -> IO ResponseReceived) -> Handler ResponseReceived Source #

Probe an artifact with HEAD through the same policy as GET, without pumping upstream bytes.