diff --git a/src/box/lua/config/instance_config.lua b/src/box/lua/config/instance_config.lua index d27ab5e8e03ed34f07f9584bac0d1ab1ff516b30..2820c1b03b2c0a1ecd82127ccac505c080ac10e8 100644 --- a/src/box/lua/config/instance_config.lua +++ b/src/box/lua/config/instance_config.lua @@ -1834,6 +1834,20 @@ return schema.new('instance_config', schema.record({ "data_operations", "compatibility", }), + spaces = enterprise_edition(schema.array({ + items = schema.scalar({ + type = 'string', + }), + box_cfg = 'audit_spaces', + box_cfg_nondynamic = true, + default = box.NULL, + })), + extract_key = enterprise_edition(schema.scalar({ + type = 'boolean', + box_cfg = 'audit_extract_key', + box_cfg_nondynamic = true, + default = false, + })), })), roles_cfg = schema.map({ key = schema.scalar({type = 'string'}), diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua index d9d7bb5d45db311032ff86204cfeade6806b8a73..801d3e1bda62210de65f9636ed7608e1873e4344 100644 --- a/src/box/lua/load_cfg.lua +++ b/src/box/lua/load_cfg.lua @@ -116,6 +116,8 @@ local default_cfg = { audit_nonblock = ifdef_audit(true), audit_format = ifdef_audit('json'), audit_filter = ifdef_audit('compatibility'), + audit_spaces = ifdef_audit(nil), + audit_extract_key = ifdef_audit(false), auth_type = 'chap-sha1', auth_delay = ifdef_security(0), @@ -313,6 +315,8 @@ local template_cfg = { audit_nonblock = ifdef_audit('boolean'), audit_format = ifdef_audit('string'), audit_filter = ifdef_audit('string'), + audit_spaces = ifdef_audit('table'), + audit_extract_key = ifdef_audit('boolean'), auth_type = 'string', auth_delay = ifdef_security('number'), diff --git a/test/box/box.lua b/test/box/box.lua index 272db0332ac5453685e2aefd5e22446945c7725c..25bf02d9b69787ab2f23e549184a41e69bccbe15 100644 --- a/test/box/box.lua +++ b/test/box/box.lua @@ -25,6 +25,8 @@ local _enterprise_keys = { audit_nonblock = true, audit_format = true, audit_filter = true, + audit_spaces = true, + audit_extract_key = true, flightrec_enabled = true, flightrec_logs_size = true, flightrec_logs_max_msg_size = true, diff --git a/test/config-luatest/cluster_config_schema_test.lua b/test/config-luatest/cluster_config_schema_test.lua index 391bbd1ccaa3fb7b92d2c9942ee029ac32bfd25c..a04ae143421d5cb0777ec72031b39bef0a4c8cf6 100644 --- a/test/config-luatest/cluster_config_schema_test.lua +++ b/test/config-luatest/cluster_config_schema_test.lua @@ -284,6 +284,7 @@ g.test_defaults = function() server = box.NULL }, to = "devnull", + extract_key = false, } or nil, failover = { probe_interval = 10, diff --git a/test/config-luatest/config_test.lua b/test/config-luatest/config_test.lua index 22312ca25d61a6e8cd9a7462907ef65d5768aa4c..edf60439bc774730d821e0b1232ace70944aeb8b 100644 --- a/test/config-luatest/config_test.lua +++ b/test/config-luatest/config_test.lua @@ -805,6 +805,8 @@ g.test_audit_options = function() t.assert_equals(box.cfg.audit_nonblock, true) t.assert_equals(box.cfg.audit_format, 'csv') t.assert_equals(box.cfg.audit_filter, table.concat(events, ",")) + t.assert_equals(box.cfg.audit_spaces, {'space1', 'space2', 'space3'}) + t.assert_equals(box.cfg.audit_extract_key, true) end helpers.success_case(g, { @@ -814,6 +816,8 @@ g.test_audit_options = function() ['audit_log.nonblock'] = true, ['audit_log.format'] = 'csv', ['audit_log.filter'] = events, + ['audit_log.spaces'] = {'space1', 'space2', 'space3'}, + ['audit_log.extract_key'] = true, }, verify = verify, verify_args = {events} diff --git a/test/config-luatest/instance_config_schema_test.lua b/test/config-luatest/instance_config_schema_test.lua index e25da955db3cc3f97c68a4f911f338ff16728893..eb54f4262726e1109395f9372a13277977d6018b 100644 --- a/test/config-luatest/instance_config_schema_test.lua +++ b/test/config-luatest/instance_config_schema_test.lua @@ -1345,7 +1345,9 @@ g.test_audit_available = function() }, nonblock = true, format = 'plain', - filter = {'all', 'none'} + filter = {'all', 'none'}, + spaces = {'space1', 'space2', 'space3'}, + extract_key = true, }, } instance_config:validate(iconfig) @@ -1362,6 +1364,7 @@ g.test_audit_available = function() server = box.NULL }, to = "devnull", + extract_key = false, } local res = instance_config:apply_default({}).audit_log t.assert_equals(res, exp)