36 lines
870 B
Lua
36 lines
870 B
Lua
local MetaSchema = require "kong.db.schema.metaschema"
|
|
local Entity = require "kong.db.schema.entity"
|
|
local load_module_if_exists = require "kong.tools.module".load_module_if_exists
|
|
|
|
|
|
local tostring = tostring
|
|
|
|
|
|
local vault_loader = {}
|
|
|
|
|
|
function vault_loader.load_subschema(parent_schema, vault, errors)
|
|
local vault_schema = "kong.vaults." .. vault .. ".schema"
|
|
local ok, schema = load_module_if_exists(vault_schema)
|
|
if not ok then
|
|
return nil, "no configuration schema found for vault: " .. vault
|
|
end
|
|
|
|
local err_t
|
|
ok, err_t = MetaSchema.MetaSubSchema:validate(schema)
|
|
if not ok then
|
|
return nil, tostring(errors:schema_violation(err_t))
|
|
end
|
|
|
|
local err
|
|
ok, err = Entity.new_subschema(parent_schema, vault, schema)
|
|
if not ok then
|
|
return nil, "error initializing schema for vault: " .. err
|
|
end
|
|
|
|
return schema
|
|
end
|
|
|
|
|
|
return vault_loader
|