local kratos = require("assay.ory.kratos")
local hydra = require("assay.ory.hydra")
local keto = require("assay.ory.keto")
local rbac = require("assay.ory.rbac")
local M = {
kratos = kratos,
hydra = hydra,
keto = keto,
rbac = rbac,
}
function M.connect(opts)
opts = opts or {}
local result = {}
if opts.kratos_public or opts.kratos_admin then
result.kratos = kratos.client({
public_url = opts.kratos_public,
admin_url = opts.kratos_admin,
})
end
if opts.hydra_public or opts.hydra_admin then
result.hydra = hydra.client({
public_url = opts.hydra_public,
admin_url = opts.hydra_admin,
})
end
if opts.keto_read then
result.keto = keto.client(opts.keto_read, { write_url = opts.keto_write })
end
return result
end
return M