arbiter-servant-0.1.0.0
arbiter-servant
Safe HaskellNone
LanguageGHC2024

Arbiter.Servant.Server

Description

REST API server for the Arbiter job queue (SimpleDb backend).

Security: No built-in authentication. All endpoints are publicly accessible. Add auth middleware before exposing to untrusted networks.

Synopsis

Server handlers

Source #arbiterServer :: forall (registry :: JobPayloadRegistry). BuildServer registry registry => ArbiterServerConfig registry -> ServerT (ArbiterAPI registry) Handler

Complete Arbiter server at /api/v1/...

Source #arbiterServerHoisted :: forall (registry :: JobPayloadRegistry) m. (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => (forall x. Handler x -> m x) -> ArbiterServerConfig registry -> ServerT (ArbiterAPI registry) m

Hoisted server for integration into a route tree using a custom monad.

Source #arbiterApp :: forall (registry :: JobPayloadRegistry). (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => ArbiterServerConfig registry -> Application

Convert to WAI Application. Each QueueWithResult result type needs FromJSON and ToJSON.

Source #runArbiterAPI :: forall (registry :: JobPayloadRegistry). (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => Port -> ArbiterServerConfig registry -> IO ()

Run the API server on a port.

Source #data ArbiterServerConfig (registry :: JobPayloadRegistry)

Configuration for the API server.

Constructors

ArbiterServerConfig 

Fields

Source #initArbiterServer :: forall (registry :: JobPayloadRegistry). Proxy registry -> ByteString -> Text -> IO (ArbiterServerConfig registry)

Create an ArbiterServerConfig with a connection pool of its own. SSE needs the event-streaming triggers, which runMigrationsForRegistry installs when enableEventStreaming is set.

Source #defaultQueueStatsCacheTtl :: NominalDiffTime

Default floor between per-queue stats scans.

Source #defaultMaintenanceInterval :: NominalDiffTime

No minimum gap. An explicit maintenance call runs every operation. Concurrent callers exclude each other on the gate.

Source #defaultMaintenanceBucketIdle :: NominalDiffTime

Bucket idle age, matching a worker pool's reaper.

Source #defaultMaintenanceSparseInterval :: NominalDiffTime

Gap the whole-schema operations keep, matching a worker pool's reaper.

Source #defaultMaintenanceTimeout :: NominalDiffTime

Statement timeout for one maintenance operation.

Source #class BuildServer (registry :: JobPayloadRegistry) (reg :: JobPayloadRegistry) where

Builds a registry's per-queue server implementations.

Instances

Instances details
(RegistryAdmissionPolicies registry, RegistryTables registry) => BuildServer registry ('[] :: [QueueSpec]) Source # 
Instance details

Defined in Arbiter.Servant.Server

(BuildServer registry rest, EncodeJobResult (SpecResult spec), JobPayload (SpecPayload spec), KnownSymbol (SpecName spec)) => BuildServer registry (spec ': rest) Source # 
Instance details

Defined in Arbiter.Servant.Server

Methods

Source #buildServer :: ArbiterServerConfig registry -> ServerT (RegistryToAPI (spec ': rest)) Handler