| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Servant.Server
Contents
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
- arbiterServer :: forall (registry :: JobPayloadRegistry). BuildServer registry registry => ArbiterServerConfig registry -> ServerT (ArbiterAPI registry) Handler
- arbiterServerHoisted :: forall (registry :: JobPayloadRegistry) m. (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => (forall x. Handler x -> m x) -> ArbiterServerConfig registry -> ServerT (ArbiterAPI registry) m
- arbiterApp :: forall (registry :: JobPayloadRegistry). (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => ArbiterServerConfig registry -> Application
- runArbiterAPI :: forall (registry :: JobPayloadRegistry). (BuildServer registry registry, HasServer (ArbiterAPI registry) ('[] :: [Type])) => Port -> ArbiterServerConfig registry -> IO ()
- data ArbiterServerConfig (registry :: JobPayloadRegistry) = ArbiterServerConfig {
- serverEnv :: SimpleEnv registry
- enableSSE :: Bool
- sseHub :: MVar (Maybe SSEHub)
- rateLimitPoliciesCache :: CacheCell RateLimitPoliciesResponse
- concurrencyPoliciesCache :: CacheCell ConcurrencyPoliciesResponse
- allQueueStatsCache :: CacheCell AllStatsResponse
- queueStatsCache :: CacheCell StatsResponse
- queueStatsCacheTtl :: NominalDiffTime
- healthCache :: CacheCell HealthResponse
- maintenanceInterval :: NominalDiffTime
- maintenanceSparseInterval :: NominalDiffTime
- maintenanceBucketIdle :: NominalDiffTime
- maintenanceTimeout :: NominalDiffTime
- initArbiterServer :: forall (registry :: JobPayloadRegistry). Proxy registry -> ByteString -> Text -> IO (ArbiterServerConfig registry)
- defaultQueueStatsCacheTtl :: NominalDiffTime
- defaultMaintenanceInterval :: NominalDiffTime
- defaultMaintenanceBucketIdle :: NominalDiffTime
- defaultMaintenanceSparseInterval :: NominalDiffTime
- defaultMaintenanceTimeout :: NominalDiffTime
- class BuildServer (registry :: JobPayloadRegistry) (reg :: JobPayloadRegistry) where
- buildServer :: ArbiterServerConfig registry -> ServerT (RegistryToAPI reg) Handler
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.
Methods
Source #buildServer :: ArbiterServerConfig registry -> ServerT (RegistryToAPI reg) Handler
Instances
| (RegistryAdmissionPolicies registry, RegistryTables registry) => BuildServer registry ('[] :: [QueueSpec]) Source # | |
Defined in Arbiter.Servant.Server Methods Source #buildServer :: ArbiterServerConfig registry -> ServerT (RegistryToAPI ('[] :: [QueueSpec])) Handler | |
| (BuildServer registry rest, EncodeJobResult (SpecResult spec), JobPayload (SpecPayload spec), KnownSymbol (SpecName spec)) => BuildServer registry (spec ': rest) Source # | |
Defined in Arbiter.Servant.Server Methods Source #buildServer :: ArbiterServerConfig registry -> ServerT (RegistryToAPI (spec ': rest)) Handler | |