Files
2026-07-13 12:32:21 +08:00

73 lines
1.8 KiB
Lua

local typedefs = require "kong.db.schema.typedefs"
return {
{
name = "transformations",
primary_key = { "id" },
endpoint_key = "name",
fields = {
{ id = typedefs.uuid },
{ name = { type = "string" }, },
{ secret = { type = "string", required = false, auto = true }, },
{ hash_secret = { type = "boolean", required = true, default = false }, },
{ meta = { type = "string", required = false, referenceable = true }, },
{ case = { type = "string", required = false, referenceable = true }, },
},
transformations = {
{
input = { "hash_secret" },
needs = { "secret" },
on_write = function(hash_secret, client_secret)
if not hash_secret then
return {}
end
local hash = assert(ngx.md5(client_secret))
return {
secret = hash,
}
end,
},
{
input = { "meta" },
on_write = function(meta)
if not meta or meta == ngx.null then
return {}
end
return {
meta = string.reverse(meta),
}
end,
on_read = function(meta)
if not meta or meta == ngx.null then
return {}
end
return {
meta = string.reverse(meta),
}
end,
},
{
on_write = function(entity)
local case = entity.case
if not case or case == ngx.null then
return {}
end
return {
case = string.upper(case),
}
end,
on_read = function(entity)
local case = entity.case
if not case or case == ngx.null then
return {}
end
return {
case = string.lower(case),
}
end,
},
},
},
}