-
goal: pluggability, so that if someone wants to write the akka-http routes, it's easy for them
-
other question: what's the abstraction? Like -- Meta, or En/Decoder, or...
-
Define Tile Fetching Interface
- based on layer id
- something that produces a
(Int, Int, Int) => Tile
- also like
Extent => Tile
,Extent => Geotiff
- like
TileResolver
in existing tile server
-
Cacheing interface -- mostly done, failing tests
- needs a memcached container or something
-
Rendering interface --
- target is "another scala user using the library"
- borrow API from chroma.js probably -- to expose useful options like log color scales, wow
- borrow from
package object image
intile/.../image/package.scala
-
MAML lookup store/interface
- punting to memory for now since we're just doing
-
Instrumentation:
- kamon + some reporting service (Prometheus, Zipkin, who cares)
-
How routes are handled
-
How is authentication handled:
- not so bad -- auth handlers for http4s look pretty friendly:
- https://jmcardon.github.io/tsec/docs/http4s/auth-jwt.html
- stateless jwt auth might be able to jump onto a middleware, unclear
- with Kleisli always returning
true
for cases where we don't have auth, maybe from config, https://http4s.org/v0.19/auth/
- not so bad -- auth handlers for http4s look pretty friendly:
Short-term TODO:
- make cacheing tests pass
- decouple WCS from http4s
- add authorizer (James/Monday -- always true or always false for PoC)
- choose a subset of chroma to target with RenderDefinition stuff