This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 39805972b RANGER-5204: RangerBasePlugin test (#568)
39805972b is described below
commit 39805972b9578b324d567433762b8e2745718cac
Author: Vyom Mani Tiwari <[email protected]>
AuthorDate: Mon May 19 20:59:35 2025 +0530
RANGER-5204: RangerBasePlugin test (#568)
---
.../plugin/policyengine/RangerAdminClientImpl.java | 78 ++
.../plugin/policyengine/RangerBasePluginTest.java | 274 ++++
.../policyengine/hbase-test-policies.json | 489 +++++++
.../policyengine/ranger-hbase-security.xml | 49 +
.../policyengine/ranger-servicedef-hbase.json | 83 ++
.../policyengine/ranger-servicedef-tag.json | 70 +
.../policyengine/test_base_plugin_hbase.json | 1445 ++++++++++++++++++++
.../policyengine/updated-hbase-test-policies.json | 193 +++
8 files changed, 2681 insertions(+)
diff --git
a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerAdminClientImpl.java
b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerAdminClientImpl.java
new file mode 100644
index 000000000..22dcb271c
--- /dev/null
+++
b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerAdminClientImpl.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.plugin.policyengine;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.ranger.admin.client.AbstractRangerAdminClient;
+import org.apache.ranger.plugin.model.RangerServiceDef;
+import org.apache.ranger.plugin.util.ServicePolicies;
+
+import java.io.File;
+import java.nio.charset.Charset;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+
+public class RangerAdminClientImpl extends AbstractRangerAdminClient {
+ private static final String RANGER_TEST_BASEDIR =
"RANGER_TEST_BASEDIR";
+ private static final String POLICIES_FILEPATH =
"/src/test/resources/policyengine/hbase-test-policies.json";
+ private static final String UPDATED_POLICIES_FILEPATH =
"/src/test/resources/policyengine/updated-hbase-test-policies.json";
+ private static final String SERVICE_DEF_FILENAME =
"/src/test/resources/policyengine/ranger-servicedef-hbase.json";
+ private static final String TAG_SERVICE_DEF_FILENAME =
"/src/test/resources/policyengine/ranger-servicedef-tag.json";
+
+ @SuppressWarnings("unused")
+ private String serviceName;
+
+ @SuppressWarnings("unused")
+ private String appId;
+
+ private volatile boolean isLoadPolicyDelta;
+
+ @Override
+ public void init(String serviceName, String appId, String
configPropertyPrefix, Configuration config) {
+ super.init(serviceName, appId, configPropertyPrefix, config);
+
+ this.serviceName = serviceName;
+ this.appId = appId;
+ }
+
+ @Override
+ public ServicePolicies getServicePoliciesIfUpdated(long lastKnownVersion,
long lastActivationTimeInMillis) throws Exception {
+ String basedir = System.getProperty(RANGER_TEST_BASEDIR);
+
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+
+ byte[] policiesBytes =
Files.readAllBytes(FileSystems.getDefault().getPath(basedir, isLoadPolicyDelta
? UPDATED_POLICIES_FILEPATH : POLICIES_FILEPATH));
+ byte[] serviceDefBytes =
Files.readAllBytes(FileSystems.getDefault().getPath(basedir,
SERVICE_DEF_FILENAME));
+ byte[] tagServiceDefBytes =
Files.readAllBytes(FileSystems.getDefault().getPath(basedir,
TAG_SERVICE_DEF_FILENAME));
+ ServicePolicies ret = gson.fromJson(new
String(policiesBytes, Charset.defaultCharset()), ServicePolicies.class);
+ RangerServiceDef serviceDef = gson.fromJson(new
String(serviceDefBytes, Charset.defaultCharset()), RangerServiceDef.class);
+ RangerServiceDef tagServiceDef = gson.fromJson(new
String(tagServiceDefBytes, Charset.defaultCharset()), RangerServiceDef.class);
+
+ ret.setServiceDef(serviceDef);
+
+ if (ret.getTagPolicies() == null) {
+ ret.setTagPolicies(new ServicePolicies.TagPolicies());
+ }
+
+ ret.getTagPolicies().setServiceDef(tagServiceDef);
+
+ if (!isLoadPolicyDelta) {
+ isLoadPolicyDelta = true;
+ }
+
+ return ret;
+ }
+}
diff --git
a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerBasePluginTest.java
b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerBasePluginTest.java
new file mode 100644
index 000000000..4732142d8
--- /dev/null
+++
b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/RangerBasePluginTest.java
@@ -0,0 +1,274 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ranger.plugin.policyengine;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+import org.apache.commons.lang.StringUtils;
+import org.apache.ranger.authorization.hadoop.config.RangerPluginConfig;
+import org.apache.ranger.plugin.model.RangerServiceDef;
+import org.apache.ranger.plugin.service.RangerBasePlugin;
+import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
+import org.apache.ranger.plugin.util.RangerAccessRequestUtil;
+import org.apache.ranger.plugin.util.RangerRoles;
+import org.apache.ranger.plugin.util.RangerUserStore;
+import org.apache.ranger.plugin.util.ServiceDefUtil;
+import org.apache.ranger.plugin.util.ServiceGdsInfo;
+import org.apache.ranger.plugin.util.ServicePolicies;
+import org.apache.ranger.plugin.util.ServiceTags;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.lang.reflect.Type;
+import java.nio.file.FileSystems;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+public class RangerBasePluginTest {
+ private static final String RANGER_SERVICE_TYPE = "hbase";
+ private static final String RANGER_APP_ID = "hbase";
+ private static final String RANGER_DEFAULT_SERVICE_NAME =
"cm_hbase";
+ private static final String TEST_JSON =
"/policyengine/test_base_plugin_hbase.json";
+ private static final String RANGER_DEFAULT_SECURITY_CONF =
"/target/test-classes/policyengine/ranger-hbase-security.xml";
+ private static final String RANGER_DEFAULT_AUDIT_CONF =
"/target/test-classes/policyengine/ranger-trino-audit.xml";
+ private static final String RANGER_DEFAULT_POLICY_MGR_SSL_CONF =
"/target/test-classes/policyengine/ranger-policymgr-ssl.xml";
+ private static final String MESSAGE = "The
failed count being zero suggests one of two possibilities: " +
+ "1. The PolicyRefresher might not be starting correctly. " +
+ "2. There might be a race condition in our code, preventing the
policy engine modifications from being reflected in RangerBasePlugin.";
+
+ private static Gson gsonBuilder;
+ private static RangerBasePlugin rangerBasePlugin;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ gsonBuilder = new
GsonBuilder().setDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z")
+ .setPrettyPrinting()
+ .registerTypeAdapter(RangerAccessRequest.class, new
RangerAccessRequestDeserializer())
+ .registerTypeAdapter(RangerAccessResource.class, new
RangerResourceDeserializer())
+ .create();
+
+ RangerPolicyEngineOptions peOptions = new
RangerPolicyEngineOptions();
+ RangerPluginConfig pluginConfig = new
RangerPluginConfig(RANGER_SERVICE_TYPE, RANGER_DEFAULT_SERVICE_NAME,
RANGER_APP_ID, "cl1", "on-perm", peOptions);
+ String basedir = new
File(".").getCanonicalPath();
+
+
pluginConfig.addResourceIfReadable(FileSystems.getDefault().getPath(basedir,
RANGER_DEFAULT_AUDIT_CONF).toString());
+
pluginConfig.addResourceIfReadable(FileSystems.getDefault().getPath(basedir,
RANGER_DEFAULT_SECURITY_CONF).toString());
+
pluginConfig.addResourceIfReadable(FileSystems.getDefault().getPath(basedir,
RANGER_DEFAULT_POLICY_MGR_SSL_CONF).toString());
+
pluginConfig.getProperties().put("ranger.plugin.hbase.supports.in.place.policy.updates",
"true");
+
pluginConfig.getProperties().put("ranger.plugin.hbase.supports.policy.deltas",
"true");
+
+ rangerBasePlugin = new RangerBasePlugin(pluginConfig);
+
+ rangerBasePlugin.init();
+ }
+
+ @Test
+ @SuppressWarnings("PMD")
+ public void testCanSetUserOperations() throws Exception {
+ runTestsFromResourceFile();
+ }
+
+ private void runTestsFromResourceFile() throws Exception {
+ InputStream inStream =
this.getClass().getResourceAsStream(TEST_JSON);
+ InputStreamReader reader = new InputStreamReader(inStream);
+
+ runTests(reader);
+ }
+
+ private void runTests(Reader reader) throws Exception {
+ RangerBasePluginTestCase testCase = readTestCase(reader);
+
+ assertNotNull("testCase was null", testCase);
+ assertNotNull("testCase.policies was null", testCase.policies);
+ assertNotNull("testCase.tags was null", testCase.tags);
+ assertNotNull("testCase.roles was null", testCase.roles);
+ assertNotNull("testCase.userStore was null", testCase.userStore);
+ assertNotNull("testCase.gdsInfo was null", testCase.gdsInfo);
+ assertNotNull("testCase.tests was null", testCase.tests);
+
+ int failedCount = 0;
+
+ for (int count = 0; count < 10000; count++) {
+ for (TestData test : testCase.tests) {
+ RangerAccessRequest request = test.request;
+
+ try {
+ if (test.result != null) {
+ RangerAccessResult result =
rangerBasePlugin.isAccessAllowed(request);
+
+ assertNotNull("result was null! - " + test.name,
result);
+ assertEquals("isAllowed mismatched! - " + test.name,
test.result.getIsAllowed(), result.getIsAllowed());
+ assertEquals("isAccessDetermined mismatched! - " +
test.name, test.result.getIsAccessDetermined(), result.getIsAccessDetermined());
+ assertEquals("isAllowed mismatched! - " + test.name,
test.result.getPolicyId(), result.getPolicyId());
+ }
+ } catch (Error e) {
+ // The PolicyRefresher modifies the policy, so it's
expected that tests for the modified policy would fail.
+ if (test.result.getPolicyId() == 821) {
+ failedCount++;
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ if (failedCount >= 30) {
+ break;
+ }
+
+ Thread.sleep(20);
+ }
+
+ if (failedCount == 0) {
+ fail(MESSAGE);
+ }
+ }
+
+ private RangerBasePluginTestCase readTestCase(Reader reader) throws
Exception {
+ RangerBasePluginTestCase testCase = gsonBuilder.fromJson(reader,
RangerBasePluginTestCase.class);
+
+ if (StringUtils.isNotBlank(testCase.policiesFilename)) {
+ InputStream inStream =
this.getClass().getResourceAsStream(testCase.policiesFilename);
+
+ testCase.policies = gsonBuilder.fromJson(new
InputStreamReader(inStream), ServicePolicies.class);
+ }
+
+ if (StringUtils.isNotBlank(testCase.tagsFilename)) {
+ InputStream inStream =
this.getClass().getResourceAsStream(testCase.tagsFilename);
+
+ testCase.tags = gsonBuilder.fromJson(new
InputStreamReader(inStream), ServiceTags.class);
+ }
+
+ if (StringUtils.isNotBlank(testCase.rolesFilename)) {
+ InputStream inStream =
this.getClass().getResourceAsStream(testCase.rolesFilename);
+
+ testCase.roles = gsonBuilder.fromJson(new
InputStreamReader(inStream), RangerRoles.class);
+ }
+
+ if (StringUtils.isNotBlank(testCase.userStoreFilename)) {
+ InputStream inStream =
this.getClass().getResourceAsStream(testCase.userStoreFilename);
+
+ testCase.userStore = gsonBuilder.fromJson(new
InputStreamReader(inStream), RangerUserStore.class);
+ }
+
+ if (StringUtils.isNotBlank(testCase.gdsInfoFilename)) {
+ InputStream inStream =
this.getClass().getResourceAsStream(testCase.gdsInfoFilename);
+
+ testCase.gdsInfo = gsonBuilder.fromJson(new
InputStreamReader(inStream), ServiceGdsInfo.class);
+
+ if (testCase.gdsInfo != null &&
testCase.gdsInfo.getGdsServiceDef() == null) {
+ RangerServiceDef gdsServiceDef =
EmbeddedServiceDefsUtil.instance().getEmbeddedServiceDef(EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_GDS_NAME);
+
+ testCase.gdsInfo.setGdsServiceDef(gdsServiceDef);
+ }
+ }
+
+ if (testCase.policies != null && testCase.policies.getServiceDef() !=
null) {
+
testCase.policies.getServiceDef().setMarkerAccessTypes(ServiceDefUtil.getMarkerAccessTypes(testCase.policies.getServiceDef().getAccessTypes()));
+ }
+
+ return testCase;
+ }
+
+ static class RangerBasePluginTestCase {
+ public ServicePolicies policies;
+ public ServiceTags tags;
+ public RangerRoles roles;
+ public RangerUserStore userStore;
+ public ServiceGdsInfo gdsInfo;
+ public String policiesFilename;
+ public String tagsFilename;
+ public String rolesFilename;
+ public String userStoreFilename;
+ public String gdsInfoFilename;
+ public List<TestData> tests;
+ }
+
+ static class TestData {
+ public String name;
+ public RangerAccessRequest request;
+ public RangerAccessResult result;
+ public RangerResourceACLs acls;
+ }
+
+ static class RangerAccessRequestDeserializer implements
JsonDeserializer<RangerAccessRequest> {
+ @Override
+ public RangerAccessRequest deserialize(JsonElement jsonObj, Type type,
JsonDeserializationContext context) throws JsonParseException {
+ RangerAccessRequestImpl ret = gsonBuilder.fromJson(jsonObj,
RangerAccessRequestImpl.class);
+
+ ret.setAccessType(ret.getAccessType()); // to force computation of
isAccessTypeAny and isAccessTypeDelegatedAdmin
+
+ if (ret.getAccessTime() == null) {
+ ret.setAccessTime(new Date());
+ }
+
+ Map<String, Object> reqContext = ret.getContext();
+ Object accessTypes =
reqContext.get(RangerAccessRequestUtil.KEY_CONTEXT_ALL_ACCESSTYPES);
+
+ if (accessTypes != null) {
+ Collection<String> accessTypesCollection =
(Collection<String>) accessTypes;
+ Set<String> requestedAccesses = new
TreeSet<>(accessTypesCollection);
+
+
ret.getContext().put(RangerAccessRequestUtil.KEY_CONTEXT_ALL_ACCESSTYPES,
requestedAccesses);
+ }
+
+ Object accessTypeGroups =
reqContext.get(RangerAccessRequestUtil.KEY_CONTEXT_ALL_ACCESSTYPE_GROUPS);
+
+ if (accessTypeGroups != null) {
+ Set<Set<String>> setOfAccessTypeGroups = new HashSet<>();
+ List<Object> listOfAccessTypeGroups = (List<Object>)
accessTypeGroups;
+
+ for (Object accessTypeGroup : listOfAccessTypeGroups) {
+ List<String> accesses = (List<String>) accessTypeGroup;
+ Set<String> setOfAccesses = new TreeSet<>(accesses);
+
+ setOfAccessTypeGroups.add(setOfAccesses);
+ }
+
+
reqContext.put(RangerAccessRequestUtil.KEY_CONTEXT_ALL_ACCESSTYPE_GROUPS,
setOfAccessTypeGroups);
+ }
+
+ return ret;
+ }
+ }
+
+ static class RangerResourceDeserializer implements
JsonDeserializer<RangerAccessResource> {
+ @Override
+ public RangerAccessResource deserialize(JsonElement jsonObj, Type
type, JsonDeserializationContext context) throws JsonParseException {
+ return gsonBuilder.fromJson(jsonObj,
RangerAccessResourceImpl.class);
+ }
+ }
+}
diff --git
a/agents-common/src/test/resources/policyengine/hbase-test-policies.json
b/agents-common/src/test/resources/policyengine/hbase-test-policies.json
new file mode 100644
index 000000000..c0ee29a81
--- /dev/null
+++ b/agents-common/src/test/resources/policyengine/hbase-test-policies.json
@@ -0,0 +1,489 @@
+{
+ "serviceName": "cm_hbase",
+ "serviceId": 3,
+ "policyVersion": 7141,
+ "policies": [
+ {
+ "id": 4, "name": "all - table, column-family, column",
+ "resources": {
+ "table": { "values": [ "prospects", "invoices" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "users": [ "hbase", "hive" ], "groups": [ "pr00_xbgdta" ],
"delegateAdmin": true
+ },
+ {
+ "accesses": [ { "type": "read" }, {"type": "create" } ],
+ "users": [ "rangerlookup" ]
+ },
+ {
+ "accesses": [ { "type": "read" }, { "type": "execute" } ],
+ "groups": [ "qqsens", "fb00_xbgdta" ]
+ }
+ ]
+ },
+ {
+ "id": 5, "name": "ATLAS_HBASE_TABLES", "isAuditEnabled": false,
+ "resources": {
+ "table": { "values": [ "atlas_janus",
"ATLAS_ENTITY_AUDIT_EVENTS" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "users": [ "atlas" ]
+ }
+ ]
+ },
+ {
+ "id": 782, "name": "SYSTEM", "description": "",
+ "resources": {
+ "table": { "values": [ "SYSTEM:*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "execute" } ],
+ "users": [ "{USER}" ]
+ }
+ ]
+ },
+ {
+ "id": 821, "name": "fb00_xda017",
+ "resources": {
+ "table": { "values": [ "fb00_*da017*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda017", "xagcla" ]
+ }
+ ]
+ },
+ {
+ "id": 822, "name": "fb00_xda029",
+ "resources": {
+ "table": { "values": [ "fb00_*da029*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, {"type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda029" ]
+ }
+ ]
+ },
+ {
+ "id": 823, "name": "fb00_xda034",
+ "resources": {
+ "table": { "values": [ "fb00_*da034*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, {"type": "write" }, {"type":
"create" }, { "type": "admin" }, {"type": "execute" } ],
+ "groups": [ "fb00_xda034" ]
+ }
+ ]
+ },
+ {
+ "id": 824, "name": "fb00_xda035",
+ "resources": {
+ "table": { "values": [ "fb00_*da035*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, {"type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda035" ]
+ }
+ ]
+ },
+ {
+ "id": 825, "name": "fb00_xda041",
+ "resources": {
+ "table": { "values": [ "fb00_*da041*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda041" ]
+ }
+ ]
+ },
+ {
+ "id": 826, "name": "fb00_xda043",
+ "resources": {
+ "table": { "values": [ "fb00_*da043*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, {"type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda043" ]
+ }
+ ]
+ },
+ {
+ "id": 827, "name": "fb00_xda052",
+ "resources": {
+ "table": { "values": [ "fb00_*da052*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda052" ]
+ }
+ ]
+ },
+ {
+ "id": 828, "name": "fb00_xda060",
+ "resources": {
+ "table": { "values": [ "fb00_*da060*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, {"type": "execute" } ],
+ "groups": [ "fb00_xda060" ]
+ }
+ ]
+ },
+ {
+ "id": 829, "name": "fb00_xda066",
+ "resources": {
+ "table": { "values": [ "fb00_*da066*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda066" ]
+ }
+ ]
+ },
+ {
+ "id": 830, "name": "fb00_xda085",
+ "resources": {
+ "table": { "values": [ "fb00_*da085*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, {"type": "execute" } ],
+ "groups": [ "fb00_xda085" ]
+ }
+ ]
+ },
+ {
+ "id": 831, "name": "fb00_xda092",
+ "resources": {
+ "table": { "values": [ "fb00_*da092*" ] },
+ "column-family": { "values": [ "*" ]},
+ "column": { "values": [ "*" ]}
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, {"type": "write" }, {"type":
"create" }, { "type": "admin" }, {"type": "execute" } ],
+ "groups": [ "fb00_xda092" ]
+ }
+ ]
+ },
+ {
+ "id": 832, "name": "fb00_xda126",
+ "resources": {
+ "table": { "values": [ "fb00_*da126*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute"} ],
+ "groups": [ "fb00_xda126" ]
+ },
+ {
+ "accesses": [ { "type": "read" }, { "type": "execute" } ],
+ "groups": [ "fb00_xda085" ]
+ }
+ ]
+ },
+ {
+ "id": 833, "name": "fb00_xds020",
+ "resources": {
+ "table": { "values": [ "fb00_*ds020*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xds020" ]
+ }
+ ]
+ },
+ {
+ "id": 834, "name": "fb00_xoi022",
+ "resources": {
+ "table": { "values": [ "fb00_*oi022*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xoi022" ]
+ },
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, { "type":
"create" }, { "type": "execute" } ],
+ "groups": [ "fb00_braff", "fb00_bbrut" ]
+ },
+ {
+ "accesses": [ { "type": "read" }, { "type": "execute" } ],
+ "groups": [
+ "fb00_xoi099", "fb00_xoi098", "fb00_xoi097", "sd00_xlx001",
"fb00_xda085", "fb00_xda126", "fb00_xda017", "qqsens", "fb00_xda062",
+ "fb00_xpr203", "fb00_xda144", "fb00_xda143", "fb00_xda108",
"fb00_xoi033", "fb00_xda042", "fb00_xpx091", "fb00_xda107"
+ ]
+ }
+ ]
+ },
+ {
+ "id": 835, "name": "fb00_xoi025",
+ "resources": {
+ "table": { "values": [ "fb00_*oi025*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" }, {"type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xoi025" ]
+ }
+ ]
+ },
+ {
+ "id": 836, "name": "fb00_xoi033",
+ "resources": {
+ "table": { "values": [ "fb00_*oi033*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, {"type": "write" }, { "type":
"create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "fb00_xoi033" ]
+ },
+ {
+ "accesses": [ { "type": "read" }, { "type": "execute" } ],
+ "groups": [ "fb00_xpr203" ]
+ }
+ ]
+ }
+ ],
+ "serviceDef": {
+ "id": 2, "name": "hbase", "implClass":
"org.apache.ranger.services.hbase.RangerServiceHBase",
+ "options": { "enableDenyAndExceptionsInPolicies": "true" },
+ "configs": [
+ { "itemId": 1, "name": "username", "type":
"string", "mandatory": true, "label": "Username" },
+ { "itemId": 2, "name": "password", "type":
"password", "mandatory": true, "label": "Password" },
+ { "itemId": 3, "name": "hadoop.security.authentication", "type":
"enum", "subType": "authnType", "mandatory": true, "defaultValue": "simple"
},
+ { "itemId": 4, "name": "hbase.master.kerberos.principal", "type":
"string", "mandatory": false, "defaultValue": "" },
+ { "itemId": 5, "name": "hbase.security.authentication", "type":
"enum", "subType": "authnType", "mandatory": true, "defaultValue": "simple"
},
+ { "itemId": 6, "name": "hbase.zookeeper.property.clientPort", "type":
"int", "mandatory": true, "defaultValue": "2181" },
+ { "itemId": 7, "name": "hbase.zookeeper.quorum", "type":
"string", "mandatory": true, "defaultValue": "" },
+ { "itemId": 8, "name": "zookeeper.znode.parent", "type":
"string", "mandatory": true, "defaultValue": "/hbase" },
+ { "itemId": 9, "name": "commonNameForCertificate", "type":
"string", "mandatory": false, "label": "Common Name for Certificate" },
+ { "itemId": 10, "name": "ranger.plugin.audit.filters", "type":
"string", "mandatory": false, "defaultValue": "[{'accessResult': 'DENIED',
'isAudited': true},{'resources':{'table':{'values':['*-ROOT-*','*.META.*',
'*_acl_*', 'hbase:meta', 'hbase:acl', 'default', 'hbase']}}, 'users':['hbase'],
'isAudited': false },
{'resources':{'table':{'values':['atlas_janus','ATLAS_ENTITY_AUDIT_EVENTS']},'column-family':{'values':['*']},'column':{'values':['*']}},'users':['atlas',
'hbase [...]
+ "label": "Ranger Default Audit Filters"
+ }
+ ],
+ "resources": [
+ {
+ "itemId": 1,
+ "name": "table",
+ "type": "string",
+ "level": 10,
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Table",
+ "description": "HBase Table",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 2,
+ "name": "column-family",
+ "type": "string",
+ "level": 20,
+ "parent": "table",
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Column-family",
+ "description": "HBase Column-family",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 3,
+ "name": "column",
+ "type": "string",
+ "level": 30,
+ "parent": "column-family",
+ "mandatory": true,
+ "lookupSupported": false,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Column",
+ "description": "HBase Column",
+ "isValidLeaf": true
+ }
+ ],
+ "accessTypes": [
+ { "itemId": 1, "name": "read", "label": "Read" },
+ { "itemId": 2, "name": "write", "label": "Write" },
+ { "itemId": 3, "name": "create", "label": "Create" },
+ { "itemId": 4, "name": "admin", "label": "Admin", "impliedGrants": [
"read", "write", "create", "execute" ] },
+ { "itemId": 5, "name": "execute", "label": "Execute" }
+ ],
+ "enums": [
+ {
+ "itemId": 1, "name": "authnType", "defaultIndex": 0,
+ "elements": [
+ { "itemId": 1, "name": "simple", "label": "Simple" },
+ { "itemId": 2, "name": "kerberos", "label": "Kerberos" }
+ ]
+ }
+ ]
+ },
+ "auditMode": "audit-default",
+ "tagPolicies": {
+ "serviceName": "cm_tag",
+ "serviceId": 2,
+ "policies": [
+ {
+ "id": 3, "name": "EXPIRES_ON",
+ "resources": {
+ "tag": { "values": [ "EXPIRES_ON" ] }
+ },
+ "denyPolicyItems": [
+ {
+ "accesses": [ { "type": "hbase:execute" }, { "type":
"hbase:create" }, { "type": "hbase:read" }, { "type": "hbase:write" }, {
"type": "hbase:admin" } ],
+ "groups": [ "public" ],
+ "conditions": [ { "type": "accessed-after-expiry", "values": [
"yes" ] } ]
+ }
+ ]
+ },
+ {
+ "id": 780, "name": "kw_raffinageonly",
+ "resources": {
+ "tag": { "values": [ "kw_raffinageonly" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "hbase:execute" }, { "type":
"hbase:create" }, { "type": "hbase:read" }, { "type": "hbase:write" }, {
"type": "hbase:admin" } ],
+ "groups": [ "fb00_braff", "pr00_braff", "hadoop" ]
+ }
+ ]
+ }
+ ],
+ "serviceDef": {
+ "id": 100, "name": "tag", "implClass":
"org.apache.ranger.services.tag.RangerServiceTag",
+ "options": { "enableDenyAndExceptionsInPolicies": "true", "ui.pages":
"tag-based-policies" },
+ "configs": [
+ {
+ "itemId": 1,
+ "name": "ranger.plugin.audit.filters",
+ "type": "string",
+ "mandatory": false,
+ "defaultValue": "[ {'accessResult': 'DENIED', 'isAudited': true} ]",
+ "label": "Ranger Default Audit Filters"
+ }
+ ],
+ "resources": [
+ {
+ "itemId": 1,
+ "name": "tag",
+ "type": "string",
+ "level": 1,
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": false,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "false", "ignoreCase": "false" },
+ "uiHint": "{ \"singleValue\":true }",
+ "label": "TAG",
+ "description": "TAG",
+ "isValidLeaf": true
+ }
+ ],
+ "accessTypes": [
+ { "itemId": 104105, "name": "hbase:read", "label": "Read" },
+ { "itemId": 104106, "name": "hbase:write", "label": "Write" },
+ { "itemId": 104107, "name": "hbase:execute", "label": "Execute" },
+ { "itemId": 104108, "name": "hbase:create", "label": "Create" },
+ { "itemId": 104109, "name": "hbase:admin", "label": "Admin" }
+ ],
+ "policyConditions": [
+ {
+ "itemId": 1,
+ "name": "accessed-after-expiry",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptTemplateConditionEvaluator",
+ "evaluatorOptions": { "scriptTemplate":
"ctx.isAccessedAfter('expiry_date');" },
+ "uiHint": "{ \"singleValue\":true }",
+ "label": "Accessed after expiry_date (yes/no)?",
+ "description": "Accessed after expiry_date? (yes/no)"
+ },
+ {
+ "itemId": 2,
+ "name": "expression",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator",
+ "evaluatorOptions": { "engineName": "JavaScript", "ui.isMultiline":
"true" },
+ "uiHint": "{ \"isMultiline\":true }",
+ "label": "Enter boolean expression",
+ "description": "Boolean expression"
+ }
+ ],
+ "contextEnrichers": [
+ {
+ "itemId": 1,
+ "name": "TagEnricher",
+ "enricher":
"org.apache.ranger.plugin.contextenricher.RangerTagEnricher",
+ "enricherOptions": { "tagRetrieverClassName":
"org.apache.ranger.plugin.contextenricher.RangerAdminTagRetriever",
"tagRefresherPollingInterval": "60000" }
+ }
+ ]
+ },
+ "auditMode": "audit-default",
+ "serviceConfig": {
+ "ranger.plugin.audit.filters": "[ {'accessResult': 'DENIED',
'isAudited': true} ]"
+ }
+ },
+ "serviceConfig": {
+ "ranger.plugin.audit.filters":
"[{'accessResult':'DENIED','isAudited':true},{'resources':{'table':{'values':['*-ROOT-*','*.META.*','*_acl_*','hbase:meta','hbase:acl','default','hbase'],'isExcludes':true}},'users':['hbase'],'isAudited':false},{'resources':{'table':{'values':['atlas_janus','ATLAS_ENTITY_AUDIT_EVENTS'],'isExcludes':true},'column-family':{'values':['*'],'isExcludes':true},'column':{'values':['*'],'isExcludes':true}},'users':['atlas','hbase'],'isAudited':false},{'users':[
[...]
+ }
+}
diff --git
a/agents-common/src/test/resources/policyengine/ranger-hbase-security.xml
b/agents-common/src/test/resources/policyengine/ranger-hbase-security.xml
new file mode 100644
index 000000000..3c1966e40
--- /dev/null
+++ b/agents-common/src/test/resources/policyengine/ranger-hbase-security.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+ <property>
+ <name>ranger.plugin.hbase.service.name</name>
+ <value>cl1_hbase</value>
+ <description>
+ Name of the Ranger service containing policies for this test
+ </description>
+ </property>
+ <property>
+ <name>ranger.plugin.hbase.policy.source.impl</name>
+
<value>org.apache.ranger.plugin.policyengine.RangerAdminClientImpl</value>
+ <description>
+ Policy source.
+ </description>
+ </property>
+ <property>
+ <name>ranger.plugin.hbase.policy.pollIntervalMs</name>
+ <value>2000</value>
+ <description>
+ How often to poll for changes in policies?
+ </description>
+ </property>
+ <property>
+ <name>ranger.plugin.hbase.policy.cache.dir</name>
+ <value>${project.build.directory}</value>
+ <description>
+ Directory where Ranger policies are cached after successful
retrieval from the source
+ </description>
+ </property>
+
+</configuration>
diff --git
a/agents-common/src/test/resources/policyengine/ranger-servicedef-hbase.json
b/agents-common/src/test/resources/policyengine/ranger-servicedef-hbase.json
new file mode 100644
index 000000000..818c41c1e
--- /dev/null
+++ b/agents-common/src/test/resources/policyengine/ranger-servicedef-hbase.json
@@ -0,0 +1,83 @@
+{
+ "id": 2,
+ "name": "hbase",
+ "implClass": "org.apache.ranger.services.hbase.RangerServiceHBase",
+ "options": { "enableDenyAndExceptionsInPolicies": "true" },
+ "configs": [
+ { "itemId": 1, "name": "username", "type":
"string", "mandatory": true, "label": "Username" },
+ { "itemId": 2, "name": "password", "type":
"password", "mandatory": true, "label": "Password" },
+ { "itemId": 3, "name": "hadoop.security.authentication", "type":
"enum", "subType": "authnType", "mandatory": true, "defaultValue": "simple"
},
+ { "itemId": 4, "name": "hbase.master.kerberos.principal", "type":
"string", "mandatory": false, "defaultValue": "" },
+ { "itemId": 5, "name": "hbase.security.authentication", "type":
"enum", "subType": "authnType", "mandatory": true, "defaultValue": "simple"
},
+ { "itemId": 6, "name": "hbase.zookeeper.property.clientPort", "type":
"int", "mandatory": true, "defaultValue": "2181" },
+ { "itemId": 7, "name": "hbase.zookeeper.quorum", "type":
"string", "mandatory": true, "defaultValue": "" },
+ { "itemId": 8, "name": "zookeeper.znode.parent", "type":
"string", "mandatory": true, "defaultValue": "/hbase" },
+ { "itemId": 9, "name": "commonNameForCertificate", "type":
"string", "mandatory": false, "label": "Common Name for Certificate" },
+ { "itemId": 10, "name": "ranger.plugin.audit.filters", "type":
"string", "mandatory": false, "defaultValue": "[{'accessResult': 'DENIED',
'isAudited': true},{'resources':{'table':{'values':['*-ROOT-*','*.META.*',
'*_acl_*', 'hbase:meta', 'hbase:acl', 'default', 'hbase']}}, 'users':['hbase'],
'isAudited': false },
{'resources':{'table':{'values':['atlas_janus','ATLAS_ENTITY_AUDIT_EVENTS']},'column-family':{'values':['*']},'column':{'values':['*']}},'users':['atlas',
'hbase'], [...]
+ ],
+ "resources": [
+ {
+ "itemId": 1,
+ "name": "table",
+ "type": "string",
+ "level": 10,
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Table",
+ "description": "HBase Table",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 2,
+ "name": "column-family",
+ "type": "string",
+ "level": 20,
+ "parent": "table",
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Column-family",
+ "description": "HBase Column-family",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 3,
+ "name": "column",
+ "type": "string",
+ "level": 30,
+ "parent": "column-family",
+ "mandatory": true,
+ "lookupSupported": false,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase": "false" },
+ "label": "HBase Column",
+ "description": "HBase Column",
+ "isValidLeaf": true
+ }
+ ],
+ "accessTypes": [
+ { "itemId": 1, "name": "read", "label": "Read" },
+ { "itemId": 2, "name": "write", "label": "Write" },
+ { "itemId": 3, "name": "create", "label": "Create" },
+ { "itemId": 4, "name": "admin", "label": "Admin", "impliedGrants": [
"read", "write", "create" ] },
+ { "itemId": 5, "name": "execute", "label": "Execute" }
+ ],
+ "enums": [
+ {
+ "itemId": 1, "name": "authnType", "defaultIndex": 0,
+ "elements": [
+ { "itemId": 1, "name": "simple", "label": "Simple" },
+ { "itemId": 2, "name": "kerberos", "label": "Kerberos" }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git
a/agents-common/src/test/resources/policyengine/ranger-servicedef-tag.json
b/agents-common/src/test/resources/policyengine/ranger-servicedef-tag.json
new file mode 100644
index 000000000..eaef5fdf6
--- /dev/null
+++ b/agents-common/src/test/resources/policyengine/ranger-servicedef-tag.json
@@ -0,0 +1,70 @@
+{
+ "id": 100,
+ "name": "tag",
+ "displayName": "tag",
+ "implClass": "org.apache.ranger.services.tag.RangerServiceTag",
+ "label": "TAG",
+ "description": "TAG Service Definition",
+ "options": { "ui.pages": "tag-based-policies" },
+ "resources":
+ [
+ {
+ "itemId": 1,
+ "name": "tag",
+ "type": "string",
+ "level": 1,
+ "parent": "",
+ "mandatory": true,
+ "lookupSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard":false, "ignoreCase":false },
+ "uiHint": "{ \"singleValue\":true }",
+ "label": "TAG",
+ "description": "TAG"
+ }
+ ],
+
+ "configs":
+ [
+ {
+ "itemId": 1,
+ "name": "ranger.plugin.audit.filters",
+ "type": "string",
+ "mandatory": false,
+ "label": "Ranger Default Audit Filters",
+ "defaultValue": "[ {'accessResult': 'DENIED', 'isAudited': true} ]"
+ }
+ ],
+
+ "contextEnrichers":
+ [
+ {
+ "itemId": 1,
+ "name" : "TagEnricher",
+ "enricher" :
"org.apache.ranger.plugin.contextenricher.RangerTagEnricher",
+ "enricherOptions" : { "tagRetrieverClassName":
"org.apache.ranger.plugin.contextenricher.RangerAdminTagRetriever",
"tagRefresherPollingInterval": 60000 }
+ }
+ ],
+
+ "policyConditions":
+ [
+ {
+ "itemId": 1,
+ "name": "accessed-after-expiry",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptTemplateConditionEvaluator",
+ "evaluatorOptions" : { "scriptTemplate":
"ctx.isAccessedAfter('expiry_date');" },
+ "label": "Accessed after expiry_date (yes/no)?",
+ "description": "Accessed after expiry_date? (yes/no)",
+ "uiHint": "{ \"singleValue\":true }"
+ },
+ {
+ "itemId": 2,
+ "name": "expression",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator",
+ "evaluatorOptions" : { "engineName": "JavaScript", "ui.isMultiline":
"true" },
+ "label": "Enter boolean expression",
+ "description": "Boolean expression",
+ "uiHint" : "{ \"isMultiline\":true }"
+ }
+ ]
+}
diff --git
a/agents-common/src/test/resources/policyengine/test_base_plugin_hbase.json
b/agents-common/src/test/resources/policyengine/test_base_plugin_hbase.json
new file mode 100644
index 000000000..e7ac572ad
--- /dev/null
+++ b/agents-common/src/test/resources/policyengine/test_base_plugin_hbase.json
@@ -0,0 +1,1445 @@
+{
+ "policiesFilename": "/plugin/hive_policies.json",
+ "tagsFilename": "/plugin/hive_tags.json",
+ "rolesFilename": "/plugin/hive_roles.json",
+ "userStoreFilename": "/plugin/hive_user_store.json",
+ "gdsInfoFilename": "/policyengine/gds/gds_info_hive_access.json",
+ "tests": [
+ {
+ "name": "table: prospects, user: hbase, access: read",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "read", "user": "hbase", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 4 }
+ },
+ {
+ "name": "table: prospects, user: hbase, access: write",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "write", "user": "hbase", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 4 }
+ },
+ {
+ "name": "table: prospects, user: hbase, access: create",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "create", "user": "hbase", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 4 }
+ },
+ {
+ "name": "table: prospects, user: hbase, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "admin", "user": "hbase", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 4 }
+ },
+ {
+ "name": "table: prospects, user: hbase, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "execute", "user": "hbase", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 4 }
+ },
+ {
+ "name": "table: sales.prospects, user: proj-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "read", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: sales.prospects, user: no-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "write", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: sales.prospects, user: no-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "prospects" } },
+ "accessType": "create", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: invoices, user: no-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "invoices" } },
+ "accessType": "admin", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: invoices, user: no-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "invoices" } },
+ "accessType": "execute", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: atlas, access: read",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "read", "user": "atlas", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 5 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: atlas, access: write",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "write", "user": "atlas", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 5 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: atlas, access: create",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "create", "user": "atlas", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 5 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: atlas, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "admin", "user": "atlas", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 5 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: no-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "read", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: no-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "write", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: no-user, access:
create",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "create", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: ATLAS_ENTITY_AUDIT_EVENTS, user: no-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "ATLAS_ENTITY_AUDIT_EVENTS" } },
+ "accessType": "admin", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: SYSTEM:invoices, user: proj1-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "SYSTEM:invoices" } },
+ "accessType": "read", "user": "proj1-user", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 782 }
+ },
+ {
+ "name": "table: SYSTEM:invoices, user: no-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "SYSTEM:invoices" } },
+ "accessType": "write", "user": "no-user", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 782 }
+ },
+
+ {
+ "name": "table: SYSTEM:invoices, user: res-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "SYSTEM:invoices" } },
+ "accessType": "create", "user": "res-user", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 782 }
+ },
+ {
+ "name": "table: SYSTEM:invoices, user: tag-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "SYSTEM:invoices" } },
+ "accessType": "execute", "user": "tag-user", "userGroups": []
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 782 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda017"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 821 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda017"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 821 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda017"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 821 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda017"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 821 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda017"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 821 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda017shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda017shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda029"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 822 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda029"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 822 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda029"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 822 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda029"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 822 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda029"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 822 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0291"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0291"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0291"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0291"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda029shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda029shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda0171"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda034"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 823 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda034"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 823 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda034"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 823 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda034"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 823 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda034"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 823 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0341"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0341"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0341"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda034shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda034shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0341"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda035"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 824 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda035"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 824 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda035"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 824 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda035"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 824 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda035"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 824 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0351"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0351"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0351"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda035shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda035shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0351"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda041"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 825 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda041"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 825 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda041"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 825 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda041"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 825 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda041"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 825 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0411"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0411"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0411"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda041shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda041shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0411"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda043"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 826 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda043"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 826 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda043"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 826 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda043"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 826 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda043"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 826 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0431"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0431"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0431"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda043shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda043shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0431"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda052"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 827 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda052"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 827 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda052"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 827 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda052"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 827 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda052"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 827 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0521"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0521"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0521"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda052shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda052shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0521"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda060"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 828 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda060"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 828 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda060"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 828 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda060"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 828 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda060"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 828 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0601"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0601"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0601"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda060shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda060shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0601"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda066"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 829 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda066"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 829 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda066"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 829 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda066"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 829 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda066"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 829 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0661"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0661"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0661"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda066shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda066shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0661"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda085"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 830 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda085"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 830 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda085"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 830 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda085"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 830 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda085"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 830 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0851"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0851"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0851"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda085shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda085shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0851"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda092"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 831 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda092"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 831 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda092"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 831 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda092"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 831 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda092"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 831 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda0921"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda0921"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda0921"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda092shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda092shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda0921"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda126"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 832 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xda126"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 832 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda126"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 832 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xda126"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 832 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xda126"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 832 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xda1261"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xda1261"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xda1261"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda126shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qda126shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xda1261"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qda020shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xds020"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 833 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xds020"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 833 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xds020"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 833 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xds020"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 833 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xds020"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 833 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xds0201"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xds0201"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xds0201"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qds020shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qds020shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["fb00_xds0201"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi022"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 834 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xoi022"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 834 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi022"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 834 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xoi022"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 834 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xoi022"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 834 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi0221"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xoi0221"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi0221"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi022shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi022shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["ffb00_xoi0221"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi025"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 835 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xoi025"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 835 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi025"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 835 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xoi025"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 835 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xoi025"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 835 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi0251"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xoi0251"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi0251"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi025shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi025shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["ffb00_xoi0251"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi033"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 836 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups": ["fb00_xoi033"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 836 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi033"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 836 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups": ["fb00_xoi033"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 836 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: execute",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "execute", "user": "ds-user", "userGroups":
["fb00_xoi033"]
+ },
+ "result": { "isAllowed": true, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": 836 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: read",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "read", "user": "ds-user", "userGroups": ["fb00_xoi0331"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: write",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "write", "user": "ds-user", "userGroups":
["fb00_xoi0331"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: create",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "create", "user": "ds-user", "userGroups":
["fb00_xoi0331"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+ {
+ "name": "table: fb00_qoi033shipments, user: ds-user, access: admin",
+ "request": {
+ "resource": { "elements": { "table": "fb00_qoi033shipments" } },
+ "accessType": "admin", "user": "ds-user", "userGroups":
["ffb00_xoi0331"]
+ },
+ "result": { "isAllowed": false, "isAccessDetermined": "true",
"isAudited": true, "isAuditedDetermined": true, "policyId": -1 }
+ },
+
+ {
+ "name": "ACLs: table: sales.prospects",
+ "request": {
+ "resource": { "elements": { "database": "sales", "table": "prospects"
} }
+ },
+ "acls": {
+ "userACLs": {
+ "res-user": { "read": { "result": 1, "isFinal": true, "policy": {
"id": 100 } } },
+ "tag-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 200 } } },
+ "ds-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2001 } } },
+ "ds1-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2001 } } },
+ "proj-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } },
+ "proj1-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } }
+ },
+ "datasets": [ "dataset-1" ],
+ "projects": [ "project-1" ]
+ }
+ },
+ {
+ "name": "ACLs: table: finance.invoices",
+ "request": {
+ "resource": { "elements": { "database": "finance", "table": "invoices"
} }
+ },
+ "acls": {
+ "userACLs": {
+ "res-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 100 } } },
+ "tag-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 200 } } },
+ "ds-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2001 } } },
+ "ds1-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2001 } } },
+ "ds2-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2002 } } },
+ "proj-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } },
+ "proj1-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } }
+ },
+ "datasets": [ "dataset-1", "dataset-2" ],
+ "projects": [ "project-1" ]
+ }
+ },
+ {
+ "name": "ACLs: table: shipping.shipments",
+ "request": {
+ "resource": { "elements": { "database": "shipping", "table":
"shipments" } }
+ },
+ "acls": {
+ "userACLs": {
+ "res-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 100 } } },
+ "tag-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 200 } } },
+ "ds-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2002 } } },
+ "ds2-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2002 } } },
+ "proj-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } },
+ "proj1-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3001 } } }
+ },
+ "datasets": [ "dataset-2" ],
+ "projects": [ "project-1" ]
+ }
+ },
+ {
+ "name": "ACLs: table: customers.contact_info",
+ "request": {
+ "resource": { "elements": { "database": "customers", "table":
"contact_info" } }
+ },
+ "acls": {
+ "userACLs": {
+ "res-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 131 } } },
+ "tag-user": { "select": { "result": 1, "isFinal": true, "policy":
{ "id": 203 } } },
+ "ds-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2003 } } },
+ "ds3-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2003 } } },
+ "ds6-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2006 } } },
+ "proj-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3002 } } },
+ "proj2-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3002 } } },
+ "proj4-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 3004 } } }
+ },
+ "datasets": [ "dataset-3", "dataset-6" ],
+ "projects": [ "project-2", "project-4" ]
+ }
+ },
+ {
+ "name": "ACLs: table: operations.facilities",
+ "request": {
+ "resource": { "elements": { "database": "operations", "table":
"facilities" } }
+ },
+ "acls": {
+ "userACLs": {
+ "res-user": { "select": { "result": 1, "isFinal": true, "policy": {
"id": 141 } } },
+ "tag-user": { "select": { "result": 1, "isFinal": true, "policy": {
"id": 204 } } },
+ "ds-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2004 } } },
+ "ds4-user": { "select": { "result": 1, "isFinal": false, "policy":
{ "id": 2004 } } }
+ },
+ "datasets": [ "dataset-4" ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git
a/agents-common/src/test/resources/policyengine/updated-hbase-test-policies.json
b/agents-common/src/test/resources/policyengine/updated-hbase-test-policies.json
new file mode 100644
index 000000000..4fcfd20cd
--- /dev/null
+++
b/agents-common/src/test/resources/policyengine/updated-hbase-test-policies.json
@@ -0,0 +1,193 @@
+{
+ "serviceName": "cm_hbase",
+ "serviceId": 3,
+ "policyVersion": 7141,
+ "auditMode": "audit-default",
+ "serviceDef": {
+ "id": 2,
+ "name": "hbase",
+ "implClass": "org.apache.ranger.services.hbase.RangerServiceHBase",
+ "options": { "enableDenyAndExceptionsInPolicies": "true" },
+ "configs": [
+ { "itemId": 1, "name": "username",
"type": "string", "mandatory": true, "label": "Username" },
+ { "itemId": 2, "name": "password",
"type": "password", "mandatory": true, "label": "Password" },
+ { "itemId": 3, "name": "hadoop.security.authentication",
"type": "enum", "subType": "authnType", "mandatory": true, "defaultValue":
"simple" },
+ { "itemId": 4, "name": "hbase.master.kerberos.principal",
"type": "string", "mandatory": false, "defaultValue": "" },
+ { "itemId": 5, "name": "hbase.security.authentication",
"type": "enum", "subType": "authnType", "mandatory": true, "defaultValue":
"simple" },
+ { "itemId": 6, "name": "hbase.zookeeper.property.clientPort",
"type": "int", "mandatory": true, "defaultValue": "2181" },
+ { "itemId": 7, "name": "hbase.zookeeper.quorum",
"type": "string", "mandatory": true },
+ { "itemId": 8, "name": "zookeeper.znode.parent",
"type": "string", "mandatory": true, "defaultValue": "/hbase" },
+ { "itemId": 9, "name": "commonNameForCertificate",
"type": "string", "mandatory": false, "label": "Common Name for Certificate"
},
+ { "itemId": 10, "name": "ranger.plugin.audit.filters",
"type": "string", "mandatory": false, "defaultValue": "[{'accessResult':
'DENIED', 'isAudited':
true},{'resources':{'table':{'values':['*-ROOT-*','*.META.*', '*_acl_*',
'hbase:meta', 'hbase:acl', 'default', 'hbase']}}, 'users':['hbase'],
'isAudited': false },
{'resources':{'table':{'values':['atlas_janus','ATLAS_ENTITY_AUDIT_EVENTS']},'column-family':{'values':['*']},'column':{'values':['*']}},'users':['atlas',
' [...]
+ }
+ ],
+ "resources": [
+ {
+ "itemId": 1,
+ "name": "table",
+ "type": "string",
+ "level": 10,
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase":
"false" },
+ "label": "HBase Table",
+ "description": "HBase Table",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 2,
+ "name": "column-family",
+ "type": "string",
+ "level": 20,
+ "parent": "table",
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase":
"false" },
+ "label": "HBase Column-family",
+ "description": "HBase Column-family",
+ "isValidLeaf": false
+ },
+ {
+ "itemId": 3,
+ "name": "column",
+ "type": "string",
+ "level": 30,
+ "parent": "column-family",
+ "mandatory": true,
+ "lookupSupported": false,
+ "recursiveSupported": false,
+ "excludesSupported": true,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "true", "ignoreCase":
"false" },
+ "label": "HBase Column",
+ "description": "HBase Column",
+ "isValidLeaf": true
+ }
+ ],
+ "accessTypes": [
+ { "itemId": 1, "name": "read", "label": "Read" },
+ { "itemId": 2, "name": "write", "label": "Write" },
+ { "itemId": 3, "name": "create", "label": "Create" },
+ { "itemId": 4, "name": "admin", "label": "Admin",
"impliedGrants": [ "read", "write", "create" ] },
+ { "itemId": 5, "name": "execute", "label": "Execute" }
+ ],
+ "enums": [
+ {
+ "itemId": 1,
+ "name": "authnType",
+ "defaultIndex": 0,
+ "elements": [
+ { "itemId": 1, "name": "simple", "label": "Simple" },
+ { "itemId": 2, "name": "kerberos", "label": "Kerberos" }
+ ]
+ }
+ ]
+ },
+ "tagPolicies": {
+ "serviceName": "cm_tag",
+ "serviceId": 2,
+ "serviceDef": {
+ "id": 100,
+ "name": "tag",
+ "implClass": "org.apache.ranger.services.tag.RangerServiceTag",
+ "options": { "enableDenyAndExceptionsInPolicies": "true",
"ui.pages": "tag-based-policies" },
+ "configs": [
+ {
+ "itemId": 1,
+ "name": "ranger.plugin.audit.filters",
+ "type": "string",
+ "mandatory": false,
+ "defaultValue": "[ {'accessResult': 'DENIED', 'isAudited':
true} ]",
+ "label": "Ranger Default Audit Filters"
+ }
+ ],
+ "resources": [
+ {
+ "itemId": 1,
+ "name": "tag",
+ "type": "string",
+ "level": 1,
+ "mandatory": true,
+ "lookupSupported": true,
+ "recursiveSupported": false,
+ "excludesSupported": false,
+ "matcher":
"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher",
+ "matcherOptions": { "wildCard": "false", "ignoreCase":
"false" },
+ "uiHint": "{ \"singleValue\":true }",
+ "label": "TAG",
+ "description": "TAG",
+ "isValidLeaf": true
+ }
+ ],
+ "accessTypes": [
+ { "itemId": 104105, "name": "hbase:read", "label": "Read" },
+ { "itemId": 104106, "name": "hbase:write", "label": "Write"
},
+ { "itemId": 104107, "name": "hbase:execute", "label":
"Execute" },
+ { "itemId": 104108, "name": "hbase:create", "label": "Create"
},
+ { "itemId": 104109, "name": "hbase:admin", "label": "Admin" }
+ ],
+ "policyConditions": [
+ {
+ "itemId": 1,
+ "name": "accessed-after-expiry",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptTemplateConditionEvaluator",
+ "evaluatorOptions": { "scriptTemplate":
"ctx.isAccessedAfter('expiry_date');" },
+ "uiHint": "{ \"singleValue\":true }",
+ "label": "Accessed after expiry_date (yes/no)?",
+ "description": "Accessed after expiry_date? (yes/no)"
+ },
+ {
+ "itemId": 2,
+ "name": "expression",
+ "evaluator":
"org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator",
+ "evaluatorOptions": { "engineName": "JavaScript",
"ui.isMultiline": "true" },
+ "uiHint": "{ \"isMultiline\":true }",
+ "label": "Enter boolean expression",
+ "description": "Boolean expression"
+ }
+ ],
+ "contextEnrichers": [
+ {
+ "itemId": 1,
+ "name": "TagEnricher",
+ "enricher":
"org.apache.ranger.plugin.contextenricher.RangerTagEnricher",
+ "enricherOptions": { "tagRetrieverClassName":
"org.apache.ranger.plugin.contextenricher.RangerAdminTagRetriever",
"tagRefresherPollingInterval": "60000" }
+ }
+ ]
+ },
+ "auditMode": "audit-default",
+ "serviceConfig": {
+ "ranger.plugin.audit.filters": "[ {'accessResult': 'DENIED',
'isAudited': true} ]"
+ }
+ },
+ "policyDeltas": [
+ {
+ "id": 80343,
+ "changeType": 1,
+ "policiesVersion": 7141,
+ "policy": {
+ "id": 821, "name": "fb00_xda017", "serviceType": "hbase",
"isEnabled": true, "isAuditEnabled": true,
+ "resources": {
+ "table": { "values": [ "vfb00_*vda0171*" ] },
+ "column-family": { "values": [ "*" ] },
+ "column": { "values": [ "*" ] }
+ },
+ "policyItems": [
+ {
+ "accesses": [ { "type": "read" }, { "type": "write" },
{ "type": "create" }, { "type": "admin" }, { "type": "execute" } ],
+ "groups": [ "vfb00_vxda017", "xagcla" ]
+ }
+ ]
+ }
+ }
+ ],
+ "serviceConfig": {
+ "ranger.plugin.audit.filters":
"[{'accessResult':'DENIED','isAudited':true},{'resources':{'table':{'values':['*-ROOT-*','*.META.*','*_acl_*','hbase:meta','hbase:acl','default','hbase'],'isExcludes':true}},'users':['hbase'],'isAudited':false},{'resources':{'table':{'values':['atlas_janus','ATLAS_ENTITY_AUDIT_EVENTS'],'isExcludes':true},'column-family':{'values':['*'],'isExcludes':true},'column':{'values':['*'],'isExcludes':true}},'users':['atlas','hbase'],'isAudited':false},{'user
[...]
+ }
+}