| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Ecluse.Core.Registry.Adapter.Capability
Description
Registry capabilities used by the ecosystem-neutral pipeline. Adapters own wire formats and share exact source-entry selection for served metadata.
Synopsis
- data AdapterMetadata = AdapterMetadata {
- metadataNewReads :: forall posture. TracingPort -> MetricsPort -> (PackageName -> MetadataError -> IO ()) -> (PackageName -> [InvalidEntry] -> IO ()) -> (PackageName -> IO ()) -> OriginFor posture -> MetadataReads posture
- metadataAssemble :: Text -> Map SourceId (Snapshot CachedDoc) -> MergePlan -> Maybe CachedDoc -> CachedDoc
- metadataSerialise :: CachedDoc -> Either RenderRefused LByteString
- metadataFetchManifest :: ManifestFetch
- metadataChargeFactors :: ChargeFactors
- type ManifestFetch = TracingPort -> OriginClient -> PackageName -> IO (Either MetadataError Manifest)
- data AdapterArtifact = AdapterArtifact {
- artifactByFile :: OriginClient -> PackageName -> Text -> Either UrlFormationError Request
- artifactByUrl :: Maybe ClientCredential -> Text -> Either UrlFormationError Request
- artifactHosts :: [Text]
- data AdapterPublish = AdapterPublish {}
- type ProjectName = Text -> Maybe PackageName
- data AdapterMaintenance = AdapterMaintenance {}
- data StoreListing = StoreListing {
- listingRequest :: OriginClient -> Either UrlFormationError Request
- listingParser :: Parser [PackageName]
- data VersionDelete = VersionDelete {}
Metadata
data AdapterMetadata Source #
The ecosystem's metadata capability: reading a package's metadata from an origin,
assembling the served document, and encoding it (pdMetadata).
Constructors
| AdapterMetadata | |
Fields
| |
type ManifestFetch = TracingPort -> OriginClient -> PackageName -> IO (Either MetadataError Manifest) Source #
Fetching and projecting one package's full manifest from an origin. Every failure is a
MetadataError value, as it is through the client built over it.
Artifact requests
data AdapterArtifact Source #
The ecosystem's artifact request formation, by conventional filename or authoritative URL.
The serve deps and the worker bundle share it (pdArtifact).
Constructors
| AdapterArtifact | |
Fields
| |
Publish
data AdapterPublish Source #
The ecosystem's publish capability. The composition root marries its codec to the shared
publish transport per mounted ecosystem (newMirrorPublish).
Constructors
| AdapterPublish | |
Fields
| |
Names
type ProjectName = Text -> Maybe PackageName Source #
Canonicalise a raw package-name string under one ecosystem's own grammar, Nothing for
a string that grammar refuses. It is the one parser every caller reaches a PackageName through.
Store maintenance
data AdapterMaintenance Source #
The ecosystem's store maintenance verbs, which Ecluse.Core.Registry.Maintenance.Protocol
drives. Each is Nothing for a protocol that spells no such verb, and the Dredger then refuses.
Constructors
| AdapterMaintenance | |
Fields
| |
data StoreListing Source #
Reading every package a store holds. The protocol's own listing endpoint, which a public
registry may well refuse: a listing that does not answer 200 is the caller's fault to report.
Constructors
| StoreListing | |
Fields
| |
data VersionDelete Source #
Deleting one version, as the request sequence the protocol spells it with. It names its own document read, because an install-optimised metadata read may omit the revision the edit needs.
Constructors
| VersionDelete | |
Fields
| |