marcodaniels / elm-aws-cloudfront / CloudFront.Header

Handle AWS CloudFront request and response headers.

For more documentation see working with policies in AWS CloudFront developer guide .

Handlers

withHeader : Header -> { event | headers : Headers } -> { event | headers : Headers }

Append a new header to the existing headers dictionary

headers : { headers : Headers } -> { headers : Headers }
headers =
    withHeader
        { key = "cache-control", value = "public, max-age=10000" }

withHeaders : List Header -> { event | headers : Headers } -> { event | headers : Headers }

Append multiple headers to the exising headers dictionary

headers : { headers : Headers } -> { headers : Headers }
headers =
    withHeaders
        [ { key = "x-frame-options", value = "DENY" }
        , { key = "content-security-policy", value = "default-src 'self';" }
        ]

Types


type alias Header =
{ key : String
, value : String 
}

A single header is defined as key value type

header : Header
header =
    { key = "user-agent", value = "Amazon CloudFront" }


type alias Headers =
Dict String (List Header)

A group of headers are defined as a dictionary of key -> key value type

header : Headers
header =
    Dict.singleton "user-agent" [ { key = "user-agent", value = "Amazon CloudFront" } ]

headers : Headers
headers =
    Dict.fromList
        [ ( "user-agent", [ { key = "user-agent", value = "Amazon CloudFront" } ] )
        , ( "host", [ { key = "host", value = "example.org" } ] )
        ]