# `Image.Plug.Provider.ImageKit`
[🔗](https://github.com/elixir-image/image_plug/blob/v0.1.0/lib/image/plug/provider/image_kit.ex#L1)

ImageKit URL provider.

Wires `Image.Plug.Provider.ImageKit.URL` (URL recognition),
`Image.Plug.Provider.ImageKit.Signing` (optional HMAC verification),
and `Image.Plug.Provider.ImageKit.Options` (option parsing) into
the `Image.Plug.Provider` behaviour.

Mount under any path (typically the root of an imagekit-style
domain or behind a per-account endpoint segment).

### Options

* `:mount` — string path prefix the plug is mounted under.
  Stripped before processing. Defaults to `""`.

* `:endpoint` — additional path prefix to strip after `:mount`.
  ImageKit URLs commonly include a per-account endpoint segment
  (e.g. `/your_imagekit_id/`). Defaults to `""`.

* `:strict?` — `true` (default) rejects unknown ImageKit option
  keys with `:unknown_option`. `false` logs and ignores them.

* `:signing` — `nil` (default; no signing) or
  `%{keys: [...], required?: bool}`. When set, every request URL
  must carry a valid `?ik-s=<hex>` parameter. Wire format matches
  ImageKit's hosted signed URLs (HMAC-SHA1, hex-encoded). See
  `Image.Plug.Provider.ImageKit.Signing`.

### URL forms recognised

* `<mount>/<endpoint>/tr:<transforms>/<source>` — path-prefix
  transforms.

* `<mount>/<endpoint>/<source>?tr=<transforms>` — query-string
  transforms.

### Conformance

See `guides/image_kit_conformance.md` for the per-option support
matrix and the documented gaps.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
