cachix-api 1.7.8 → 1.7.9
raw patch · 2 files changed
+2/−1 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Cachix.API.WebSocketSubprotocol: [$sel:agent:Message] :: Message cmd -> Maybe UUID
- Cachix.API.WebSocketSubprotocol: [$sel:cache:AgentInformation] :: AgentInformation -> Maybe Cache
- Cachix.API.WebSocketSubprotocol: [$sel:cacheName:Cache] :: Cache -> Text
- Cachix.API.WebSocketSubprotocol: [$sel:closureSize:DeploymentStarted] :: AgentCommand -> Maybe Int64
- Cachix.API.WebSocketSubprotocol: [$sel:command:Message] :: Message cmd -> cmd
- Cachix.API.WebSocketSubprotocol: [$sel:hasSucceeded:DeploymentStarted] :: AgentCommand -> Bool
- Cachix.API.WebSocketSubprotocol: [$sel:id:AgentInformation] :: AgentInformation -> UUID
- Cachix.API.WebSocketSubprotocol: [$sel:id:DeploymentDetails] :: DeploymentDetails -> UUID
- Cachix.API.WebSocketSubprotocol: [$sel:id:DeploymentStarted] :: AgentCommand -> UUID
- Cachix.API.WebSocketSubprotocol: [$sel:id:Message] :: Message cmd -> UUID
- Cachix.API.WebSocketSubprotocol: [$sel:index:DeploymentDetails] :: DeploymentDetails -> Int64
- Cachix.API.WebSocketSubprotocol: [$sel:isPublic:Cache] :: Cache -> Bool
- Cachix.API.WebSocketSubprotocol: [$sel:line:Log] :: Log -> Text
- Cachix.API.WebSocketSubprotocol: [$sel:method:Message] :: Message cmd -> Text
- Cachix.API.WebSocketSubprotocol: [$sel:publicKey:Cache] :: Cache -> Text
- Cachix.API.WebSocketSubprotocol: [$sel:rollbackScript:DeploymentDetails] :: DeploymentDetails -> Maybe Text
- Cachix.API.WebSocketSubprotocol: [$sel:storePath:DeploymentDetails] :: DeploymentDetails -> Text
- Cachix.API.WebSocketSubprotocol: [$sel:time:DeploymentStarted] :: AgentCommand -> UTCTime
- Cachix.API.WebSocketSubprotocol: [$sel:time:Log] :: Log -> UTCTime
+ Cachix.API.WebSocketSubprotocol: [agent] :: Message cmd -> Maybe UUID
+ Cachix.API.WebSocketSubprotocol: [cacheName] :: Cache -> Text
+ Cachix.API.WebSocketSubprotocol: [cache] :: AgentInformation -> Maybe Cache
+ Cachix.API.WebSocketSubprotocol: [closureSize] :: AgentCommand -> Maybe Int64
+ Cachix.API.WebSocketSubprotocol: [command] :: Message cmd -> cmd
+ Cachix.API.WebSocketSubprotocol: [hasSucceeded] :: AgentCommand -> Bool
+ Cachix.API.WebSocketSubprotocol: [id] :: AgentCommand -> UUID
+ Cachix.API.WebSocketSubprotocol: [index] :: DeploymentDetails -> Int64
+ Cachix.API.WebSocketSubprotocol: [isPublic] :: Cache -> Bool
+ Cachix.API.WebSocketSubprotocol: [line] :: Log -> Text
+ Cachix.API.WebSocketSubprotocol: [method] :: Message cmd -> Text
+ Cachix.API.WebSocketSubprotocol: [publicKey] :: Cache -> Text
+ Cachix.API.WebSocketSubprotocol: [rollbackScript] :: DeploymentDetails -> Maybe Text
+ Cachix.API.WebSocketSubprotocol: [storePath] :: DeploymentDetails -> Text
+ Cachix.API.WebSocketSubprotocol: [time] :: Log -> UTCTime
+ Cachix.Types.Deployment: [finishedOn] :: Deployment -> Maybe UTCTime
- Cachix.API: BinaryCacheAPI :: (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nix-cache-info" :> Get '[XNixCacheInfo, JSON] NixCacheInfo))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> Get '[XNixNarInfo, JSON] (Headers '[Header "Cache-Control" Text] CachixNarInfo)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> Head))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (Capture "nar" NarFileName :> Get302 '[XNixNar] '[])))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> Get '[JSON] BinaryCache)))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("narinfo" :> (Summary "Given a list of store hashes, return a list of those that are missing" :> (ReqBody '[JSON] [Text] :> Post '[JSON] [Text]))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("narurl" :> (Capture "nar" NarFileName :> Get '[JSON] Text)))))) -> (route :- (Summary "Upload a NAR directly to the Cachix Server" :> (Description "This is a legacy API for older Cachix clients. Prefer 'createNar' instead." :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (QueryParam "compression" CompressionMethod :> (StreamBody NoFraming XNixNar (ConduitT () ByteStringStreaming (ResourceT IO) ()) :> Post '[JSON] NoContent))))))))) -> (route :- (Summary "Create an empty NAR and initiate a multipart upload" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (QueryParam "compression" CompressionMethod :> Post '[JSON] CreateMultipartUploadResponse))))))) -> (route :- (Summary "Retrieve a presigned URL to upload a part of a multipart NAR" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> (QueryParam' '[Required] "uploadId" Text :> (QueryParam' '[Required] "partNumber" Int :> (ReqBody '[JSON] SigningData :> Post '[JSON] UploadPartResponse)))))))))) -> (route :- (Summary "Complete a multipart upload" :> (Description "Verify the etags for each part and create the narinfo" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> ("complete" :> (QueryParam' '[Required] "uploadId" Text :> (ReqBody '[JSON] CompletedMultipartUpload :> Post '[JSON] NoContent))))))))))) -> (route :- (Summary "Abort a multipart upload" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> ("abort" :> (QueryParam' '[Required] "uploadId" Text :> Post '[JSON] NoContent))))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> (ReqBody '[JSON] NarInfoCreate :> Post '[JSON] NoContent)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("serve" :> (Capture "storehash" Text :> (CaptureAll "filepath" Text :> (Summary "Serve a file from a given store path" :> Get '[XNixNar] (Headers '[Header "X-Content-Type-Options" Text, Header "Cache-Control" Text] LazyByteStringStreaming))))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("key" :> (ReqBody '[JSON] SigningKeyCreate :> Post '[JSON] NoContent)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("pin" :> (ReqBody '[JSON] PinCreate :> Post '[JSON] NoContent)))))) -> BinaryCacheAPI route
+ Cachix.API: BinaryCacheAPI :: (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nix-cache-info" :> Get '[XNixCacheInfo, JSON] NixCacheInfo))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> Get '[XNixNarInfo, JSON] (Headers '[Header "Cache-Control" Text] CachixNarInfo)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> Head))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (Capture "nar" NarFileName :> Get302 '[XNixNar] ('[] :: [Type]))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> Get '[JSON] BinaryCache)))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("narinfo" :> (Summary "Given a list of store hashes, return a list of those that are missing" :> (ReqBody '[JSON] [Text] :> Post '[JSON] [Text]))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("narurl" :> (Capture "nar" NarFileName :> Get '[JSON] Text)))))) -> (route :- (Summary "Upload a NAR directly to the Cachix Server" :> (Description "This is a legacy API for older Cachix clients. Prefer 'createNar' instead." :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (QueryParam "compression" CompressionMethod :> (StreamBody NoFraming XNixNar (ConduitT () ByteStringStreaming (ResourceT IO) ()) :> Post '[JSON] NoContent))))))))) -> (route :- (Summary "Create an empty NAR and initiate a multipart upload" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (QueryParam "compression" CompressionMethod :> Post '[JSON] CreateMultipartUploadResponse))))))) -> (route :- (Summary "Retrieve a presigned URL to upload a part of a multipart NAR" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> (QueryParam' '[Required] "uploadId" Text :> (QueryParam' '[Required] "partNumber" Int :> (ReqBody '[JSON] SigningData :> Post '[JSON] UploadPartResponse)))))))))) -> (route :- (Summary "Complete a multipart upload" :> (Description "Verify the etags for each part and create the narinfo" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> ("complete" :> (QueryParam' '[Required] "uploadId" Text :> (ReqBody '[JSON] CompletedMultipartUpload :> Post '[JSON] NoContent))))))))))) -> (route :- (Summary "Abort a multipart upload" :> (CachixAuth :> ("cache" :> (Capture "name" Text :> ("multipart-nar" :> (Capture "narUuid" UUID :> ("abort" :> (QueryParam' '[Required] "uploadId" Text :> Post '[JSON] NoContent))))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> (Capture "narinfohash" NarInfoHash :> (ReqBody '[JSON] NarInfoCreate :> Post '[JSON] NoContent)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("serve" :> (Capture "storehash" Text :> (CaptureAll "filepath" Text :> (Summary "Serve a file from a given store path" :> Get '[XNixNar] (Headers '[Header "X-Content-Type-Options" Text, Header "Cache-Control" Text] LazyByteStringStreaming))))))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("key" :> (ReqBody '[JSON] SigningKeyCreate :> Post '[JSON] NoContent)))))) -> (route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("pin" :> (ReqBody '[JSON] PinCreate :> Post '[JSON] NoContent)))))) -> BinaryCacheAPI route
- Cachix.API: [nar] :: BinaryCacheAPI route -> route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (Capture "nar" NarFileName :> Get302 '[XNixNar] '[])))))
+ Cachix.API: [nar] :: BinaryCacheAPI route -> route :- (CachixAuth :> ("cache" :> (Capture "name" Text :> ("nar" :> (Capture "nar" NarFileName :> Get302 '[XNixNar] ('[] :: [Type]))))))
- Cachix.API.Signing: passthroughHashSink :: MonadIO m => IORef ByteString -> ConduitT ByteString ByteString m ()
+ Cachix.API.Signing: passthroughHashSink :: forall (m :: Type -> Type). MonadIO m => IORef ByteString -> ConduitT ByteString ByteString m ()
- Cachix.API.Signing: passthroughHashSinkB16 :: MonadIO m => IORef ByteString -> ConduitT ByteString ByteString m ()
+ Cachix.API.Signing: passthroughHashSinkB16 :: forall (m :: Type -> Type). MonadIO m => IORef ByteString -> ConduitT ByteString ByteString m ()
- Cachix.API.Signing: passthroughSizeSink :: MonadIO m => IORef Integer -> ConduitT ByteString ByteString m ()
+ Cachix.API.Signing: passthroughSizeSink :: forall (m :: Type -> Type). MonadIO m => IORef Integer -> ConduitT ByteString ByteString m ()
- Cachix.Types.Deployment: Deployment :: UUID -> Int64 -> UTCTime -> Maybe UTCTime -> Text -> Maybe Int64 -> Status -> Deployment
+ Cachix.Types.Deployment: Deployment :: UUID -> Int64 -> UTCTime -> Maybe UTCTime -> Maybe UTCTime -> Text -> Maybe Int64 -> Status -> Deployment
- Cachix.Types.MultipartUpload: type CompletedParts = Maybe (NonEmpty CompletedPart)
+ Cachix.Types.MultipartUpload: type CompletedParts = Maybe NonEmpty CompletedPart
- Cachix.Types.NarInfo: data () => NarInfo fp txt hash
+ Cachix.Types.NarInfo: data NarInfo fp txt hash
- Cachix.Types.Servant: type Get302 (cts :: [Type]) (hs :: [Type]) = Verb 'GET 302 cts (Headers (Header "Location" Text ': hs) NoContent)
+ Cachix.Types.Servant: type Get302 (cts :: [Type]) (hs :: [Type]) = Verb 'GET 302 cts Headers Header "Location" Text ': hs NoContent
- Cachix.Types.Servant: type Post302 (cts :: [Type]) (hs :: [Type]) = Verb 'POST 302 cts (Headers (Header "Location" Text ': hs) NoContent)
+ Cachix.Types.Servant: type Post302 (cts :: [Type]) (hs :: [Type]) = Verb 'POST 302 cts Headers Header "Location" Text ': hs NoContent
Files
- cachix-api.cabal +1/−1
- src/Cachix/Types/Deployment.hs +1/−0
cachix-api.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: cachix-api-version: 1.7.8+version: 1.7.9 synopsis: Servant HTTP API specification for https://cachix.org homepage: https://github.com/cachix/cachix#readme bug-reports: https://github.com/cachix/cachix/issues
src/Cachix/Types/Deployment.hs view
@@ -23,6 +23,7 @@ index :: Int64, createdOn :: UTCTime, startedOn :: Maybe UTCTime,+ finishedOn :: Maybe UTCTime, storePath :: Text, closureSize :: Maybe Int64, status :: Status