diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..c32394f14 --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * 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. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 000000000..fa87ad7dd --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/.travis.yml b/.travis.yml index 9d77a3fa2..11c1918d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,49 @@ -language: java - -jdk: - - oraclejdk8 - +# Using bash because Travis CI does not support Java on Windows sudo: required - services: - docker -# travis is quite limited for multi-language projects when one needs to share artifacts: -# https://github.com/travis-ci/travis-ci/issues/4090 +branches: + except: + - gh-pages +env: + global: + # This is a convenience variable for shortening download commands + - GRAVIS="https://raw.githubusercontent.com/DanySK/Gravis-CI/master/" + - JDK="graalvm@19.2.0" + # DOCKERHUB_USER + - secure: "VfQm2li2nQueRUtyVnV+BDaIjp27ydXltWsoYIZha0MdkItAnhdmQSvICKjD1PCr4kI17o1lPnUPhX1khBUWpQftPFCAcD1bbeAW0AHRVtF2fWL460R+o3C93jqlqKYczo7DWr4nKaMQ0HDZEGa1QcMuyeQA1S4CGdPmrkHk3N5PAflFF1myrCUSCzqV8+lp0w4CxCdScVYGYlQwahdLHrLNZbCo/Nxiex5XrOYrqLTaU98EoxmKlZaR4klg2/pJENgZ6NbZb8JfFaPkEYsmF5z4w2Cf5mp9PPJLnBuKLO/zhKTXpjz2hjhGpncEqFTHrxIpoY/jFrewB5t09a9lykpFHlXpvujZq1S7xNzOBTj9X6TnU4oyK1oteb6CW9A+hpyJVPPMQ2JrrkKzTaEQpel5q45unthStdvAVvl/BjrjVpzffbnaLXKomTzKjuW7VW3Q5mVIRD7UBVAn2izszaN2Lp05JKKxk+aYAsvywCL/bopI/nsugZz9mOhTFq7uf2Cvj6Ku6Hmzh/7fp/0no0tLr251a9nN7yoe2xbwL/524lnyQd2lHcwWfleCbwPFoZUtg+qBUXqf0EiRp6xj7fnl3kK/crXWcsWyrru33EgbRjuRzZVA2ShGVs9Yb8cKalXHouZ2deWwhxuk+Kb5BR8DM3PY9ThUZSU6tv4V0RY=" + # DOCKERHUB_PASS + - secure: "wvFxLpbykOGuiuqqRUhsR/A9ErCSRO5GzRGxj/9wjehl6jQOQTAmN3Dtk3uO9cS/RfXjLpPZcJ4IVQ9QbEd/HCfJ46CzRfyMwCb8vP2N/wUiSqsun/0ev4lviOfI0j0vciKuB8VeWg5/ASfjznfehPcexOgOfbG61Apv7KS76SsfNLEiGFbszrq8tD1bVsdpT9CT+SiqpI1PCv1PIvQaC0CBkjCGNKbTGc1H4Hrd+OzVMP8qT/BkuSNxtvZABaRFht5+aF47X6M3PsqbOCHe1kiMkk5OHtQ0CRMJM/gP4xsQcR6bk5QTYmJZF7qD1tSXRzL8Yo3UbgBW3xz/eftDPCmbRRHBCPICjHle2w3jowgtOlkNtyeJJbz6yWSL1+ZOljuFHTiXIkXE+EAW/4CMroWH4EuzWo/2XeZCmkRmZe0dTxaMhrFLwXq0SJG/CaOP3mNSf04bNd/voga/zdD3jBMGPebEbwqoYvdXE/4sj6f0THznjvroT4AyrDvHkrBA78X3eeK/JPVyRtpbLsybVLoaxWha4rDgS4Dk5K/9uQqRJJruiSGZeBxLhA4yw+8M+KqIh7CV4gy1DZZspiZ5ST3AyY8K7OSMp7948awhy9xSJW7Hue7CoHBrDaJ59LEs4rE8JTU/HmcOLU+JA/J9hqOHEzFvyj4OFdb0h6gShoo=" + # GPG_OWNERTRUST + - secure: "n9KkPGeKC7+ZxJQ58eyi8LGPJPZt+kWg2uYr0CpBda9qiVlGsh+CkTi89P2KB0/ZZl3uOpESPkZK/Xx4avfIwt3FW5/Mm6dxOofkJOGmAvLniwnKkvXoVGWAUM+4izNTyoGKBZdJy9CThy18DVCLREeY5sADfbRXVriNQwMXJotKMOAuiuumfBL/J748Ky+upDTgPcaTKHqrfzBUuBnpKT6v7jpStNhz5V/DpQxOpj+UXh5KQFZqrSSaLLRsfqNWYEPNF4879eZHkLrMuwuzQRHgeWH6TAq4dAbnAHezpuOxkkdzn1IKAa42fj/yOVlSu7VceN1i2UiO0n2cFczzUyOZR0xDMZOjkbvxWPoy5DXgvwqegIUO4m7hAabqWACWdZNCRAbcM/gcf1roKzizlZcafHe0xdVyvlMEfPJxGuxh1HKbN6DO2YHT/fnxWn/VHMUa/l01vfObqsD9oba934Mhx5Hum+pddy2/jExGLQptZorjuGhz5KZbwSWQnPsVvoyyUEcR4olPsWMyh8gyHbUxsjVU73v3AqAKO2XVq8QxQFBSite+1qQMT0mdPIpSQ+6m4E7UJioTvXG+E4CWFpFaeBS5wNqkd4fgG2kFibxNiTYQbIzbCJvntzlnNb7RuRjveUW7G401JZ0sUSnzEPAHOUDI40wilOg2gJdrbvo=" + # GPG_PASSPHRASE + - secure: "JZ82Y6sOmIUvfl9nS+z2HdYEVf9mFenur3gCB7pD4USVvGHoA4KjX//eLjLv5drAoqKJL6WDXuzzLYip+m9RTO4dR8RUxatZj7vPusuMBgwTV+1+HpyhHgaSS6ZF2ZXS0okbjjtHf+i6xb9nAF6pMtHWDZ8Oq9wzGGjK+5gSvWwKhiD1sQgf8xqGJxRnSqpSu49SohvqAPKDyoxJgqiOTmj/i9eL+ksRlRl53rMSrPSufsugvmZbVOoGVVApYfUXqjKRrayXYMEWhbS7YwmayGQzkOFkCQXPZigrmpeZTcoqODiNkX0H3/OASiLWDbKJ5zkhqj//7MvvG6P1fe/OIQtpvBKEI3DktPVtH5PsYbTzzuy9xaz/D2OOz3JOJfSqYAukBg9sPN7J89rWN5EXzAj4o5Mhzhnh5ct5htLmc+clm+yrU0ksZoM7DsxVfx0mY+LsqOF9difKS2plLfg/QLjkJ+Ubtf+J+DH+b1INPPzgSJyqQaIo/tqfgyxVHORnkRXPeEZCp0aiDgF84jOKJLYd2B27CMr9XmYuCdoLgjbBiAWGyKCJE+aj39XuS7e8sfX0ZEM67c+keJM9SUo3CsOQHQNDb+ytTvIJnxpAk7PE8+j4+KpY0Wo7Ut2qOf6cAcEBx4nU5y8l/nqic/ix8r1YIuDOu/rEBQ/SobhMiW0=" + # SONATYPE_USERNAME + - secure: "Wbz/yQlH37OylRBeEFBAreX1vtqaOFOVHGLb0ajGPXpJrgds+g72DvXpCXuomGQSKW398hRfCbsBWIQn682+KYQfubsMcnQyP8JcRzA/0UcjUTKD/AKDPP05luDuaffNL8iRI8rJbFOHim+GXHPz4yoKUNpeb3RONWZotPTgkCTEDrSiKi/OV46/vqADpacPefx7Gkg0UfpRYJSgifgbVaRELLkrwMnHnYVa4MIPLH7K8ah2e5hbTd/FpqQAhsUtf+TvMG90hUk3V53NFdpgxZhRpY/jKrBLyQqz7CcIHNc/l4QyoXm6RL0bsw4zSwamU+QcBqU+V9QWROAwYLu1zYm1Xv/7MzDumVuuoJy659a5I5Klt9y8u9NT8YS6Fx+3skRk/YlG2NwEBcDgU1qHS+AXNNSSaUCw1S/ujfkAmf928R0gOsDz/CJdZzOTGH4TU+grxI/jnLw5evEu78SrhB8vIczjgF/k2rP8J+KGZp6WrOix/pR4ICemAuq7XiV8cbcWErQ+r5vkydmKids35eQYbUBK+xxlNX8q6knGmhBAwN54JOIqYTQjU99c1mJ9fBTcCL8Y9fcYA2Xf9mOzEixubDMx4YMX79jAtaK0LV2GbwzeICeSt0JRkNUo/SddnFiH4i1CGwHqPVgGg7mVUnww9fsH4RTlStt2zqgv7Hs=" + # SONATYPE_PASSWORD + - secure: "oebfC3waGcAT2EHktIW/eBAyO95/lQmwWH++3ilrmufiXcsUOv7Ud5qZMsElyzYIdbQ5GUlThQEh4NHgyyCvM5V25urqpl5MsnVmRxBpJ4LWEaKpk5o8z/2nw5Ws97MiNvpVkKDSqI9tId+2G7EHb/be5294GgSSbcCpHMN/tPGSRMtLm09cU54nKAVxuUAYtxEBgZypJnORHM5Q+kgjTONdmtjgDPiRZhgWciSa2NgrDjMfOx6S6q15l7hHNqRXhWZox118wGDMEvdu/EdPzPsxXOOzvWRTQJSk3TBlWMMxompjd8JtLaoIyBRGiO8y70L6PyPwXpSpuvKg7evmXa5usHdiTm4Rvpq9Y8waDgyxWuV/TES2QRj620pKq/z+BovRhKcgOHNprEDcR1eDJtJ27FQXSosZTK4LQuOYq6zntKKztQtfIHa1wa5peIts1EFRiVwRi0KrP0UwewBkb8aYHbkkj2t6jgNJZB4HGBxBKcwgloHoZmVqhL12MULnB3QWx48nPVhhqXqDXX2qMvg/G2nLgdnKkzkbBWOIssG0wMs6+QSVFInWZ5/VflSxlZ3hAuqX+Dbily1qzFzBST7d2WohUlZDp+8pZ7IjeTcSHbVvS7RHj+FMpn1KxF+RwB79R6yit9LcKbB+rytFwvjP9swFrrpRN8DkGrhHpMo=" + +### This section represents primary build actions +before_install: + - curl -L https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz > oc-cli.tar.gz + - tar -xzf oc-cli.tar.gz + - sudo mv ./openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin + +# preparations to build frontend +install: + - nvm install 11.12.0 + - npm install -g @angular/cli + - cd frontend/datasafe-ui && npm install && cd ../.. script: - mvn --settings .travis/settings.xml clean verify -B -V -DAWS_BUCKET=${AWS_BUCKET} -# make frontend available for REST-docker + # make frontend available for REST-docker - cd frontend/datasafe-ui && ng build --deploy-url /static/ --base-href /static/ && mv dist ../../datasafe-rest-impl/target/dist && cd ../.. +before_deploy: + - openssl aes-256-cbc -K $encrypted_f1acb3064675_key -iv $encrypted_f1acb3064675_iv -in .travis/sign.gpg.enc -out .travis/sign.gpg -d + deploy: - provider: script skip_cleanup: true @@ -38,16 +66,81 @@ deploy: tags: true condition: "$TRAVIS_TAG =~ ^v([[:digit:]]+\\.)+[[:digit:]]+(-[[:digit:]]+)?(-SNAPSHOT)?$" -before_install: - - curl -L https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz > oc-cli.tar.gz - - tar -xzf oc-cli.tar.gz - - sudo mv ./openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin - -# preparations to build frontend -install: - - nvm install 11.12.0 - - npm install -g @angular/cli - - cd frontend/datasafe-ui && npm install && cd ../.. - after_success: - /bin/bash .travis/codecov_bash.sh + +################ Custom build stages: +# Special test-skipping stage to build CLI, using maven-wrapper + +build-cli: &build-cli + script: + # re-export JAVA_HOME + - source ~/.jdk_config + # Prepare everything, no settings.xml needed + - ./mvnw clean install -B -V -DskipTests + # Change security providers of JDK + - /bin/bash .travis/enable_bouncycastle_security.sh + # Build native image, no settings.xml needed + - ./mvnw -f datasafe-cli/pom.xml clean package -B -V -Pnative-image -DskipTests + # Perform basic testing + - echo 'Testing built CLI' + - ./datasafe-cli/src/test/bash/basic_functionality_test_fs.sh datasafe-cli/target/datasafe-cli + # Docker not available on MacOS, allow to pass + - ./datasafe-cli/src/test/bash/basic_functionality_test_minio.sh datasafe-cli/target/datasafe-cli + +# CLI artifacts publishing: +deploy-cli: &deploy-cli + deploy: + on: + branch: develop + provider: s3 + access_key_id: ${AWS_ACCESS_KEY_ID} + secret_access_key: ${AWS_SECRET_ACCESS_KEY} + bucket: ${AWS_BUCKET} + region: ${AWS_REGION} + skip_cleanup: true + local_dir: datasafe-cli/target + upload-dir: datasafe-cli/${TRAVIS_OS_NAME}/${TRAVIS_COMMIT} + +################ Build matrix: +# Build configuration definition: +matrix: + include: + + #### PRIMARY BUILD #### + # This is original build and deploy script, that runs E2E tests and deploys docker images + - os: linux + language: java + jdk: openjdk8 + + + #### CLI-ORIENTED BUILD #### + # These are CLI-only builds that produce Datasafe cli executable for each OS: + + ### CLI for Linux: + - os: linux + language: bash + before_install: + - source .travis/drop_deploy_secrets.sh + - /bin/bash .travis/install_custom_jdk_and_add_security_providers.sh + install: + - echo 'Nothing to do' # Override primary build logic + <<: *build-cli + <<: *deploy-cli + after_success: + - echo 'Nothing to do' # Override primary build logic + + ### CLI for MacOS: + - os: osx + language: bash + before_install: + - source .travis/drop_deploy_secrets.sh + - /bin/bash .travis/install_custom_jdk_and_add_security_providers.sh + install: + - echo 'Nothing to do' # Override primary build logic + <<: *build-cli + <<: *deploy-cli + after_success: + - echo 'Nothing to do' # Override primary build logic + + # No WINDOWS here because it is in beta status yet. \ No newline at end of file diff --git a/.travis/deploy.sh b/.travis/deploy.sh index b99f0bb14..3f1052e59 100644 --- a/.travis/deploy.sh +++ b/.travis/deploy.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash + echo "$GPG_SECRET_KEY" | base64 --decode | "$GPG_EXECUTABLE" --import echo "$GPG_OWNERTRUST" | base64 --decode | "$GPG_EXECUTABLE" --import-ownertrust diff --git a/.travis/drop_deploy_secrets.sh b/.travis/drop_deploy_secrets.sh new file mode 100755 index 000000000..58d7cd6a1 --- /dev/null +++ b/.travis/drop_deploy_secrets.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +export GPG_OWNERTRUST='' +export GPG_SECRET_KEY='' +export GPG_PASSPHRASE='' +export OPENSHIFT_USER='' +export OPENSHIFT_PASSWORD='' +export DOCKERHUB_USER='' +export DOCKERHUB_PASS='' +export SONATYPE_USERNAME='' +export SONATYPE_PASSWORD='' diff --git a/.travis/enable_bouncycastle_security.sh b/.travis/enable_bouncycastle_security.sh new file mode 100644 index 000000000..9f7f5664c --- /dev/null +++ b/.travis/enable_bouncycastle_security.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# SED flavors in-place replacement handling: +SED_I_EXEC="sed -i" +if [[ "$OSTYPE" == "darwin"* ]]; then + # Mac OSX + SED_I_EXEC="sed -i ''" +fi + +# 3. Adds BouncyCastle Provider to JDK security providers +# 4. Adds BouncyCastle TLS to JDK security providers +# 5. Removes SunEC security provider to use SSL from BouncyCastle + + +# 3. Add BouncyCastle Provider to JDK security providers at place 2 (should replace sun.security.rsa.SunRsaSign) +$SED_I_EXEC "s/security\.provider\.2=.*/security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider/g" "$JAVA_HOME/jre/lib/security/java.security" + +# 4. Add BouncyCastle TLS to JDK security providers at place 3 (should replace sun.security.ec.SunEC and come before com.sun.net.ssl.internal.ssl.Provider) +$SED_I_EXEC "s/security\.provider\.3=.*/security.provider.3=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider/g" "$JAVA_HOME/jre/lib/security/java.security" + +# 5. Remove SunEC security provider (if it still exists) +$SED_I_EXEC "s/security\.provider\..*=sun\.security\.ec\.SunEC//g" "$JAVA_HOME/jre/lib/security/java.security" diff --git a/.travis/install_custom_jdk_and_add_security_providers.sh b/.travis/install_custom_jdk_and_add_security_providers.sh new file mode 100755 index 000000000..eef9ed43e --- /dev/null +++ b/.travis/install_custom_jdk_and_add_security_providers.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# This script: +# 1. Installs custom JDK. +# 2. Downloads BouncyCastle security provider and TLS libs. (to use native java SSL) + +REPO_ROOT=`pwd` + +# 1. Custom JDK +curl "${GRAVIS}.install-jdk-travis.sh" --output ~/.install-jdk-travis.sh +source ~/.install-jdk-travis.sh + +cd "$REPO_ROOT" || exit 1 + +# 2. BC libs - download +# 2.1 Parse BouncyCastle version +BC_VERSION=`grep ".*" pom.xml | cut -d">" -f2 | cut -d"<" -f1` + +# 2.2 Download BC jars needed +curl "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/${BC_VERSION}/bcprov-jdk15on-${BC_VERSION}.jar" \ + --output "$JAVA_HOME/jre/lib/ext/bcprov-jdk15on-${BC_VERSION}.jar" + +curl "https://repo1.maven.org/maven2/org/bouncycastle/bctls-jdk15on/${BC_VERSION}/bctls-jdk15on-${BC_VERSION}.jar" \ + --output "$JAVA_HOME/jre/lib/ext/bctls-jdk15on-${BC_VERSION}.jar" + +# Windows does not have Graal Updater (gu) tool, so we install native-image manually +if [[ "$TRAVIS_OS_NAME" == "windows"* ]]; then + # TODO + echo "Windows, nothing to do" +else + # Install native image builder + gu install native-image +fi + + diff --git a/.travis/sign.gpg.enc b/.travis/sign.gpg.enc new file mode 100644 index 000000000..2324723e8 Binary files /dev/null and b/.travis/sign.gpg.enc differ diff --git a/README.md b/README.md index 8b41af887..705c68d96 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Datasafe is a cross-platform library that allows sharing and storing data and do your data using **AES-GCM** algorithm and uses **CMS-envelopes** as encrypted content wrapper. CMS-envelope wraps and encrypts document encryption key using key encryption key that provides additional level of security. For user private files, Datasafe uses CMS-envelope with symmetric encryption of data encryption key. For files -that are shared with other users (sent to their INBOX folder), Datasafe uses asymmetric encryption for +that are shared with other users (sent to their INBOX folder), Datasafe uses asymmetric encryption for data encryption key, so only recipient (or multiple recipients) can read it. Datasafe is built with the idea to be as configurable as possible - it uses Dagger2 for dependency injection and modular @@ -22,12 +22,14 @@ wants to share into users' inbox space using the recipients' public key so that - For storage systems that do not support file versioning natively (i.e. minio) this library provides versioning capability too. +Details about used encryption algorithms can be found in [security whitepaper](SECURITY.WHITEPAPER.md). + ## Features - Proprietary software **friendly license** - **Flexibility** - you can easily change encryption and configure or customize other aspects of library - AES encryption using **CMS-envelopes** for increased security and interoperability with other languages -- Secure file sharing with other users +- Secure file sharing with other users - **Extra protection layer** - encryption using securely generated keys that are completely unrelated to your password - **Client side encryption** - you own your data - Works with filesystem and Amazon S3 compatible storage - S3, minio, CEPH, etc. @@ -36,28 +38,26 @@ capability too. ## Performance -Datasafe was tested for performance in Amazon cloud. -In short, on m5.xlarge amazon instance with Datasafe library can have write throughput of 50 MiB/s and 80 MiB/s of +Datasafe was tested for performance in Amazon cloud. +In short, on m5.xlarge amazon instance with Datasafe library can have write throughput of 50 MiB/s and 80 MiB/s of read throughput, when using **Amazon S3 bucket** as backing storage (performance is CPU-bound and network-bound). -Detailed performance report is here: +Detailed performance report is here: [Datasafe performance results](datasafe-long-run-tests/README.md) ## Quick demo ### Datasafe-CLI -You can try Datasafe as a CLI (command-line-interface) executable for encryption of your own sensitive files. +You can try Datasafe as a CLI (command-line-interface) executable for encryption of your own sensitive files. Your encrypted files can be saved either in S3 bucket or local filesystem safely, because encryption will happen -locally - on your machine. +locally - on your machine (See [CLI-README](datasafe-cli/README.md) for details). **Download CLI executable**: 1. [MacOS native executable](https://github.com/adorsys/datasafe/releases/download/v0.6.0/datasafe-cli-osx-x64) 1. [Linux native executable](https://github.com/adorsys/datasafe/releases/download/v0.6.0/datasafe-cli-linux-x64) -1. Windows executable (N/A yet), please use java version below +1. Windows executable (N/A yet), please use java version below 1. [Java-based jar](https://github.com/adorsys/datasafe/releases/download/v0.6.0/datasafe-cli.jar), requires JRE (1.8+), use `java -jar datasafe-cli.jar` to execute -(Files above are built from [feature/datasafe-cli-w-s3](https://github.com/adorsys/datasafe/tree/feature/datasafe-cli-w-s3) currently) - #### Example actions: ##### Download application and create new user: @@ -73,7 +73,7 @@ curl -L https://github.com/adorsys/datasafe/releases/download/v0.6.0/datasafe-cl ```bash echo '{"username": "john", "password": "Doe", "systemPassword": "password"}' > john.credentials ``` -- Create your new user profile (credentials come from john.credentials). You can enter value or click enter to accept +- Create your new user profile (credentials come from john.credentials). You can enter value or click enter to accept the default value when prompted. ```bash @@ -88,7 +88,7 @@ secure than having credentials file, but is fine for demo purposes): ```bash ./datasafe-cli -u=MeHappyUser -p=MyCoolPassword -sp=greatSystemPassword private cat secret.txt ``` -Command above will show private file `secret.txt` content for user `MeHappyUser` who has password `MyCoolPassword` and +Command above will show private file `secret.txt` content for user `MeHappyUser` who has password `MyCoolPassword` and system password `greatSystemPassword` ##### Encrypt and decrypt some secret data for our user: @@ -145,7 +145,7 @@ cat private/encrypted_file_name_from_above ![list_actions](docs/demo/list_actions.gif) ### REST based demo -[Here](datasafe-rest-impl/DEMO.md) you can find quick docker-based demo of project capabilities with +[Here](datasafe-rest-impl/DEMO.md) you can find quick docker-based demo of project capabilities with instructions of how to use it (REST-api based to show how to deploy as encryption server). @@ -168,7 +168,7 @@ Datasafe is available from maven-central repository, you can add it to your proj datasafe-business 0.5.0 -``` +``` To add filesystem storage provider: ```xml @@ -177,7 +177,7 @@ To add filesystem storage provider: datasafe-storage-impl-fs 0.5.0 -``` +``` To add S3 storage provider: ```xml @@ -186,7 +186,7 @@ To add S3 storage provider: datasafe-storage-impl-s3 0.5.0 -``` +``` # Project overview @@ -408,7 +408,7 @@ we can use storage provider that supports versioning. But if we have storage pro (i.e. minio) we can turn-on software versioning, here is its usage examples; First, we will obtain versioned Datasafe services that uses filesystem storage adapter: -[Example:Create versioned Datasafe services](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L48-L55) +[Example:Create versioned Datasafe services](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L47-L54) ```groovy Security.addProvider(new BouncyCastleProvider()); // this will create all Datasafe files and user documents under @@ -419,7 +419,7 @@ versionedServices = DaggerVersionedDatasafeServices.builder() ``` Next we will create user, this is same as in non-versioned services: -[Example:Creating user for versioned services looks same](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L63-L70) +[Example:Creating user for versioned services looks same](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L62-L69) ```groovy // Creating new user: /* @@ -430,7 +430,7 @@ versionedServices.userProfile().registerUsingDefaults(new UserIDAuth("user", "pa ``` This is how file versioning works when saving file multiple times: -[Example:Saving file couple of times - versioned](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L82-L106) +[Example:Saving file couple of times - versioned](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L81-L105) ```groovy // creating new user UserIDAuth user = registerUser("john"); @@ -458,7 +458,7 @@ assertThat(versionedServices.latestPrivate().list(ListRequest.forDefaultPrivate( ``` And we can work with file versions too, of course, everything is encrypted: -[Example:Lets check how to read oldest file version](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L108-L124) +[Example:Lets check how to read oldest file version](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L107-L123) ```groovy // so lets collect all versions List, PrivateResource, DFSVersion>> withVersions = @@ -478,7 +478,7 @@ assertThat(versionedServices.privateService() ``` Another important case to mention is how to determine if file has changed on storage compared to some copy we have: -[Example:Check if we have latest file locally](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L134-L165) +[Example:Check if we have latest file locally](datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java#L133-L164) ```groovy // creating new user UserIDAuth user = registerUser("john"); @@ -515,8 +515,9 @@ assertThat(savedOnPC).isAfter(savedOnMobile); ## Datasafe on versioned storage If you have storage for user files on **versioned S3 bucket** and want to get object version when you write object or to read some older version encrypted object, you can follow this example of how to do that: -[Example:Versioned storage support - writing file and reading back](datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java#L137-L171) +[Example:Versioned storage support - writing file and reading back](datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java#L138-L173) ```groovy +Security.addProvider(new BouncyCastleProvider()); // creating new user UserIDAuth user = registerUser("john"); @@ -553,7 +554,7 @@ assertThat(defaultDatasafeServices.privateService().read( ``` Removing old file version can be done by [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) or manually, using this snippet: -[Example:Versioned storage support - removing specific version](datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java#L187-L214) +[Example:Versioned storage support - removing specific version](datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java#L189-L216) ```groovy // creating new user UserIDAuth user = registerUser("john"); @@ -653,7 +654,7 @@ assertThat(walk(root)).asString().contains("file.txt"); ### Customizing Datasafe to store dynamic and user-provided credentials In case user wants to register storage credentials himself or place keystore within credentials-protected location one can use this example: -[Example:Datasafe with multi-dfs setup](datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java#L103-L217) +[Example:Datasafe with multi-dfs setup](datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java#L107-L222) ```groovy Security.addProvider(new BouncyCastleProvider()); String directoryBucketS3Uri = "s3://" + DIRECTORY_BUCKET.getBucketName() + "/"; @@ -678,12 +679,13 @@ DefaultDatasafeServices multiDfsDatasafe = DaggerDefaultDatasafeServices // bind URI that contains `directoryBucket` to directoryStorage .put(Pattern.compile(directoryBucketS3Uri + ".+"), directoryStorage) .put( - Pattern.compile("http://127.0.0.1.+"), + Pattern.compile(getDockerUri("http://127.0.0.1") + ".+"), // Dynamically creates S3 client with bucket name equal to host value new UriBasedAuthStorageService( acc -> new S3StorageService( S3ClientFactory.getClient( - acc.getOnlyHostPart().toString(), + acc.getEndpoint(), + acc.getRegion(), acc.getAccessKey(), acc.getSecretKey() ), diff --git a/SECURITY.WHITEPAPER.md b/SECURITY.WHITEPAPER.md new file mode 100644 index 000000000..a31131213 --- /dev/null +++ b/SECURITY.WHITEPAPER.md @@ -0,0 +1,169 @@ +# Datasafe Security Whitepaper + +Keystore: + +* [BCFKS](#BCFKS) - to store keys; + * [AES256_KWP](#AES256_KWP) - for keystore encryption; + * [PBKDF2](#PBKDF2) (PRF_SHA512 algorithm with 32 bytes salt and 20480 iterations) - for password key derivation; + * [HmacSHA3_512](#HmacSHA3_512) - keyStore authentication algorithm; + * [PBEWithHmacSHA256AndAES_256](#PBEWithHmacSHA256AndAES_256) - for password-like keys encryption. + +* [UBER](#UBER) - to cache keys in memory; + * [PBEWithSHAAnd3-KeyTripleDES-CBC](#PBEWithSHAAnd3-KeyTripleDES-CBC) - for keys encryption. + +Path encryption: + +* [AES-SIV](#AES-SIV) - for path encryption. + +CMS Encryption: + +* [AES256_GCM](#AES256_GCM) - for content encryption; +* [CHACHA20_POLY1305](#CHACHA20_POLY1305) - optional, preferred for big data (>350GB) encryption; +* [AES256-WRAP](#AES256-WRAP) - key derivation algorithm for private files (use secret key); +* [RSAES-PKCS1-v1_5](#RSAES-PKCS1-v1_5) - key derivation algorithm for shared files (use public key); +* [SHA256withRSA](#SHA256withRSA) - for public keys. + +## General information +Datasafe is a flexible encryption library. It uses different encryption algorithms. They can be +configured by client application. Under the hood Datasafe uses BouncyCastle library to perform encryption. + +CMS (Cryptographic Message Syntax) standard [RFC5652](https://tools.ietf.org/html/rfc5652.html) employed for storing private +files encrypted with symmetric keys as well as for sharing files with other users using asymmetric key pairs. + +Encryption algorithms are customizable by [Encryption config](datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/EncryptionConfig.java). +It combines configs which describe parameters of keystore, keys inside keystore and cms. + +## Default locations +To maintain information where user data resides, Datasafe uses concept of user profile. There are two types of user +profile: private and public + +
+ Default location within system dfs + + /profiles + /private + /username - user's private profile + /public + /username - user's public profile + /users + /public + /pubkeys - keystore consists user's public key + /inbox - location of shared with user files + /private + /keystore - keystore consists user's private key + /files/SIV - location of private files. SIV is 3 symbol path encryption algorithm identifier. +
+ +
+ Example private profile: + + { + "keystore": { + "resource": "s3://bucketname/users/username/private/keystore" + }, + "privateStorage": [ + [{"id": "DEFAULT"}, {"resource": "s3://bucketname/users/username/private/files/"}] + ], + "inboxWithFullAccess": { + "resource": "s3://bucketname/users/username/public/inbox/" + }, + "publishPublicKeysTo": { + "resource": "s3://bucketname/users/username/public/pubkeys" + }, + "associatedResources": [ + {"resource": "s3://bucketname/users/username/"} + ], + "documentVersionStorage": { + "resource": "s3://bucketname/users/username/versions/" + }, + "appVersion": "BASELINE" + } +
+ +
+ Example public profile: + + { + "publicKeys": { + "resource": "s3://bucketname/users/username/public/pubkeys" + }, + "inbox": { + "resource": "s3://bucketname/users/username/public/inbox/" + }, + "appVersion": "BASELINE" + } +
+ +## Keystore encryption +System wide password is used to open keystore and users' personal password to read users' keys. Password can be changed +without the need of changing keystore content. +By default used BCFKS keystore type to store on disk with: +* keystore encryption algorithm is AES256_KWP; + +* password based key derivation function PBKDF2 with: + * password key derivation algorithm PRF_SHA512; + * salt length 32 bytes; + * iteration count 20480; + +* keystore authentication algorithm HmacSHA3_512 (protects keystore from tampering); + +* password-like keys encryption algorithm is PBEWithHmacSHA256AndAES_256. + + UBER keystore type is used to cache keys in memory +([algorithms details](https://cryptosense.com/blog/bouncycastle-keystore-security/)). +Despite UBER keystore protected worse than BCFKS it has better performance and still a good choice to cache keys in memory. +Anyway if someone gets to memory dump of machine there is really not that much can be done to protect application. + +UBER parameters: +* keys encryption algorithm is PBEWithSHAAnd3-KeyTripleDES-CBC; +* salt length 20 bytes; +* iteration count random(1024, 2047). + +All this parameters can be changed by setting [keystore config](datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyStoreConfig.java). +For example instead of BCFKS keystore can be used UBER, instead of PBKDF2 (Password-Based Key Derivation Function) +based routines can be used Scrypt based. + +Keystore contains secret keys for private files and path encryption, public/private key pairs for sharing files. + +## Private files encryption algoritm + Datasafe files uploaded by users in private area are encrypted using symmetric key 256-bit Advanced Encryption Standard (AES). + +By default GCM (Galois counter mode) operation mode is used. It is considered best practice to use authenticated +encryption modes such as CCM or GCM in preference to CBC. It prevent attacks coming from fake or tampered cipher texts. + +Can be configured to use another encryption algorithm. Datasafe supports AES algorithms with 128, 192 and 256 key size +in operation modes CBC (Cipher-block chaining), CCM (CBC-MAC), GCM or WRAP (Key Wrap). For the cases when +large amounts of data (> 350GB) are going to be stored one should prefer CHACHA20_POLY1305 that is also available. +Encrypted data wrapped into CMS standard envelope which contents information about key ID and algorithm used for encryption. +Key derivation algorithm is AES256-WRAP (OID 2.16.840.1.101.3.4.1.45) +[RFC5652 section-6.2.3](http://tools.ietf.org/html/rfc5652#section-6.2.3) + +## Encryption used for file sharing +Datasafe uses CMS for exchanging and sharing files. Public key is used to create content-encryption key using + RSAES-PKCS1-v1_5 (OID 1.2.840.113549.1.1.1) algorithm. Public key then stored inside cms envelope with other meta +information like key alias and date. Receiver decrypts content-encryption +key with his private key. By default used RSA public keys with key size 2048 SHA256withRSA. For data encryption used +AES GCM 256 symmetric key. Files can be shared with other clients of library whose inbox location is known. + +Files can be shared simultaneously with any number of recipients. And it doesn't require repeating encryption for each recipient +due to support of multiple recipients from CMS standard. Anyone can send file to user's inbox if his inbox location is known. + +## File location encryption +Files can be stored in subdirectories. Each part of path encrypted separately using AES-SIV algorithm. +(Synthetic Initialization Vector) [RFC-845](https://tools.ietf.org/html/rfc845). + +Default implementation of symmetric path encryption is integrity preserving which means that each segment is +authenticated against its parent path hash (SHA-256 digest), so attacker can't move a/file to b/file without being detected. + +It requires 2 secret keys for path encryption/decryption (both 256 bit key size by default, block size 128 bit): +* S2V AES key used in CMAC (Cipher-based Message Authentication Code) mode +* CTR AES key used in counter mode. + +After encryption each path part concatenated to result encrypted path. + +Example: +* unencrypted file location: /path/to/file/document.pdf +* encrypted location: /cipher(path)/cipher(to)/cipher(file)/cipher(document.pdf) + +Such approach gives ability to list any directory without the need of decryption all files location. +Resulting encrypted path string is Base64-urlsafe. diff --git a/datasafe-business/README.md b/datasafe-business/README.md index 9bf6d635c..16b78946c 100644 --- a/datasafe-business/README.md +++ b/datasafe-business/README.md @@ -19,10 +19,9 @@ package de.adorsys.datasafe.business.impl.pathencryption; import dagger.Module; import dagger.Provides; import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; -import de.adorsys.datasafe.encrypiton.impl.pathencryption.*; /** - * This module is responsible for providing No-op pathencryption of document. + * This module is responsible for providing No-op path encryption of document. */ @Module public abstract class NoOpPathEncryptionModule { @@ -44,7 +43,7 @@ public abstract class NoOpPathEncryptionModule { } ``` -And create DatasafeService like this: +And create DatasafeService that has PathEncryptionModule overridden with NoOpPathEncryptionModule: ```java package de.adorsys.datasafe.business.impl.service; diff --git a/datasafe-business/pom.xml b/datasafe-business/pom.xml index 958641c8a..2638503a8 100644 --- a/datasafe-business/pom.xml +++ b/datasafe-business/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -94,6 +94,10 @@ org.bouncycastle bcprov-jdk15on + + org.cryptomator + siv-mode + com.google.code.findbugs @@ -142,11 +146,6 @@ assertj-core test - - org.apache.commons - commons-compress - test - org.junit.jupiter junit-jupiter-params @@ -177,6 +176,7 @@ h2 test + diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/cmsencryption/DefaultCMSEncryptionModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/cmsencryption/DefaultCMSEncryptionModule.java index 4dd6dccc9..ec94bfba2 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/cmsencryption/DefaultCMSEncryptionModule.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/cmsencryption/DefaultCMSEncryptionModule.java @@ -2,10 +2,13 @@ import dagger.Binds; import dagger.Module; +import dagger.Provides; import de.adorsys.datasafe.encrypiton.api.cmsencryption.CMSEncryptionService; -import de.adorsys.datasafe.encrypiton.impl.cmsencryption.CMSEncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.CmsEncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; import de.adorsys.datasafe.encrypiton.impl.cmsencryption.CMSEncryptionServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.encrypiton.impl.cmsencryption.DefaultCMSEncryptionConfig; + +import javax.annotation.Nullable; /** * This module is responsible for providing CMS encryption of document. @@ -14,10 +17,16 @@ public abstract class DefaultCMSEncryptionModule { /** - * Default CMS-encryption config using AES256_CBC. + * Default CMS-encryption config using AES256_GCM. */ - @Binds - abstract CMSEncryptionConfig defaultCMSEncryptionConfig(DefaultCMSEncryptionConfig defaultCMSEncryptionConfig); + @Provides + static CmsEncryptionConfig cmsEncryptionConfig(@Nullable EncryptionConfig config) { + if (null == config) { + return EncryptionConfig.builder().build().getCms(); + } + + return config.getCms(); + } /** * Default BouncyCastle based CMS encryption for document. diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultCredentialsModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultCredentialsModule.java index c8eb88cf2..6d132913a 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultCredentialsModule.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultCredentialsModule.java @@ -1,65 +1,24 @@ package de.adorsys.datasafe.business.impl.directory; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; import dagger.Binds; import dagger.Module; -import dagger.Provides; import de.adorsys.datasafe.directory.api.profile.dfs.BucketAccessService; import de.adorsys.datasafe.directory.api.profile.keys.DocumentKeyStoreOperations; import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; import de.adorsys.datasafe.directory.api.profile.keys.PublicKeyService; import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.keys.*; -import de.adorsys.datasafe.encrypiton.api.types.UserID; -import de.adorsys.datasafe.encrypiton.api.types.keystore.PublicKeyIDWithPublicKey; -import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; - -import javax.annotation.Nullable; -import javax.inject.Singleton; -import java.security.KeyStore; -import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.function.Supplier; +import de.adorsys.datasafe.directory.impl.profile.keys.DFSPrivateKeyServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.DFSPublicKeyServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.DocumentKeyStoreOperationsImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.StorageKeyStoreOperationsImplRuntimeDelegatable; /** * This module is responsible for credentials access - either user or dfs. */ -@Module +@Module(includes = DefaultKeystoreCacheModule.class) public abstract class DefaultCredentialsModule { - /** - * Default keystore and public key Guava-based cache. If one can't afford that some instances - * may not see that storage access credentials were removed (for some time window they will be available) - * or keystore password has changed, they can use any distributed cache available. But for most use cases - * it is ok. - */ - @Provides - @Singleton - static KeyStoreCache keyStoreCache(@Nullable OverridesRegistry registry) { - - Supplier> cacheKeystore = () -> CacheBuilder.newBuilder() - .initialCapacity(1000) - // for this interval removed storage access key/changed keystore might not be seen - .expireAfterWrite(15, TimeUnit.MINUTES) - .build(); - - // These are actually static, so we can afford longer expiry time - Supplier>> cachePubKeys = () -> CacheBuilder.newBuilder() - .initialCapacity(1000) - .expireAfterWrite(60, TimeUnit.MINUTES) - .build(); - - return new DefaultKeyStoreCacheRuntimeDelegatable( - registry, - cachePubKeys.get().asMap(), - cacheKeystore.get().asMap(), - // it will generate new instance here - cacheKeystore.get().asMap() - ); - } - /** * Default no-op service to get credentials to access filesystem. */ diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultKeystoreCacheModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultKeystoreCacheModule.java new file mode 100644 index 000000000..309a10ed8 --- /dev/null +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultKeystoreCacheModule.java @@ -0,0 +1,53 @@ +package de.adorsys.datasafe.business.impl.directory; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import dagger.Module; +import dagger.Provides; +import de.adorsys.datasafe.directory.impl.profile.keys.DefaultKeyStoreCacheRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.KeyStoreCache; +import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.encrypiton.api.types.keystore.PublicKeyIDWithPublicKey; +import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; + +import javax.annotation.Nullable; +import javax.inject.Singleton; +import java.security.KeyStore; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; + +@Module +public abstract class DefaultKeystoreCacheModule { + + /** + * Default keystore and public key Guava-based cache. If one can't afford that some instances + * may not see that storage access credentials were removed (for some time window they will be available) + * or keystore password has changed, they can use any distributed cache available. But for most use cases + * it is ok. + */ + @Provides + @Singleton + static KeyStoreCache keyStoreCache(@Nullable OverridesRegistry registry) { + + Supplier> cacheKeystore = () -> CacheBuilder.newBuilder() + .initialCapacity(1000) + // for this interval removed storage access key/changed keystore might not be seen + .expireAfterWrite(15, TimeUnit.MINUTES) + .build(); + + // These are actually static, so we can afford longer expiry time + Supplier>> cachePubKeys = () -> CacheBuilder.newBuilder() + .initialCapacity(1000) + .expireAfterWrite(60, TimeUnit.MINUTES) + .build(); + + return new DefaultKeyStoreCacheRuntimeDelegatable( + registry, + cachePubKeys.get().asMap(), + cacheKeystore.get().asMap(), + // it will generate new instance here + cacheKeystore.get().asMap() + ); + } +} diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultProfileModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultProfileModule.java index af8bee226..1494e2779 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultProfileModule.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/directory/DefaultProfileModule.java @@ -5,23 +5,18 @@ import dagger.Binds; import dagger.Module; import dagger.Provides; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileOperations; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRegistrationService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRemovalService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRetrievalService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileUpdatingService; +import de.adorsys.datasafe.directory.api.profile.operations.*; import de.adorsys.datasafe.directory.api.resource.ResourceResolver; import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; import de.adorsys.datasafe.directory.api.types.UserPublicProfile; import de.adorsys.datasafe.directory.impl.profile.operations.DFSBasedProfileStorageImplRuntimeDelegatable; import de.adorsys.datasafe.directory.impl.profile.operations.DefaultUserProfileCacheRuntimeDelegatable; import de.adorsys.datasafe.directory.impl.profile.operations.UserProfileCache; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRegistrationServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRemovalServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRetrievalServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileUpdatingServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.operations.actions.*; import de.adorsys.datasafe.directory.impl.profile.resource.ResourceResolverImplRuntimeDelegatable; import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; import javax.annotation.Nullable; @@ -34,6 +29,15 @@ @Module public abstract class DefaultProfileModule { + @Provides + static KeyCreationConfig cmsEncryptionConfig(@Nullable EncryptionConfig config) { + if (null == config) { + return EncryptionConfig.builder().build().getKeys(); + } + + return config.getKeys(); + } + /** * Default Guava-based user profile cache for public and private profile. */ @@ -70,7 +74,7 @@ static UserProfileCache userProfileCache(@Nullable OverridesRegistry registry) { abstract ProfileRegistrationService creationService(ProfileRegistrationServiceImplRuntimeDelegatable impl); /** - * Default profile removal service. + * Default profile updating service. */ @Binds abstract ProfileUpdatingService updatingService(ProfileUpdatingServiceImplRuntimeDelegatable impl); @@ -81,6 +85,12 @@ static UserProfileCache userProfileCache(@Nullable OverridesRegistry registry) { @Binds abstract ProfileRemovalService removalService(ProfileRemovalServiceImplRuntimeDelegatable impl); + /** + * Storage credentials access. + */ + @Binds + abstract ProfileStorageCredentialsService profileStorageCredentialsService(ProfileStorageCredentialsServiceImplRuntimeDelegatable impl); + /** * Resource resolver that simply prepends relevant path segment from profile based on location type. */ diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/keystore/DefaultKeyStoreModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/keystore/DefaultKeyStoreModule.java index 282c1b076..ee1e8e506 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/keystore/DefaultKeyStoreModule.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/keystore/DefaultKeyStoreModule.java @@ -2,12 +2,15 @@ import dagger.Binds; import dagger.Module; +import dagger.Provides; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; import de.adorsys.datasafe.encrypiton.api.keystore.PublicKeySerde; -import de.adorsys.datasafe.encrypiton.impl.keystore.DefaultPasswordBasedKeyConfigRuntimeDelegatable; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImplRuntimeDelegatable; import de.adorsys.datasafe.encrypiton.impl.keystore.PublicKeySerdeImplRuntimeDelegatable; -import de.adorsys.datasafe.encrypiton.impl.keystore.types.PasswordBasedKeyConfig; + +import javax.annotation.Nullable; /** * This module provides keystore management operations. @@ -15,18 +18,25 @@ @Module public abstract class DefaultKeyStoreModule { + @Provides + static KeyStoreConfig cmsEncryptionConfig(@Nullable EncryptionConfig config) { + if (null == config) { + return EncryptionConfig.builder().build().getKeystore(); + } + + return config.getKeystore(); + } + /** - * Default public key serializer using {@link java.io.ObjectInputStream} and Base64 encoding of bytes + * Default public key serializer. */ @Binds public abstract PublicKeySerde publicKeySerde(PublicKeySerdeImplRuntimeDelegatable impl); /** - * By default, BouncyCastle keystore - UBER, or one specified by system property SERVER_KEYSTORE_TYPE. + * If no external configuration provided ({@link KeyStoreConfig}), BouncyCastle BCFKS key store type is + * used by default. */ @Binds public abstract KeyStoreService keyStoreService(KeyStoreServiceImplRuntimeDelegatable impl); - - @Binds - public abstract PasswordBasedKeyConfig passwordBasedKeyConfig(DefaultPasswordBasedKeyConfigRuntimeDelegatable impl); } diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/pathencryption/DefaultPathEncryptionModule.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/pathencryption/DefaultPathEncryptionModule.java index b96ced840..edf00c01e 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/pathencryption/DefaultPathEncryptionModule.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/pathencryption/DefaultPathEncryptionModule.java @@ -5,27 +5,32 @@ import dagger.Provides; import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; import de.adorsys.datasafe.encrypiton.api.pathencryption.encryption.SymmetricPathEncryptionService; -import de.adorsys.datasafe.encrypiton.impl.pathencryption.*; +import de.adorsys.datasafe.encrypiton.impl.pathencryption.IntegrityPreservingUriEncryptionRuntimeDelegatable; +import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptionImplRuntimeDelegatable; +import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptorDecryptor; +import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathSegmentEncryptorDecryptorRuntimeDelegatable; +import org.cryptomator.siv.SivMode; /** - * This module is responsible for providing pathencryption of document. + * This module is responsible for providing path encryption of document. */ @Module public abstract class DefaultPathEncryptionModule { /** - * Default path digest that specifies AES and SHA-256 for path encryption. + * SivMode using for encryption and decryption in AES CGM SIV mode + * @return SivMode */ @Provides - static DefaultPathDigestConfig digestConfig() { - return new DefaultPathDigestConfig(); + static SivMode sivMode() { + return new SivMode(); } /** - * Default path encryption that uses Base64-urlsafe path serialization + * Default path encryption that uses Base64-urlsafe path serialization and AES-CGM-SIV mode for encryption */ @Binds - abstract PathEncryptionConfig config(DefaultPathEncryptionRuntimeDelegatable config); + abstract PathEncryptorDecryptor pathEncryptorDecryptor(PathSegmentEncryptorDecryptorRuntimeDelegatable impl); /** * By default simply use @@ -39,5 +44,5 @@ static DefaultPathDigestConfig digestConfig() { * Default symmetric path encryption that encrypts URI segment-by-segment. */ @Binds - abstract SymmetricPathEncryptionService bucketPathEncryptionService(SymmetricPathEncryptionServiceImplRuntimeDelegatable impl); + abstract SymmetricPathEncryptionService symmetricPathEncryptionService(IntegrityPreservingUriEncryptionRuntimeDelegatable impl); } diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/DefaultDatasafeServices.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/DefaultDatasafeServices.java index 197cb8a2b..f8c5e1112 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/DefaultDatasafeServices.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/DefaultDatasafeServices.java @@ -13,6 +13,7 @@ import de.adorsys.datasafe.business.impl.storage.DefaultStorageModule; import de.adorsys.datasafe.directory.api.config.DFSConfig; import de.adorsys.datasafe.directory.api.profile.operations.ProfileOperations; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; import de.adorsys.datasafe.inbox.api.InboxService; import de.adorsys.datasafe.privatestore.api.PrivateSpaceService; import de.adorsys.datasafe.storage.api.StorageService; @@ -82,6 +83,16 @@ interface Builder { @BindsInstance Builder overridesRegistry(@Nullable OverridesRegistry overridesRegistry); + /** + * All encryption stuff configuration + * - which keystore to use + * - how to encrypt keys in keystore + * - which types of keys to create + * - what kind of encryption to use when encrypting document content + */ + @BindsInstance + Builder encryption(@Nullable EncryptionConfig encryptionConfig); + /** * @return Provide NEW instance of Standard Datasafe services. All dependencies except * annotated with {@code @Singleton} will have scope analogous to Spring {code @Prototype}. diff --git a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/VersionedDatasafeServices.java b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/VersionedDatasafeServices.java index d75e4b5bc..10769d54b 100644 --- a/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/VersionedDatasafeServices.java +++ b/datasafe-business/src/main/java/de/adorsys/datasafe/business/impl/service/VersionedDatasafeServices.java @@ -14,6 +14,7 @@ import de.adorsys.datasafe.business.impl.storage.DefaultStorageModule; import de.adorsys.datasafe.directory.api.config.DFSConfig; import de.adorsys.datasafe.directory.api.profile.operations.ProfileOperations; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; import de.adorsys.datasafe.inbox.api.InboxService; import de.adorsys.datasafe.metainfo.version.api.version.VersionedPrivateSpaceService; import de.adorsys.datasafe.metainfo.version.impl.version.latest.DefaultVersionInfoServiceImpl; @@ -97,6 +98,16 @@ interface Builder { @BindsInstance Builder overridesRegistry(@Nullable OverridesRegistry overridesRegistry); + /** + * All encryption stuff configuration + * - which keystore to use + * - how to encrypt keys in keystore + * - which types of keys to create + * - what kind of encryption to use when encrypting document content + */ + @BindsInstance + Builder encryption(@Nullable EncryptionConfig encryptionConfig); + /** * @return Provide NEW instance of Software-versioned Datasafe services. All dependencies except * annotated with {@code @Singleton} will have scope analogous to Spring {code @Prototype}. diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BaseE2ETest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BaseE2ETest.java index 85ab6be95..dd27cea00 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BaseE2ETest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BaseE2ETest.java @@ -10,7 +10,7 @@ import de.adorsys.datasafe.directory.api.profile.operations.ProfileUpdatingService; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.inbox.api.actions.ListInbox; import de.adorsys.datasafe.inbox.api.actions.ReadFromInbox; import de.adorsys.datasafe.inbox.api.actions.RemoveFromInbox; @@ -30,9 +30,12 @@ import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.utils.Obfuscate; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.jupiter.api.BeforeAll; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -41,10 +44,13 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.security.Security; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.assertj.core.api.Assertions.assertThat; @Slf4j @@ -73,6 +79,11 @@ public abstract class BaseE2ETest extends WithStorageProvider { protected UserIDAuth john; protected UserIDAuth jane; + @BeforeAll + static void addBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + protected void initialize(DFSConfig dfsConfig, DefaultDatasafeServices datasafeServices) { this.dfsConfig = dfsConfig; this.listPrivate = datasafeServices.privateService(); @@ -107,20 +118,20 @@ protected void initialize(DFSConfig dfsConfig, VersionedDatasafeServices datasaf @SneakyThrows protected void writeDataToPrivate(UserIDAuth auth, String path, String data) { - OutputStream stream = writeToPrivate.write(WriteRequest.forDefaultPrivate(auth, path)); - stream.write(data.getBytes()); - stream.close(); + try (OutputStream stream = writeToPrivate.write(WriteRequest.forDefaultPrivate(auth, path))) { + stream.write(data.getBytes(UTF_8)); + } log.info("File {} of user {} saved to {}", Obfuscate.secure(data), auth, Obfuscate.secure(path, "/")); } @SneakyThrows protected void writeDataToInbox(UserIDAuth auth, String path, String data) { - OutputStream stream = writeToInbox.write( - WriteRequest.forDefaultPublic(Collections.singleton(auth.getUserID()), path) - ); + try (OutputStream stream = writeToInbox.write( + WriteRequest.forDefaultPublic(Collections.singleton(auth.getUserID()), path) + )) { - stream.write(data.getBytes()); - stream.close(); + stream.write(data.getBytes(UTF_8)); + } log.info("File {} of user {} saved to {}", Obfuscate.secure(data), auth, Obfuscate.secure(path, "/")); } @@ -129,23 +140,25 @@ protected AbsoluteLocation getFirstFileInPrivate(UserIDAuth ow } protected List> getAllFilesInPrivate(UserIDAuth owner) { - List> files = listPrivate.list( - ListRequest.forDefaultPrivate(owner, "./") - ).collect(Collectors.toList()); - - log.info("{} has {} in PRIVATE", owner.getUserID(), files); - return files; + try (Stream> ls = listPrivate.list( + ListRequest.forDefaultPrivate(owner, "./") + )) { + List> files = ls.collect(Collectors.toList()); + log.info("{} has {} in PRIVATE", owner.getUserID(), files); + return files; + } } @SneakyThrows protected String readPrivateUsingPrivateKey(UserIDAuth user, PrivateResource location) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - InputStream dataStream = readFromPrivate.read(ReadRequest.forPrivate(user, location)); - ByteStreams.copy(dataStream, outputStream); - String data = new String(outputStream.toByteArray()); - log.info("{} has {} in PRIVATE", user, Obfuscate.secure(data)); + try (InputStream dataStream = readFromPrivate.read(ReadRequest.forPrivate(user, location))) { + ByteStreams.copy(dataStream, outputStream); + } + String data = new String(outputStream.toByteArray(), UTF_8); + log.info("{} has {} in PRIVATE", user, Obfuscate.secure(data)); return data; } @@ -156,12 +169,13 @@ protected void removeFromPrivate(UserIDAuth user, PrivateResource location) { @SneakyThrows protected String readInboxUsingPrivateKey(UserIDAuth user, PrivateResource location) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - InputStream dataStream = readFromInbox.read(ReadRequest.forPrivate(user, location)); - ByteStreams.copy(dataStream, outputStream); - String data = new String(outputStream.toByteArray()); - log.info("{} has {} in INBOX", user, Obfuscate.secure(data)); + try (InputStream dataStream = readFromInbox.read(ReadRequest.forPrivate(user, location))) { + ByteStreams.copy(dataStream, outputStream); + } + String data = new String(outputStream.toByteArray(), UTF_8); + log.info("{} has {} in INBOX", user, Obfuscate.secure(data)); return data; } @@ -170,12 +184,13 @@ protected AbsoluteLocation getFirstFileInInbox(UserIDAuth inbo } protected List> getAllFilesInInbox(UserIDAuth inboxOwner) { - List> files = listInbox.list( - ListRequest.forDefaultPrivate(inboxOwner, "./") - ).collect(Collectors.toList()); - - log.info("{} has {} in INBOX", inboxOwner, files); - return files; + try (Stream> ls = listInbox.list( + ListRequest.forDefaultPrivate(inboxOwner, "./") + )) { + List> files = ls.collect(Collectors.toList()); + log.info("{} has {} in INBOX", inboxOwner, files); + return files; + } } protected void registerJohnAndJane() { @@ -185,11 +200,12 @@ protected void registerJohnAndJane() { @SneakyThrows protected void sendToInbox(UserID to, String filename, String data) { - OutputStream stream = writeToInbox.write( - WriteRequest.forDefaultPublic(Collections.singleton(to), "./" + filename) - ); - stream.write(data.getBytes()); - stream.close(); + try (OutputStream stream = writeToInbox.write( + WriteRequest.forDefaultPublic(Collections.singleton(to), "./" + filename) + )) { + stream.write(data.getBytes()); + } + log.info("File {} sent to INBOX of user {}", Obfuscate.secure(filename), to); } @@ -198,7 +214,11 @@ protected void removeFromInbox(UserIDAuth inboxOwner, PrivateResource location) } protected UserIDAuth registerUser(String userName) { - UserIDAuth auth = new UserIDAuth(new UserID(userName), new ReadKeyPassword("secure-password " + userName)); + return registerUser(userName, ReadKeyPasswordTestFactory.getForString("secure-password " + userName)); + } + + protected UserIDAuth registerUser(String userName, ReadKeyPassword readKeyPassword) { + UserIDAuth auth = new UserIDAuth(new UserID(userName), readKeyPassword); profileRegistrationService.registerUsingDefaults(auth); log.info("Created user: {}", Obfuscate.secure(userName)); return auth; @@ -209,49 +229,63 @@ protected UserIDAuth createJohnTestUser(int i) { return new UserIDAuth( userName, - new ReadKeyPassword("secure-password " + userName.getValue()) + ReadKeyPasswordTestFactory.getForString("secure-password " + userName.getValue()) ); } protected void assertPrivateSpaceList(UserIDAuth user, String root, String... expected) { - List paths = listPrivate.list(ListRequest.forDefaultPrivate(user, root)) + List paths; + try (Stream> ls = + listPrivate.list(ListRequest.forDefaultPrivate(user, root)) + ) { + paths = ls .map(it -> it.getResource().asPrivate().decryptedPath().asString()) .collect(Collectors.toList()); + } assertThat(paths).containsExactlyInAnyOrder(expected); } protected void assertInboxSpaceList(UserIDAuth user, String root, String... expected) { - List paths = listInbox.list(ListRequest.forDefaultPrivate(user, root)) + List paths; + try (Stream> ls = + listInbox.list(ListRequest.forDefaultPrivate(user, root)) + ) { + paths = ls .map(it -> it.getResource().asPrivate().decryptedPath().asString()) .collect(Collectors.toList()); + } assertThat(paths).containsExactlyInAnyOrder(expected); } @SneakyThrows protected void assertRootDirIsEmpty(WithStorageProvider.StorageDescriptor descriptor) { - assertThat(descriptor.getStorageService().get() - .list( - new AbsoluteLocation<>(BasePrivateResource.forPrivate(descriptor.getLocation())) - ) - ).isEmpty(); + try (Stream> ls = descriptor.getStorageService().get() + .list( + new AbsoluteLocation<>(BasePrivateResource.forPrivate(descriptor.getLocation()))) + ) { + assertThat(ls).isEmpty(); + } + if (descriptor.getStorageService().get() instanceof FileSystemStorageService) { // additional check that directory contains only folders that were created recursively // we do not have permission to delete these - because we removed files linked to profile // however we can't remove anything above - assertThat(Files.walk(Paths.get(descriptor.getLocation().asURI()))) + try (Stream files = Files.walk(Paths.get(descriptor.getLocation().asURI()))) { + assertThat(files) .allMatch(it -> it.toFile().isDirectory()) .extracting(Path::toUri) .extracting(it -> descriptor.getLocation().asURI().relativize(it)) .extracting(URI::toString) .containsExactlyInAnyOrder( - "", - "users/", - "profiles/", - "profiles/public/", - "profiles/private/" + "", + "users/", + "profiles/", + "profiles/public/", + "profiles/private/" ); + } } } } diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityTest.java index 61281bb27..1d2eb88f0 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityTest.java @@ -1,16 +1,20 @@ package de.adorsys.datasafe.business.impl.e2e; +import com.google.common.io.ByteStreams; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.BaseTypePasswordStringException; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; +import de.adorsys.datasafe.types.api.actions.RemoveRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; -import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; -import de.adorsys.datasafe.types.api.resource.BasePrivateResource; -import de.adorsys.datasafe.types.api.resource.ResolvedResource; -import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.global.Version; +import de.adorsys.datasafe.types.api.resource.*; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.params.ParameterizedTest; @@ -18,14 +22,21 @@ import org.testcontainers.shaded.com.google.common.collect.ImmutableSet; import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.io.OutputStream; +import java.security.UnrecoverableKeyException; +import java.util.Arrays; import java.util.List; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; import static de.adorsys.datasafe.business.impl.e2e.Const.*; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * Tests that validates basic functionality - storing data to inbox, privatespace, listing files, etc. @@ -38,21 +49,125 @@ class BasicFunctionalityTest extends BaseE2ETest { private StorageService storage; private Uri location; + + /** + * + * In this test, password is provided as char[]. + * This means after every operation, the password in cleared. + * This is tested for read/write/list/remove + * + */ + @SneakyThrows + @ParameterizedTest + @MethodSource("fsOnly") + void testDFSPasswordClearance(WithStorageProvider.StorageDescriptor descriptor) { + init(descriptor); + UserID userJohn = new UserID("john"); + assertThat(profileRetrievalService.userExists(userJohn)).isFalse(); + + String passwordString = "a password that should be nullyfied"; + char[] password = passwordString.toCharArray(); + char[] copyOfPassword = Arrays.copyOf(password, password.length); + ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + + john = registerUser(userJohn.getValue(), readKeyPassword); + assertThat(profileRetrievalService.userExists(userJohn)).isTrue(); + + String filename = "root.txt"; + String content = "affe"; + + /** + * Test clearance after write of file + */ + log.info("1. write file"); + assertThat(Arrays.equals(password, copyOfPassword)).isTrue(); + try (OutputStream os = writeToPrivate + .write(WriteRequest.forDefaultPrivate(john, filename))) { + os.write(content.getBytes()); + } + assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + + /** + * Test clearance after read of file + */ + // recover password + System.arraycopy(copyOfPassword, 0, password, 0, copyOfPassword.length); + john = new UserIDAuth(john.getUserID(), new ReadKeyPassword(password)); + log.info("password recovered"); + log.info("2. read file"); + try (InputStream is = readFromPrivate + .read(ReadRequest.forDefaultPrivate(john, filename))) { + assertThat(is).hasContent(content); + } + assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + + + /** + * Test clearance after list of files + */ + // recover password + System.arraycopy(copyOfPassword, 0, password, 0, copyOfPassword.length); + john = new UserIDAuth(john.getUserID(), new ReadKeyPassword(password)); + log.info("password recovered"); + log.info("3. list files"); + try (Stream> list = listPrivate.list(ListRequest.forDefaultPrivate(john, new Uri("/")))) { + assertEquals(list + .map(it -> it.getResource().asPrivate().decryptedPath().asString()) + .collect(Collectors.toList()) + .size(), 1); + } + assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + + + /** + * Test clearance after removal of file + */ + // recover password + System.arraycopy(copyOfPassword, 0, password, 0, copyOfPassword.length); + john = new UserIDAuth(john.getUserID(), new ReadKeyPassword(password)); + log.info("password recovered"); + log.info("4. remove file"); + removeFromPrivate.remove(RemoveRequest.forDefaultPrivate(john, new Uri(filename))); + assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + assertThrows(BaseTypePasswordStringException.class, () -> john.getReadKeyPassword().getValue()); + + + /** + * Test clearance after removal of user + */ + assertThrows(UnrecoverableKeyException.class, () -> profileRemovalService.deregister(john)); + // recover password + System.arraycopy(copyOfPassword, 0, password, 0, copyOfPassword.length); + john = new UserIDAuth(john.getUserID(), new ReadKeyPassword(password)); + log.info("password recovered"); + log.info("5. remove user"); + profileRemovalService.deregister(john); + assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + + assertThat(profileRetrievalService.userExists(userJohn)).isFalse(); + } + @ParameterizedTest @MethodSource("allStorages") void testDFSBasedProfileStorage(WithStorageProvider.StorageDescriptor descriptor) { init(descriptor); UserID userJohn = new UserID("john"); assertThat(profileRetrievalService.userExists(userJohn)).isFalse(); + john = registerUser(userJohn.getValue()); assertThat(profileRetrievalService.userExists(userJohn)).isTrue(); + assertThat(profileRetrievalService.privateProfile(john).getAppVersion().getId()) + .isEqualTo(Version.current().getId()); + assertThat(profileRetrievalService.publicProfile(john.getUserID()).getAppVersion().getId()) + .isEqualTo(Version.current().getId()); + profileRemovalService.deregister(john); assertThat(profileRetrievalService.userExists(userJohn)).isFalse(); } @SneakyThrows @ParameterizedTest - @MethodSource("allStorages") + @MethodSource("fsOnly") void testUserIsRemovedWithFiles(WithStorageProvider.StorageDescriptor descriptor) { init(descriptor); UserID userJohn = new UserID("john"); @@ -220,7 +335,9 @@ private void validateInboxStructAndEncryption(AbsoluteLocation // no path encryption for inbox: assertThat(foundResource.location().getPath()).asString().contains(SHARED_FILE); // validate encryption on high-level: - assertThat(storage.read(foundResource)).asString().doesNotContain(MESSAGE_ONE); + try (InputStream read = storage.read(foundResource)) { + assertThat(read).asString().doesNotContain(MESSAGE_ONE); + } } @SneakyThrows @@ -235,15 +352,19 @@ private void validatePrivateStructAndEncryption(AbsoluteLocation> listFiles(Predicate pattern) { - return storage.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(location))) - .filter(it -> !it.location().toASCIIString().startsWith(".")) - .filter(it -> pattern.test(it.location().toASCIIString())) - .collect(Collectors.toList()); + try (Stream> ls = storage.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(location)))) { + return ls + .filter(it -> !it.location().toASCIIString().startsWith(".")) + .filter(it -> pattern.test(it.location().toASCIIString())) + .collect(Collectors.toList()); + } } private void init(WithStorageProvider.StorageDescriptor descriptor) { diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityUtf8Test.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityUtf8Test.java index d599ed507..7d9c233c1 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityUtf8Test.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityUtf8Test.java @@ -29,7 +29,6 @@ void readPrivateContentWithUnicode(WithStorageProvider.StorageDescriptor descrip jane = registerUser("jane"); - String unicodeMessage = "привет мир!"; writeDataToPrivate(jane, PRIVATE_FILE_PATH, unicodeMessage); @@ -47,7 +46,6 @@ void readPrivateContentWithUnicodeUsingUnicodePath(WithStorageProvider.StorageDe jane = registerUser("jane"); - String unicodeMessage = "привет мир!"; writeDataToPrivate(jane, " привет/prüfungsdokument=/файл:&? с пробелом.док", unicodeMessage); diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithConcurrencyTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithConcurrencyTest.java index 0af9cc143..5554b260e 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithConcurrencyTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithConcurrencyTest.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.business.impl.e2e; import com.google.common.io.ByteStreams; +import com.google.common.io.MoreFiles; import de.adorsys.datasafe.business.impl.e2e.metrtics.TestMetricCollector; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; @@ -22,14 +23,13 @@ import org.junit.jupiter.params.provider.ValueSource; import java.io.*; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; import java.nio.file.Path; import java.security.MessageDigest; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; @@ -43,7 +43,6 @@ import static de.adorsys.datasafe.types.api.actions.ListRequest.forDefaultPrivate; import static java.util.concurrent.TimeUnit.SECONDS; -import static org.apache.commons.compress.utils.IOUtils.closeQuietly; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -61,8 +60,6 @@ class BasicFunctionalityWithConcurrencyTest extends BaseE2ETest { private static int NUMBER_OF_TEST_FILES = 5; private static int EXPECTED_NUMBER_OF_FILES_PER_USER = NUMBER_OF_TEST_FILES; - private static final String TEST_FILENAME = "/test.txt"; - @TempDir protected Path tempTestFileFolder; protected StorageService storage; @@ -100,7 +97,7 @@ class BasicFunctionalityWithConcurrencyTest extends BaseE2ETest { void writeToPrivateListPrivateInDifferentThreads(WithStorageProvider.StorageDescriptor descriptor, int size, int poolSize) { init(descriptor); - String testFile = tempTestFileFolder.toString() + TEST_FILENAME; + Path testFile = tempTestFileFolder.resolve(UUID.randomUUID().toString()); generateTestFile(testFile, size); ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(poolSize); @@ -109,7 +106,8 @@ void writeToPrivateListPrivateInDifferentThreads(WithStorageProvider.StorageDesc CountDownLatch finishHoldingLatch = new CountDownLatch(NUMBER_OF_TEST_USERS * NUMBER_OF_TEST_FILES); String checksumOfOriginTestFile; - try(FileInputStream input = new FileInputStream(new File(testFile))) { + log.trace("*** get checksum of {} ***", testFile); + try (FileInputStream input = new FileInputStream(testFile.toFile())) { checksumOfOriginTestFile = checksum(input); } @@ -133,6 +131,7 @@ void writeToPrivateListPrivateInDifferentThreads(WithStorageProvider.StorageDesc log.trace("*** Main thread waiting for all threads ***"); finishHoldingLatch.await(TIMEOUT_S, SECONDS); + executor.awaitTermination(TIMEOUT_S, SECONDS); executor.shutdown(); log.trace("*** All threads are finished work ***"); @@ -153,15 +152,18 @@ void writeToPrivateListPrivateInDifferentThreads(WithStorageProvider.StorageDesc metricCollector.setStorageType(storage.getClass().getSimpleName()); metricCollector.setNumberOfThreads(poolSize); metricCollector.writeToJSON();//json files in target folder + + deleteTestFile(testFile); } private List> listAllPrivateFiles(UserIDAuth user) { - return listPrivate.list( - forDefaultPrivate(user, "./")).collect(Collectors.toList()); + try (Stream> lsPrivate = listPrivate.list(forDefaultPrivate(user, "./"))) { + return lsPrivate.collect(Collectors.toList()); + } } private void createFileForUserParallelly(ThreadPoolExecutor executor, CountDownLatch holdingLatch, - CountDownLatch finishHoldingLatch, String testFilePath, + CountDownLatch finishHoldingLatch, Path testFilePath, UserIDAuth user) { AtomicInteger counter = new AtomicInteger(); String remotePath = "folder2"; @@ -182,8 +184,8 @@ private void createFileForUserParallelly(ThreadPoolExecutor executor, CountDownL ); metricCollector.addSaveRecord( - user.getUserID().getValue(), - durationOfSavingFile + user.getUserID().getValue(), + durationOfSavingFile ); log.debug("Save file in {} ms", durationOfSavingFile); @@ -197,11 +199,11 @@ private void createFileForUserParallelly(ThreadPoolExecutor executor, CountDownL private String calculateDecryptedContentChecksum(UserIDAuth user, AbsoluteLocation item) { try { - InputStream decryptedFileStream = readFromPrivate.read( - ReadRequest.forPrivate(user, item.getResource().asPrivate())); - String checksumOfDecryptedTestFile = checksum(decryptedFileStream); - decryptedFileStream.close(); - return checksumOfDecryptedTestFile; + try (InputStream decryptedFileStream = readFromPrivate.read( + ReadRequest.forPrivate(user, item.getResource().asPrivate()))) { + String checksumOfDecryptedTestFile = checksum(decryptedFileStream); + return checksumOfDecryptedTestFile; + } } catch (IOException e) { fail(e); } @@ -220,18 +222,39 @@ private String checksum(InputStream input) { return Hex.toHexString(digest.digest()); } - private static void generateTestFile(String testFile, int testFileSizeInBytes) { - try (RandomAccessFile originTestFile = new RandomAccessFile(testFile, "rw")) { - MappedByteBuffer out = originTestFile.getChannel() - .map(FileChannel.MapMode.READ_WRITE, 0, testFileSizeInBytes); + private static void generateTestFile(Path testFile, int testFileSizeInBytes) { + log.trace("*** generate {} ***", testFile); + File directory = testFile.toFile().getParentFile(); + // in previous version file handles were not closed directories were not removed + // and following tests were able to reuse directory. Now file handles are closed + // and all files including directory are deleted. + if (!directory.exists()) { + log.trace("{} does not exist. will be created now", directory); + directory.mkdir(); + } + try (OutputStream os = MoreFiles.asByteSink(testFile).openBufferedStream()) { for (int i = 0; i < testFileSizeInBytes; i++) { - out.put((byte) 'x'); + os.write((byte) 'x'); } } catch (IOException e) { - log.error(e.getMessage()); + log.error("generateTestFile: {}", e.getMessage()); } + } + private static void deleteTestFile(Path testFile) { + log.trace("*** delete {} ***", testFile); + File file = testFile.toFile(); + if (file.exists()) { + boolean ok = file.delete(); + if (!ok) { + log.error("can not delete {}", testFile); + } else { + log.debug("deleted testfile {}", testFile); + } + } else { + log.error("testfile did not exist: {}", testFile); + } } @ValueSource @@ -269,18 +292,14 @@ private void init(WithStorageProvider.StorageDescriptor descriptor) { this.storage = descriptor.getStorageService().get(); } - protected void writeDataToFileForUser(UserIDAuth john, String filePathForWriting, String filePathForReading, + protected void writeDataToFileForUser(UserIDAuth john, String filePathForWriting, Path filePathForReading, CountDownLatch latch) { - try { - OutputStream write = writeToPrivate.write(WriteRequest.forDefaultPrivate(john, filePathForWriting)); - - FileInputStream fis = new FileInputStream(filePathForReading); + try (OutputStream write = writeToPrivate.write(WriteRequest.forDefaultPrivate(john, filePathForWriting)); + FileInputStream fis = new FileInputStream(filePathForReading.toFile()) + ) { ByteStreams.copy(fis, write); - - closeQuietly(fis); - closeQuietly(write); } catch (IOException e) { - log.error(e.getMessage(), e); + log.error("writeDataToFileForUser: {}", e.getMessage(), e); } latch.countDown(); diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithPasswordChangeTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithPasswordChangeTest.java index d203044e8..aa65d6006 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithPasswordChangeTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/BasicFunctionalityWithPasswordChangeTest.java @@ -3,13 +3,14 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.teststorage.WithStorageProvider; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -37,14 +38,14 @@ void testUserIsRemovedWithFiles(WithStorageProvider.StorageDescriptor descriptor writeDataToPrivate(john, "root.txt", MESSAGE_ONE); writeDataToPrivate(john, "some/some.txt", MESSAGE_ONE); - john = checkUpdatedCredsWorkAndOldDont(john, new ReadKeyPassword("Some other"), auth -> { + john = checkUpdatedCredsWorkAndOldDont(john, ReadKeyPasswordTestFactory.getForString("Some other"), auth -> { writeDataToPrivate(auth, "some/other/other.txt", MESSAGE_ONE); writeDataToPrivate(auth, "different/data.txt", MESSAGE_ONE); }); john = checkUpdatedCredsWorkAndOldDont( john, - new ReadKeyPassword("Some another"), + ReadKeyPasswordTestFactory.getForString("Some another"), auth -> profileRemovalService.deregister(auth) ); @@ -67,7 +68,7 @@ void testMultipleRecipientsSharing(WithStorageProvider.StorageDescriptor descrip Stream.of(john, jane, jamie).forEach( it -> checkUpdatedCredsWorkAndOldDont( it, - new ReadKeyPassword(UUID.randomUUID().toString()), + ReadKeyPasswordTestFactory.getForString(UUID.randomUUID().toString()), auth -> assertThat(readFromInbox.read(ReadRequest.forDefaultPrivate(auth, multiShareFile))) .hasContent(MESSAGE_ONE)) ); @@ -85,7 +86,7 @@ void testWriteToPrivateListPrivateReadPrivateAndSendToAndReadFromInbox( jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd1"), + ReadKeyPasswordTestFactory.getForString("Another passwd1"), this::getFirstFileInPrivate ); @@ -93,7 +94,7 @@ void testWriteToPrivateListPrivateReadPrivateAndSendToAndReadFromInbox( jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd2"), + ReadKeyPasswordTestFactory.getForString("Another passwd2"), auth -> readPrivateUsingPrivateKey(auth, privateJane.getResource().asPrivate()) ); @@ -105,7 +106,7 @@ void testWriteToPrivateListPrivateReadPrivateAndSendToAndReadFromInbox( john = checkUpdatedCredsWorkAndOldDont( john, - new ReadKeyPassword("Another passwd4"), + ReadKeyPasswordTestFactory.getForString("Another passwd4"), auth -> readInboxUsingPrivateKey(auth, inboxJohn.getResource().asPrivate()) ); @@ -131,13 +132,13 @@ void listingValidation(WithStorageProvider.StorageDescriptor descriptor) { jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd1"), + ReadKeyPasswordTestFactory.getForString("Another passwd1"), auth -> writeDataToPrivate(auth, "level1/level2/file", MESSAGE_ONE) ); jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd2"), + ReadKeyPasswordTestFactory.getForString("Another passwd2"), auth -> { assertPrivateSpaceList(auth, "", "root.file", "level1/file", "level1/level2/file"); assertPrivateSpaceList(auth, "./", "root.file", "level1/file", "level1/level2/file"); @@ -147,7 +148,7 @@ void listingValidation(WithStorageProvider.StorageDescriptor descriptor) { jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd3"), + ReadKeyPasswordTestFactory.getForString("Another passwd3"), auth -> { assertPrivateSpaceList(auth, "root.file", "root.file"); assertPrivateSpaceList(auth, "./root.file", "root.file"); @@ -156,7 +157,7 @@ void listingValidation(WithStorageProvider.StorageDescriptor descriptor) { jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd4"), + ReadKeyPasswordTestFactory.getForString("Another passwd4"), auth -> { assertPrivateSpaceList(auth, "level1", "level1/file", "level1/level2/file"); assertPrivateSpaceList(auth, "level1/", "level1/file", "level1/level2/file"); @@ -165,7 +166,7 @@ void listingValidation(WithStorageProvider.StorageDescriptor descriptor) { jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd5"), + ReadKeyPasswordTestFactory.getForString("Another passwd5"), auth -> { assertPrivateSpaceList(auth, "./level1", "level1/file", "level1/level2/file"); assertPrivateSpaceList(auth, "./level1/", "level1/file", "level1/level2/file"); @@ -174,7 +175,7 @@ void listingValidation(WithStorageProvider.StorageDescriptor descriptor) { jane = checkUpdatedCredsWorkAndOldDont( jane, - new ReadKeyPassword("Another passwd6"), + ReadKeyPasswordTestFactory.getForString("Another passwd6"), auth -> { assertPrivateSpaceList(auth, "./level1/level2", "level1/level2/file"); assertPrivateSpaceList(auth, "./level1/level2/", "level1/level2/file"); diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DataTamperingResistanceTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DataTamperingResistanceTest.java new file mode 100644 index 000000000..9fcedfe97 --- /dev/null +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DataTamperingResistanceTest.java @@ -0,0 +1,181 @@ +package de.adorsys.datasafe.business.impl.e2e; + +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.types.api.actions.ListRequest; +import de.adorsys.datasafe.types.api.actions.ReadRequest; +import de.adorsys.datasafe.types.api.actions.WriteRequest; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.crypto.io.InvalidCipherTextIOException; +import org.cryptomator.siv.UnauthenticCiphertextException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.testcontainers.shaded.com.google.common.collect.ImmutableSet; +import org.testcontainers.shaded.com.google.common.io.ByteStreams; + +import javax.crypto.AEADBadTagException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.Collections; +import java.util.Set; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Stream; + +import static org.assertj.core.api.Java6Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * This test validates that unauthorized filename and encrypted document content is prohibited - so + * attacker is unable to modify encrypted text without being detected. + */ +@Slf4j +class DataTamperingResistanceTest extends BaseE2ETest { + + private static final Set NOT_TO_REPLACE_IN_PATH = ImmutableSet.of('=', '/'); + + // Should be long enough to dominate compared to padding + private static final String FILE_TEXT = + "Tampering test!!Tampering test!!Tampering test!!Tampering test!!Tampering test!!"; + // Should be long enough to dominate compared to padding + private static final String FILENAME = + "my_file_with_quite_a__long_na.me_na.me_na.me_na.me_na.me_na.me_na.me_na.me"; + // Should be long enough to dominate compared to padding + private static final String DIR_AND_FILENAME = + "my_directory_with_quite_a__long_na.me_na.me_na.me_na.me_na.me_na.me_na.me_na.me/my_file"; + // Should be long enough to dominate compared to padding + private static final String DIR_DIR_AND_FILENAME = + "my_directory_with_quite_a__long_na.me_na.me_na.me_na.me_na.me_na.me_na.me_na.me/deeper/my_file"; + + @BeforeEach + void prepare() { + init(); + registerJohnAndJane(); + } + + @Test + @SneakyThrows + void testPrivateDocumentContentTamperResistance() { + try (OutputStream os = writeToPrivate.write(WriteRequest.forDefaultPrivate(jane, FILENAME))) { + os.write(FILE_TEXT.getBytes(StandardCharsets.UTF_8)); + } + + AbsoluteLocation privateFile = getFirstFileInPrivate(jane); + tamperFileByReplacingOneByteOfEncryptedMessage(privateFile); + + try (InputStream is = readFromPrivate.read(ReadRequest.forDefaultPrivate(jane, FILENAME))) { + assertThatThrownBy( + () -> ByteStreams.copy(is, ByteStreams.nullOutputStream()) + ).isInstanceOf(InvalidCipherTextIOException.class).hasCauseInstanceOf(AEADBadTagException.class); + } + } + + @Test + @SneakyThrows + void testInboxDocumentContentTamperResistance() { + try (OutputStream os = writeToInbox.write( + WriteRequest.forDefaultPublic(Collections.singleton(john.getUserID()), FILENAME)) + ) { + os.write(FILE_TEXT.getBytes(StandardCharsets.UTF_8)); + } + + AbsoluteLocation inboxFile = getFirstFileInInbox(john); + tamperFileByReplacingOneByteOfEncryptedMessage(inboxFile); + + try (InputStream is = readFromInbox.read(ReadRequest.forDefaultPrivate(john, FILENAME))) { + assertThatThrownBy( + () -> ByteStreams.copy(is, ByteStreams.nullOutputStream()) + ).isInstanceOf(InvalidCipherTextIOException.class).hasCauseInstanceOf(AEADBadTagException.class); + } + } + + @ParameterizedTest(name = "{arguments}") + @ValueSource(strings = {FILENAME, DIR_AND_FILENAME, DIR_DIR_AND_FILENAME}) + @SneakyThrows + void testPrivateDocumentPathTamperResistance(String path) { + try (OutputStream os = writeToPrivate.write(WriteRequest.forDefaultPrivate(jane, path))) { + os.write(FILE_TEXT.getBytes(StandardCharsets.UTF_8)); + } + + AbsoluteLocation privateFile = getFirstFileInPrivate(jane); + tamperFilenameByReplacingOneCharOfPath(privateFile, path); + + assertThrows( + UnauthenticCiphertextException.class, + () -> { + try (Stream> lsPrivate = listPrivate + .list(ListRequest.forDefaultPrivate(jane, "")) + ) { + lsPrivate.forEach(it -> log.info("{}", it.location())); // consume ls + } + } + ); + } + + private void init() { + StorageDescriptor descriptor = fs(); + DefaultDatasafeServices datasafeServices = DatasafeServicesProvider + .defaultDatasafeServices(descriptor.getStorageService().get(), descriptor.getLocation()); + initialize(DatasafeServicesProvider.dfsConfig(descriptor.getLocation()), datasafeServices); + } + + @SneakyThrows + private void tamperFilenameByReplacingOneCharOfPath(AbsoluteLocation privateFile, + String origPath) { + // tamper the file by replacing 1 byte in it + Path physicalFile = Paths.get(privateFile.getResource().location().asURI()); + byte[] privateBytes = Files.readAllBytes(physicalFile); + String pathAsString = physicalFile.toAbsolutePath().toString(); + + // this should 'approximately' be inside encrypted text + int characterToTamper = pathAsString.length() - origPath.length() / 2; + while (NOT_TO_REPLACE_IN_PATH.contains(pathAsString.charAt(characterToTamper))) { + characterToTamper--; + } + + log.info("About to tamper path `{}`", pathAsString); + pathAsString = pathAsString.substring(0, characterToTamper - 1) + + randomChar(pathAsString.charAt(characterToTamper)) + + pathAsString.substring(characterToTamper); + log.info("Tampered path as `{}`", pathAsString); + Files.createDirectories(Paths.get(pathAsString).getParent()); + Files.write(Paths.get(pathAsString), privateBytes, StandardOpenOption.CREATE); + } + + @SneakyThrows + private void tamperFileByReplacingOneByteOfEncryptedMessage(AbsoluteLocation privateFile) { + // tamper the file by replacing 1 byte in it + Path physicalFile = Paths.get(privateFile.getResource().location().asURI()); + byte[] privateBytes = Files.readAllBytes(physicalFile); + // this should 'approximately' be inside encrypted text + int somewhereInEncText = privateBytes.length - FILE_TEXT.length() / 2; + privateBytes[somewhereInEncText] = randomByte(privateBytes[somewhereInEncText]); + Files.write(physicalFile, privateBytes, StandardOpenOption.TRUNCATE_EXISTING); + } + + private char randomChar(char notEqualTo) { + char result; + do { + result = (char) (ThreadLocalRandom.current().nextInt(26) + 'a'); + } while (result == notEqualTo); + + return result; + } + + private byte randomByte(byte notEqualTo) { + byte[] resultArray = new byte[1]; + do { + ThreadLocalRandom.current().nextBytes(resultArray); + } while (notEqualTo == resultArray[0]); + + return resultArray[0]; + } +} diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/Datasafe043CompatTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/Datasafe043CompatTest.java deleted file mode 100644 index cb8b8b971..000000000 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/Datasafe043CompatTest.java +++ /dev/null @@ -1,138 +0,0 @@ -package de.adorsys.datasafe.business.impl.e2e; - -import com.google.common.io.ByteStreams; -import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; -import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; -import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; -import de.adorsys.datasafe.encrypiton.api.types.UserID; -import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; -import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; -import de.adorsys.datasafe.types.api.actions.ReadRequest; -import de.adorsys.datasafe.types.api.actions.WriteRequest; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; -import de.adorsys.datasafe.types.api.shared.Dirs; -import de.adorsys.datasafe.types.api.shared.Resources; -import lombok.SneakyThrows; -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.security.Security; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * This test ensures that Datasafe can use setup and folder structure from version 0.4.3 (backward compatibility) - */ -class Datasafe043CompatTest extends BaseMockitoTest { - - private static final String BASE_FIXTURE = "compat-0.4.3"; - private static final String OLD_ROOT = - "file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/"; - - private UserIDAuth john = new UserIDAuth(new UserID("john"), new ReadKeyPassword("secure-password john")); - private UserIDAuth jane = new UserIDAuth(new UserID("jane"), new ReadKeyPassword("secure-password jane")); - - private DefaultDatasafeServices datasafe; - private Path dfsRoot; - - @SneakyThrows - @BeforeEach - void extractFixtureAndPrepare(@TempDir Path tempDir) { - Security.addProvider(new BouncyCastleProvider()); - dfsRoot = tempDir; - - Resources.copyResourceDir(BASE_FIXTURE, tempDir); - // Replace original root with new root: - replace(tempDir.resolve("profiles/private/jane"), OLD_ROOT, tempDir.toUri().toString()); - replace(tempDir.resolve("profiles/private/john"), OLD_ROOT, tempDir.toUri().toString()); - replace(tempDir.resolve("profiles/public/jane"), OLD_ROOT, tempDir.toUri().toString()); - replace(tempDir.resolve("profiles/public/john"), OLD_ROOT, tempDir.toUri().toString()); - - datasafe = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(tempDir.toUri(), "PAZZWORD")) - .storage(new FileSystemStorageService(tempDir)) - .build(); - } - - @Test - @SneakyThrows - void writeNewAndReadFileFromOldVersion() { - String oldContent = "Hello here 1"; - String newContent = "NEW Hello here 1"; - String newPrivatePath = "folder1/secret-NEW.txt"; - String oldPrivatePath = "folder1/secret.txt"; - String newInboxPath = "hello-NEW.txt"; - String oldInboxPath = "hello.txt"; - - // write new document to 'old' folder - try (OutputStream os = datasafe.privateService().write(WriteRequest.forDefaultPrivate(jane, newPrivatePath))) { - os.write(newContent.getBytes()); - } - - // read file from private and share this file with John - try (InputStream is = datasafe.privateService().read(ReadRequest.forDefaultPrivate(jane, newPrivatePath)); - OutputStream os = datasafe.inboxService().write(WriteRequest.forDefaultPublic( - Collections.singleton(john.getUserID()), - newInboxPath)) - ) { - ByteStreams.copy(is, os); - } - - // validate old Jane's private file - assertThat(datasafe.privateService().read(ReadRequest.forDefaultPrivate(jane, oldPrivatePath))) - .hasContent(oldContent); - // validate new Jane's private file - assertThat(datasafe.privateService().read(ReadRequest.forDefaultPrivate(jane, newPrivatePath))) - .hasContent(newContent); - - // validate old Johns's inbox file - assertThat(datasafe.inboxService().read(ReadRequest.forDefaultPrivate(john, oldInboxPath))) - .hasContent(oldContent); - // validate new Johns's inbox file - assertThat(datasafe.inboxService().read(ReadRequest.forDefaultPrivate(john, newInboxPath))) - .hasContent(newContent); - - // validate folder structure - assertThat(Dirs.walk(dfsRoot, 1)).containsExactlyInAnyOrder("profiles", "users"); - assertThat(Dirs.walk(dfsRoot.resolve("profiles"))) - .containsExactlyInAnyOrder( - "public", - "private", - "public/john", - "public/jane", - "private/john", - "private/jane" - ); - assertThat(Dirs.walk(dfsRoot.resolve("users"), 3)) - .containsExactlyInAnyOrder( - "john", - "john/public", - "john/public/inbox", - "john/public/pubkeys", - "john/private", - "john/private/keystore", - "jane", - "jane/public", - "jane/public/pubkeys", - "jane/private", - "jane/private/keystore", - "jane/private/files" - ); - } - - @SneakyThrows - private void replace(Path file, String what, String with) { - List baseContent = Files.readAllLines(file); - Files.write(file, baseContent.stream().map(it -> it.replace(what, with)).collect(Collectors.toList())); - } -} diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DatasafeServicesProvider.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DatasafeServicesProvider.java index cd02aef40..7db231959 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DatasafeServicesProvider.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/DatasafeServicesProvider.java @@ -6,9 +6,13 @@ import de.adorsys.datasafe.business.impl.service.VersionedDatasafeServices; import de.adorsys.datasafe.directory.api.config.DFSConfig; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.types.api.resource.Uri; import lombok.experimental.UtilityClass; +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import java.security.Security; /** * Factory to get Datasafe services. @@ -16,9 +20,10 @@ @UtilityClass public class DatasafeServicesProvider { - public static final String STORE_PAZZWORD = "PAZZWORD"; + public static final ReadStorePassword STORE_PAZZWORD = new ReadStorePassword("PAZZWORD"); public static DefaultDatasafeServices defaultDatasafeServices(StorageService storageService, Uri systemRoot) { + Security.addProvider(new BouncyCastleProvider()); return DaggerDefaultDatasafeServices .builder() .config(dfsConfig(systemRoot)) @@ -27,6 +32,7 @@ public static DefaultDatasafeServices defaultDatasafeServices(StorageService sto } public static VersionedDatasafeServices versionedDatasafeServices(StorageService storageService, Uri systemRoot) { + Security.addProvider(new BouncyCastleProvider()); return DaggerVersionedDatasafeServices .builder() .config(dfsConfig(systemRoot)) diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeyStoreTypeCompareTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeyStoreTypeCompareTest.java new file mode 100644 index 000000000..da6d78d3a --- /dev/null +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeyStoreTypeCompareTest.java @@ -0,0 +1,95 @@ +package de.adorsys.datasafe.business.impl.e2e; + +import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; +import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; +import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.actions.ReadRequest; +import de.adorsys.datasafe.types.api.actions.WriteRequest; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.testcontainers.shaded.org.apache.commons.lang.time.StopWatch; + +import java.io.InputStream; +import java.io.OutputStream; + +import static org.assertj.core.api.Assertions.assertThat; + +@Slf4j +public class KeyStoreTypeCompareTest extends BaseE2ETest { + private final static int NUMBER_WRITES = 100; + private final static int NUMBER_READS = 100; + + @SneakyThrows + @ParameterizedTest + @MethodSource("fsOnly") + void compareKeyStoreTypes(WithStorageProvider.StorageDescriptor descriptor) { + long tUBER = test(descriptor, "johnUber", "UBER"); + long tBCFKS = test(descriptor, "johnBCFKS", "BCFKS"); + log.info("UBER test took: {}", tUBER); + log.info("BCFKS test took: {}", tBCFKS); + // We make sure, that with BCFKS it does not take longer than three times of UBER + Assertions.assertTrue(tUBER * 3 > tBCFKS); + } + + + @SneakyThrows + long test(WithStorageProvider.StorageDescriptor descriptor, String userName, String keystoreType) { + init(descriptor, keystoreType); + UserID user = new UserID(userName); + assertThat(profileRetrievalService.userExists(user)).isFalse(); + john = registerUser(user.getValue(), ReadKeyPasswordTestFactory.getForString("john")); + assertThat(profileRetrievalService.userExists(user)).isTrue(); + + String filename = "root.txt"; + String content = "affe"; + + StopWatch timer = new StopWatch(); + timer.start(); + + for (int i = 0; i < NUMBER_WRITES; i++) { + log.debug("write file for the {} time", i); + try (OutputStream os = writeToPrivate + .write(WriteRequest.forDefaultPrivate(john, filename))) { + os.write(content.getBytes()); + } + } + + for (int i = 0; i < NUMBER_READS; i++) { + log.debug("read file for the {} time", i); + try (InputStream is = readFromPrivate + .read(ReadRequest.forDefaultPrivate(john, filename))) { + assertThat(is).hasContent(content); + } + } + + timer.stop(); + + long diff = timer.getTime(); + + log.info("TIME TOOK {} MILLISECS", diff); + return diff; + } + + private void init(StorageDescriptor descriptor, String keystoreType) { + DefaultDatasafeServices datasafeServices = DaggerDefaultDatasafeServices.builder() + .config(new DefaultDFSConfig(descriptor.getLocation(), new ReadStorePassword("PAZZWORT"))) + .encryption( + EncryptionConfig.builder() + .keystore(KeyStoreConfig.builder().type(keystoreType).build()) + .build() + ) + .storage(descriptor.getStorageService().get()) + .build(); + initialize(DatasafeServicesProvider.dfsConfig(descriptor.getLocation()), datasafeServices); + } +} + diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeystoreE2ETest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeystoreE2ETest.java index bb8e7edca..19a09124d 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeystoreE2ETest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/KeystoreE2ETest.java @@ -2,13 +2,15 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadStorePassword; -import de.adorsys.datasafe.encrypiton.impl.keystore.DefaultPasswordBasedKeyConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImpl; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.types.api.resource.Uri; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -18,13 +20,14 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.security.KeyStore; +import java.security.Security; import java.util.Enumeration; import java.util.HashSet; import java.util.Set; import static de.adorsys.datasafe.business.impl.e2e.DatasafeServicesProvider.STORE_PAZZWORD; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.DOCUMENT_KEY_ID_PREFIX; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.PATH_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX_CTR; import static org.assertj.core.api.Assertions.assertThat; /** @@ -34,6 +37,11 @@ class KeystoreE2ETest extends BaseMockitoTest { private DefaultDatasafeServices datasafeServices; + @BeforeAll + static void addBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + @BeforeEach void init(@TempDir Path rootPath) { datasafeServices = DatasafeServicesProvider.defaultDatasafeServices( @@ -45,20 +53,20 @@ void init(@TempDir Path rootPath) { @Test @SneakyThrows void testDefaultKeystoreHasProperKeys() { - UserIDAuth auth = new UserIDAuth("user", "pass"); + UserIDAuth auth = new UserIDAuth("user", ReadKeyPasswordTestFactory.getForString("pass")); datasafeServices.userProfile().registerUsingDefaults(auth); URI keystorePath = datasafeServices.userProfile().privateProfile(auth) .getKeystore().location().asURI(); - KeyStoreServiceImpl keyStoreService = new KeyStoreServiceImpl(new DefaultPasswordBasedKeyConfig()); + KeyStoreServiceImpl keyStoreService = new KeyStoreServiceImpl(KeyStoreConfig.builder().build()); KeyStore keyStore = keyStoreService.deserialize( Files.readAllBytes(Paths.get(keystorePath)), "ID", - new ReadStorePassword(STORE_PAZZWORD) + STORE_PAZZWORD ); assertThat(aliases(keyStore)).filteredOn(it -> it.matches(PATH_KEY_ID_PREFIX + ".+")).hasSize(1); - assertThat(aliases(keyStore)).filteredOn(it -> it.matches(DOCUMENT_KEY_ID_PREFIX + ".+")).hasSize(1); + assertThat(aliases(keyStore)).filteredOn(it -> it.matches(PATH_KEY_ID_PREFIX_CTR + ".+")).hasSize(1); } @SneakyThrows diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java index 1e4e70efb..a6768158a 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java @@ -15,11 +15,11 @@ import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; import de.adorsys.datasafe.directory.impl.profile.dfs.RegexAccessServiceWithStorageCredentialsImpl; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.RegexDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.api.UriBasedAuthStorageService; -import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import de.adorsys.datasafe.storage.impl.s3.S3ClientFactory; import de.adorsys.datasafe.storage.impl.s3.S3StorageService; import de.adorsys.datasafe.types.api.actions.ListRequest; @@ -29,9 +29,12 @@ import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; import de.adorsys.datasafe.types.api.resource.*; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import lombok.SneakyThrows; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.io.Streams; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -43,6 +46,7 @@ import java.io.InputStream; import java.io.OutputStream; +import java.security.Security; import java.security.UnrecoverableKeyException; import java.util.Collections; import java.util.HashMap; @@ -53,6 +57,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static de.adorsys.datasafe.types.api.shared.DockerUtil.getDockerUri; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -64,7 +69,8 @@ @Slf4j class MultiDFSFunctionalityTest extends BaseMockitoTest { - private static final String LOCALHOST = "http://127.0.0.1"; + private static final String REGION = "eu-central-1"; + private static final String LOCALHOST = getDockerUri("http://127.0.0.1"); private static final String CREDENTIALS = "credentialsbucket"; private static final String KEYSTORE = "keystorebucket"; @@ -83,6 +89,7 @@ class MultiDFSFunctionalityTest extends BaseMockitoTest { @BeforeAll static void initDistributedMinios() { + Security.addProvider(new BouncyCastleProvider()); // Create all required minio-backed S3 buckets: Stream.of(CREDENTIALS, KEYSTORE, FILES_ONE, FILES_TWO, INBOX).forEach(it -> { GenericContainer minio = new GenericContainer("minio/minio") @@ -98,13 +105,15 @@ static void initDistributedMinios() { log.info("Minio `{}` with endpoint `{}` and keys `{}`/`{}` has started", it, endpoint, accessKey(it), secretKey(it)); - endpointsByHost.put(it, endpoint + it + "/"); + // http://localhost:1234/eu-central-1/bucket/ + endpointsByHost.put(it, endpoint + REGION + "/" + it + "/"); endpointsByHostNoBucket.put(it, endpoint); AmazonS3 client = S3ClientFactory.getClient( - endpoint, - accessKey(it), - secretKey(it) + endpoint, + REGION, + accessKey(it), + secretKey(it) ); client.createBucket(it); @@ -121,6 +130,7 @@ void initDatasafe() { StorageService directoryStorage = new S3StorageService( S3ClientFactory.getClient( endpointsByHostNoBucket.get(CREDENTIALS), + REGION, accessKey(CREDENTIALS), secretKey(CREDENTIALS) ), @@ -130,7 +140,7 @@ void initDatasafe() { OverridesRegistry registry = new BaseOverridesRegistry(); this.datasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(endpointsByHost.get(CREDENTIALS), "PAZZWORT")) + .config(new DefaultDFSConfig(endpointsByHost.get(CREDENTIALS), new ReadStorePassword("PAZZWORT"))) .overridesRegistry(registry) .storage(new RegexDelegatingStorage( ImmutableMap.builder() @@ -140,7 +150,8 @@ void initDatasafe() { new UriBasedAuthStorageService( acc -> new S3StorageService( S3ClientFactory.getClient( - acc.getOnlyHostPart().toString(), + acc.getEndpoint(), + acc.getRegion(), acc.getAccessKey(), acc.getSecretKey() ), @@ -158,7 +169,7 @@ void initDatasafe() { @Test void testWriteToPrivateListPrivateReadPrivate() { - UserIDAuth john = new UserIDAuth("john", "my-passwd"); + UserIDAuth john = new UserIDAuth("john", ReadKeyPasswordTestFactory.getForString("my-passwd")); registerUser(john); validateBasicOperationsAndContent(john); @@ -168,14 +179,14 @@ void testWriteToPrivateListPrivateReadPrivate() { @Test void testWriteToPrivateListPrivateReadPrivateWithPasswordChange() { - UserIDAuth john = new UserIDAuth("john", "my-passwd"); + UserIDAuth john = new UserIDAuth("john", ReadKeyPasswordTestFactory.getForString("my-passwd")); registerUser(john); validateBasicOperationsAndContent(john); - ReadKeyPassword newPasswd = new ReadKeyPassword("ANOTHER"); + ReadKeyPassword newPasswd = ReadKeyPasswordTestFactory.getForString("ANOTHER"); datasafeServices.userProfile().updateReadKeyPassword(john, newPasswd); - UserIDAuth newJohn = new UserIDAuth("john", newPasswd.getValue()); + UserIDAuth newJohn = new UserIDAuth("john", newPasswd); assertThrows(UnrecoverableKeyException.class, () -> doBasicOperations(john)); validateBasicOperationsAndContent(newJohn); @@ -205,10 +216,10 @@ private void validateBasicOperationsAndContent(UserIDAuth john) { assertThat(listInBucket(FILES_TWO)).hasSize(1); assertThat(listInBucket(KEYSTORE)).hasSize(1); assertThat(listInBucket(CREDENTIALS)).containsExactlyInAnyOrder( - "credentialsbucket/profiles/private/john", - "credentialsbucket/profiles/public/john", - "credentialsbucket/pubkeys", - "credentialsbucket/storagecreds"); + "profiles/private/john", + "profiles/public/john", + "pubkeys", + "storagecreds"); } private void deregisterAndValidateEmpty(UserIDAuth john) { @@ -276,7 +287,12 @@ private void registerUser(UserIDAuth auth) { } private List listInBucket(String bucket) { - return S3ClientFactory.getClient(endpointsByHostNoBucket.get(bucket), accessKey(bucket), secretKey(bucket)) + return S3ClientFactory.getClient( + endpointsByHostNoBucket.get(bucket), + REGION, + accessKey(bucket), + secretKey(bucket) + ) .listObjects(bucket, "") .getObjectSummaries() .stream() diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/ProfileContainsDatasafeVersionTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/ProfileContainsDatasafeVersionTest.java new file mode 100644 index 000000000..cf7afb707 --- /dev/null +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/ProfileContainsDatasafeVersionTest.java @@ -0,0 +1,30 @@ +package de.adorsys.datasafe.business.impl.e2e; + +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.global.Version; +import lombok.SneakyThrows; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class ProfileContainsDatasafeVersionTest extends BaseE2ETest { + + @Test + @SneakyThrows + void getProfileVersionTest() { + init(); + + UserIDAuth bob = registerUser("bob"); + + Version version = profileRetrievalService.privateProfile(bob).getAppVersion(); + assertThat(version.getId()).isEqualTo(Version.current().getId()); + } + + private void init() { + StorageDescriptor descriptor = fs(); + DefaultDatasafeServices datasafeServices = DatasafeServicesProvider + .defaultDatasafeServices(descriptor.getStorageService().get(), descriptor.getLocation()); + initialize(DatasafeServicesProvider.dfsConfig(descriptor.getLocation()), datasafeServices); + } +} diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationTest.java index 9d36efbca..fee911b9a 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationTest.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.SchemeDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; @@ -12,16 +13,22 @@ import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import org.testcontainers.shaded.com.google.common.collect.ImmutableMap; +import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -57,7 +64,7 @@ void initialize(@TempDir Path tempDir) { @Test @SneakyThrows void testProfileOnFsDataOnMinioWorks() { - UserIDAuth userJohn = new UserIDAuth("john", "doe"); + UserIDAuth userJohn = new UserIDAuth("john", ReadKeyPasswordTestFactory.getForString("doe")); // John's profile will be saved to filesystem datasafeServices.userProfile().registerUsingDefaults(userJohn); @@ -69,12 +76,12 @@ void testProfileOnFsDataOnMinioWorks() { } // Profiles are on FS - assertThat(Files.walk(fsPath)) + assertThat(listFs()) .extracting(it -> fsPath.relativize(it)) .extracting(Path::toString) .containsExactlyInAnyOrder("", "public-john", "private-john"); // File and keystore/pub keys are on minio - assertThat(minio.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(minioPath.resolve(""))))) + assertThat(listMinio()) .extracting(it -> minioPath.relativize(it.location())) .extracting(it -> it.asURI().toString()) .contains("users/john/private/keystore", "users/john/public/pubkeys") @@ -82,12 +89,25 @@ void testProfileOnFsDataOnMinioWorks() { .hasSize(3); } + private List> listMinio() { + try (Stream> ls = + minio.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(minioPath.resolve(""))))) { + return ls.collect(Collectors.toList()); + } + } + + private List listFs() throws IOException { + try (Stream ls = Files.walk(fsPath)) { + return ls.collect(Collectors.toList()); + } + } + static class ProfilesOnFsDataOnMinio extends DefaultDFSConfig { private final Path profilesPath; ProfilesOnFsDataOnMinio(Uri minioBucketPath, Path profilesPath) { - super(minioBucketPath, "PAZZWORT"); + super(minioBucketPath, new ReadStorePassword("PAZZWORT")); this.profilesPath = profilesPath; } @@ -105,4 +125,4 @@ public AbsoluteLocation privateProfile(UserID forUser) { ); } } -} \ No newline at end of file +} diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationWithDbTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationWithDbTest.java index 3412e50a6..e0110dcdc 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationWithDbTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/SchemeDelegationWithDbTest.java @@ -7,6 +7,7 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.SchemeDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.impl.db.DatabaseConnectionRegistry; @@ -17,20 +18,27 @@ import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.shaded.org.bouncycastle.jce.provider.BouncyCastleProvider; import java.io.OutputStream; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; +import java.security.Security; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import static de.adorsys.datasafe.types.api.global.PathEncryptionId.AES_SIV; import static org.assertj.core.api.Assertions.assertThat; class SchemeDelegationWithDbTest extends WithStorageProvider { @@ -38,14 +46,18 @@ class SchemeDelegationWithDbTest extends WithStorageProvider { private static final Set ALLOWED_TABLES = ImmutableSet.of("users", "private_profiles", "public_profiles"); private Path fsPath; - private StorageService filesystem; private StorageService db; private DefaultDatasafeServices datasafeServices; + @BeforeAll + static void addBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + @BeforeEach void initialize(@TempDir Path tempDir) { this.fsPath = tempDir; - this.filesystem = new FileSystemStorageService(tempDir); + StorageService filesystem = new FileSystemStorageService(tempDir); this.db = new DatabaseStorageService(ALLOWED_TABLES, new DatabaseConnectionRegistry( uri -> uri.location().getWrapped().getScheme() + ":" + uri.location().getPath().split("/")[1], ImmutableMap.of("jdbc://localhost:9999", new DatabaseCredentials("sa", "sa"))) @@ -68,7 +80,7 @@ void initialize(@TempDir Path tempDir) { @Test @SneakyThrows void testProfileOnDbDataOnFsWorks() { - UserIDAuth userJohn = new UserIDAuth("john", "doe"); + UserIDAuth userJohn = new UserIDAuth("john", ReadKeyPasswordTestFactory.getForString("doe")); // John's profile will be saved to Database datasafeServices.userProfile().registerUsingDefaults(userJohn); @@ -85,27 +97,37 @@ void testProfileOnDbDataOnFsWorks() { assertThat(listDb("jdbc://localhost:9999/h2:mem:test/public_profiles/")) .containsExactly("jdbc://localhost:9999/h2:mem:test/public_profiles/john"); - Path encryptedFile = Files.walk(fsPath.resolve("users/john/private/files/")).collect(Collectors.toList()).get(1); + Path path = fsPath.resolve(new Uri("users/john/private/files/").resolve(AES_SIV.asUriRoot()).asString()); + Path encryptedFile = walk(path).get(1); // File and keystore/pub keys are on FS - assertThat(Files.walk(fsPath)) - .extracting(it -> fsPath.relativize(it)) - .extracting(Path::toString) + assertThat(walk(fsPath)) + .extracting(it -> fsPath.toUri().relativize(it.toUri())) + .extracting(URI::toString) .containsExactlyInAnyOrder( "", - "users", - "users/john", - "users/john/public", + "users/", + "users/john/", + "users/john/public/", "users/john/public/pubkeys", - "users/john/private", + "users/john/private/", "users/john/private/keystore", - "users/john/private/files", - fsPath.relativize(encryptedFile).toString() + "users/john/private/files/", + "users/john/private/files/SIV/", + fsPath.toUri().relativize(encryptedFile.toUri()).toString() ); } - private Stream listDb(String path) { - return db.list(BasePrivateResource.forAbsolutePrivate(URI.create(path))) - .map(it -> it.location().asURI().toString()); + @SneakyThrows + private List walk(Path at) { + try (Stream ls = Files.walk(at)) { + return ls.collect(Collectors.toList()); + } + } + + private List listDb(String path) { + try (Stream> stream = db.list(BasePrivateResource.forAbsolutePrivate(URI.create(path)))){ + return stream.map(it -> it.location().asURI().toString()).collect(Collectors.toList()); + } } static class ProfilesOnDbDataOnFs extends DefaultDFSConfig { @@ -113,7 +135,7 @@ static class ProfilesOnDbDataOnFs extends DefaultDFSConfig { private final Uri profilesPath; ProfilesOnDbDataOnFs(URI fsPath, URI profilesPath) { - super(fsPath, "PAZZWORT"); + super(fsPath, new ReadStorePassword("PAZZWORT")); this.profilesPath = new Uri(profilesPath); } diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/UserProfileWithUtf8Test.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/UserProfileWithUtf8Test.java index bff805ffb..6aba583eb 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/UserProfileWithUtf8Test.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/UserProfileWithUtf8Test.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.SchemeDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; @@ -12,18 +13,26 @@ import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import org.testcontainers.shaded.com.google.common.collect.ImmutableMap; +import org.testcontainers.shaded.org.bouncycastle.jce.provider.BouncyCastleProvider; import java.io.OutputStream; -import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; +import java.security.Security; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import static de.adorsys.datasafe.types.api.shared.Dirs.computeRelativePreventingDoubleUrlEncode; import static org.assertj.core.api.Assertions.assertThat; class UserProfileWithUtf8Test extends WithStorageProvider { @@ -31,20 +40,24 @@ class UserProfileWithUtf8Test extends WithStorageProvider { private Path fsPath; private Uri minioPath; private StorageService minio; - private StorageService filesystem; private DefaultDatasafeServices datasafeServices; + @BeforeAll + static void addBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + @BeforeEach void initialize(@TempDir Path tempDir) { StorageDescriptor minioDescriptor = minio(); this.fsPath = tempDir; this.minio = minioDescriptor.getStorageService().get(); - this.filesystem = new FileSystemStorageService(tempDir); this.minioPath = minioDescriptor.getLocation(); + StorageService multiDfs = new SchemeDelegatingStorage( ImmutableMap.of( "s3", minio, - "file", filesystem + "file", new FileSystemStorageService(tempDir) ) ); @@ -58,7 +71,7 @@ void initialize(@TempDir Path tempDir) { @Test @SneakyThrows void testProfileOnFsDataOnMinioWorks() { - UserIDAuth userJohn = new UserIDAuth("john", "doe"); + UserIDAuth userJohn = new UserIDAuth("john", ReadKeyPasswordTestFactory.getForString("doe")); // John's profile will be saved to filesystem datasafeServices.userProfile().registerUsingDefaults(userJohn); @@ -70,16 +83,15 @@ void testProfileOnFsDataOnMinioWorks() { } // Profiles are on FS - note that raw file path has `+` instead of space - assertThat(Files.walk(fsPath)) - .extracting(it -> fsPath.relativize(it)) - .extracting(it -> URI.create(it.toString()).getPath()) + assertThat(listFs(fsPath)) + .extracting(it -> computeRelativePreventingDoubleUrlEncode(fsPath, it)) .containsExactlyInAnyOrder( "", "prüfungs", "prüfungs/мой профиль+:приватный-$&=john", "prüfungs/мой профиль+:публичный-$&=john"); // File and keystore/pub keys are on minio - assertThat(minio.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(minioPath.resolve(""))))) + assertThat(listMinio()) .extracting(it -> minioPath.relativize(it.location())) .extracting(Uri::asString) .contains( @@ -92,12 +104,29 @@ void testProfileOnFsDataOnMinioWorks() { .hasSize(3); } + private List> listMinio() { + try (Stream> ls = + minio.list(new AbsoluteLocation<>(BasePrivateResource.forPrivate(minioPath.resolve("")))) + ) { + return ls.collect(Collectors.toList()); + } + } + + @SneakyThrows + private List listFs(Path fsPath) { + try (Stream ls = Files.walk(fsPath)) { + return ls.collect(Collectors.toList()); + } + } + + + static class ProfilesOnFsDataOnMinio extends DefaultDFSConfig { private final Uri profilesPath; ProfilesOnFsDataOnMinio(Uri minioBucketPath, Uri profilesPath) { - super(minioBucketPath, "PAZZWORT"); + super(minioBucketPath, new ReadStorePassword("PAZZWORT")); this.profilesPath = profilesPath; } diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/VersionedDataTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/VersionedDataTest.java index d32143f13..da18ede85 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/VersionedDataTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/VersionedDataTest.java @@ -11,7 +11,6 @@ import de.adorsys.datasafe.types.api.actions.RemoveRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.*; -import de.adorsys.datasafe.types.api.shared.Position; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.params.ParameterizedTest; @@ -78,8 +77,7 @@ void testVersionedWriteUsingAbsoluteAccess(WithStorageProvider.StorageDescriptor registerAndDoWritesWithDiffMessageInSameLocation(); - Versioned, ResolvedResource, Version> first = - Position.first(versionedListRoot(jane)); + Versioned, ResolvedResource, Version> first = firstOfVersionedListRoot(jane); String directResult = readPrivateUsingPrivateKey(jane, first.stripVersion().asPrivate()); assertThat(directResult).isEqualTo(MESSAGE_THREE); @@ -94,8 +92,7 @@ void testVersionedRemove(WithStorageProvider.StorageDescriptor descriptor) { registerAndDoWritesWithDiffMessageInSameLocation(); - Versioned, ResolvedResource, Version> first = - Position.first(versionedListRoot(jane)); + Versioned, ResolvedResource, Version> first = firstOfVersionedListRoot(jane); versionedDocusafeServices.latestPrivate().remove( RemoveRequest.forPrivate(jane, first.stripVersion().asPrivate()) ); @@ -279,4 +276,15 @@ private void validateThereAreVersions(UserIDAuth user, int versionCount) { versionedDocusafeServices.privateService().list(ListRequest.forDefaultPrivate(user, "./")) ).hasSize(versionCount); } + + private Versioned, ResolvedResource, Version> firstOfVersionedListRoot( + UserIDAuth owner) { + try (Stream, ResolvedResource, Version>> ls = + versionedDocusafeServices + .latestPrivate() + .listWithDetails(ListRequest.forDefaultPrivate(owner, "./")) + ) { + return ls.findFirst().orElseThrow(() -> new IllegalStateException("Empty directory")); + } + } } diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/encrypiton/api/PathEncryptionSecretKeyTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/encrypiton/api/PathEncryptionSecretKeyTest.java new file mode 100644 index 000000000..aa4cecbe5 --- /dev/null +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/encrypiton/api/PathEncryptionSecretKeyTest.java @@ -0,0 +1,57 @@ +package de.adorsys.datasafe.encrypiton.api; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID; +import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; + +import javax.crypto.SecretKey; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class PathEncryptionSecretKeyTest extends BaseMockitoTest { + + @Mock + private KeyID secretKeyId; + + @Mock + private SecretKey secretKey; + + @Mock + private KeyID counterKeyId; + + @Mock + private SecretKey counterSecretKey; + + @Test + void validateAllOk() { + AuthPathEncryptionSecretKey key = new AuthPathEncryptionSecretKey( + new SecretKeyIDWithKey(secretKeyId, secretKey), + new SecretKeyIDWithKey(counterKeyId, counterSecretKey) + ); + + assertThat(key.getSecretKey().getSecretKey()).isEqualTo(secretKey); + assertThat(key.getCounterSecretKey().getSecretKey()).isEqualTo(counterSecretKey); + } + + @Test + void validateNullSecretKeyImpossible() { + assertThrows(NullPointerException.class, () -> + new AuthPathEncryptionSecretKey( + null, + new SecretKeyIDWithKey(counterKeyId, counterSecretKey)) + ); + } + + @Test + void validateNullCounterKeyImpossible() { + assertThrows(NullPointerException.class, () -> + new AuthPathEncryptionSecretKey( + new SecretKeyIDWithKey(secretKeyId, secretKey), + null) + ); + } +} diff --git a/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/jane b/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/jane deleted file mode 100644 index ef9e1c92e..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/jane +++ /dev/null @@ -1 +0,0 @@ -{"keystore":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/private/keystore"},"privateStorage":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/private/files/"},"inboxWithFullAccess":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/public/inbox/"},"documentVersionStorage":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/versions/"},"associatedResources":[{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/"}]} \ No newline at end of file diff --git a/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/john b/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/john deleted file mode 100644 index 7cabe5f35..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/profiles/private/john +++ /dev/null @@ -1 +0,0 @@ -{"keystore":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/private/keystore"},"privateStorage":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/private/files/"},"inboxWithFullAccess":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/public/inbox/"},"documentVersionStorage":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/versions/"},"associatedResources":[{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/"}]} \ No newline at end of file diff --git a/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/jane b/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/jane deleted file mode 100644 index 79d812da9..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/jane +++ /dev/null @@ -1 +0,0 @@ -{"publicKeys":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/public/pubkeys"},"inbox":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/jane/public/inbox/"}} \ No newline at end of file diff --git a/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/john b/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/john deleted file mode 100644 index fc19bf2cf..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/profiles/public/john +++ /dev/null @@ -1 +0,0 @@ -{"publicKeys":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/public/pubkeys"},"inbox":{"resource":"file:/var/folders/3w/fzdgs28j1_b3r4y8x9_s4wpw0000gn/T/junit4892767241345613098/users/john/public/inbox/"}} \ No newline at end of file diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/files/Qc5BJaNqSbbSBoHUmrYhEQ==/3_FBQ7knNcCKL1rPDE5Mmg== b/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/files/Qc5BJaNqSbbSBoHUmrYhEQ==/3_FBQ7knNcCKL1rPDE5Mmg== deleted file mode 100644 index dd036d187..000000000 Binary files a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/files/Qc5BJaNqSbbSBoHUmrYhEQ==/3_FBQ7knNcCKL1rPDE5Mmg== and /dev/null differ diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/keystore b/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/keystore deleted file mode 100644 index e876d9fce..000000000 Binary files a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/private/keystore and /dev/null differ diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/public/pubkeys b/datasafe-business/src/test/resources/compat-0.4.3/users/jane/public/pubkeys deleted file mode 100644 index ed1cf9ce4..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/users/jane/public/pubkeys +++ /dev/null @@ -1 +0,0 @@ -[{"keyID":{"value":"KEYSTORE-ID-05e2af825-efb1-4399-a298-4cf6d2594b8b"},"publicKey":"rO0ABXNyAD5vcmcuYm91bmN5Y2FzdGxlLmpjYWpjZS5wcm92aWRlci5hc3ltbWV0cmljLnJzYS5CQ1JTQVB1YmxpY0tleSUiag5b+myEAwACTAAHbW9kdWx1c3QAFkxqYXZhL21hdGgvQmlnSW50ZWdlcjtMAA5wdWJsaWNFeHBvbmVudHEAfgABeHBzcgAUamF2YS5tYXRoLkJpZ0ludGVnZXKM/J8fqTv7HQMABkkACGJpdENvdW50SQAJYml0TGVuZ3RoSQATZmlyc3ROb256ZXJvQnl0ZU51bUkADGxvd2VzdFNldEJpdEkABnNpZ251bVsACW1hZ25pdHVkZXQAAltCeHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhw///////////////+/////gAAAAF1cgACW0Ks8xf4BghU4AIAAHhwAAABALP2zhFx6vVcAwuiV76IUORcIURq0EeBnwG+XvEWxycMbpEaBJqxCqkOArzbBqo6gA7mx985hlfyUQQaOcKJSifu/XAfxD2p1ZAhmKpdTA6yk03rLQ70WvWhRrFCH+KzrCJb8O8vnM8o60pIodl2tBPHI4Dkm9KnAZYaCIJdlI+NjplYjgsO9vg/AHuUfueyfsoqKRxjfL0kj4kRdG8tce52tpq0pz/a4T/OzNkhEZzx/Eor4ZDtBdinhyG7LxL8isgkMEpOCHAXzIILd2K6bnMdjJ8BMJAl1ZVGmfP1qskVHRNvUun9jky+F7EWShnFcf/r8VUAYUYbhbh/Ih3qB9V4c3EAfgAD///////////////+/////gAAAAF1cQB+AAcAAAADAQABeHg\u003d"}] \ No newline at end of file diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/john/private/keystore b/datasafe-business/src/test/resources/compat-0.4.3/users/john/private/keystore deleted file mode 100644 index 60bedf1ab..000000000 Binary files a/datasafe-business/src/test/resources/compat-0.4.3/users/john/private/keystore and /dev/null differ diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/inbox/hello.txt b/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/inbox/hello.txt deleted file mode 100644 index 8bfef5614..000000000 Binary files a/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/inbox/hello.txt and /dev/null differ diff --git a/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/pubkeys b/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/pubkeys deleted file mode 100644 index 743eeeea5..000000000 --- a/datasafe-business/src/test/resources/compat-0.4.3/users/john/public/pubkeys +++ /dev/null @@ -1 +0,0 @@ -[{"keyID":{"value":"KEYSTORE-ID-005689412-c0f4-42fe-a0fa-3d04bafc9473"},"publicKey":"rO0ABXNyAD5vcmcuYm91bmN5Y2FzdGxlLmpjYWpjZS5wcm92aWRlci5hc3ltbWV0cmljLnJzYS5CQ1JTQVB1YmxpY0tleSUiag5b+myEAwACTAAHbW9kdWx1c3QAFkxqYXZhL21hdGgvQmlnSW50ZWdlcjtMAA5wdWJsaWNFeHBvbmVudHEAfgABeHBzcgAUamF2YS5tYXRoLkJpZ0ludGVnZXKM/J8fqTv7HQMABkkACGJpdENvdW50SQAJYml0TGVuZ3RoSQATZmlyc3ROb256ZXJvQnl0ZU51bUkADGxvd2VzdFNldEJpdEkABnNpZ251bVsACW1hZ25pdHVkZXQAAltCeHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhw///////////////+/////gAAAAF1cgACW0Ks8xf4BghU4AIAAHhwAAABAMLE2MGP0TwTxGg8xV+CjfA4NO6c/VDLQ5MRc4FZMI+6CUTXzkoXPHMbug/89Vhiimdj0Gl/53l1ZtC6JBEpu2Uxtk7KWnQ2Frr8k6eudVt1z/psx4ZB/bSprS47h4xMdgDmsF5A9WuHQ8FHLAhtlydEChxP5CIDISZLCmjpHrNpG2BqyO+mdIJli4pTd3EZzBqmWQpdXqXqni5OcwD1YXyMFJ3asEsHwOrP7JnA/72+GkAdNH/sAtsLZNZBrRG24wMAt2seqy2vDJQrdrbmhG84n58vUmbQChT928/bN8I82YInnzsvWYTx3u91i9Hxb1SsleVBB9F6eKQ3p1Hz1Ut4c3EAfgAD///////////////+/////gAAAAF1cQB+AAcAAAADAQABeHg\u003d"}] \ No newline at end of file diff --git a/datasafe-cli/Dockerfile b/datasafe-cli/Dockerfile new file mode 100644 index 000000000..a23c6b513 --- /dev/null +++ b/datasafe-cli/Dockerfile @@ -0,0 +1,34 @@ +# This Dockerfile allows you to build Datasafe CLI using GraalVM (for Linux) +FROM ubuntu:xenial + +RUN apt-get update && apt-get install curl -y && apt-get install libz-dev gcc -y + +ENV GRAVIS="https://raw.githubusercontent.com/DanySK/Gravis-CI/master/" +ENV JDK="graalvm@19.2.0" +# Needed for Jabba +ENV TRAVIS_OS_NAME=linux + +RUN curl "${GRAVIS}.install-jdk-travis.sh" --output ~/.install-jdk-travis.sh +RUN chmod +x ~/.install-jdk-travis.sh +RUN ~/.install-jdk-travis.sh + +RUN apt-get install git -y +RUN git clone https://github.com/adorsys/datasafe +WORKDIR datasafe + +RUN .travis/install_custom_jdk_and_add_security_providers.sh + +# 1. Build classes, because there can be problems with SSL afterwards +# Make JAVA_HOME avaiable as docker executes RUN commands independently +# https://forums.docker.com/t/set-environment-variable-through-dockerfile/28421/2 +RUN . ~/.jdk_config && ./mvnw clean install -B -V -DskipTests +# 2. Change security providers of JDK, after that java may face problems with SSL +RUN . ~/.jdk_config && chmod +x .travis/enable_bouncycastle_security.sh && .travis/enable_bouncycastle_security.sh +# 3. Build native image, no settings.xml needed +RUN . ~/.jdk_config && ./mvnw -f datasafe-cli/pom.xml clean package -B -V -Pnative-image -DskipTests + +WORKDIR datasafe-cli/target + +# Use datasafe-cli +RUN echo 'echo "To use newly built DATASAFE-CLI - just run ./datasafe-cli"' >> /etc/bash.bashrc +CMD bash \ No newline at end of file diff --git a/datasafe-cli/README.md b/datasafe-cli/README.md new file mode 100644 index 000000000..e23ff8ad6 --- /dev/null +++ b/datasafe-cli/README.md @@ -0,0 +1,64 @@ +# Issues with certificates + +If you observe error +`InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty` when running +cli executable, then launch it with Java CA certificates path provided, i.e.: +``` +./cli -Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts -c ~/credentials profile create +``` +where `/etc/ssl/certs/java/cacerts` is the location of Java certificates keystore. + +# Build + +## Using Dockerfile +You can build Datasafe-CLI for Linux using this [Dockerfile](Dockerfile) + +## Manual +1. You need GraalVM compiler and BouncyCastle in java-home/jre/lib/ext/ of this compiler. +1. Edit the java-home/jre/lib/security/java.security properties file in any text editor. +1. Add the JCE provider you’ve just downloaded to this file. +1. The java.security file contains detailed instructions for adding this provider. +1. add org.bouncycastle.jsse.provider.BouncyCastleJsseProvider to java.security as SSL provider (bctls jar) +Basically, you need to add a line of the following format in a location with similar properties: +security.provider.n=provider-class-name + +# SimpleTest with Minio +Lets assume you have a minio running with url: http://localhost:9000. +Further you have a bucket named "affe" in that minio. +Also we will assume (although minio ignores it) that you have this bucket in eu-central-1 region. + +Before you run the Cli (which is the main class) in the project directory, create a temporary folder <$projectDir>/tmp. +And than allways start the Cli in this tmp directory. In this case, you can use the default confirms and all profiles/keys/secrets will be stored in the tmp directory. As this example is to store the data in minio, the data is not stored in the tmp directory, but in minio. + +1. First you create a profile. Simply confirm all asked questions with enter. + ``` + -u=peter -p=peter -sp=system profile create + ``` +1. Add the url of minio with a new storagename. Notice that the bucket (*affe*) is at the end of the url. +Also, notice region *eu-central-1* is at the beginning of URL path. + + ``` + -u=peter -p=peter -sp=system profile storage add -i my-minio -p http://localhost:9000/eu-central-1/affe/ + ``` + +1. Add the accesskey and secretkey. It assumed, they are simpleAcessKey and simpleSecretKey. + ``` + -u=peter -p=peter -sp=system profile storage credentials add -m http://.+ --username=simpleAccessKey --password=simpleSecretKey + ``` + +1. Now you can store data to your minio. The data will be encrypted with the keys stored in the tmp directory. + So in this case the pom is stored to minio. Of course encrypted. But with the new name pom2.xml. + ``` + -u=peter -p=peter -sp=system private cp -s=my-minio ../pom.xml pom2.xml + ``` + +1. Now you can see the encrypted data in your minio. To see the decrypted name, you can use the list command. + ``` + -u=peter -p=peter -sp=system private ls -s=my-minio + ``` + +1. Eventually you can decrypt the content of pom2.xml. I will be written to stdout. + ``` + -u=peter -p=peter -sp=system private cat -s=my-minio pom2.xml + ``` + diff --git a/datasafe-cli/pom.xml b/datasafe-cli/pom.xml new file mode 100644 index 000000000..191b3b48f --- /dev/null +++ b/datasafe-cli/pom.xml @@ -0,0 +1,179 @@ + + 4.0.0 + + de.adorsys + datasafe + 0.7.0 + + + datasafe-cli + + + de.adorsys.datasafe.cli.Cli + + + + + + de.adorsys + datasafe-business + ${project.version} + + + de.adorsys + datasafe-storage-impl-fs + ${project.version} + + + de.adorsys + datasafe-storage-impl-s3 + ${project.version} + + + + info.picocli + picocli + + + org.slf4j + slf4j-api + + + org.slf4j + slf4j-simple + + + + com.oracle.substratevm + svm + ${graal.version} + provided + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.assertj + assertj-core + test + + + org.mockito + mockito-core + test + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin} + + + de.adorsys.datasafe.cli.hacks.graalfeature + + + + ${cli.main.class} + + + + + + + de.ntcomputer + executable-packer-maven-plugin + 1.0.1 + + ${cli.main.class} + + + + + pack-executable-jar + + + + + + + + maven-dependency-plugin + + true + + + + + + + + native-image + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + info.picocli + picocli-codegen + ${picocli.version} + + + + + + + com.oracle.substratevm + native-image-maven-plugin + ${graal.version} + + + + native-image + + package + + + + datasafe-cli + + --no-server + --no-fallback + --enable-all-security-services + --features=de.adorsys.datasafe.cli.hacks.graalfeature.GraalCompileFixNpeOnMissingServiceTypeInKnownProviders,de.adorsys.datasafe.cli.hacks.graalfeature.GraalCompileFixCryptoRegistrar + --initialize-at-build-time=de.adorsys.datasafe.cli.hacks.NoOpRandom + + --initialize-at-build-time=org.apache.http.conn.routing.HttpRoute + --initialize-at-build-time=org.apache.http.conn.HttpClientConnectionManager + --initialize-at-build-time=org.apache.http.HttpClientConnection + --initialize-at-build-time=org.apache.http.conn.ConnectionRequest + --initialize-at-build-time=org.apache.http.protocol.HttpContext + --initialize-at-build-time=org.apache.http.pool.ConnPoolControl + + --initialize-at-run-time=org.bouncycastle.crypto.prng.SP800SecureRandom + --initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$Default + --initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV + + + + + + + + diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/Cli.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/Cli.java new file mode 100644 index 000000000..cb9acf5c9 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/Cli.java @@ -0,0 +1,138 @@ +package de.adorsys.datasafe.cli; + +import com.google.gson.Gson; +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.cli.commands.Help; +import de.adorsys.datasafe.cli.commands.inbox.Inbox; +import de.adorsys.datasafe.cli.commands.privatespace.Privatespace; +import de.adorsys.datasafe.cli.commands.profile.Profile; +import de.adorsys.datasafe.cli.config.DatasafeFactory; +import de.adorsys.datasafe.cli.dto.Credentials; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.crypto.CryptoServicesRegistrar; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import picocli.CommandLine; + +import java.io.Reader; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.Security; +import java.util.function.Supplier; + +@Slf4j +@CommandLine.Command( + name = "datasafe-cli", + subcommands = { + Help.class, + Profile.class, + Privatespace.class, + Inbox.class + } +) +@RequiredArgsConstructor +public class Cli implements Runnable { + + @Getter + @CommandLine.Option( + names = {"--root-dir", "-rd"}, + description = "Folder with user profiles, default is current directory" + ) + private Path profilesRoot = Paths.get(""); + + @CommandLine.ArgGroup(multiplicity = "1") + private CredentialsExclusive credentials; + + @SneakyThrows + public static void main(String[] args) { + // Restoring correct SecureRandom implementation + reInitializeRandomAgain(); + // Only needed when running using JRE, unnecessary for CLI: + Security.addProvider(new BouncyCastleProvider()); + // silencing AWS SDK: + System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); + + int exitCode = new CommandLine(new Cli()).execute(args); + + System.exit(exitCode); + } + + @Override + public void run() { + CommandLine.usage(new Cli(), System.out); + } + + public DefaultDatasafeServices datasafe() { + return DatasafeFactory.datasafe(profilesRoot, credentials.getSystemPassword()); + } + + public UserIDAuth auth() { + return new UserIDAuth(credentials.getUsername(), credentials.getPassword()); + } + + private static class CredentialsExclusive { + + @CommandLine.Option( + names = {"--credentials", "-c"}, + description = "File with credentials location. It contains JSON: " + + "{" + + "\"username\": \"\", " + + "\"password\": \"\", " + + "\"systemPassword\": \"\"" + + "}") + private Path credentialsFile; + + @CommandLine.ArgGroup(exclusive = false) + private Credentials credentials; + + String getUsername() { + return credentials().getUsername(); + } + + ReadKeyPassword getPassword() { + return new ReadKeyPassword(new Supplier() { + @Override + public char[] get() { + return credentials().getPassword().toCharArray(); + } + }); + } + + ReadStorePassword getSystemPassword() { + return new ReadStorePassword(credentials().getSystemPassword()); + } + + @SneakyThrows + private Credentials credentials() { + if (null != credentials) { + return credentials; + } + + try (Reader is = Files.newBufferedReader(credentialsFile)) { + return new Gson().fromJson(is, Credentials.class); + } + } + } + + /** + * See {@link de.adorsys.datasafe.cli.hacks.graalfeature.GraalCompileFixCryptoRegistrar} for details. + */ + @SneakyThrows + private static void reInitializeRandomAgain() { + Field secureRandom = CryptoServicesRegistrar.class.getDeclaredField("defaultSecureRandom"); + secureRandom.setAccessible(true); + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(secureRandom, secureRandom.getModifiers() & ~Modifier.FINAL); + + secureRandom.set(CryptoServicesRegistrar.class, null); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/Help.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/Help.java new file mode 100644 index 000000000..5c28663d3 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/Help.java @@ -0,0 +1,15 @@ +package de.adorsys.datasafe.cli.commands; + +import picocli.CommandLine; + +@CommandLine.Command(name = "--help", aliases = {"-h"}, helpCommand = true, description = "Show basic help") +public class Help implements Runnable { + + @CommandLine.ParentCommand + private Object parent; + + @Override + public void run() { + CommandLine.usage(parent, System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Cat.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Cat.java new file mode 100644 index 000000000..dc2c3b7eb --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Cat.java @@ -0,0 +1,30 @@ +package de.adorsys.datasafe.cli.commands.inbox; + +import com.google.common.io.ByteStreams; +import de.adorsys.datasafe.types.api.actions.ReadRequest; +import lombok.SneakyThrows; +import picocli.CommandLine; + +import java.io.InputStream; + +@CommandLine.Command( + name = "cat", + description = "Decrypts inbox file contents and prints it to STDOUT" +) +public class Cat implements Runnable { + + @CommandLine.ParentCommand + private Inbox inbox; + + @CommandLine.Parameters(description = "Filename to print", arity = "1") + private String path; + + @Override + @SneakyThrows + public void run() { + try (InputStream is = inbox.getCli().datasafe().inboxService() + .read(ReadRequest.forDefaultPrivate(inbox.getCli().auth(), path))) { + ByteStreams.copy(is, System.out); + } + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Delete.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Delete.java new file mode 100644 index 000000000..246b6d576 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Delete.java @@ -0,0 +1,25 @@ +package de.adorsys.datasafe.cli.commands.inbox; + +import de.adorsys.datasafe.types.api.actions.RemoveRequest; +import de.adorsys.datasafe.types.api.resource.Uri; +import picocli.CommandLine; + +@CommandLine.Command( + name = "remove", + aliases = "rm", + description = "Deletes file from your inbox" +) +public class Delete implements Runnable { + + @CommandLine.ParentCommand + private Inbox inbox; + + @CommandLine.Parameters(description = "Filename to remove", arity = "1") + private String path; + + @Override + public void run() { + inbox.getCli().datasafe().inboxService() + .remove(RemoveRequest.forDefaultPrivate(inbox.getCli().auth(), new Uri(path))); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Inbox.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Inbox.java new file mode 100644 index 000000000..6bcb4c664 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Inbox.java @@ -0,0 +1,27 @@ +package de.adorsys.datasafe.cli.commands.inbox; + +import de.adorsys.datasafe.cli.Cli; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "inbox", + description = + "Allows user to read encrypted files that are shared with him and to share his files with other users", + subcommands = { + Cat.class, + List.class, + Share.class, + Delete.class, +}) +public class Inbox implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Cli cli; + + @Override + public void run() { + CommandLine.usage(new Inbox(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/List.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/List.java new file mode 100644 index 000000000..4ca3c87a7 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/List.java @@ -0,0 +1,25 @@ +package de.adorsys.datasafe.cli.commands.inbox; + +import de.adorsys.datasafe.types.api.actions.ListRequest; +import picocli.CommandLine; + +@CommandLine.Command( + name = "list", + aliases = "ls", + description = "Lists file in INBOX" +) +public class List implements Runnable { + + @CommandLine.ParentCommand + private Inbox inbox; + + @CommandLine.Parameters(arity = "0..1") + private String prefix = ""; + + @Override + public void run() { + inbox.getCli().datasafe().inboxService() + .list(ListRequest.forDefaultPrivate(inbox.getCli().auth(), prefix)) + .forEach(it -> System.out.println(it.getResource().asPrivate().decryptedPath().asString())); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Share.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Share.java new file mode 100644 index 000000000..244bdf4d0 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/inbox/Share.java @@ -0,0 +1,54 @@ +package de.adorsys.datasafe.cli.commands.inbox; + +import com.google.common.io.ByteStreams; +import com.google.common.io.MoreFiles; +import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.types.api.actions.WriteRequest; +import lombok.SneakyThrows; +import picocli.CommandLine; + +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.List; +import java.util.stream.Collectors; + +@CommandLine.Command( + name = "share", + description = "Shares file with other users, " + + "file will be encrypted using recipient public key - only recipient can read it" +) +public class Share implements Runnable { + + @CommandLine.ParentCommand + private Inbox inbox; + + @CommandLine.Option(names = {"--share", "-s"}, description = "Which file to share", required = true) + private Path path; + + @CommandLine.Option( + names = {"--filename", "-f"}, + description = "How to name file in recipients' INBOX", + required = true) + private String filename; + + @CommandLine.Option(names = {"--recipients", "-r"}, description = "Recipients of the file", required = true) + private List recipients; + + @Override + @SneakyThrows + public void run() { + try (OutputStream os = inbox.getCli().datasafe().inboxService() + .write( + WriteRequest.forDefaultPublic( + recipients.stream().map(UserID::new).collect(Collectors.toSet()), + filename + ) + ); + InputStream is = MoreFiles.asByteSource(path, StandardOpenOption.READ).openStream() + ) { + ByteStreams.copy(is, os); + } + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Cat.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Cat.java new file mode 100644 index 000000000..430a3c2dd --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Cat.java @@ -0,0 +1,34 @@ +package de.adorsys.datasafe.cli.commands.privatespace; + +import com.google.common.io.ByteStreams; +import de.adorsys.datasafe.types.api.actions.ReadRequest; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.SneakyThrows; +import picocli.CommandLine; + +import java.io.InputStream; + +@CommandLine.Command( + name = "cat", + description = "Decrypts private file contents and prints it to STDOUT" +) +public class Cat implements Runnable { + + @CommandLine.ParentCommand + private Privatespace privatespace; + + @CommandLine.Option(names = {"--storage", "-s"}, description = "Storage identifier") + private String storageId = StorageIdentifier.DEFAULT_ID; + + @CommandLine.Parameters(description = "Filename to decrypt and print", arity = "1") + private String path; + + @Override + @SneakyThrows + public void run() { + try (InputStream is = privatespace.getCli().datasafe().privateService() + .read(ReadRequest.forPrivate(privatespace.getCli().auth(), new StorageIdentifier(storageId), path))) { + ByteStreams.copy(is, System.out); + } + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Copy.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Copy.java new file mode 100644 index 000000000..3455fecb0 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Copy.java @@ -0,0 +1,50 @@ +package de.adorsys.datasafe.cli.commands.privatespace; + +import com.google.common.io.ByteStreams; +import com.google.common.io.MoreFiles; +import de.adorsys.datasafe.types.api.actions.WriteRequest; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.SneakyThrows; +import picocli.CommandLine; + +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; + +@CommandLine.Command( + name = "copy", + aliases = "cp", + description = "Encrypts and copies file into your private space - only you can read it" +) +public class Copy implements Runnable { + + @CommandLine.ParentCommand + private Privatespace privatespace; + + @CommandLine.Option(names = {"--storage", "-s"}, description = "Storage identifier") + private String storageId = StorageIdentifier.DEFAULT_ID; + + @CommandLine.Parameters(description = "Path to copy from", index = "0", arity = "1") + private Path from; + + @CommandLine.Parameters(description = "Path in privatespace to copy to", index = "1", arity = "1") + private String to; + + @Override + @SneakyThrows + public void run() { + try (OutputStream os = privatespace.getCli().datasafe().privateService() + .write( + WriteRequest.forPrivate( + privatespace.getCli().auth(), + new StorageIdentifier(storageId), + to + ) + ); + InputStream is = MoreFiles.asByteSource(from, StandardOpenOption.READ).openStream() + ) { + ByteStreams.copy(is, os); + } + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Delete.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Delete.java new file mode 100644 index 000000000..5ed5bf019 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Delete.java @@ -0,0 +1,28 @@ +package de.adorsys.datasafe.cli.commands.privatespace; + +import de.adorsys.datasafe.types.api.actions.RemoveRequest; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import picocli.CommandLine; + +@CommandLine.Command( + name = "remove", + aliases = "rm", + description = "Removes file from your privatespace" +) +public class Delete implements Runnable { + + @CommandLine.ParentCommand + private Privatespace privatespace; + + @CommandLine.Option(names = {"--storage", "-s"}, description = "Storage identifier") + private String storageId = StorageIdentifier.DEFAULT_ID; + + @CommandLine.Parameters(description = "Filename to remove", arity = "1") + private String path; + + @Override + public void run() { + privatespace.getCli().datasafe().privateService() + .remove(RemoveRequest.forPrivate(privatespace.getCli().auth(), new StorageIdentifier(storageId), path)); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/List.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/List.java new file mode 100644 index 000000000..eef064a4f --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/List.java @@ -0,0 +1,29 @@ +package de.adorsys.datasafe.cli.commands.privatespace; + +import de.adorsys.datasafe.types.api.actions.ListRequest; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import picocli.CommandLine; + +@CommandLine.Command( + name = "list", + aliases = "ls", + description = "Lists file in your privatespace" +) +public class List implements Runnable { + + @CommandLine.ParentCommand + private Privatespace privatespace; + + @CommandLine.Option(names = {"--storage", "-s"}, description = "Storage identifier") + private String storageId = StorageIdentifier.DEFAULT_ID; + + @CommandLine.Parameters(arity = "0..1") + private String prefix = ""; + + @Override + public void run() { + privatespace.getCli().datasafe().privateService() + .list(ListRequest.forPrivate(privatespace.getCli().auth(), new StorageIdentifier(storageId), prefix)) + .forEach(it -> System.out.println(it.getResource().asPrivate().decryptedPath().asString())); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Privatespace.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Privatespace.java new file mode 100644 index 000000000..c60753d9c --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/privatespace/Privatespace.java @@ -0,0 +1,26 @@ +package de.adorsys.datasafe.cli.commands.privatespace; + +import de.adorsys.datasafe.cli.Cli; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "private", + description = "Allows user to read and write encrypted files in his privatespace", + subcommands = { + Cat.class, + Copy.class, + List.class, + Delete.class, +}) +public class Privatespace implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Cli cli; + + @Override + public void run() { + CommandLine.usage(new Privatespace(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Create.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Create.java new file mode 100644 index 000000000..8db93b940 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Create.java @@ -0,0 +1,70 @@ +package de.adorsys.datasafe.cli.commands.profile; + +import de.adorsys.datasafe.directory.api.types.CreateUserPrivateProfile; +import de.adorsys.datasafe.directory.api.types.CreateUserPublicProfile; +import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.BasePublicResource; +import de.adorsys.datasafe.types.api.resource.Uri; +import picocli.CommandLine; + +import java.util.Collections; + +import static de.adorsys.datasafe.cli.commands.profile.InputUtil.inpPath; + +@CommandLine.Command( + name = "create", + description = "Creates new user profile (new user)" +) +public class Create implements Runnable { + + @CommandLine.ParentCommand + private Profile profile; + + @Override + public void run() { + String user = profile.getCli().auth().getUserID().getValue(); + Uri publicKeys = inpPath("Public keys", atRoot(user, "pubkeys")); + Uri inbox = inpPath("Your INBOX folder", atRoot(user, "inbox/")); + + CreateUserPublicProfile publicProfile = CreateUserPublicProfile.builder() + .id(profile.getCli().auth().getUserID()) + .publicKeys(BasePublicResource.forAbsolutePublic(publicKeys)) + .inbox(BasePublicResource.forAbsolutePublic(inbox)) + .build(); + + profile.getCli().datasafe().userProfile().registerPublic(publicProfile); + + CreateUserPrivateProfile privateProfile = CreateUserPrivateProfile.builder() + .id(profile.getCli().auth()) + .keystore(BasePrivateResource.forAbsolutePrivate(inpPath("Keystore", atRoot(user, "keystore")))) + .privateStorage(BasePrivateResource.forAbsolutePrivate(inpPath("Private files", atRoot(user, "private/")))) + .inboxWithWriteAccess(BasePrivateResource.forAbsolutePrivate(inbox)) + .storageCredentialsKeystore( + BasePrivateResource.forAbsolutePrivate( + inpPath("Storage credentials keystore", atRoot(user, "storage.keystore")) + ) + ) + .associatedResources(Collections.emptyList()) + .publishPubKeysTo(BasePublicResource.forAbsolutePublic(publicKeys)) + .build(); + + profile.getCli().datasafe().userProfile().registerPrivate(privateProfile); + profile.getCli().datasafe().userProfile().createAllAllowableKeystores( + profile.getCli().auth(), + privateProfile.buildPrivateProfile() + ); + } + + private String atRoot(String username, String name) { + String resolved = profile + .getCli() + .getProfilesRoot() + .resolve(username) + .resolve(name) + .toAbsolutePath() + .toUri() + .toASCIIString(); + + return (name.endsWith("/") && !resolved.endsWith("/") ? resolved + "/" : resolved); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Delete.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Delete.java new file mode 100644 index 000000000..faaae105e --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Delete.java @@ -0,0 +1,19 @@ +package de.adorsys.datasafe.cli.commands.profile; + +import picocli.CommandLine; + +@CommandLine.Command( + name = "remove", + aliases = "rm", + description = "Removes user profile and his files" +) +public class Delete implements Runnable { + + @CommandLine.ParentCommand + private Profile profile; + + @Override + public void run() { + profile.getCli().datasafe().userProfile().deregister(profile.getCli().auth()); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/InputUtil.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/InputUtil.java new file mode 100644 index 000000000..638435ee1 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/InputUtil.java @@ -0,0 +1,57 @@ +package de.adorsys.datasafe.cli.commands.profile; + +import com.google.common.base.Strings; +import de.adorsys.datasafe.types.api.resource.Uri; +import lombok.experimental.UtilityClass; + +import java.net.URI; +import java.nio.file.Paths; +import java.util.Scanner; + +/** + * Allows to read users input from STDIN. + */ +@UtilityClass +public class InputUtil { + + private static final Scanner SCANNER = new Scanner(System.in); + + /** + * Asks user to input value + * @param text Message describing what value to input + * @param defaultValue Default value to return, when user clicked enter on blank line + * @return User input + */ + public static String input(String text, String defaultValue) { + System.out.printf("%s (%s):%n", text, defaultValue); + String input = SCANNER.hasNextLine() ? SCANNER.nextLine() : null; + + if (Strings.isNullOrEmpty(input)) { + return defaultValue; + } + return input; + } + + /** + * Asks user to input path-alike value + * @param text Print message to user describing which value to input + * @param defaultValue Value to return when user hits 'Enter' + * @return Users' input + */ + public static Uri inpPath(String text, String defaultValue) { + String result = input(text, defaultValue); + + // Fully qualified url + URI asUri = URI.create(result); + if (asUri.isAbsolute()) { + return new Uri(asUri); + } + + // Some local resource url + if (result.startsWith("~/")) { + result = result.replaceFirst("^~", System.getProperty("user.home")); + } + + return new Uri(Paths.get(result).toUri()); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Profile.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Profile.java new file mode 100644 index 000000000..684a632ad --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Profile.java @@ -0,0 +1,29 @@ +package de.adorsys.datasafe.cli.commands.profile; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.cli.commands.profile.storage.Storage; +import de.adorsys.datasafe.cli.commands.profile.update.Update; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "profile", + description = "Manages user profile - reads/creates/updates it", + subcommands = { + Create.class, + Update.class, + Read.class, + Delete.class, + Storage.class + }) +public class Profile implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Cli cli; + + @Override + public void run() { + CommandLine.usage(new Profile(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Read.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Read.java new file mode 100644 index 000000000..f1bf31521 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/Read.java @@ -0,0 +1,29 @@ +package de.adorsys.datasafe.cli.commands.profile; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import picocli.CommandLine; + +@CommandLine.Command( + name = "cat", + description = "Reads and prints user profile to STDOUT" +) +public class Read implements Runnable { + + @CommandLine.ParentCommand + private Profile profile; + + @Override + public void run() { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(" ==== Public profile: ===="); + System.out.println(gson.toJson( + profile.getCli().datasafe().userProfile().publicProfile(profile.getCli().auth().getUserID()) + )); + + System.out.println(" ==== Private profile: ===="); + System.out.println(gson.toJson( + profile.getCli().datasafe().userProfile().privateProfile(profile.getCli().auth()) + )); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Add.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Add.java new file mode 100644 index 000000000..bdbeb272f --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Add.java @@ -0,0 +1,53 @@ +package de.adorsys.datasafe.cli.commands.profile.storage; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.PrivateResource; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.Getter; +import picocli.CommandLine; + +import java.util.HashMap; +import java.util.Map; + +@CommandLine.Command( + name = "add", + description = "Adds private storage" +) +public class Add implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Storage storage; + + @CommandLine.Option( + names = {"--identifier", "-i"}, + description = "Storage identifier to be associated with this path", + required = true) + private String identifier; + + @CommandLine.Option( + names = {"--path", "-p"}, + description = "Absolute path (with protocol) that is associated with this identifier", + required = true) + private String path; + + @Override + public void run() { + Cli cli = storage.getProfile().getCli(); + + UserPrivateProfile privateProfile = cli.datasafe().userProfile().privateProfile(cli.auth()); + Map> pathsMap = new HashMap<>( + privateProfile.getPrivateStorage() + ); + + pathsMap.put(new StorageIdentifier(identifier), BasePrivateResource.forAbsolutePrivate(path)); + + cli.datasafe().userProfile().updatePrivateProfile( + cli.auth(), + privateProfile.toBuilder().privateStorage(pathsMap).build() + ); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/List.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/List.java new file mode 100644 index 000000000..93c5b212c --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/List.java @@ -0,0 +1,28 @@ +package de.adorsys.datasafe.cli.commands.profile.storage; + +import de.adorsys.datasafe.cli.Cli; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "list", + aliases = "ls", + description = "Lists path mapping aliases to access user storage" +) +public class List implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Storage storage; + + @Override + public void run() { + Cli cli = storage.getProfile().getCli(); + + cli.datasafe().userProfile().privateProfile( + cli.auth() + ).getPrivateStorage().forEach( + (key, value) -> System.out.println(key.getId() + "\t" + value.location().asString()) + ); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Remove.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Remove.java new file mode 100644 index 000000000..def903c59 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Remove.java @@ -0,0 +1,46 @@ +package de.adorsys.datasafe.cli.commands.profile.storage; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.PrivateResource; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.Getter; +import picocli.CommandLine; + +import java.util.HashMap; +import java.util.Map; + +@CommandLine.Command( + name = "remove", + aliases = "rm", + description = "Removes path access credentials" +) +public class Remove implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Storage storage; + + @CommandLine.Option( + names = {"--identifier", "-i"}, + description = "Storage identifier to be associated with this path", + required = true) + private String identifier; + + @Override + public void run() { + Cli cli = storage.getProfile().getCli(); + + UserPrivateProfile privateProfile = cli.datasafe().userProfile().privateProfile(cli.auth()); + Map> pathsMap = new HashMap<>( + privateProfile.getPrivateStorage() + ); + pathsMap.remove(new StorageIdentifier(identifier)); + + cli.datasafe().userProfile().updatePrivateProfile( + cli.auth(), + privateProfile.toBuilder().privateStorage(pathsMap).build() + ); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Storage.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Storage.java new file mode 100644 index 000000000..9599357d7 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/Storage.java @@ -0,0 +1,28 @@ +package de.adorsys.datasafe.cli.commands.profile.storage; + +import de.adorsys.datasafe.cli.commands.profile.Profile; +import de.adorsys.datasafe.cli.commands.profile.storage.credentials.Credentials; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "storage", + description = "Manages user storage list (i.e. adds another s3 storage path)", + subcommands = { + Add.class, + List.class, + Remove.class, + Credentials.class + } +) +public class Storage implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Profile profile; + + @Override + public void run() { + CommandLine.usage(new Storage(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Add.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Add.java new file mode 100644 index 000000000..e9ba6ccfe --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Add.java @@ -0,0 +1,47 @@ +package de.adorsys.datasafe.cli.commands.profile.storage.credentials; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.directory.api.types.StorageCredentials; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "add", + description = "Adds path mapping and credentials for it (i.e. credentials to access s3://.+)" +) +public class Add implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Credentials credentials; + + @CommandLine.Option( + names = {"--mapping", "-m"}, + description = "Storage mapping regex (i.e. 's3://.+' will route all requests with s3 protocol to this storage)", + required = true) + private String mapping; + + @CommandLine.Option( + names = {"--username", "-u"}, + description = "Storage username (i.e. AWS_ACCESS_KEY)", + required = true) + private String username; + + @CommandLine.Option( + names = {"--password", "-p"}, + description = "Storage password (i.e. AWS_SECRET_KEY)", + interactive = true, + required = true) + private String password; + + @Override + public void run() { + Cli cli = credentials.getStorage().getProfile().getCli(); + cli.datasafe().userProfile().registerStorageCredentials( + cli.auth(), + new StorageIdentifier(mapping), + new StorageCredentials(username, password) + ); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Credentials.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Credentials.java new file mode 100644 index 000000000..8a97fab10 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Credentials.java @@ -0,0 +1,26 @@ +package de.adorsys.datasafe.cli.commands.profile.storage.credentials; + +import de.adorsys.datasafe.cli.commands.profile.storage.Storage; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "credentials", + description = "Manages user storage credentials (i.e. your credentials to access S3 bucket)", + subcommands = { + Add.class, + List.class, + Remove.class + } +) +public class Credentials implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Storage storage; + + @Override + public void run() { + CommandLine.usage(new Credentials(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/List.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/List.java new file mode 100644 index 000000000..79a2f8102 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/List.java @@ -0,0 +1,27 @@ +package de.adorsys.datasafe.cli.commands.profile.storage.credentials; + +import de.adorsys.datasafe.cli.Cli; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "list", + aliases = "ls", + description = "Adds path mapping and credentials for it (i.e. credentials to access s3://.+)" +) +public class List implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Credentials credentials; + + @Override + public void run() { + Cli cli = credentials.getStorage().getProfile().getCli(); + cli.datasafe().userProfile().listRegisteredStorageCredentials(cli.auth()) + // Omit values that exists by default in keystore FIXME - remove these from storage keystore: + .stream() + .filter(it -> !it.getId().startsWith("PRIVATE_SECRET") && !it.getId().startsWith("PATH_SECRET")) + .forEach(it -> System.out.println(it.getId())); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Remove.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Remove.java new file mode 100644 index 000000000..e15a2f1c8 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/storage/credentials/Remove.java @@ -0,0 +1,33 @@ +package de.adorsys.datasafe.cli.commands.profile.storage.credentials; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "remove", + aliases = "rm", + description = "Removes path access credentials" +) +public class Remove implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Credentials credentials; + + @CommandLine.Option( + names = {"--mapping", "-m"}, + description = "Storage mapping regex/id (i.e. 's3://.+' will route all requests with s3 protocol to this storage)", + required = true) + private String mapping; + + @Override + public void run() { + Cli cli = credentials.getStorage().getProfile().getCli(); + cli.datasafe().userProfile().deregisterStorageCredentials( + cli.auth(), + new StorageIdentifier(mapping) + ); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PrivateProfile.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PrivateProfile.java new file mode 100644 index 000000000..1294e7fab --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PrivateProfile.java @@ -0,0 +1,48 @@ +package de.adorsys.datasafe.cli.commands.profile.update; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import lombok.Getter; +import picocli.CommandLine; + +import java.util.Collections; + +import static de.adorsys.datasafe.cli.commands.profile.InputUtil.inpPath; + +@CommandLine.Command( + name = "private", + description = "Updates user private part of user profile" +) +public class PrivateProfile implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Update update; + + @Override + public void run() { + Cli cli = update.getProfile().getCli(); + UserPrivateProfile current = cli.datasafe().userProfile().privateProfile(cli.auth()); + + UserPrivateProfile privateProfile = UserPrivateProfile.builder() + .keystore(BasePrivateResource.forAbsolutePrivate(inpPath("Keystore", asStr(current.getKeystore())))) + .privateStorage(current.getPrivateStorage()) + .inboxWithFullAccess(BasePrivateResource.forAbsolutePrivate(inpPath("Inbox", asStr(current.getInboxWithFullAccess())))) + .storageCredentialsKeystore( + BasePrivateResource.forAbsolutePrivate( + inpPath("Storage credentials keystore", asStr(current.getStorageCredentialsKeystore())) + ) + ) + .associatedResources(Collections.emptyList()) + .publishPublicKeysTo(current.getPublishPublicKeysTo()) + .build(); + + cli.datasafe().userProfile().updatePrivateProfile(cli.auth(), privateProfile); + } + + private String asStr(AbsoluteLocation location) { + return location.location().asString(); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PublicProfile.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PublicProfile.java new file mode 100644 index 000000000..dabc21344 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/PublicProfile.java @@ -0,0 +1,40 @@ +package de.adorsys.datasafe.cli.commands.profile.update; + +import de.adorsys.datasafe.cli.Cli; +import de.adorsys.datasafe.directory.api.types.UserPublicProfile; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.BasePublicResource; +import lombok.Getter; +import picocli.CommandLine; + +import static de.adorsys.datasafe.cli.commands.profile.InputUtil.inpPath; + +@CommandLine.Command( + name = "public", + description = "Updates user public part of user profile" +) +public class PublicProfile implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Update update; + + @Override + public void run() { + Cli cli = update.getProfile().getCli(); + UserPublicProfile current = cli.datasafe().userProfile().publicProfile(cli.auth().getUserID()); + + UserPublicProfile publicProfile = UserPublicProfile.builder() + .inbox(BasePublicResource.forAbsolutePublic(inpPath("Inbox", asStr(current.getPublicKeys())))) + .publicKeys(BasePublicResource.forAbsolutePublic(inpPath("Public keys", asStr(current.getInbox())))) + .build(); + + cli.datasafe().userProfile().updatePublicProfile(cli.auth(), publicProfile); + } + + private String asStr(AbsoluteLocation location) { + return location.location().asString(); + } + +} + diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/Update.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/Update.java new file mode 100644 index 000000000..4abb9eac9 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/commands/profile/update/Update.java @@ -0,0 +1,25 @@ +package de.adorsys.datasafe.cli.commands.profile.update; + +import de.adorsys.datasafe.cli.commands.profile.Profile; +import lombok.Getter; +import picocli.CommandLine; + +@CommandLine.Command( + name = "update", + description = "Updates user profile - i.e. adds another private storage", + subcommands = { + PrivateProfile.class, + PublicProfile.class + } +) +public class Update implements Runnable { + + @Getter + @CommandLine.ParentCommand + private Profile profile; + + @Override + public void run() { + CommandLine.usage(new Update(), System.out); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/config/DatasafeFactory.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/config/DatasafeFactory.java new file mode 100644 index 000000000..7285b1f6f --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/config/DatasafeFactory.java @@ -0,0 +1,146 @@ +package de.adorsys.datasafe.cli.config; + +import com.amazonaws.ClientConfiguration; +import com.amazonaws.Protocol; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.google.common.collect.ImmutableMap; +import dagger.Lazy; +import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; +import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; +import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImpl; +import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.dfs.RegexAccessServiceWithStorageCredentialsImpl; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.storage.api.RegexDelegatingStorage; +import de.adorsys.datasafe.storage.api.StorageService; +import de.adorsys.datasafe.storage.api.UriBasedAuthStorageService; +import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; +import de.adorsys.datasafe.storage.impl.s3.S3ClientFactory; +import de.adorsys.datasafe.storage.impl.s3.S3StorageService; +import de.adorsys.datasafe.types.api.context.BaseOverridesRegistry; +import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; +import lombok.experimental.Delegate; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; + +import java.nio.file.Path; +import java.util.regex.Pattern; + +@Slf4j +@UtilityClass +public class DatasafeFactory { + + public static DefaultDatasafeServices datasafe(Path fsRoot, ReadStorePassword systemPassword) { + OverridesRegistry registry = new BaseOverridesRegistry(); + DefaultDatasafeServices multiDfsDatasafe = DaggerDefaultDatasafeServices + .builder() + .config(new DefaultDFSConfig(fsRoot.toUri(), systemPassword)) + .storage( + new RegexDelegatingStorage( + ImmutableMap.builder() + .put(Pattern.compile("file:/.+"), localFs(fsRoot)) + .put(Pattern.compile("s3://.+"), amazonS3()) + .put(Pattern.compile("http://.+"), httpS3()) + .put(Pattern.compile("https://.+"), httpS3()) + .build() + ) + ) + .overridesRegistry(registry) + .build(); + + BucketAccessServiceImplRuntimeDelegatable.overrideWith( + registry, args -> new WithCredentialProvider(args.getStorageKeyStoreOperations()) + ); + + return multiDfsDatasafe; + } + + private static StorageService localFs(Path fsRoot) { + return new FileSystemStorageService(fsRoot); + } + + private static StorageService httpS3() { + return new UriBasedAuthStorageService( + acc -> getStorageService( + acc.getAccessKey(), + acc.getSecretKey(), + acc.getEndpoint(), + acc.getRegion(), + acc.getBucketName() + ) + ); + } + + private static StorageService amazonS3() { + return new UriBasedAuthStorageService( + acc -> new S3StorageService( + S3ClientFactory.getAmazonClient( + acc.getRegion(), + acc.getAccessKey(), + acc.getSecretKey() + ), + // Bucket name is encoded in first path segment + acc.getBucketName(), + ExecutorServiceUtil.submitterExecutesOnStarvationExecutingService() + ), + uri -> (uri.getHost() + "/" + uri.getPath().replaceFirst("^/", "")).split("/") + ); + } + + private static class WithCredentialProvider extends BucketAccessServiceImpl { + + @Delegate + private final RegexAccessServiceWithStorageCredentialsImpl delegate; + + private WithCredentialProvider(Lazy storageKeyStoreOperations) { + super(null); + this.delegate = new RegexAccessServiceWithStorageCredentialsImpl(storageKeyStoreOperations); + } + } + + private static S3StorageService getStorageService(String accessKey, String secretKey, String url, String region, + String bucket) { + AmazonS3ClientBuilder amazonS3ClientBuilder = AmazonS3ClientBuilder.standard() + .withCredentials( + new AWSStaticCredentialsProvider( + new BasicAWSCredentials( + accessKey, + secretKey)) + ) + .enablePathStyleAccess(); + + AwsClientBuilder.EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration( + url, + region + ); + amazonS3ClientBuilder.withEndpointConfiguration(endpoint); + + if (! url.toLowerCase().startsWith("https")) { + log.info("Creating S3 client without https"); + ClientConfiguration clientConfig = new ClientConfiguration(); + clientConfig.setProtocol(Protocol.HTTP); + clientConfig.disableSocketProxy(); + amazonS3ClientBuilder.withClientConfiguration(clientConfig); + } + + AmazonS3 amazons3 = amazonS3ClientBuilder.build(); + + return new S3StorageService( + amazons3, + bucket, + ExecutorServiceUtil + .submitterExecutesOnStarvationExecutingService( + 5, + 5 + ) + ); + } +} + diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/dto/Credentials.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/dto/Credentials.java new file mode 100644 index 000000000..18f736861 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/dto/Credentials.java @@ -0,0 +1,19 @@ +package de.adorsys.datasafe.cli.dto; + +import lombok.Data; +import picocli.CommandLine; + +@Data +public class Credentials { + + @CommandLine.Option(names = {"--username", "-u"}, description = "Username", required = true) + private String username; + + @CommandLine.Option(names = {"--password", "-p"}, description = "Users' password", interactive = true, + required = true) + private String password; + + @CommandLine.Option(names = {"--system-password", "-sp"}, description = "System password", interactive = true, + required = true) + private String systemPassword; +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/NoOpRandom.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/NoOpRandom.java new file mode 100644 index 000000000..4b6bbbe29 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/NoOpRandom.java @@ -0,0 +1,13 @@ +package de.adorsys.datasafe.cli.hacks; + +import java.security.SecureRandom; + +/** + * This class substitutes SecureRandom during CLI generation, it should be overridden during runtime. + */ +public class NoOpRandom extends SecureRandom { + + public NoOpRandom() { + super(null, null); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixCryptoRegistrar.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixCryptoRegistrar.java new file mode 100644 index 000000000..55acb12b2 --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixCryptoRegistrar.java @@ -0,0 +1,35 @@ +package de.adorsys.datasafe.cli.hacks.graalfeature; + +import com.oracle.svm.core.annotate.AutomaticFeature; +import de.adorsys.datasafe.cli.hacks.NoOpRandom; +import lombok.SneakyThrows; +import org.bouncycastle.crypto.CryptoServicesRegistrar; +import org.graalvm.nativeimage.hosted.Feature; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.security.SecureRandom; + +/** + * Bouncy Castle attempts to access SecureRandom in {@link CryptoServicesRegistrar} class, during CLI + * generation. Because it is not allowed to have NativePRNG in image heap this breaks compilation. + * We fix this by setting {@code CryptoServicesRegistrar#defaultSecureRandom} to {@link NoOpRandom} that + * is simply stub class. Then, in runtime in main() CLI simply sets {@code defaultSecureRandom} to null + * before doing any useful work and such trick forces CryptoServicesRegistrar to get correct {@link SecureRandom} + * implementation, because when it is null BC initializes the field. + */ +@AutomaticFeature +public class GraalCompileFixCryptoRegistrar implements Feature { + + @Override + @SneakyThrows + public void afterRegistration(AfterRegistrationAccess access) { + Field secureRandom = CryptoServicesRegistrar.class.getDeclaredField("defaultSecureRandom"); + secureRandom.setAccessible(true); + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(secureRandom, secureRandom.getModifiers() & ~Modifier.FINAL); + + secureRandom.set(CryptoServicesRegistrar.class, new NoOpRandom()); + } +} diff --git a/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixNpeOnMissingServiceTypeInKnownProviders.java b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixNpeOnMissingServiceTypeInKnownProviders.java new file mode 100644 index 000000000..96152628e --- /dev/null +++ b/datasafe-cli/src/main/java/de/adorsys/datasafe/cli/hacks/graalfeature/GraalCompileFixNpeOnMissingServiceTypeInKnownProviders.java @@ -0,0 +1,126 @@ +package de.adorsys.datasafe.cli.hacks.graalfeature; + +import com.oracle.svm.core.annotate.AutomaticFeature; +import lombok.RequiredArgsConstructor; +import lombok.experimental.Delegate; +import org.graalvm.nativeimage.hosted.Feature; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.nio.charset.StandardCharsets; +import java.security.Provider; +import java.util.Locale; +import java.util.Map; + +/** + * This class fixes NPE exception in Graal-compilator - when it tries to get non-existing engines from + * {@link java.security.Provider} + *

+ * Additionally can log access to null service types using property PROVIDER_ACCESS_LOGGER, + * so you can add necessary fields to extra_engines.hack. (This will break build later, so you will need + * to remove this property when you detected all nulls in Provider). + *

+ * Override string example: + * X509Store=false,null + */ +@AutomaticFeature +public class GraalCompileFixNpeOnMissingServiceTypeInKnownProviders implements Feature { + + private static final String PROVIDER_ACCESS_LOGGER = "PROVIDER_ACCESS_LOGGER"; + + @Override + public void afterRegistration(AfterRegistrationAccess access) { + ClassLoader classloader = Thread.currentThread().getContextClassLoader(); + + try (InputStream is = classloader.getResourceAsStream("extra_engines.hack"); + InputStreamReader streamReader = new InputStreamReader(is, StandardCharsets.UTF_8); + BufferedReader reader = new BufferedReader(streamReader)) { + reader.lines().forEach(it -> { + System.out.println("Overriding " + it); + String[] typeAndValue = it.split("="); + String[] params = typeAndValue[1].split(","); + addEngine(typeAndValue[0], params[0], params[1]); + }); + } catch (IOException ex) { + System.out.println("Failed to read resource - extra_engines.hack " + ex.getMessage()); + ex.printStackTrace(); + } + + } + + private void addEngine(String name, String sp, String paramNam) { + try { + addEngineInternal(name, sp, paramNam); + } catch (ReflectiveOperationException ex) { + System.out.println("Reflective access error " + ex.getMessage()); + ex.printStackTrace(); + throw new IllegalStateException("Failed"); + } + } + + private void addEngineInternal(String name, String sp, String paramNam) throws + NoSuchFieldException, + ClassNotFoundException, + NoSuchMethodException, + IllegalAccessException, + InstantiationException, + InvocationTargetException { + Field knownEngines = Provider.class.getDeclaredField("knownEngines"); + knownEngines.setAccessible(true); + + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(knownEngines, knownEngines.getModifiers() & ~Modifier.FINAL); + + Class engineDescription = Class.forName("java.security.Provider$EngineDescription"); + + Constructor ctor = engineDescription.getDeclaredConstructor(String.class, boolean.class, String.class); + ctor.setAccessible(true); + + @SuppressWarnings("unchecked") + Map originalEngine = (Map) knownEngines.get(null); + + Map delegate = null != System.getProperty(PROVIDER_ACCESS_LOGGER) + ? new EngineDelegate(originalEngine) : originalEngine; + + knownEngines.set(Map.class, delegate); + + Object engineDescInstance = ctor.newInstance( + name, + Boolean.parseBoolean(sp), + "null".equals(paramNam) ? null : paramNam + ); + + delegate.put(name.toLowerCase(Locale.ENGLISH), engineDescInstance); + delegate.put(name, engineDescInstance); + } + + @RequiredArgsConstructor + private static class EngineDelegate implements Map { + + @Delegate(excludes = Get.class) + private final Map delegate; + + + @Override + public Object get(Object key) { + Object value = delegate.get(key); + + if (null == value) { + System.out.println("Detected access to null value in Provider.knownEngines for type " + key); + } + + return value; + } + + private interface Get { + Object get(Object key); + } + } +} diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/GENERATE.md b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/GENERATE.md new file mode 100644 index 000000000..ea51cb553 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/GENERATE.md @@ -0,0 +1 @@ +java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli -jar target/datasafe-cli-pkg.jar diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/jni-config.json b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/jni-config.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/jni-config.json @@ -0,0 +1,2 @@ +[ +] diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/native-image.properties b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/native-image.properties new file mode 100644 index 000000000..8f7419043 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/native-image.properties @@ -0,0 +1,7 @@ +Args=\ + -H:+ReportExceptionStackTraces \ + -H:+TraceClassInitialization \ + -H:+ReportUnsupportedElementsAtRuntime \ + -H:ResourceConfigurationResources=${.}/resource-config.json \ + -H:ReflectionConfigurationResources=${.}/reflect-config.json \ + -H:DynamicProxyConfigurationResources=${.}/proxy-config.json diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/proxy-config.json b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/proxy-config.json new file mode 100644 index 000000000..d7b7b4c87 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/proxy-config.json @@ -0,0 +1,11 @@ +[ + [ + "org.apache.http.conn.ConnectionRequest", + "com.amazonaws.http.conn.Wrapped" + ], + [ + "org.apache.http.conn.HttpClientConnectionManager", + "org.apache.http.pool.ConnPoolControl", + "com.amazonaws.http.conn.Wrapped" + ] +] diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/reflect-config.json b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/reflect-config.json new file mode 100644 index 000000000..80f9109a8 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/reflect-config.json @@ -0,0 +1,1208 @@ +[ + { + "name": "com.amazonaws.internal.config.Builder", + "allDeclaredMethods": true + }, + { + "name": "com.amazonaws.internal.config.HostRegexToRegionMappingJsonHelper", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.internal.config.HttpClientConfigJsonHelper", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.internal.config.InternalConfigJsonHelper", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.internal.config.JsonIndex", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.internal.config.SignerConfigJsonHelper", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.jmx.SdkMBeanRegistrySupport", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "com.amazonaws.partitions.model.CredentialScope", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.partitions.model.Endpoint", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.partitions.model.Partition", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.partitions.model.Partitions", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.partitions.model.Region", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.partitions.model.Service", + "allDeclaredFields": true, + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "com.amazonaws.services.s3.internal.AWSS3V4Signer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "com.google.common.util.concurrent.AbstractFuture", + "fields": [ + { + "name": "listeners", + "allowUnsafeAccess": true + }, + { + "name": "value", + "allowUnsafeAccess": true + }, + { + "name": "waiters", + "allowUnsafeAccess": true + } + ] + }, + { + "name": "com.google.common.util.concurrent.AbstractFuture$Waiter", + "fields": [ + { + "name": "next", + "allowUnsafeAccess": true + }, + { + "name": "thread", + "allowUnsafeAccess": true + } + ] + }, + { + "name": "com.sun.org.apache.xerces.internal.parsers.SAXParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "de.adorsys.datasafe.cli.Cli", + "methods": [ + { + "name": "main", + "parameterTypes": [ + "java.lang.String[]" + ] + } + ] + }, + { + "name": "de.adorsys.datasafe.types.api.global.PathEncryptionId", + "allDeclaredFields": true + }, + { + "name": "de.adorsys.datasafe.types.api.global.Version", + "allDeclaredFields": true, + "fields": [ + { + "name": "id", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.directory.api.types.StorageCredentials", + "allDeclaredFields": true, + "fields": [ + { + "name": "username", + "allowWrite": true + }, + { + "name": "password", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.directory.api.types.UserPrivateProfile", + "allDeclaredConstructors": true, + "allDeclaredFields": true, + "fields": [ + { + "name": "keystore", + "allowWrite": true + }, + { + "name": "privateStorage", + "allowWrite": true + }, + { + "name": "inboxWithFullAccess", + "allowWrite": true + }, + { + "name": "publishPublicKeysTo", + "allowWrite": true + }, + { + "name": "associatedResources", + "allowWrite": true + }, + { + "name": "documentVersionStorage", + "allowWrite": true + }, + { + "name": "storageCredentialsKeystore", + "allowWrite": true + }, + { + "name": "appVersion", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.directory.api.types.UserPublicProfile", + "allDeclaredConstructors": true, + "allDeclaredFields": true, + "fields": [ + { + "name": "publicKeys", + "allowWrite": true + }, + { + "name": "inbox", + "allowWrite": true + }, + { + "name": "appVersion", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.encrypiton.api.types.BaseTypeString", + "allDeclaredFields": true, + "fields": [ + { + "name": "value", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID", + "allDeclaredFields": true + }, + { + "name": "de.adorsys.datasafe.encrypiton.api.types.keystore.PublicKeyIDWithPublicKey", + "allDeclaredFields": true, + "fields": [ + { + "name": "keyID", + "allowWrite": true + }, + { + "name": "publicKey", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.types.api.resource.AbsoluteLocation", + "allDeclaredFields": true, + "fields": [ + { + "name": "resource", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.types.api.resource.BasePrivateResource", + "allDeclaredFields": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "de.adorsys.datasafe.types.api.resource.BasePublicResource", + "allDeclaredFields": true + }, + { + "name": "de.adorsys.datasafe.types.api.resource.StorageIdentifier", + "allDeclaredFields": true, + "fields": [ + { + "name": "id", + "allowWrite": true + } + ] + }, + { + "name": "de.adorsys.datasafe.types.api.resource.Uri", + "allDeclaredFields": true + }, + { + "name": "java.util.ArrayList", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "java.lang.String" + }, + { + "name": "java.lang.Thread", + "methods": [ + { + "name": "getContextClassLoader", + "parameterTypes": [] + } + ] + }, + { + "name": "java.text.DateFormatSymbols", + "methods": [ + { + "name": "getInstance", + "parameterTypes": [ + "java.util.Locale" + ] + } + ] + }, + { + "name": "java.util.ArrayList", + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "java.util.HashSet", + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "java.util.LinkedHashMap", + "allDeclaredMethods": true, + "allDeclaredConstructors": true + }, + { + "name": "javax.crypto.AEADBadTagException", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "javax.crypto.spec.GCMParameterSpec", + "methods": [ + { + "name": "", + "parameterTypes": [ + "int", + "byte[]" + ] + }, + { + "name": "getIV", + "parameterTypes": [] + }, + { + "name": "getTLen", + "parameterTypes": [] + } + ] + }, + { + "name": "javax.xml.bind.DatatypeConverter" + }, + { + "name": "org.apache.commons.logging.LogFactory" + }, + { + "name": "org.apache.commons.logging.impl.NoOpLog", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "org.apache.commons.logging.impl.LogFactoryImpl", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.apache.commons.logging.impl.WeakHashtable", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.crypto.util.PBKDF2Config", + "allDeclaredFields": true + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPublicKey", + "allDeclaredFields": true + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "java.security.AlgorithmParameterGeneratorSpi", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "sun.misc.Unsafe", + "allDeclaredFields": true, + "methods": [ + { + "name": "allocateInstance", + "parameterTypes": [ + "java.lang.Class" + ] + } + ] + }, + { + "name": "java.security.KeyStoreSpi", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "sun.security.provider.SecureRandom", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "sun.security.provider.Sun", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] diff --git a/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/resource-config.json b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/resource-config.json new file mode 100644 index 000000000..d8a326c80 --- /dev/null +++ b/datasafe-cli/src/main/resources/META-INF/native-image/de.adorsys/datasafe-cli/resource-config.json @@ -0,0 +1,1471 @@ +{ + "resources": [ + { + "pattern": "META-INF/MANIFEST.MF" + }, + { + "pattern": "com/amazonaws/internal/config/awssdk_config_default.json" + }, + { + "pattern": "com/amazonaws/partitions/endpoints.json" + }, + { + "pattern": "com/amazonaws/sdk/versionInfo.properties" + }, + { + "pattern": "de/adorsys/datasafe/cli/Cli$DataOnS3.class" + }, + { + "pattern": "javax/crypto/Cipher.class" + }, + { + "pattern": "lib/animal-sniffer-annotations-1.17.jar" + }, + { + "pattern": "lib/aws-java-sdk-core-1.11.538.jar" + }, + { + "pattern": "lib/aws-java-sdk-kms-1.11.538.jar" + }, + { + "pattern": "lib/aws-java-sdk-s3-1.11.538.jar" + }, + { + "pattern": "lib/bcpkix-jdk15on-1.64.jar" + }, + { + "pattern": "lib/bcprov-jdk15on-1.64.jar" + }, + { + "pattern": "lib/checker-qual-2.5.2.jar" + }, + { + "pattern": "lib/commons-codec-1.10.jar" + }, + { + "pattern": "lib/commons-lang3-3.5.jar" + }, + { + "pattern": "lib/commons-logging-1.1.3.jar" + }, + { + "pattern": "lib/dagger-2.17.jar" + }, + { + "pattern": "lib/datasafe-business.jar" + }, + { + "pattern": "lib/datasafe-directory-api.jar" + }, + { + "pattern": "lib/datasafe-directory-impl.jar" + }, + { + "pattern": "lib/datasafe-encryption-api.jar" + }, + { + "pattern": "lib/datasafe-encryption-impl.jar" + }, + { + "pattern": "lib/datasafe-inbox-api.jar" + }, + { + "pattern": "lib/datasafe-inbox-impl.jar" + }, + { + "pattern": "lib/datasafe-metainfo-version-api.jar" + }, + { + "pattern": "lib/datasafe-metainfo-version-impl.jar" + }, + { + "pattern": "lib/datasafe-privatestore-api.jar" + }, + { + "pattern": "lib/datasafe-privatestore-impl.jar" + }, + { + "pattern": "lib/datasafe-storage-api.jar" + }, + { + "pattern": "lib/datasafe-storage-impl-fs.jar" + }, + { + "pattern": "lib/datasafe-storage-impl-s3.jar" + }, + { + "pattern": "lib/datasafe-types-api.jar" + }, + { + "pattern": "lib/error_prone_annotations-2.2.0.jar" + }, + { + "pattern": "lib/failureaccess-1.0.1.jar" + }, + { + "pattern": "lib/gson-2.8.5.jar" + }, + { + "pattern": "lib/guava-27.0.1-jre.jar" + }, + { + "pattern": "lib/httpclient-4.5.5.jar" + }, + { + "pattern": "lib/httpcore-4.4.9.jar" + }, + { + "pattern": "lib/ion-java-1.0.2.jar" + }, + { + "pattern": "lib/j2objc-annotations-1.1.jar" + }, + { + "pattern": "lib/jackson-annotations-2.6.0.jar" + }, + { + "pattern": "lib/jackson-core-2.6.7.jar" + }, + { + "pattern": "lib/jackson-databind-2.6.7.2.jar" + }, + { + "pattern": "lib/jackson-dataformat-cbor-2.6.7.jar" + }, + { + "pattern": "lib/javax.inject-1.jar" + }, + { + "pattern": "lib/jmespath-java-1.11.538.jar" + }, + { + "pattern": "lib/joda-time-2.8.1.jar" + }, + { + "pattern": "lib/jsr305-3.0.0.jar" + }, + { + "pattern": "lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + }, + { + "pattern": "lib/lombok-1.18.6.jar" + }, + { + "pattern": "lib/picocli-4.0.3.jar" + }, + { + "pattern": "lib/siv-mode-1.3.1.jar" + }, + { + "pattern": "lib/slf4j-api-1.7.25.jar" + }, + { + "pattern": "lib/slf4j-simple-1.7.25.jar" + }, + { + "pattern": "mozilla/public-suffix-list.txt" + }, + { + "pattern": "org/apache/http/client/version.properties" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1ApplicationSpecific.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1BitString.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Boolean.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Choice.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Encodable.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1EncodableVector.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Enumerated.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Exception.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1External.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1GeneralizedTime.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Generator.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1InputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Integer.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Null.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Object.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1ObjectIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1OctetString.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1OctetStringParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1OutputStream$ImplicitOutputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1OutputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1ParsingException.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Primitive.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Sequence$1.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Sequence.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1SequenceParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1Set.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1SetParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1StreamParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1String.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1TaggedObject.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1TaggedObjectParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/ASN1UTCTime.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERGenerator.class" + }, + { + "pattern": "org/bouncycastle/asn1/BEROctetString.class" + }, + { + "pattern": "org/bouncycastle/asn1/BEROctetStringGenerator$BufferedBEROctetStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/BEROctetStringGenerator.class" + }, + { + "pattern": "org/bouncycastle/asn1/BEROctetStringParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/BEROutputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERSequence.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERSequenceGenerator.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERSequenceParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERSet.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERTaggedObject.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERTaggedObjectParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/BERTags.class" + }, + { + "pattern": "org/bouncycastle/asn1/ConstructedOctetStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERApplicationSpecific.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERBMPString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERBitString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERExternal.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERFactory.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERGeneralString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERGeneralizedTime.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERGraphicString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERIA5String.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERNull.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERNumericString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DEROctetString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DEROctetStringParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/DEROutputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERPrintableString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERSequence.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERSequenceParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERSet.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERSetParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERT61String.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERTaggedObject.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERUTCTime.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERUTF8String.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERUniversalString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERVideotexString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DERVisibleString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLApplicationSpecific.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLBitString.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLExternal.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLFactory.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLOutputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLSequence.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLSequenceParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLSet.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLSetParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/DLTaggedObject.class" + }, + { + "pattern": "org/bouncycastle/asn1/DateUtil.class" + }, + { + "pattern": "org/bouncycastle/asn1/DefiniteLengthInputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/InMemoryRepresentable.class" + }, + { + "pattern": "org/bouncycastle/asn1/IndefiniteLengthInputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/LazyEncodedSequence.class" + }, + { + "pattern": "org/bouncycastle/asn1/LimitedInputStream.class" + }, + { + "pattern": "org/bouncycastle/asn1/OIDTokenizer.class" + }, + { + "pattern": "org/bouncycastle/asn1/StreamUtil.class" + }, + { + "pattern": "org/bouncycastle/asn1/bc/BCObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/bsi/BSIObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/CMSObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/ContentInfoParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/EncryptedContentInfoParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/EnvelopedDataParser.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/IssuerAndSerialNumber.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/KEKIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/KEKRecipientInfo.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/KeyTransRecipientInfo.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/OtherRevocationInfoFormat.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/RecipientIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/cms/RecipientInfo.class" + }, + { + "pattern": "org/bouncycastle/asn1/cryptopro/CryptoProObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/eac/EACObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/edec/EdECObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/gm/GMObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/gnu/GNUObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/iana/IANAObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/iso/ISOIECObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/kisa/KISAObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/misc/MiscObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/nist/NISTObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/nsri/NSRIObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/ntt/NTTObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/oiw/OIWObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/pkcs/RSAPublicKey.class" + }, + { + "pattern": "org/bouncycastle/asn1/pkcs/RSASSAPSSparams.class" + }, + { + "pattern": "org/bouncycastle/asn1/rosstandart/RosstandartObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/sec/SECObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/teletrust/TeleTrusTObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/ua/UAObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/RDN.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/X500Name.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/X500NameBuilder.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/X500NameStyle.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/style/AbstractX500NameStyle.class" + }, + { + "pattern": "org/bouncycastle/asn1/x500/style/BCStyle.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/AlgorithmIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/AuthorityKeyIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/BasicConstraints.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/Certificate.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/Extension.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/Extensions.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/ExtensionsGenerator.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/KeyUsage.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/SubjectKeyIdentifier.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/SubjectPublicKeyInfo.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/TBSCertificate.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/Time.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/V3TBSCertificateGenerator.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/X509Extension.class" + }, + { + "pattern": "org/bouncycastle/asn1/x509/X509ObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/asn1/x9/X9ECParameters.class" + }, + { + "pattern": "org/bouncycastle/asn1/x9/X9ObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/cert/CertException.class" + }, + { + "pattern": "org/bouncycastle/cert/CertIOException.class" + }, + { + "pattern": "org/bouncycastle/cert/CertRuntimeException.class" + }, + { + "pattern": "org/bouncycastle/cert/CertUtils.class" + }, + { + "pattern": "org/bouncycastle/cert/X509CRLHolder.class" + }, + { + "pattern": "org/bouncycastle/cert/X509CertificateHolder.class" + }, + { + "pattern": "org/bouncycastle/cert/X509ExtensionUtils.class" + }, + { + "pattern": "org/bouncycastle/cert/X509v3CertificateBuilder.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/CertHelper.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/DefaultCertHelper.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509CertificateConverter$ExCertificateException.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509CertificateConverter$ExCertificateParsingException.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509CertificateHolder.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509ExtensionUtils$SHA1DigestCalculator.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509ExtensionUtils.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/JcaX509v3CertificateBuilder.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/NamedCertHelper.class" + }, + { + "pattern": "org/bouncycastle/cert/jcajce/ProviderCertHelper.class" + }, + { + "pattern": "org/bouncycastle/cert/selector/X509CertificateHolderSelector.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSAlgorithm.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSContentInfoParser.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedDataParser.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedDataStreamGenerator$CmsEnvelopedDataOutputStream.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedDataStreamGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedHelper$CMSEnvelopedSecureReadable.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSEnvelopedHelper.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSException.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSProcessable.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSProcessableInputStream.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSReadable.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSSecureReadable.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSTypedStream$FullReaderStream.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSTypedStream.class" + }, + { + "pattern": "org/bouncycastle/cms/CMSUtils.class" + }, + { + "pattern": "org/bouncycastle/cms/KEKRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/KEKRecipientId.class" + }, + { + "pattern": "org/bouncycastle/cms/KEKRecipientInfoGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/KEKRecipientInformation.class" + }, + { + "pattern": "org/bouncycastle/cms/KeyTransRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/KeyTransRecipientId.class" + }, + { + "pattern": "org/bouncycastle/cms/KeyTransRecipientInfoGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/KeyTransRecipientInformation.class" + }, + { + "pattern": "org/bouncycastle/cms/NullOutputStream.class" + }, + { + "pattern": "org/bouncycastle/cms/PasswordRecipient$PRF.class" + }, + { + "pattern": "org/bouncycastle/cms/Recipient.class" + }, + { + "pattern": "org/bouncycastle/cms/RecipientId.class" + }, + { + "pattern": "org/bouncycastle/cms/RecipientInfoGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/RecipientInformation.class" + }, + { + "pattern": "org/bouncycastle/cms/RecipientInformationStore.class" + }, + { + "pattern": "org/bouncycastle/cms/RecipientOperator.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/CMSUtils.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/DefaultJcaJceExtHelper.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/EnvelopedDataHelper$1.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/EnvelopedDataHelper$JCECallback.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/EnvelopedDataHelper.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JcaJceExtHelper.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceCMSContentEncryptorBuilder$CMSOutputEncryptor.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceCMSContentEncryptorBuilder.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKEKEnvelopedRecipient$1.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKEKEnvelopedRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKEKRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKEKRecipientInfoGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKeyTransEnvelopedRecipient$1.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKeyTransEnvelopedRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKeyTransRecipient.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/JceKeyTransRecipientInfoGenerator.class" + }, + { + "pattern": "org/bouncycastle/cms/jcajce/ProviderJcaJceExtHelper.class" + }, + { + "pattern": "org/bouncycastle/crypto/CipherParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/CryptoServicesPermission.class" + }, + { + "pattern": "org/bouncycastle/crypto/CryptoServicesRegistrar$Property.class" + }, + { + "pattern": "org/bouncycastle/crypto/CryptoServicesRegistrar.class" + }, + { + "pattern": "org/bouncycastle/crypto/Digest.class" + }, + { + "pattern": "org/bouncycastle/crypto/io/CipherIOException.class" + }, + { + "pattern": "org/bouncycastle/crypto/io/InvalidCipherTextIOException.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/AsymmetricKeyParameter.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DHParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DHValidationParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DSAKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DSAParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DSAPrivateKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DSAPublicKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/DSAValidationParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/ECKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/ECPublicKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/Ed25519PrivateKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/Ed25519PublicKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/RSAKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/params/RSAPrivateCrtKeyParameters.class" + }, + { + "pattern": "org/bouncycastle/crypto/prng/SP800SecureRandom.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/CipherInputStream.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/CipherOutputStream.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/DigestUpdatingOutputStream.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/MacUpdatingOutputStream.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/OutputStreamFactory.class" + }, + { + "pattern": "org/bouncycastle/jcajce/io/SignatureUpdatingOutputStream.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/DH$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/DH.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/DSA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/DSTU4145$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/EC$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/EC.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ECGOST$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/EdEC$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ElGamal$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/GM$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/GOST$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/IES$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/RSA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/RSA.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/X509$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/dh/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi$1.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/dstu/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi$EC.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi$ECMQV.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ecgost/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/ecgost12/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/edec/KeyFactorySpi$ED25519.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/edec/KeyFactorySpi$ED448.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/edec/KeyFactorySpi$X25519.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/edec/KeyFactorySpi$X448.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/edec/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/elgamal/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/gost/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/rsa/BCRSAPublicKey.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/rsa/RSAUtil.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/util/ExtendedInvalidKeySpecException.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/config/ProviderConfiguration.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/config/ProviderConfigurationPermission.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Blake2b$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Blake2s$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/DSTU7564$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/DigestAlgorithmProvider.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/GOST3411$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Keccak$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/MD2$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/MD4$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/MD5$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/RIPEMD128$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/RIPEMD160$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/RIPEMD256$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/RIPEMD320$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA1$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA224$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA256$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA3$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA384$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SHA512$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/SM3$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Skein$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Tiger$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/digest/Whirlpool$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/drbg/DRBG$CoreSecureRandom.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/drbg/DRBG$HybridSecureRandom.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/drbg/DRBG$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/drbg/DRBG$URLSeededSecureRandom.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/drbg/DRBG.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/keystore/BC$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/keystore/BCFKS$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/keystore/PKCS12$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/AES$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/ARC4$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/ARIA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Blowfish$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/CAST5$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/CAST6$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Camellia$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/ChaCha$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/DES$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/DESede$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/DSTU7624$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/GOST28147$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/GOST3412_2015$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Grain128$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Grainv1$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/HC128$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/HC256$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/IDEA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Noekeon$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/OpenSSLPBKDF$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF1$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Poly1305$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/RC2$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/RC5$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/RC6$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Rijndael$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/SCRYPT$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/SEED$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/SM4$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Salsa20$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Serpent$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Shacal2$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/SipHash$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Skipjack$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/TEA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/TLSKDF$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Threefish$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Twofish$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/VMPC$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/VMPCKSA3$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/XSalsa20$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/XTEA$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/Zuc$Mappings.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/util/AlgorithmProvider.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/util/AsymmetricAlgorithmProvider.class" + }, + { + "pattern": "org/bouncycastle/jcajce/provider/util/AsymmetricKeyInfoConverter.class" + }, + { + "pattern": "org/bouncycastle/jcajce/spec/DHDomainParameterSpec.class" + }, + { + "pattern": "org/bouncycastle/jcajce/util/AlgorithmParametersUtils.class" + }, + { + "pattern": "org/bouncycastle/jcajce/util/AnnotatedPrivateKey.class" + }, + { + "pattern": "org/bouncycastle/jcajce/util/DefaultJcaJceHelper.class" + }, + { + "pattern": "org/bouncycastle/jcajce/util/JcaJceHelper.class" + }, + { + "pattern": "org/bouncycastle/jcajce/util/ProviderJcaJceHelper.class" + }, + { + "pattern": "org/bouncycastle/jce/provider/BouncyCastleProvider$1.class" + }, + { + "pattern": "org/bouncycastle/jce/provider/BouncyCastleProviderConfiguration.class" + }, + { + "pattern": "org/bouncycastle/operator/AsymmetricKeyUnwrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/AsymmetricKeyWrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/ContentSigner.class" + }, + { + "pattern": "org/bouncycastle/operator/DefaultSecretKeySizeProvider.class" + }, + { + "pattern": "org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.class" + }, + { + "pattern": "org/bouncycastle/operator/DigestCalculator.class" + }, + { + "pattern": "org/bouncycastle/operator/GenericKey.class" + }, + { + "pattern": "org/bouncycastle/operator/InputDecryptor.class" + }, + { + "pattern": "org/bouncycastle/operator/KeyUnwrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/KeyWrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/OperatorCreationException.class" + }, + { + "pattern": "org/bouncycastle/operator/OperatorException.class" + }, + { + "pattern": "org/bouncycastle/operator/OperatorStreamException.class" + }, + { + "pattern": "org/bouncycastle/operator/OutputEncryptor.class" + }, + { + "pattern": "org/bouncycastle/operator/RuntimeOperatorException.class" + }, + { + "pattern": "org/bouncycastle/operator/SecretKeySizeProvider.class" + }, + { + "pattern": "org/bouncycastle/operator/SignatureAlgorithmIdentifierFinder.class" + }, + { + "pattern": "org/bouncycastle/operator/SymmetricKeyUnwrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/SymmetricKeyWrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JcaContentSignerBuilder$1.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JcaContentSignerBuilder$SignatureOutputStream.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JceAsymmetricKeyUnwrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JceGenericKey.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JceSymmetricKeyUnwrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/JceSymmetricKeyWrapper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/OperatorHelper$OpCertificateException.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/OperatorHelper.class" + }, + { + "pattern": "org/bouncycastle/operator/jcajce/OperatorUtils.class" + }, + { + "pattern": "org/bouncycastle/pqc/asn1/PQCObjectIdentifiers.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/mceliece/McElieceCCA2KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/mceliece/McElieceKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/newhope/NHKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/qtesla/QTESLAKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/rainbow/RainbowKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/sphincs/Sphincs256KeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/xmss/XMSSKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/pqc/jcajce/provider/xmss/XMSSMTKeyFactorySpi.class" + }, + { + "pattern": "org/bouncycastle/util/Arrays.class" + }, + { + "pattern": "org/bouncycastle/util/Encodable.class" + }, + { + "pattern": "org/bouncycastle/util/Integers.class" + }, + { + "pattern": "org/bouncycastle/util/Iterable.class" + }, + { + "pattern": "org/bouncycastle/util/Properties$1.class" + }, + { + "pattern": "org/bouncycastle/util/Properties.class" + }, + { + "pattern": "org/bouncycastle/util/Selector.class" + }, + { + "pattern": "org/bouncycastle/util/StringList.class" + }, + { + "pattern": "org/bouncycastle/util/Strings$1.class" + }, + { + "pattern": "org/bouncycastle/util/Strings.class" + }, + { + "pattern": "org/bouncycastle/util/encoders/DecoderException.class" + }, + { + "pattern": "org/bouncycastle/util/encoders/Encoder.class" + }, + { + "pattern": "org/bouncycastle/util/encoders/EncoderException.class" + }, + { + "pattern": "org/bouncycastle/util/encoders/Hex.class" + }, + { + "pattern": "org/bouncycastle/util/encoders/HexEncoder.class" + }, + { + "pattern": "org/bouncycastle/util/io/StreamOverflowException.class" + }, + { + "pattern": "org/bouncycastle/util/io/Streams.class" + }, + { + "pattern": "org/bouncycastle/util/io/TeeInputStream.class" + }, + { + "pattern": "org/bouncycastle/util/io/TeeOutputStream.class" + }, + { + "pattern": "org/joda/time/tz/data/.+" + }, + { + "pattern": "org/slf4j/impl/StaticLoggerBinder.class" + } + ] +} diff --git a/datasafe-cli/src/main/resources/extra_engines.hack b/datasafe-cli/src/main/resources/extra_engines.hack new file mode 100644 index 000000000..442931623 --- /dev/null +++ b/datasafe-cli/src/main/resources/extra_engines.hack @@ -0,0 +1,2 @@ +X509Store=false,null +X509StreamParser=false,null diff --git a/datasafe-cli/src/test/bash/basic_functionality_test_fs.sh b/datasafe-cli/src/test/bash/basic_functionality_test_fs.sh new file mode 100755 index 000000000..72a15603f --- /dev/null +++ b/datasafe-cli/src/test/bash/basic_functionality_test_fs.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +if [[ -z "$1" ]] ; then + echo "Test expects datasafe-cli executable path as 1st argument" + exit 1 +fi + +CLI="$1" +PROFILE_ROOT="$(pwd)/cli-profiles/" +SECRET_TEXT="Secret text" +PRIVATE_ON_FS="folder-fs/secret_on_fs.txt" +INBOX_ON_FS="hello.txt" + +do_exit() { + exit "$1" +} + +echo 'Creating profile' +yes '' | $CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" profile create || do_exit 1 + +echo "$SECRET_TEXT" > my_secret.txt + +echo 'Store secret in FS' +$CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" private cp my_secret.txt "$PRIVATE_ON_FS" || do_exit 1 + +echo 'Verify FS file content' +FS_TEXT=$($CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" private cat "$PRIVATE_ON_FS") +[[ "$FS_TEXT" != "$SECRET_TEXT" ]] && echo "Filesystem has wrong file content" && do_exit 1 +echo 'Verify FS file list' +FS_LIST=$($CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" private ls) +[[ "$FS_LIST" != "$PRIVATE_ON_FS" ]] && echo "Filesystem has wrong file list" && do_exit 1 + +echo 'Creating profile to share with' +yes '' | $CLI -u=friend -p=password-friend -sp=system_password -rd="$PROFILE_ROOT" profile create || do_exit 1 +echo 'Sharing file with friend' +$CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" inbox share -s=my_secret.txt -r=friend -f="$INBOX_ON_FS" || do_exit 1 +echo 'Verify FS inbox file content' +FS_INBOX_TEXT=$($CLI -u=friend -p=password-friend -sp=system_password -rd="$PROFILE_ROOT" inbox cat "$INBOX_ON_FS") +[[ "$FS_INBOX_TEXT" != "$SECRET_TEXT" ]] && echo "Filesystem has wrong shared file content" && do_exit 1 +echo 'Verify FS inbox file list' +FS_INBOX_LIST=$($CLI -u=friend -p=password-friend -sp=system_password -rd="$PROFILE_ROOT" inbox ls) +[[ "$FS_INBOX_LIST" != "$INBOX_ON_FS" ]] && echo "Filesystem has wrong shared file list" && exit 1 + +do_exit 0 \ No newline at end of file diff --git a/datasafe-cli/src/test/bash/basic_functionality_test_minio.sh b/datasafe-cli/src/test/bash/basic_functionality_test_minio.sh new file mode 100755 index 000000000..373462825 --- /dev/null +++ b/datasafe-cli/src/test/bash/basic_functionality_test_minio.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +if [[ -z "$1" ]] ; then + echo "Test expects datasafe-cli executable path as 1st argument" + exit 1 +fi + +# Docker not available on TravisCI-provided MacOS, allow to pass +if ! [ -x "$(command -v docker)" ]; then + echo 'Error: docker is not installed. Will exit with code 0 not to fail pipeline' + exit 0 +fi + +CLI="$1" +PROFILE_ROOT="$(pwd)/cli-profiles/" +MINIO_ACCESS_KEY="minio-access-key" +MINIO_SECRET_KEY="minio-secret-key" +MINIO_BUCKET="testBucket" +VOLUME="$(pwd)/minio" +SECRET_TEXT="Secret text" +PRIVATE_ON_MINIO="folder-minio/secret_on_minio.txt" + + +# create minio volume bucket +mkdir -p "$VOLUME/$MINIO_BUCKET" + +# Spin up minio to imitate S3, minio will create MINIO_BUCKET based on volume +docker run -d \ + --name MINIO \ + -p 9000:9000 \ + -e MINIO_ACCESS_KEY="$MINIO_ACCESS_KEY" \ + -e MINIO_SECRET_KEY="$MINIO_SECRET_KEY" \ + --mount type=bind,source="$VOLUME,target=/data" \ + minio/minio \ + server /data || exit 1 + +# Wait some time for minio to spin up +sleep 5 + +do_exit() { + # Stop minio + echo "Stopping minio" + docker rm -f MINIO + exit "$1" +} + +echo 'Creating profile' +yes '' | $CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" profile create || do_exit 1 + +echo 'Register MINIO storage' +$CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" profile storage add -i=MINIO -p="http://127.0.0.1:9000/eu-central-1/$MINIO_BUCKET/" || do_exit 1 +$CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" profile storage credentials add -m="http://.+" -u="$MINIO_ACCESS_KEY" -p="$MINIO_SECRET_KEY" || do_exit 1 + +echo "$SECRET_TEXT" > my_secret.txt + +# Checking how private files work on MINIO: +echo 'Store secret in MINIO' +$CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" private cp -s=MINIO my_secret.txt "$PRIVATE_ON_MINIO" || do_exit 1 + +echo 'Verify MINIO' +MINIO_TEXT=$($CLI -u=user -p=password -sp=system_password -rd="$PROFILE_ROOT" private cat -s=MINIO "$PRIVATE_ON_MINIO") +[[ "$MINIO_TEXT" != "$SECRET_TEXT" ]] && echo "Minio has wrong file content" && do_exit 1 + +do_exit 0 \ No newline at end of file diff --git a/datasafe-directory/datasafe-directory-api/pom.xml b/datasafe-directory/datasafe-directory-api/pom.xml index a0eeeaac7..a125a7f29 100644 --- a/datasafe-directory/datasafe-directory-api/pom.xml +++ b/datasafe-directory/datasafe-directory-api/pom.xml @@ -3,7 +3,7 @@ de.adorsys datasafe-directory - 0.6.2 + 0.7.0 datasafe-directory-api @@ -23,4 +23,22 @@ lombok + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/DocumentKeyStoreOperations.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/DocumentKeyStoreOperations.java index 48e15a33c..c7fa71171 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/DocumentKeyStoreOperations.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/DocumentKeyStoreOperations.java @@ -2,7 +2,7 @@ import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.PublicKeyIDWithPublicKey; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import java.security.Key; import java.util.List; diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/PrivateKeyService.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/PrivateKeyService.java index 7d1bfda62..2acdc65de 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/PrivateKeyService.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/PrivateKeyService.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.directory.api.profile.keys; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; import java.security.Key; @@ -14,20 +15,30 @@ public interface PrivateKeyService { /** * Get path-encryption key that will be used to encrypt URI paths. + * Access validation is not necessary - done by this function implicitly. * @param forUser Key owner - * @return Path encryption secret key. + * @return Path encryption entity which contain secret keys and key ID. */ - SecretKeyIDWithKey pathEncryptionSecretKey(UserIDAuth forUser); + AuthPathEncryptionSecretKey pathEncryptionSecretKey(UserIDAuth forUser); /** - * Get document-encryption key + * Get document-encryption key. Access validation is not necessary - done by this function implicitly. * @param forUser Key owner * @return Document encryption secret key. */ SecretKeyIDWithKey documentEncryptionSecretKey(UserIDAuth forUser); + /** + * Validates that user has access to his keystore. Should ignore any storage access exceptions + * to cover cases if keystore does not exist. + * @param forUser User to validate. + */ + void validateUserHasAccessOrThrow(UserIDAuth forUser); + /** * Raw access to get key by its ID specialized for getting multiple keys at a time. + * Access validation is not necessary - done by this function implicitly (but empty result set may indicate + * some problem). * @param forUser Key owner * @param keyIds Key IDs to receive keys for * @return Map (key id - Key) from database/storage associated with {@code keyId}, those key ids from diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/StorageKeyStoreOperations.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/StorageKeyStoreOperations.java index 68269680d..e81dd67c7 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/StorageKeyStoreOperations.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/keys/StorageKeyStoreOperations.java @@ -3,7 +3,7 @@ import de.adorsys.datasafe.directory.api.types.StorageCredentials; import de.adorsys.datasafe.types.api.resource.StorageIdentifier; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import java.util.Set; diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileOperations.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileOperations.java index e344f342a..b9ba15123 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileOperations.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileOperations.java @@ -4,5 +4,5 @@ * Aggregate interface for all profile operations. */ public interface ProfileOperations extends ProfileRegistrationService, ProfileUpdatingService, ProfileRetrievalService, - ProfileRemovalService { + ProfileRemovalService, ProfileStorageCredentialsService { } diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileRetrievalService.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileRetrievalService.java index 9dde46322..1cbabf9e0 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileRetrievalService.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileRetrievalService.java @@ -19,7 +19,7 @@ public interface ProfileRetrievalService { UserPublicProfile publicProfile(UserID ofUser); /** - * Resolves user's private meta-information like privatespace,keystore, etc. folder mapping. + * Resolves user's private meta-information like privatespace, keystore, etc. folder mapping. * @param ofUser resolve request * @return resolved user's profile */ diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileStorageCredentialsService.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileStorageCredentialsService.java new file mode 100644 index 000000000..6b3b290b9 --- /dev/null +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileStorageCredentialsService.java @@ -0,0 +1,34 @@ +package de.adorsys.datasafe.directory.api.profile.operations; + +import de.adorsys.datasafe.directory.api.types.StorageCredentials; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; + +import java.util.Set; + +/** + * Defines storage credentials management operations. + */ +public interface ProfileStorageCredentialsService { + + /** + * Registers credentials that allows user to access remote filesystems (i.e. Amazon S3 bucket) + * @param user Owner of storage credentials + * @param storageId Storage identifier - will be used to match URI in access request to storage credentials + * @param credentials Access credentials for storage. + */ + void registerStorageCredentials(UserIDAuth user, StorageIdentifier storageId, StorageCredentials credentials); + + /** + * Removes storeds credentials that allows user to access remote filesystems (i.e. Amazon S3 bucket) + * @param user Owner of storage credentials + * @param storageId Storage identifier - will be used to match URI in access request to storage credentials + */ + void deregisterStorageCredentials(UserIDAuth user, StorageIdentifier storageId); + + /** + * Lists storage credentials identifiers (regex-mappings) + * @param user storage credentials owner + */ + Set listRegisteredStorageCredentials(UserIDAuth user); +} diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileUpdatingService.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileUpdatingService.java index 44d4cba83..090db9368 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileUpdatingService.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/profile/operations/ProfileUpdatingService.java @@ -1,11 +1,9 @@ package de.adorsys.datasafe.directory.api.profile.operations; -import de.adorsys.datasafe.directory.api.types.StorageCredentials; import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; import de.adorsys.datasafe.directory.api.types.UserPublicProfile; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; -import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; /** * Updates users' profile in a system. @@ -34,19 +32,4 @@ public interface ProfileUpdatingService { * some requests using new password will fail until storage propagates data. */ void updateReadKeyPassword(UserIDAuth forUser, ReadKeyPassword newPassword); - - /** - * Registers credentials that allows user to access remote filesystems (i.e. Amazon S3 bucket) - * @param user Owner of storage credentials - * @param storageId Storage identifier - will be used to match URI in access request to storage credentials - * @param credentials Access credentials for storage. - */ - void registerStorageCredentials(UserIDAuth user, StorageIdentifier storageId, StorageCredentials credentials); - - /** - * Removes storeds credentials that allows user to access remote filesystems (i.e. Amazon S3 bucket) - * @param user Owner of storage credentials - * @param storageId Storage identifier - will be used to match URI in access request to storage credentials - */ - void deregisterStorageCredentials(UserIDAuth user, StorageIdentifier storageId); } diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPrivateProfile.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPrivateProfile.java index e942ab40b..8e70e21d1 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPrivateProfile.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPrivateProfile.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.directory.api.types; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.global.Version; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.PublicResource; @@ -65,9 +66,15 @@ public class CreateUserPrivateProfile { */ private final AbsoluteLocation publishPubKeysTo; - public UserPrivateProfile removeAccess() { + /** + * Entity appVersion. Keeps version of datasafe which was used to create profile + */ + @NonNull + @Builder.Default + private final Version appVersion = Version.current(); + + public UserPrivateProfile buildPrivateProfile() { return UserPrivateProfile.builder() - // FIXME - remove access ? .keystore(keystore) .privateStorage(new HashMap<>(Collections.singletonMap(StorageIdentifier.DEFAULT, privateStorage))) .storageCredentialsKeystore(storageCredentialsKeystore) @@ -75,6 +82,7 @@ public UserPrivateProfile removeAccess() { .documentVersionStorage(documentVersionStorage) .associatedResources(associatedResources) .publishPublicKeysTo(publishPubKeysTo) + .appVersion(appVersion) .build(); } } diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPublicProfile.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPublicProfile.java index 502650322..492e7b2a2 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPublicProfile.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/CreateUserPublicProfile.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.directory.api.types; import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.types.api.global.Version; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PublicResource; import lombok.Builder; @@ -32,11 +33,18 @@ public class CreateUserPublicProfile { @NonNull private final AbsoluteLocation inbox; - public UserPublicProfile removeAccess() { + /** + * Entity appVersion. Keeps version of Datasafe which was used to create profile + */ + @NonNull + @Builder.Default + private final Version appVersion = Version.current(); + + public UserPublicProfile buildPublicProfile() { return UserPublicProfile.builder() - // FIXME - remove access ? .inbox(inbox) .publicKeys(publicKeys) + .appVersion(appVersion) .build(); } } diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPrivateProfile.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPrivateProfile.java index 4eb86f1ff..ea08bfca6 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPrivateProfile.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPrivateProfile.java @@ -1,5 +1,6 @@ package de.adorsys.datasafe.directory.api.types; +import de.adorsys.datasafe.types.api.global.Version; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.PublicResource; @@ -16,7 +17,7 @@ */ @Data @Builder(toBuilder = true) -public class UserPrivateProfile { +public class UserPrivateProfile{ /** * Users' keystore location @@ -61,4 +62,10 @@ public class UserPrivateProfile { * Optional field used for getting storage credentials using default flow. */ private final AbsoluteLocation storageCredentialsKeystore; + + /** + * Entity appVersion. Keeps appVersion of datasafe which was used to create profile + */ + @NonNull + private final Version appVersion; } diff --git a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPublicProfile.java b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPublicProfile.java index 502ebe13e..b966792a1 100644 --- a/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPublicProfile.java +++ b/datasafe-directory/datasafe-directory-api/src/main/java/de/adorsys/datasafe/directory/api/types/UserPublicProfile.java @@ -1,5 +1,6 @@ package de.adorsys.datasafe.directory.api.types; +import de.adorsys.datasafe.types.api.global.Version; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PublicResource; import lombok.Builder; @@ -24,4 +25,10 @@ public class UserPublicProfile { */ @NonNull private final AbsoluteLocation inbox; + + /** + * Entity appVersion. Keeps version (logical, not release) of datasafe which was used to create profile + */ + @NonNull + private final Version appVersion; } diff --git a/datasafe-directory/datasafe-directory-impl/pom.xml b/datasafe-directory/datasafe-directory-impl/pom.xml index 735062af1..61f6397d9 100644 --- a/datasafe-directory/datasafe-directory-impl/pom.xml +++ b/datasafe-directory/datasafe-directory-impl/pom.xml @@ -3,7 +3,7 @@ de.adorsys datasafe-directory - 0.6.2 + 0.7.0 datasafe-directory-impl diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCreds.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCreds.java index abf73f15e..71a2f81c2 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCreds.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCreds.java @@ -2,7 +2,7 @@ import de.adorsys.datasafe.directory.api.types.CreateUserPrivateProfile; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadStorePassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.types.api.resource.Uri; import java.net.URI; @@ -14,22 +14,18 @@ public DFSConfigWithStorageCreds(Uri systemRoot, ReadStorePassword systemPasswor super(systemRoot, systemPassword, userProfileLocation); } - public DFSConfigWithStorageCreds(String systemRoot, String systemPassword) { + public DFSConfigWithStorageCreds(String systemRoot, ReadStorePassword systemPassword) { super(systemRoot, systemPassword); } - public DFSConfigWithStorageCreds(URI systemRoot, String systemPassword) { + public DFSConfigWithStorageCreds(URI systemRoot, ReadStorePassword systemPassword) { super(systemRoot, systemPassword); } - public DFSConfigWithStorageCreds(Uri systemRoot, String systemPassword) { + public DFSConfigWithStorageCreds(Uri systemRoot, ReadStorePassword systemPassword) { super(systemRoot, systemPassword); } - public DFSConfigWithStorageCreds(Uri systemRoot, String systemPassword, UserProfileLocation userProfileLocation) { - super(systemRoot, systemPassword, userProfileLocation); - } - @Override public CreateUserPrivateProfile defaultPrivateTemplate(UserIDAuth id) { CreateUserPrivateProfile base = super.defaultPrivateTemplate(id); diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DefaultDFSConfig.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DefaultDFSConfig.java index d02e4274e..d849c961c 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DefaultDFSConfig.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/DefaultDFSConfig.java @@ -6,9 +6,8 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadStorePassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.types.api.resource.*; -import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -19,7 +18,6 @@ * Default DFS folders layout provider, suitable both for s3 and filesystem. */ @Slf4j -@RequiredArgsConstructor public class DefaultDFSConfig implements DFSConfig { protected static final String USERS_ROOT = "users/"; @@ -38,7 +36,7 @@ public class DefaultDFSConfig implements DFSConfig { * to place everything in datasafe/system directory within storage * @param systemPassword System password to open keystore */ - public DefaultDFSConfig(String systemRoot, String systemPassword) { + public DefaultDFSConfig(String systemRoot, ReadStorePassword systemPassword) { this(new Uri(systemRoot), systemPassword); } @@ -47,7 +45,7 @@ public DefaultDFSConfig(String systemRoot, String systemPassword) { * to place everything in datasafe/system directory within storage * @param systemPassword System password to open keystore */ - public DefaultDFSConfig(URI systemRoot, String systemPassword) { + public DefaultDFSConfig(URI systemRoot, ReadStorePassword systemPassword) { this(new Uri(systemRoot), systemPassword); } @@ -56,7 +54,7 @@ public DefaultDFSConfig(URI systemRoot, String systemPassword) { * to place everything in datasafe/system directory within storage * @param systemPassword System password to open keystore */ - public DefaultDFSConfig(Uri systemRoot, String systemPassword) { + public DefaultDFSConfig(Uri systemRoot, ReadStorePassword systemPassword) { this(systemRoot, systemPassword, new DefaultUserProfileLocationImpl(systemRoot)); } @@ -66,10 +64,10 @@ public DefaultDFSConfig(Uri systemRoot, String systemPassword) { * @param systemPassword System password to open keystore * @param userProfileLocation Bootstrap for user profile files placement */ - public DefaultDFSConfig(Uri systemRoot, String systemPassword, UserProfileLocation userProfileLocation) { + public DefaultDFSConfig(Uri systemRoot, ReadStorePassword systemPassword, UserProfileLocation userProfileLocation) { systemRoot = addTrailingSlashIfNeeded(systemRoot); this.systemRoot = systemRoot; - this.systemPassword = new ReadStorePassword(systemPassword); + this.systemPassword = systemPassword; this.userProfileLocation = userProfileLocation; log.debug("Root is {}", dfsRoot()); } @@ -166,12 +164,15 @@ public static URI addTrailingSlashIfNeeded(URI systemRoot) { public static String addTrailingSlashIfNeeded(String systemRoot) { if (systemRoot == null) { - throw new RuntimeException("systemRoot must not be null"); + throw new IllegalArgumentException("systemRoot must not be null"); } + int last = systemRoot.length(); - if (systemRoot.substring(last - 1).equals("/")) { + + if (!systemRoot.isEmpty() && systemRoot.substring(last - 1).equals("/")) { return systemRoot; } + return systemRoot + "/"; } } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/MultiDFSConfig.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/MultiDFSConfig.java index 9ca68a21e..1c7c716d4 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/MultiDFSConfig.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/config/MultiDFSConfig.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.directory.impl.profile.config; import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.Uri; @@ -11,7 +12,7 @@ public class MultiDFSConfig extends DefaultDFSConfig { private final Uri profilesPath; - public MultiDFSConfig(URI fsPath, URI profilesPath, String systemPassword) { + public MultiDFSConfig(URI fsPath, URI profilesPath, ReadStorePassword systemPassword) { super(fsPath, systemPassword); this.profilesPath = new Uri(profilesPath); } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/dfs/RegexAccessServiceWithStorageCredentialsImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/dfs/RegexAccessServiceWithStorageCredentialsImpl.java index d226442e6..fb2aca55d 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/dfs/RegexAccessServiceWithStorageCredentialsImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/dfs/RegexAccessServiceWithStorageCredentialsImpl.java @@ -15,6 +15,7 @@ import javax.inject.Inject; import java.util.Optional; +import java.util.Set; /** * Specifies how to access desired user resource (example: private bucket). Reads credentials that are associated @@ -74,9 +75,15 @@ public AbsoluteLocation withSystemAccess(AbsoluteLocation resource) { private Optional getStorageAccessCredentials(UserIDAuth user, PrivateResource resource) { String uri = resource.location().asString(); - return storageKeyStoreOperations.get().readAliases(user) + Set aliases = storageKeyStoreOperations.get().readAliases(user); + + Optional directMatch = aliases .stream() .filter(it -> uri.matches(it.getId())) .findFirst(); + + return directMatch.isPresent() + ? directMatch + : aliases.stream().filter(it -> StorageIdentifier.DEFAULT.getId().equals(it.getId())).findFirst(); } } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DFSPrivateKeyServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DFSPrivateKeyServiceImpl.java index 705f485cb..56e0b5d8f 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DFSPrivateKeyServiceImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DFSPrivateKeyServiceImpl.java @@ -4,24 +4,30 @@ import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import javax.crypto.BadPaddingException; import javax.crypto.SecretKey; import javax.inject.Inject; import java.security.Key; +import java.security.KeyStoreException; +import java.security.UnrecoverableKeyException; +import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.DOCUMENT_KEY_ID_PREFIX; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.PATH_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.*; /** * Retrieves and opens private keystore associated with user location DFS storage. * Attempts to re-read keystore if not able to open it. */ +@Slf4j @RuntimeDelegate public class DFSPrivateKeyServiceImpl implements PrivateKeyService { @@ -36,8 +42,15 @@ public DFSPrivateKeyServiceImpl(DocumentKeyStoreOperations keyStoreOper) { * Reads path encryption secret key from DFS and caches the result. */ @Override - public SecretKeyIDWithKey pathEncryptionSecretKey(UserIDAuth forUser) { - return keyByPrefix(forUser, PATH_KEY_ID_PREFIX); + public AuthPathEncryptionSecretKey pathEncryptionSecretKey(UserIDAuth forUser) { + Set aliases = keyStoreOper.readAliases(forUser); + SecretKeyIDWithKey secretPathKeyId = keyByPrefix(forUser, aliases, PATH_KEY_ID_PREFIX); + SecretKeyIDWithKey secretPathCtrKeyId = keyByPrefix(forUser, aliases, PATH_KEY_ID_PREFIX_CTR); + + return new AuthPathEncryptionSecretKey( + secretPathKeyId, + secretPathCtrKeyId + ); } /** @@ -48,6 +61,28 @@ public SecretKeyIDWithKey documentEncryptionSecretKey(UserIDAuth forUser) { return keyByPrefix(forUser, DOCUMENT_KEY_ID_PREFIX); } + /** + * Read users' document access key to validate that he can open his keystore. + */ + @Override + @SneakyThrows + public void validateUserHasAccessOrThrow(UserIDAuth forUser) { + // avoid only unauthorized access + try { + keyByPrefix(forUser, DOCUMENT_KEY_ID_PREFIX); // for access check + } catch (RuntimeException ex) { + // lombok @SneakyThrows handling + if (ex.getCause() instanceof KeyStoreException + || ex.getCause() instanceof UnrecoverableKeyException + || ex.getCause() instanceof BadPaddingException) { + throw ex.getCause(); + } + + // It is safe to ignore other types of exceptions - i.e. keystore does not exist + log.debug("Caught exception while validating keystore access", ex.getCause()); + } + } + /** * Reads private or secret key from DFS and caches the keystore associated with it. */ @@ -63,8 +98,16 @@ public Map keysByIds(UserIDAuth forUser, Set keyIds) { ); } - private SecretKeyIDWithKey keyByPrefix(UserIDAuth forUser, String prefix) { - KeyID key = keyStoreOper.readAliases(forUser).stream() + protected SecretKeyIDWithKey keyByPrefix(UserIDAuth forUser, String prefix) { + return keyByPrefix( + forUser, + keyStoreOper.readAliases(forUser), + prefix + ); + } + + protected SecretKeyIDWithKey keyByPrefix(UserIDAuth forUser, Collection aliases, String prefix) { + KeyID key = aliases.stream() .filter(it -> it.startsWith(prefix)) .map(KeyID::new) .findFirst() diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DefaultKeyStoreCache.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DefaultKeyStoreCache.java index 974c39e91..ea48714ec 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DefaultKeyStoreCache.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DefaultKeyStoreCache.java @@ -18,7 +18,7 @@ public class DefaultKeyStoreCache implements KeyStoreCache { private final Map> publicKeys; - private final Map keystore; + private final UserKeyStoreCache keystore; private final Map storageAccess; @Inject @@ -27,7 +27,7 @@ public DefaultKeyStoreCache( Map keystore, Map storageAccess) { this.publicKeys = publicKeys; - this.keystore = keystore; + this.keystore = new UserKeyStoreCache(keystore); this.storageAccess = storageAccess; } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DocumentKeyStoreOperationsImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DocumentKeyStoreOperationsImpl.java index b1c683aaa..bcd3eb2bf 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DocumentKeyStoreOperationsImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/DocumentKeyStoreOperationsImpl.java @@ -7,6 +7,7 @@ import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; import de.adorsys.datasafe.storage.api.actions.StorageWriteService; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; @@ -14,6 +15,8 @@ import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.ResourceLocation; import de.adorsys.datasafe.types.api.resource.WithCallback; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -31,6 +34,7 @@ @RuntimeDelegate public class DocumentKeyStoreOperationsImpl implements DocumentKeyStoreOperations { + private final KeyCreationConfig config; private final GenericKeystoreOperations genericOper; private final DFSConfig dfsConfig; private final BucketAccessService access; @@ -40,10 +44,16 @@ public class DocumentKeyStoreOperationsImpl implements DocumentKeyStoreOperation private final KeyStoreService keyStoreService; @Inject - public DocumentKeyStoreOperationsImpl(GenericKeystoreOperations genericOper, DFSConfig dfsConfig, - BucketAccessService access, ProfileRetrievalService profile, - StorageWriteService writeService, KeyStoreCache keystoreCache, - KeyStoreService keyStoreService) { + public DocumentKeyStoreOperationsImpl( + KeyCreationConfig config, + GenericKeystoreOperations genericOper, + DFSConfig dfsConfig, + BucketAccessService access, + ProfileRetrievalService profile, + StorageWriteService writeService, + KeyStoreCache keystoreCache, + KeyStoreService keyStoreService) { + this.config = config; this.genericOper = genericOper; this.dfsConfig = dfsConfig; this.access = access; @@ -77,8 +87,7 @@ public List createAndWriteKeyStore(UserIDAuth forUser) KeyStoreAuth auth = keystoreAuth(forUser, forUser.getReadKeyPassword()); KeyStore keystoreBlob = keyStoreService.createKeyStore( auth, - KeyStoreType.DEFAULT, - new KeyStoreCreationConfig(1, 1) + config ); writeKeystore(forUser.getUserID(), auth, keystoreLocationWithAccess(forUser), keystoreBlob); @@ -116,7 +125,7 @@ private > void writeKeystore(UserID forUser, KeySt private KeyStore keyStore(UserIDAuth forUser) { return keystoreCache.getKeystore().computeIfAbsent( - forUser.getUserID(), + forUser, userId -> { AbsoluteLocation location = keystoreLocationWithAccess(forUser); return genericOper.readKeyStore(forUser, location); diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/GenericKeystoreOperations.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/GenericKeystoreOperations.java index 0f0cf289b..3f1194a48 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/GenericKeystoreOperations.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/GenericKeystoreOperations.java @@ -5,11 +5,10 @@ import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig; -import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreType; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadStorePassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.actions.StorageReadService; import de.adorsys.datasafe.storage.api.actions.StorageWriteService; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; @@ -36,6 +35,7 @@ @RuntimeDelegate public class GenericKeystoreOperations { + private final KeyCreationConfig config; private final DFSConfig dfsConfig; private final StorageWriteService writeService; private final StorageReadService readService; @@ -43,9 +43,14 @@ public class GenericKeystoreOperations { private final KeyStoreService keyStoreService; @Inject - public GenericKeystoreOperations(DFSConfig dfsConfig, StorageWriteService writeService, - StorageReadService readService, KeyStoreCache keystoreCache, - KeyStoreService keyStoreService) { + public GenericKeystoreOperations( + KeyCreationConfig config, + DFSConfig dfsConfig, + StorageWriteService writeService, + StorageReadService readService, + KeyStoreCache keystoreCache, + KeyStoreService keyStoreService) { + this.config = config; this.dfsConfig = dfsConfig; this.writeService = writeService; this.readService = readService; @@ -54,8 +59,10 @@ public GenericKeystoreOperations(DFSConfig dfsConfig, StorageWriteService writeS } public KeyStore createEmptyKeystore(UserIDAuth auth) { - return keyStoreService - .createKeyStore(keystoreAuth(auth), KeyStoreType.DEFAULT, new KeyStoreCreationConfig(0, 0)); + return keyStoreService.createKeyStore( + keystoreAuth(auth), + config.toBuilder().signKeyNumber(0).encKeyNumber(0).build() + ); } /** @@ -65,10 +72,10 @@ public KeyStore createEmptyKeystore(UserIDAuth auth) { @SneakyThrows public Key getKey(Supplier keystore, UserIDAuth forUser, String alias) { try { - return keystore.get().getKey(alias, forUser.getReadKeyPassword().getValue().toCharArray()); + return keystore.get().getKey(alias, forUser.getReadKeyPassword().getValue()); } catch (UnrecoverableKeyException ex) { keystoreCache.remove(forUser.getUserID()); - return keystore.get().getKey(alias, forUser.getReadKeyPassword().getValue().toCharArray()); + return keystore.get().getKey(alias, forUser.getReadKeyPassword().getValue()); } } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/KeyStoreCache.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/KeyStoreCache.java index eb4ad2905..21be31c56 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/KeyStoreCache.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/KeyStoreCache.java @@ -20,7 +20,7 @@ public interface KeyStoreCache { /** * Cache for users' private/secret keys */ - Map getKeystore(); + UserKeyStoreCache getKeystore(); /** * Cache for users' storage access diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImpl.java index a448b4864..feabde8ce 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImpl.java @@ -8,7 +8,7 @@ import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreAccess; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PrivateResource; diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/UserKeyStoreCache.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/UserKeyStoreCache.java new file mode 100644 index 000000000..f59739d0c --- /dev/null +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/keys/UserKeyStoreCache.java @@ -0,0 +1,85 @@ +package de.adorsys.datasafe.directory.impl.profile.keys; + +import de.adorsys.datasafe.encrypiton.api.types.UserID; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import lombok.experimental.Delegate; +import lombok.extern.slf4j.Slf4j; + +import java.security.Key; +import java.security.KeyStore; +import java.util.Enumeration; +import java.util.Map; +import java.util.function.Function; + +@Slf4j +@AllArgsConstructor +public class UserKeyStoreCache { + @Delegate (excludes = ExcludeComputeIfAbsent.class) + private final Map map; + + + /* + The original Map.computeIfAbsent method must not be called and thus is not provided + by this class! It is task of the DefaultKeyStoreCache to generate a new Uber Key Store + for the cache only. For that the password needed, which is + not provided in this method here, is expected too. See next method. + + public KeyStore computeIfAbsent(UserID key, Function mappingFunction) {} + */ + + /** + * If the keyStore provided is a not a UBER KeyStore, a new UBER KeyStore without a + * ReadStorePassword is created. This store is returned and stored in the map. + * + * @param userIDAuth + * @param mappingFunction + * @return always a UBER KeyStore + */ + public KeyStore computeIfAbsent(UserIDAuth userIDAuth, Function mappingFunction) { + if (map.containsKey(userIDAuth.getUserID())) { + return map.get(userIDAuth.getUserID()); + } + KeyStore keyStore = mappingFunction.apply(userIDAuth.getUserID()); + if (! "UBER".equals(keyStore.getType())) { + keyStore = convertKeyStoreToUberKeyStore(userIDAuth, keyStore); + } + map.put(userIDAuth.getUserID(), keyStore); + return keyStore; + + } + + /** + * Does the conversion of any keyStore to a UBER KeyStore. + * + * @param currentCredentials + * @param current + * @return + */ + @SneakyThrows + private KeyStore convertKeyStoreToUberKeyStore(UserIDAuth currentCredentials, KeyStore current) { + log.debug("the keystore for user {} is of type {} and will be converted to uber in cache", currentCredentials.getUserID(), current.getType() ); + + KeyStore newKeystore = KeyStore.getInstance("UBER"); + newKeystore.load(null, null); + Enumeration aliases = current.aliases(); + + while (aliases.hasMoreElements()) { + String alias = aliases.nextElement(); + Key currentKey = current.getKey(alias, currentCredentials.getReadKeyPassword().getValue()); + newKeystore.setKeyEntry( + alias, + currentKey, + currentCredentials.getReadKeyPassword().getValue(), + current.getCertificateChain(alias) + ); + } + + return newKeystore; + } + + private interface ExcludeComputeIfAbsent { + KeyStore computeIfAbsent(UserID key, Function mappingFunction); + } +} diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/DFSBasedProfileStorageImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/DFSBasedProfileStorageImpl.java index 2be9aab9f..686c97366 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/DFSBasedProfileStorageImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/DFSBasedProfileStorageImpl.java @@ -1,10 +1,6 @@ package de.adorsys.datasafe.directory.impl.profile.operations; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileOperations; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRegistrationService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRemovalService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileRetrievalService; -import de.adorsys.datasafe.directory.api.profile.operations.ProfileUpdatingService; +import de.adorsys.datasafe.directory.api.profile.operations.*; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; @@ -30,13 +26,18 @@ public class DFSBasedProfileStorageImpl implements ProfileOperations { @Delegate private final ProfileUpdatingService updatingService; + @Delegate + private final ProfileStorageCredentialsService storageCredentialsService; + @Inject public DFSBasedProfileStorageImpl(ProfileRegistrationService registrationService, ProfileRetrievalService retrievalService, ProfileRemovalService removalService, - ProfileUpdatingService updatingService) { + ProfileUpdatingService updatingService, + ProfileStorageCredentialsService storageCredentialsService) { this.registrationService = registrationService; this.retrievalService = retrievalService; this.removalService = removalService; this.updatingService = updatingService; + this.storageCredentialsService = storageCredentialsService; } } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRegistrationServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRegistrationServiceImpl.java index 30b867560..3ee10a623 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRegistrationServiceImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRegistrationServiceImpl.java @@ -61,7 +61,7 @@ public ProfileRegistrationServiceImpl(ProfileStoreService storeProfile, @SneakyThrows public void registerPublic(CreateUserPublicProfile profile) { log.debug("Register public {}", profile); - storeProfile.registerPublic(profile.getId(), profile.removeAccess()); + storeProfile.registerPublic(profile.getId(), profile.buildPublicProfile()); } /** @@ -74,7 +74,7 @@ public void registerPublic(CreateUserPublicProfile profile) { @SneakyThrows public void registerPrivate(CreateUserPrivateProfile profile) { log.debug("Register private {}", profile); - storeProfile.registerPrivate(profile.getId().getUserID(), profile.removeAccess()); + storeProfile.registerPrivate(profile.getId().getUserID(), profile.buildPrivateProfile()); } @Override @@ -115,7 +115,7 @@ public void registerUsingDefaults(UserIDAuth user) { registerPublic(dfsConfig.defaultPublicTemplate(user.getUserID())); CreateUserPrivateProfile privateProfile = dfsConfig.defaultPrivateTemplate(user); registerPrivate(privateProfile); - createAllAllowableKeystores(user, privateProfile.removeAccess()); + createAllAllowableKeystores(user, privateProfile.buildPrivateProfile()); } @SneakyThrows diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRemovalServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRemovalServiceImpl.java index a6335c11e..bc846f643 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRemovalServiceImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRemovalServiceImpl.java @@ -63,7 +63,7 @@ public void deregister(UserIDAuth userID) { } // NOP just check that user has access - privateKeyService.documentEncryptionSecretKey(userID); + privateKeyService.validateUserHasAccessOrThrow(userID); UserPublicProfile publicProfile = retrievalService.publicProfile(userID.getUserID()); UserPrivateProfile privateProfile = retrievalService.privateProfile(userID); @@ -98,6 +98,7 @@ public void deregister(UserIDAuth userID) { keyStoreCache.remove(userID.getUserID()); log.debug("Deregistered user {}", userID); + userID.getReadKeyPassword().clear(); } protected void removeUserProfileFiles(UserID forUser) { diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImpl.java index b3dc053a8..a31266159 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImpl.java @@ -52,6 +52,7 @@ public UserPublicProfile publicProfile(UserID ofUser) { ofUser, id -> readProfile(dfsConfig.publicProfile(ofUser), UserPublicProfile.class) ); + log.debug("get public profile {} for user {}", userPublicProfile, ofUser); return userPublicProfile; } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImpl.java new file mode 100644 index 000000000..27e368214 --- /dev/null +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImpl.java @@ -0,0 +1,50 @@ +package de.adorsys.datasafe.directory.impl.profile.operations.actions; + +import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; +import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; +import de.adorsys.datasafe.directory.api.profile.operations.ProfileStorageCredentialsService; +import de.adorsys.datasafe.directory.api.types.StorageCredentials; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; + +import javax.inject.Inject; +import java.util.Set; + +@RuntimeDelegate +public class ProfileStorageCredentialsServiceImpl implements ProfileStorageCredentialsService { + + private final StorageKeyStoreOperations keyStoreOper; + private final PrivateKeyService privateKeyService; + + @Inject + public ProfileStorageCredentialsServiceImpl(StorageKeyStoreOperations keyStoreOper, + PrivateKeyService privateKeyService) { + this.keyStoreOper = keyStoreOper; + this.privateKeyService = privateKeyService; + } + + @Override + public Set listRegisteredStorageCredentials(UserIDAuth user) { + validateKeystoreAccess(user); + return keyStoreOper.readAliases(user); + } + + @Override + public void registerStorageCredentials( + UserIDAuth user, StorageIdentifier storageId, StorageCredentials credentials) { + validateKeystoreAccess(user); + keyStoreOper.addStorageCredentials(user, storageId, credentials); + } + + @Override + public void deregisterStorageCredentials(UserIDAuth user, StorageIdentifier storageId) { + validateKeystoreAccess(user); + keyStoreOper.removeStorageCredentials(user, storageId); + } + + private void validateKeystoreAccess(UserIDAuth user) { + // avoid only unauthorized access + privateKeyService.validateUserHasAccessOrThrow(user); // for access check + } +} diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImpl.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImpl.java index f096eb57f..0291ea5f8 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImpl.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImpl.java @@ -4,20 +4,15 @@ import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; import de.adorsys.datasafe.directory.api.profile.operations.ProfileUpdatingService; -import de.adorsys.datasafe.directory.api.types.StorageCredentials; import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; import de.adorsys.datasafe.directory.api.types.UserPublicProfile; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; -import de.adorsys.datasafe.types.api.resource.StorageIdentifier; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import javax.crypto.BadPaddingException; import javax.inject.Inject; -import java.security.KeyStoreException; -import java.security.UnrecoverableKeyException; @Slf4j @RuntimeDelegate @@ -61,31 +56,8 @@ public void updateReadKeyPassword(UserIDAuth forUser, ReadKeyPassword newPasswor storageKeyStoreOper.updateReadKeyPassword(forUser, newPassword); } - @Override - public void registerStorageCredentials( - UserIDAuth user, StorageIdentifier storageId, StorageCredentials credentials) { - validateKeystoreAccess(user); - storageKeyStoreOper.addStorageCredentials(user, storageId, credentials); - } - - @Override - public void deregisterStorageCredentials(UserIDAuth user, StorageIdentifier storageId) { - validateKeystoreAccess(user); - storageKeyStoreOper.removeStorageCredentials(user, storageId); - } - @SneakyThrows private void validateKeystoreAccess(UserIDAuth user) { - // avoid only unauthorized access - try { - privateKeyService.documentEncryptionSecretKey(user); // for access check - } catch (RuntimeException ex) { - // lombok @SneakyThrows handling - if (ex.getCause() instanceof KeyStoreException - || ex.getCause() instanceof UnrecoverableKeyException - || ex.getCause() instanceof BadPaddingException) { - throw ex.getCause(); - } - } + privateKeyService.validateUserHasAccessOrThrow(user); } } diff --git a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/serde/GsonSerde.java b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/serde/GsonSerde.java index eda3430d0..67f19592e 100644 --- a/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/serde/GsonSerde.java +++ b/datasafe-directory/datasafe-directory-impl/src/main/java/de/adorsys/datasafe/directory/impl/profile/serde/GsonSerde.java @@ -1,32 +1,18 @@ package de.adorsys.datasafe.directory.impl.profile.serde; -import com.google.common.reflect.TypeToken; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonObject; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializer; +import com.google.gson.*; import de.adorsys.datasafe.encrypiton.api.keystore.PublicKeySerde; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; -import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; -import de.adorsys.datasafe.types.api.resource.BasePrivateResource; -import de.adorsys.datasafe.types.api.resource.BasePublicResource; -import de.adorsys.datasafe.types.api.resource.PrivateResource; -import de.adorsys.datasafe.types.api.resource.PublicResource; -import de.adorsys.datasafe.types.api.resource.StorageIdentifier; -import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.resource.*; import lombok.experimental.Delegate; import javax.inject.Inject; import java.net.URI; import java.security.PublicKey; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; /** * User profile to json serializer/deserializer. + * * @implNote By default, is used to store profiles as json files. */ @RuntimeDelegate @@ -73,33 +59,6 @@ public GsonSerde(PublicKeySerde pubSerde) { (JsonSerializer) (elem, type, ctx) -> new JsonPrimitive(pubSerde.writePubKey(elem)) ); - Gson basic = gsonBuilder.enableComplexMapKeySerialization().create(); - - // Allow support for old-style profiles that have 1 single private storage - gsonBuilder.registerTypeAdapter( - new TypeToken>>() {}.getType(), - (JsonDeserializer>>) - (elem, type, ctx) -> { - if (!(elem instanceof JsonObject)) { - return basic.fromJson(elem, type); - } - - JsonObject object = (JsonObject) elem; - - if (null != object.get("resource") && object.entrySet().size() == 1) { - return new HashMap<>( - Collections.singletonMap( - StorageIdentifier.DEFAULT, - BasePrivateResource.forAbsolutePrivate( - URI.create(object.get("resource").getAsString())) - ) - ); - } - - throw new IllegalArgumentException("Unparseable node"); - } - ); - - this.gson = gsonBuilder.create(); + this.gson = gsonBuilder.enableComplexMapKeySerialization().create(); } } diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCredsTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCredsTest.java new file mode 100644 index 000000000..6994fc226 --- /dev/null +++ b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/config/DFSConfigWithStorageCredsTest.java @@ -0,0 +1,32 @@ +package de.adorsys.datasafe.directory.impl.profile.config; + +import de.adorsys.datasafe.directory.api.types.CreateUserPrivateProfile; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.global.Version; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class DFSConfigWithStorageCredsTest extends BaseMockitoTest { + + private DFSConfigWithStorageCreds tested = new DFSConfigWithStorageCreds("file://path", new ReadStorePassword("secret")); + + @Test + void defaultPrivateTemplate() { + UserIDAuth user = new UserIDAuth("", ReadKeyPasswordTestFactory.getForString("")); + + CreateUserPrivateProfile profile = tested.defaultPrivateTemplate(user); + + assertThat(profile.getId()).isEqualTo(user); + assertThat(profile.getAppVersion()).isEqualTo(Version.current()); + assertThat(profile.getPrivateStorage().location().asString()).isEqualTo("file://path/private/files/"); + assertThat(profile.getKeystore().location().asString()).isEqualTo("file://path/private/keystore"); + assertThat(profile.getStorageCredentialsKeystore().location().asString()) + .isEqualTo("file://path/private/storagekeystore"); + assertThat(profile.getPublishPubKeysTo().location().asString()).isEqualTo("file://path/public/pubkeys"); + assertThat(profile.getInboxWithWriteAccess().location().asString()).isEqualTo("file://path/public/inbox/"); + } +} diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/dfs/BucketAccessServiceImplTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/dfs/BucketAccessServiceImplTest.java index 4c6c46415..2aa1091de 100644 --- a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/dfs/BucketAccessServiceImplTest.java +++ b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/dfs/BucketAccessServiceImplTest.java @@ -2,10 +2,10 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.BasePublicResource; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -15,7 +15,7 @@ class BucketAccessServiceImplTest extends BaseMockitoTest { private static final String ABSOLUTE_BUCKET = "s3://bucket"; - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @InjectMocks private BucketAccessServiceImpl bucketAccessService; diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImplTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImplTest.java new file mode 100644 index 000000000..9a3cdff6b --- /dev/null +++ b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/keys/StorageKeyStoreOperationsImplTest.java @@ -0,0 +1,77 @@ +package de.adorsys.datasafe.directory.impl.profile.keys; + +import de.adorsys.datasafe.directory.api.profile.dfs.BucketAccessService; +import de.adorsys.datasafe.directory.api.profile.operations.ProfileRetrievalService; +import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.directory.impl.profile.serde.GsonSerde; +import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; +import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.resource.PrivateResource; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Answers; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +class StorageKeyStoreOperationsImplTest extends BaseMockitoTest { + + private static final String STORAGE_ID = "id"; + private static final ReadKeyPassword SECRET = ReadKeyPasswordTestFactory.getForString("secret"); + private static final AbsoluteLocation STORAGE_KEYSTORE = + BasePrivateResource.forAbsolutePrivate("file://path"); + + @Mock + private GsonSerde gson; + + @Mock + private KeyStoreService keyStoreService; + + @Mock + private GenericKeystoreOperations genericOper; + + @Mock + private ProfileRetrievalService profile; + + @Mock + private BucketAccessService access; + + @Mock(answer = Answers.RETURNS_DEEP_STUBS) + private KeyStoreCache keystoreCache; + + @Mock + private UserPrivateProfile privateProfile; + + private UserIDAuth user = new UserIDAuth("john", SECRET); + + private StorageIdentifier storageId = new StorageIdentifier(STORAGE_ID); + + @InjectMocks + private StorageKeyStoreOperationsImpl tested; + + @BeforeEach + void init() { + when(profile.privateProfile(user)).thenReturn(privateProfile); + when(privateProfile.getStorageCredentialsKeystore()).thenReturn(STORAGE_KEYSTORE); + when(access.withSystemAccess(any())).thenAnswer(inv -> inv.getArgument(0)); + } + + @Test + void removeStorageCredentials() { + tested.removeStorageCredentials(user, storageId); + + verify(keyStoreService).removeKey(any(), eq(STORAGE_ID)); + verify(genericOper).writeKeystore(eq(user.getUserID()), any(), eq(STORAGE_KEYSTORE), any()); + verify(keystoreCache.getStorageAccess()).remove(user.getUserID()); + } +} diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImplForOldProfilesTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImplForOldProfilesTest.java deleted file mode 100644 index 107defc5f..000000000 --- a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileRetrievalServiceImplForOldProfilesTest.java +++ /dev/null @@ -1,114 +0,0 @@ -package de.adorsys.datasafe.directory.impl.profile.operations.actions; - -import com.google.common.io.Resources; -import de.adorsys.datasafe.directory.api.config.DFSConfig; -import de.adorsys.datasafe.directory.api.profile.dfs.BucketAccessService; -import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; -import de.adorsys.datasafe.directory.api.types.UserPublicProfile; -import de.adorsys.datasafe.directory.impl.profile.operations.UserProfileCache; -import de.adorsys.datasafe.directory.impl.profile.serde.GsonSerde; -import de.adorsys.datasafe.encrypiton.api.keystore.PublicKeySerde; -import de.adorsys.datasafe.encrypiton.api.types.UserID; -import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.storage.api.actions.StorageCheckService; -import de.adorsys.datasafe.storage.api.actions.StorageReadService; -import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; -import de.adorsys.datasafe.types.api.resource.BasePrivateResource; -import de.adorsys.datasafe.types.api.resource.StorageIdentifier; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; -import lombok.SneakyThrows; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * Test that validates it is still possible to use old user profiles - when there was single private space. - */ -class ProfileRetrievalServiceImplForOldProfilesTest extends BaseMockitoTest { - - private static final AbsoluteLocation PRIV = BasePrivateResource.forAbsolutePrivate("file:///pathPriv"); - private static final AbsoluteLocation PUB = BasePrivateResource.forAbsolutePrivate("file:///pathPub"); - - @Mock - private DFSConfig dfsConfig; - - @Mock - private StorageReadService readService; - - @Mock - private StorageCheckService checkService; - - @Mock - private BucketAccessService access; - - @Spy - private GsonSerde serde = new GsonSerde(mock(PublicKeySerde.class)); - - @Mock - private UserProfileCache userProfileCache; - - @InjectMocks - private ProfileRetrievalServiceImpl tested; - - @Mock - private UserIDAuth user; - - @Mock - private UserID userId; - - @BeforeEach - @SneakyThrows - void init() { - when(user.getUserID()).thenReturn(userId); - when(dfsConfig.publicProfile(userId)).thenReturn(PUB); - when(dfsConfig.privateProfile(userId)).thenReturn(PRIV); - when(access.withSystemAccess(any())).thenAnswer(inv -> inv.getArgument(0)); - when(readService.read(PRIV)) - .thenReturn(Resources.asByteSource(Resources.getResource("profile/user.priv")).openStream()); - when(readService.read(PUB)) - .thenReturn(Resources.asByteSource(Resources.getResource("profile/user.pub")).openStream()); - } - - @Test - void publicProfile() { - UserPublicProfile profile = tested.publicProfile(userId); - - assertThat(profile.getInbox()).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/public/inbox/"); - assertThat(profile.getPublicKeys()).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/public/pubkeys"); - } - - @Test - void privateProfile() { - UserPrivateProfile profile = tested.privateProfile(user); - - assertThat(profile.getKeystore()).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/private/keystore"); - assertThat(profile.getPrivateStorage()) - .hasEntrySatisfying( - StorageIdentifier.DEFAULT, - it -> assertThat(it).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/private/files/") - ); - assertThat(profile.getDocumentVersionStorage()).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/versions/"); - assertThat(profile.getInboxWithFullAccess()).extracting(this::str) - .isEqualTo("s3://adorsys-docusafe/datasafe/users/qqqq/public/inbox/"); - assertThat(profile.getAssociatedResources()).extracting(this::str) - .containsExactly("s3://adorsys-docusafe/datasafe/users/qqqq/"); - assertThat(profile.getPublishPublicKeysTo()).isNull(); - assertThat(profile.getStorageCredentialsKeystore()).isNull(); - } - - private String str(AbsoluteLocation location) { - return location.location().asString(); - } -} diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImplTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImplTest.java new file mode 100644 index 000000000..81f3bb25a --- /dev/null +++ b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileStorageCredentialsServiceImplTest.java @@ -0,0 +1,50 @@ +package de.adorsys.datasafe.directory.impl.profile.operations.actions; + +import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; +import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; +import de.adorsys.datasafe.directory.api.types.StorageCredentials; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +import static org.mockito.Mockito.verify; + +class ProfileStorageCredentialsServiceImplTest extends BaseMockitoTest { + + @Mock + private PrivateKeyService privateKeyService; + + @Mock + private StorageKeyStoreOperations storageKeyStoreOper; + + @InjectMocks + private ProfileStorageCredentialsServiceImpl tested; + + @Mock + private UserIDAuth user; + + @Mock + private StorageIdentifier storageIdentifier; + + @Mock + private StorageCredentials storageCredentials; + + @Test + void registerStorageCredentials() { + tested.registerStorageCredentials(user, storageIdentifier, storageCredentials); + + verify(privateKeyService).validateUserHasAccessOrThrow(user); + verify(storageKeyStoreOper).addStorageCredentials(user, storageIdentifier, storageCredentials); + } + + @Test + void deregisterStorageCredentials() { + tested.deregisterStorageCredentials(user, storageIdentifier); + + verify(privateKeyService).validateUserHasAccessOrThrow(user); + verify(storageKeyStoreOper).removeStorageCredentials(user, storageIdentifier); + } +} diff --git a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImplTest.java b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImplTest.java index 3bc9e7eb9..4b0ad3f0b 100644 --- a/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImplTest.java +++ b/datasafe-directory/datasafe-directory-impl/src/test/java/de/adorsys/datasafe/directory/impl/profile/operations/actions/ProfileUpdatingServiceImplTest.java @@ -3,12 +3,10 @@ import de.adorsys.datasafe.directory.api.profile.keys.DocumentKeyStoreOperations; import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; -import de.adorsys.datasafe.directory.api.types.StorageCredentials; import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; import de.adorsys.datasafe.directory.api.types.UserPublicProfile; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; -import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -46,17 +44,11 @@ class ProfileUpdatingServiceImplTest extends BaseMockitoTest { @Mock private ReadKeyPassword readKeyPassword; - @Mock - private StorageIdentifier storageIdentifier; - - @Mock - private StorageCredentials storageCredentials; - @Test void updatePublicProfile() { tested.updatePublicProfile(user, publicProfile); - verify(privateKeyService).documentEncryptionSecretKey(user); + verify(privateKeyService).validateUserHasAccessOrThrow(user); verify(storeService).registerPublic(user.getUserID(), publicProfile); } @@ -64,7 +56,7 @@ void updatePublicProfile() { void updatePrivateProfile() { tested.updatePrivateProfile(user, privateProfile); - verify(privateKeyService).documentEncryptionSecretKey(user); + verify(privateKeyService).validateUserHasAccessOrThrow(user); verify(storeService).registerPrivate(user.getUserID(), privateProfile); } @@ -72,23 +64,7 @@ void updatePrivateProfile() { void updateReadKeyPassword() { tested.updateReadKeyPassword(user, readKeyPassword); - verify(privateKeyService, never()).documentEncryptionSecretKey(user); + verify(privateKeyService, never()).validateUserHasAccessOrThrow(user); verify(keyStoreOper).updateReadKeyPassword(user, readKeyPassword); } - - @Test - void registerStorageCredentials() { - tested.registerStorageCredentials(user, storageIdentifier, storageCredentials); - - verify(privateKeyService).documentEncryptionSecretKey(user); - verify(storageKeyStoreOper).addStorageCredentials(user, storageIdentifier, storageCredentials); - } - - @Test - void deregisterStorageCredentials() { - tested.deregisterStorageCredentials(user, storageIdentifier); - - verify(privateKeyService).documentEncryptionSecretKey(user); - verify(storageKeyStoreOper).removeStorageCredentials(user, storageIdentifier); - } } diff --git a/datasafe-directory/pom.xml b/datasafe-directory/pom.xml index d5def760a..20ab5b055 100644 --- a/datasafe-directory/pom.xml +++ b/datasafe-directory/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-encryption/datasafe-encryption-api/pom.xml b/datasafe-encryption/datasafe-encryption-api/pom.xml index b9726844d..973338966 100644 --- a/datasafe-encryption/datasafe-encryption-api/pom.xml +++ b/datasafe-encryption/datasafe-encryption-api/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-encryption - 0.6.2 + 0.7.0 datasafe-encryption-api @@ -14,5 +14,25 @@ datasafe-types-api ${project.version} - + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/keystore/KeyStoreService.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/keystore/KeyStoreService.java index 0b55e9638..6f081a0e3 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/keystore/KeyStoreService.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/keystore/KeyStoreService.java @@ -1,6 +1,8 @@ package de.adorsys.datasafe.encrypiton.api.keystore; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import javax.crypto.spec.SecretKeySpec; import java.security.KeyStore; @@ -19,25 +21,21 @@ public interface KeyStoreService { /** * Creates keystore. * @param keyStoreAuth Keys for opening keystore and reading key from it - * @param keyStoreType Keystore type, example: PKCS or PKCS12 or JKS * @param config Keystore will be pre-populated with keys according to it * @return Built keystore that is ready to use */ KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, - KeyStoreType keyStoreType, - KeyStoreCreationConfig config); + KeyCreationConfig config); /** * Creates keystore that has additional secret keys in it. * @param keyStoreAuth Keys for opening keystore and reading key from it - * @param keyStoreType Keystore type, example: PKCS12 or UBER or JKS * @param config Keystore will be pre-populated with keys according to it * @param secretKeys Secret keys to store in keystore, if value is empty - key will be generated * @return Built keystore that is ready to use */ KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, - KeyStoreType keyStoreType, - KeyStoreCreationConfig config, + KeyCreationConfig config, Map> secretKeys); /** diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/pathencryption/encryption/SymmetricPathEncryptionService.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/pathencryption/encryption/SymmetricPathEncryptionService.java index e99a04937..eb19adacd 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/pathencryption/encryption/SymmetricPathEncryptionService.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/pathencryption/encryption/SymmetricPathEncryptionService.java @@ -1,9 +1,8 @@ package de.adorsys.datasafe.encrypiton.api.pathencryption.encryption; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; import de.adorsys.datasafe.types.api.resource.Uri; -import javax.crypto.SecretKey; - /** * Encrypts and decrypts relative URI's using symmetric cryptography. */ @@ -11,17 +10,18 @@ public interface SymmetricPathEncryptionService { /** * Encrypts relative URI using secret key and serializes it into URL-friendly format. - * @param secretKey Key to encrypt with + * @param pathEncryptionSecretKey entity with keys for encrypt path * @param bucketPath Path to encrypt * @return Encrypted relative URI that can be safely published. */ - Uri encrypt(SecretKey secretKey, Uri bucketPath); + Uri encrypt(AuthPathEncryptionSecretKey pathEncryptionSecretKey, Uri bucketPath); /** * Decrypts relative URI using secret key. - * @param secretKey Key to decrypt with + * @param pathEncryptionSecretKey entity with keys for decrypt path * @param bucketPath Path to decrypt * @return Decrypted relative URI typically containing some sensitive information. */ - Uri decrypt(SecretKey secretKey, Uri bucketPath); + Uri decrypt(AuthPathEncryptionSecretKey pathEncryptionSecretKey, Uri bucketPath); + } diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/BaseTypeString.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/BaseTypeString.java index 904e47614..49ddf65a5 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/BaseTypeString.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/BaseTypeString.java @@ -3,6 +3,7 @@ import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.ToString; import java.io.Serializable; @@ -12,6 +13,7 @@ @Getter @RequiredArgsConstructor @EqualsAndHashCode +@ToString public class BaseTypeString implements Serializable { private static final long serialVersionUID = 3569239558130703592L; diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/UserIDAuth.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/UserIDAuth.java index 76ed14d20..93583ff4a 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/UserIDAuth.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/UserIDAuth.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.api.types; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -16,9 +16,9 @@ public class UserIDAuth { private final UserID userID; private final ReadKeyPassword readKeyPassword; - public UserIDAuth(String userID, String readKeyPassword) { + public UserIDAuth(String userID, ReadKeyPassword readKeyPassword) { this.userID = new UserID(userID); - this.readKeyPassword = new ReadKeyPassword(readKeyPassword); + this.readKeyPassword = readKeyPassword; } @Override diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/CmsEncryptionConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/CmsEncryptionConfig.java new file mode 100644 index 000000000..fd0d1c3d3 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/CmsEncryptionConfig.java @@ -0,0 +1,16 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import lombok.Builder; +import lombok.Getter; + +/** + * Configures document-body encryption algorithm. + * {@see de.adorsys.datasafe.encrypiton.impl.cmsencryption.ASNCmsEncryptionConfig} for values or override it. + */ +@Getter +@Builder(toBuilder = true) +public class CmsEncryptionConfig { + + @Builder.Default + private final String algo = "AES256_GCM"; +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/EncryptionConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/EncryptionConfig.java new file mode 100644 index 000000000..02d8d956f --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/EncryptionConfig.java @@ -0,0 +1,30 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import lombok.Builder; +import lombok.Getter; + +/** + * Full encryption configuration. + */ +@Getter +@Builder(toBuilder = true) +public class EncryptionConfig { + + /** + * Which keystore to use and how to encrypt keys in it. + */ + @Builder.Default + private final KeyStoreConfig keystore = KeyStoreConfig.builder().build(); + + /** + * Which keys to create in keystore. + */ + @Builder.Default + private final KeyCreationConfig keys = KeyCreationConfig.builder().build(); + + /** + * How to encrypt documents. + */ + @Builder.Default + private final CmsEncryptionConfig cms = CmsEncryptionConfig.builder().build(); +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyCreationConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyCreationConfig.java new file mode 100644 index 000000000..e483cd57b --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyCreationConfig.java @@ -0,0 +1,70 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import lombok.Builder; +import lombok.Getter; + +/** + * Wrapper that contains count of public-key pairs and count of encryption keys. + */ +@Getter +@Builder(toBuilder = true) +public class KeyCreationConfig { + + public static final String PATH_KEY_ID_PREFIX = "PATH_SECRET"; + public static final String PATH_KEY_ID_PREFIX_CTR = "PATH_CTR_SECRET_"; + public static final String DOCUMENT_KEY_ID_PREFIX = "PRIVATE_SECRET"; + + @Builder.Default + private final int encKeyNumber = 1; + + @Builder.Default + private final int signKeyNumber = 1; + + @Builder.Default + private final SecretKeyCreationCfg secret = SecretKeyCreationCfg.builder().build(); + + @Builder.Default + private final EncryptingKeyCreationCfg encrypting = EncryptingKeyCreationCfg.builder().build(); + + @Builder.Default + private final SigningKeyCreationCfg singing = SigningKeyCreationCfg.builder().build(); + + @Getter + @Builder + public static class SecretKeyCreationCfg { + + @Builder.Default + private final String algo = "AES"; + + @Builder.Default + private final int size = 256; + } + + @Getter + @Builder + public static class EncryptingKeyCreationCfg { + + @Builder.Default + private final String algo = "RSA"; + + @Builder.Default + private final int size = 2048; + + @Builder.Default + private final String sigAlgo = "SHA256withRSA"; + } + + @Getter + @Builder + public static class SigningKeyCreationCfg { + + @Builder.Default + private final String algo = "RSA"; + + @Builder.Default + private final int size = 2048; + + @Builder.Default + private final String sigAlgo = "SHA256withRSA"; + } +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyStoreConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyStoreConfig.java new file mode 100644 index 000000000..9dd80edc6 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/KeyStoreConfig.java @@ -0,0 +1,76 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf.PBKDF2; +import de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf.Scrypt; +import lombok.Builder; +import lombok.Getter; + +/** + * Wrapper for keystore config. + */ +@Getter +@Builder(toBuilder = true) +public class KeyStoreConfig { + + /** + * Which type of keystore to use i.e. BCFKS or UBER, etc. + */ + @Builder.Default + private final String type = "BCFKS"; + + /** + * Keystore encryption algorithm (used both for keys and keystore). For BCFKS refer to for BCFKS refer to + * {@see org.bouncycastle.jcajce.BCFKSLoadStoreParameter} + */ + @Builder.Default + private final String encryptionAlgo = "AES256_KWP"; + + /** + * Password key derivation configuration. + */ + @Builder.Default + private final PBKDF pbkdf = PBKDF.builder().build(); + + /** + * KeyStore authentication algorithm, for BCFKS refer to {@see org.bouncycastle.jcajce.BCFKSLoadStoreParameter} + */ + @Builder.Default + private final String macAlgo = "HmacSHA3_512"; + + /** + * Algorithm to use when encrypting password-like keys to be stored in keystore (i.e. storage credentials). + */ + @Builder.Default + private final String passwordKeysAlgo = "PBEWithHmacSHA256AndAES_256"; + + /** + * Password key derivation configuration. + */ + @Getter + public static class PBKDF { + + /** + * This is non null if we should use PBKDF2 based routines. + */ + private final PBKDF2 pbkdf2; + + /** + * This is non null if we should use Scrypt-based routines. + */ + private final Scrypt scrypt; + + @Builder + public PBKDF(PBKDF2 pbkdf2, Scrypt scrypt) { + if (null != pbkdf2 && null != scrypt) { + throw new IllegalArgumentException("Ambiguous PBKDF - both scrypt and pbkdf2 are set"); + } + + if (null == pbkdf2 && null == scrypt) { + pbkdf2 = PBKDF2.builder().build(); + } + + this.pbkdf2 = pbkdf2; + this.scrypt = scrypt; + } + } +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfig.java new file mode 100644 index 000000000..8e05dc762 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfig.java @@ -0,0 +1,273 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf.PBKDF2; +import de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf.Scrypt; +import lombok.Data; + +/** + * This is a helper class to aid mapping between Spring ConfigurationProperties and actual + * {@link EncryptionConfig} because Spring Boot had started to support immutable fields from version 2.2 which + * is rather new to rely on now. + * See {@link EncryptionConfig} for defaults and details on fields. + */ +@Data +public class MutableEncryptionConfig { + + private MutableKeyStoreCreationConfig keystore; + private MutableKeyCreationConfig keys; + private MutableCmsEncryptionConfig cms; + + @Data + public static class MutableCmsEncryptionConfig { + + private String algo; + + CmsEncryptionConfig toCmsEncryptionConfig() { + CmsEncryptionConfig.CmsEncryptionConfigBuilder builder = CmsEncryptionConfig.builder(); + if (null != algo) { + builder.algo(algo); + } + + return builder.build(); + } + } + + @Data + public static class MutableKeyStoreCreationConfig { + + private String type; + private String encryptionAlgo; + private MutableKeyStoreCreationConfig.MutablePBKDF pbkdf; + private String macAlgo; + private String passwordKeysAlgo; + + @Data + public static class MutablePBKDF { + + private MutablePBKDF2 pbkdf2; + private MutableScrypt scrypt; + + @Data + public static class MutablePBKDF2 { + + private String algo; + private Integer saltLength; + private Integer iterCount; + + PBKDF2 toPBKDF2() { + PBKDF2.PBKDF2Builder builder = PBKDF2.builder(); + if (null != algo) { + builder.algo(algo); + } + + if (null != saltLength) { + builder.saltLength(saltLength); + } + + if (null != iterCount) { + builder.iterCount(iterCount); + } + + return builder.build(); + } + } + + @Data + public static class MutableScrypt { + + private Integer cost; + private Integer blockSize; + private Integer parallelization; + private Integer saltLength; + + Scrypt toScrypt() { + + Scrypt.ScryptBuilder builder = Scrypt.builder(); + + if (null != cost) { + builder.cost(cost); + } + + if (null != blockSize) { + builder.blockSize(blockSize); + } + + if (null != parallelization) { + builder.parallelization(parallelization); + } + + if (null != saltLength) { + builder.saltLength(saltLength); + } + + return builder.build(); + } + } + + KeyStoreConfig.PBKDF toPBKDF() { + KeyStoreConfig.PBKDF.PBKDFBuilder builder = KeyStoreConfig.PBKDF.builder(); + + if (null != pbkdf2) { + builder.pbkdf2(pbkdf2.toPBKDF2()); + } + + if (null != scrypt) { + builder.pbkdf2(null); + builder.scrypt(scrypt.toScrypt()); + } + + return builder.build(); + } + } + + KeyStoreConfig toKeyStoreConfig() { + KeyStoreConfig.KeyStoreConfigBuilder builder = KeyStoreConfig.builder(); + if (null != type) { + builder.type(type); + } + + if (null != encryptionAlgo) { + builder.encryptionAlgo(encryptionAlgo); + } + + if (null != pbkdf) { + builder.pbkdf(pbkdf.toPBKDF()); + } + + if (null != macAlgo) { + builder.macAlgo(macAlgo); + } + + if (null != passwordKeysAlgo) { + builder.passwordKeysAlgo(passwordKeysAlgo); + } + + return builder.build(); + } + } + + @Data + public static class MutableKeyCreationConfig { + + private Integer encKeyNumber; + private Integer signKeyNumber; + private MutableSecretKeyCreationCfg secret; + private MutableEncryptingKeyCreationCfg encrypting; + private MutableSigningKeyCreationCfg singing; + + @Data + public static class MutableSecretKeyCreationCfg { + + private String algo; + private Integer size; + + KeyCreationConfig.SecretKeyCreationCfg toSecretKeyCreationCfg() { + KeyCreationConfig.SecretKeyCreationCfg.SecretKeyCreationCfgBuilder builder = + KeyCreationConfig.SecretKeyCreationCfg.builder(); + if (null != algo) { + builder.algo(algo); + } + + if (null != size) { + builder.size(size); + } + + return builder.build(); + } + } + + @Data + public static class MutableEncryptingKeyCreationCfg { + + private String algo; + private Integer size; + private String sigAlgo; + + KeyCreationConfig.EncryptingKeyCreationCfg toEncryptingKeyCreationCfg() { + KeyCreationConfig.EncryptingKeyCreationCfg.EncryptingKeyCreationCfgBuilder builder = + KeyCreationConfig.EncryptingKeyCreationCfg.builder(); + if (null != algo) { + builder.algo(algo); + } + + if (null != size) { + builder.size(size); + } + + if (null != sigAlgo) { + builder.sigAlgo(sigAlgo); + } + + return builder.build(); + } + } + + @Data + public static class MutableSigningKeyCreationCfg { + + private String algo; + private Integer size; + private String sigAlgo; + + KeyCreationConfig.SigningKeyCreationCfg toSigningKeyCreationCfg() { + KeyCreationConfig.SigningKeyCreationCfg.SigningKeyCreationCfgBuilder builder = + KeyCreationConfig.SigningKeyCreationCfg.builder(); + if (null != algo) { + builder.algo(algo); + } + + if (null != size) { + builder.size(size); + } + + if (null != sigAlgo) { + builder.sigAlgo(sigAlgo); + } + + return builder.build(); + } + } + + KeyCreationConfig toKeyCreationConfig() { + KeyCreationConfig.KeyCreationConfigBuilder builder = KeyCreationConfig.builder(); + if (null != encKeyNumber) { + builder.encKeyNumber(encKeyNumber); + } + + if (null != signKeyNumber) { + builder.signKeyNumber(signKeyNumber); + } + + if (null != secret) { + builder.secret(secret.toSecretKeyCreationCfg()); + } + + if (null != encrypting) { + builder.encrypting(encrypting.toEncryptingKeyCreationCfg()); + } + + if (null != singing) { + builder.singing(singing.toSigningKeyCreationCfg()); + } + + return builder.build(); + } + } + + public EncryptionConfig toEncryptionConfig() { + EncryptionConfig.EncryptionConfigBuilder builder = EncryptionConfig.builder(); + if (null != keystore) { + builder.keystore(keystore.toKeyStoreConfig()); + } + + if (null != keys) { + builder.keys(keys.toKeyCreationConfig()); + } + + if (null != cms) { + builder.cms(cms.toCmsEncryptionConfig()); + } + + return builder.build(); + } +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/AuthPathEncryptionSecretKey.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/AuthPathEncryptionSecretKey.java new file mode 100644 index 000000000..3c6491c62 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/AuthPathEncryptionSecretKey.java @@ -0,0 +1,19 @@ +package de.adorsys.datasafe.encrypiton.api.types.keystore; + +import lombok.*; + +/** + * Authenticated path encryption secret key holder. + */ +@Getter +@ToString +@Value +@RequiredArgsConstructor +public class AuthPathEncryptionSecretKey { + + @NonNull + private final SecretKeyIDWithKey secretKey; + + @NonNull + private final SecretKeyIDWithKey counterSecretKey; +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/BaseTypePasswordString.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/BaseTypePasswordString.java deleted file mode 100644 index 409bbffc4..000000000 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/BaseTypePasswordString.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.adorsys.datasafe.encrypiton.api.types.keystore; - -import de.adorsys.datasafe.encrypiton.api.types.BaseTypeString; -import de.adorsys.datasafe.types.api.utils.Obfuscate; - -/** - * Wrapper for password sensitive data. - */ -public class BaseTypePasswordString extends BaseTypeString { - - public BaseTypePasswordString(String value) { - super(value); - } - - @Override - public String toString() { - return "BaseTypePasswordString{" + Obfuscate.secureSensitive(getValue()) + "}"; - } -} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyEntry.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyEntry.java index 2185ba00d..95da61ce1 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyEntry.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyEntry.java @@ -1,5 +1,7 @@ package de.adorsys.datasafe.encrypiton.api.types.keystore; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; + /** * Wrapper for key entry within keystore. */ diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyID.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyID.java index 9bbeaeac5..df60db9dc 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyID.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyID.java @@ -1,10 +1,12 @@ package de.adorsys.datasafe.encrypiton.api.types.keystore; import de.adorsys.datasafe.encrypiton.api.types.BaseTypeString; +import lombok.ToString; /** * Wrapper that identifies key inside keystore. */ +@ToString(callSuper = true) public class KeyID extends BaseTypeString { public KeyID(String value) { diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreAuth.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreAuth.java index 8884af204..463a34150 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreAuth.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreAuth.java @@ -1,6 +1,8 @@ package de.adorsys.datasafe.encrypiton.api.types.keystore; import de.adorsys.datasafe.encrypiton.api.types.keystore.exceptions.KeyStoreAuthException; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; /** * Authorization entity to read keystore or both keystore and key in it. diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreCreationConfig.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreCreationConfig.java deleted file mode 100644 index a078984b0..000000000 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreCreationConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.adorsys.datasafe.encrypiton.api.types.keystore; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * Wrapper that contains count of public-key pairs and count of encryption keys. - */ -@Getter -@RequiredArgsConstructor -public class KeyStoreCreationConfig { - - public static final String PATH_KEY_ID_PREFIX = "PATH_SECRET"; - public static final String DOCUMENT_KEY_ID_PREFIX = "PRIVATE_SECRET"; - - private final int encKeyNumber; - private final int signKeyNumber; -} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreType.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreType.java deleted file mode 100644 index 0dfad747e..000000000 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/KeyStoreType.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.adorsys.datasafe.encrypiton.api.types.keystore; - -import de.adorsys.datasafe.encrypiton.api.types.BaseTypeString; - -/** - * Wrapper for keystore type - example: PKCS12,JKS,UBER. - */ -public class KeyStoreType extends BaseTypeString { - - public static KeyStoreType DEFAULT = getDefaultKeyStoreType(); - - public KeyStoreType(String value) { - super(value); - } - - protected static KeyStoreType getDefaultKeyStoreType() { - String serverKeystoreType = System.getProperty("SERVER_KEYSTORE_TYPE"); - if (null != serverKeystoreType && !serverKeystoreType.isEmpty()) { - return new KeyStoreType(serverKeystoreType); - } - return new KeyStoreType("UBER"); - } -} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadKeyPassword.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadKeyPassword.java deleted file mode 100644 index bc5dc7c3d..000000000 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadKeyPassword.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.adorsys.datasafe.encrypiton.api.types.keystore; - -/** - * Wrapper for password for reading secret or private key entry. - */ -public class ReadKeyPassword extends BaseTypePasswordString { - - public ReadKeyPassword(String readKeyPassword) { - super(readKeyPassword); - } -} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadStorePassword.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadStorePassword.java deleted file mode 100644 index c721bb8a7..000000000 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/ReadStorePassword.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.adorsys.datasafe.encrypiton.api.types.keystore; - -/** - * Wrapper for keystore serialization/deserialization password as well as password for reading public keys. - */ -public class ReadStorePassword extends BaseTypePasswordString { - - public ReadStorePassword(String readStorePassword) { - super(readStorePassword); - } -} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyGenerator.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyGenerator.java index c9c41dfb1..8cc874253 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyGenerator.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyGenerator.java @@ -1,6 +1,8 @@ package de.adorsys.datasafe.encrypiton.api.types.keystore; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; + /** * Generates random secret key entry. */ diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyIDWithKey.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyIDWithKey.java index 66f205c18..eea75af71 100644 --- a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyIDWithKey.java +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/SecretKeyIDWithKey.java @@ -10,7 +10,7 @@ * Wrapper for secret key and its ID, so it can be found by ID within keystore. */ @Getter -@ToString +@ToString(of = "keyID") @RequiredArgsConstructor public class SecretKeyIDWithKey { diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/PBKDF2.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/PBKDF2.java new file mode 100644 index 000000000..5df02f214 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/PBKDF2.java @@ -0,0 +1,30 @@ +package de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf; + +import lombok.Builder; +import lombok.Getter; + +/** + * PBKDF2-based key derivation. + */ +@Getter +@Builder +public class PBKDF2 { + + /** + * Password derivation algorithm, for BCFKS refer to {@see org.bouncycastle.crypto.util.PBKDF2Config} + */ + @Builder.Default + private final String algo = "PRF_SHA512"; + + /** + * Password derivation salt length, for BCFKS refer to {@see org.bouncycastle.crypto.util.PBKDF2Config} + */ + @Builder.Default + private final int saltLength = 32; + + /** + * Password derivation iteration count, for BCFKS refer to {@see org.bouncycastle.crypto.util.PBKDF2Config} + */ + @Builder.Default + private final int iterCount = 20480; +} diff --git a/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/Scrypt.java b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/Scrypt.java new file mode 100644 index 000000000..e4d80c623 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-api/src/main/java/de/adorsys/datasafe/encrypiton/api/types/keystore/pbkdf/Scrypt.java @@ -0,0 +1,31 @@ +package de.adorsys.datasafe.encrypiton.api.types.keystore.pbkdf; + +import lombok.Builder; +import lombok.Getter; + +/** + * Scrypt-based key derivation. + */ +@Getter +@Builder +public class Scrypt { + + /** + * Password derivation cost, for BCFKS refer to {@see org.bouncycastle.crypto.util.ScryptConfig} + */ + private final int cost; + /** + * Password derivation block size, for BCFKS refer to {@see org.bouncycastle.crypto.util.ScryptConfig} + */ + private final int blockSize; + + /** + * Password derivation parallelization, for BCFKS refer to {@see org.bouncycastle.crypto.util.ScryptConfig} + */ + private final int parallelization; + + /** + * Password derivation salt length, for BCFKS refer to {@see org.bouncycastle.crypto.util.ScryptConfig} + */ + private final int saltLength; +} diff --git a/datasafe-encryption/datasafe-encryption-impl/pom.xml b/datasafe-encryption/datasafe-encryption-impl/pom.xml index 51cd4dbf7..462faff1d 100644 --- a/datasafe-encryption/datasafe-encryption-impl/pom.xml +++ b/datasafe-encryption/datasafe-encryption-impl/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-encryption - 0.6.2 + 0.7.0 datasafe-encryption-impl @@ -29,6 +29,12 @@ datasafe-directory-api ${project.version} + + de.adorsys + datasafe-runtime-delegate + ${project.version} + provided + org.projectlombok @@ -58,23 +64,27 @@ org.slf4j slf4j-api - - de.adorsys - datasafe-runtime-delegate - ${project.version} - provided - com.google.code.findbugs jsr305 provided + + org.cryptomator + siv-mode + org.junit.jupiter junit-jupiter-api test + + org.junit.jupiter + junit-jupiter-params + ${jupiter.version} + test + org.assertj assertj-core @@ -92,5 +102,24 @@ test-jar test + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + test + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + ${jackson.version} + test + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + test + diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/ASNCmsEncryptionConfig.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/ASNCmsEncryptionConfig.java new file mode 100644 index 000000000..1127a3d6e --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/ASNCmsEncryptionConfig.java @@ -0,0 +1,54 @@ +package de.adorsys.datasafe.encrypiton.impl.cmsencryption; + +import com.google.common.collect.ImmutableMap; +import de.adorsys.datasafe.encrypiton.api.types.encryption.CmsEncryptionConfig; +import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import lombok.Getter; +import org.bouncycastle.asn1.ASN1ObjectIdentifier; +import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; +import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; + +import javax.inject.Inject; +import java.util.Map; + +/** + * Provides algorithm ID used for CMS-encryption. + */ +@RuntimeDelegate +public class ASNCmsEncryptionConfig { + + /** + * These are recommended mappings, one can override this static map by RuntimeDelegate to + * ASNCmsEncryptionConfig. + */ + private static final Map MAPPINGS = + ImmutableMap.builder() + .put("AES128_CBC", NISTObjectIdentifiers.id_aes128_CBC) + .put("AES192_CBC", NISTObjectIdentifiers.id_aes192_CBC) + .put("AES256_CBC", NISTObjectIdentifiers.id_aes256_CBC) + .put("AES128_CCM", NISTObjectIdentifiers.id_aes128_CCM) + .put("AES192_CCM", NISTObjectIdentifiers.id_aes192_CCM) + .put("AES256_CCM", NISTObjectIdentifiers.id_aes256_CCM) + .put("AES128_GCM", NISTObjectIdentifiers.id_aes128_GCM) + .put("AES192_GCM", NISTObjectIdentifiers.id_aes192_GCM) + .put("AES256_GCM", NISTObjectIdentifiers.id_aes256_GCM) + .put("AES128_WRAP", NISTObjectIdentifiers.id_aes128_wrap) + .put("AES192_WRAP", NISTObjectIdentifiers.id_aes192_wrap) + .put("AES256_WRAP", NISTObjectIdentifiers.id_aes256_wrap) + .put("CHACHA20_POLY1305", PKCSObjectIdentifiers.id_alg_AEADChaCha20Poly1305) + .build(); + + @Getter + private final ASN1ObjectIdentifier algorithm; + + @Inject + public ASNCmsEncryptionConfig(CmsEncryptionConfig cmsEncryptionConfig) { + String algo = cmsEncryptionConfig.getAlgo(); + + if (!MAPPINGS.containsKey(algo)) { + throw new IllegalArgumentException("Unknown ASN1 mapping for algo: " + algo); + } + + algorithm = MAPPINGS.get(algo); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionConfig.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionConfig.java deleted file mode 100644 index aae98f2ac..000000000 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.adorsys.datasafe.encrypiton.impl.cmsencryption; - -import org.bouncycastle.asn1.ASN1ObjectIdentifier; - -/** - * Provides algorithm ID used for CMS-encryption. - */ -public interface CMSEncryptionConfig { - - /** - * BouncyCastle compatible algorithm identifier. - */ - ASN1ObjectIdentifier getAlgorithm(); -} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionServiceImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionServiceImpl.java index 985524817..b7b73cbf6 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionServiceImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CMSEncryptionServiceImpl.java @@ -6,6 +6,7 @@ import de.adorsys.datasafe.encrypiton.impl.cmsencryption.decryptors.Decryptor; import de.adorsys.datasafe.encrypiton.impl.cmsencryption.decryptors.DecryptorFactory; import de.adorsys.datasafe.encrypiton.impl.cmsencryption.exceptions.DecryptionException; +import de.adorsys.datasafe.encrypiton.impl.keystore.generator.ProviderUtils; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -14,7 +15,6 @@ import org.bouncycastle.cms.jcajce.JceCMSContentEncryptorBuilder; import org.bouncycastle.cms.jcajce.JceKEKRecipientInfoGenerator; import org.bouncycastle.cms.jcajce.JceKeyTransRecipientInfoGenerator; -import org.bouncycastle.jce.provider.BouncyCastleProvider; import javax.crypto.SecretKey; import javax.inject.Inject; @@ -38,15 +38,15 @@ @RuntimeDelegate public class CMSEncryptionServiceImpl implements CMSEncryptionService { - private CMSEncryptionConfig encryptionConfig; + private ASNCmsEncryptionConfig encryptionConfig; @Inject - public CMSEncryptionServiceImpl(CMSEncryptionConfig encryptionConfig) { + public CMSEncryptionServiceImpl(ASNCmsEncryptionConfig encryptionConfig) { this.encryptionConfig = encryptionConfig; } /** - * Asymmetrical encryption-based stream, algorithm is provided by {@link CMSEncryptionConfig#getAlgorithm()} + * Asymmetrical encryption-based stream, algorithm is provided by {@link ASNCmsEncryptionConfig#getAlgorithm()} * Uses {@link RecipientId#keyTrans} recipient id. */ @Override @@ -65,7 +65,7 @@ public OutputStream buildEncryptionOutputStream(OutputStream dataContentStream, } /** - * Symmetrical encryption-based stream, algorithm is provided by {@link CMSEncryptionConfig#getAlgorithm()} + * Symmetrical encryption-based stream, algorithm is provided by {@link ASNCmsEncryptionConfig#getAlgorithm()} * Uses {@link RecipientId#kek} recipient id. */ @Override @@ -119,7 +119,7 @@ private OutputStream streamEncrypt(OutputStream dataContentStream, Set> secretKeys ) { - this.config = new KeyStoreCreationConfigImpl(config); - this.keyStoreType = keyStoreType; + this.config = new KeyCreationConfigImpl(keyCreationConfig); + this.keyStoreConfig = keyStoreConfig; this.serverKeyPairAliasPrefix = "KEYSTORE-ID-0"; this.readKeyPassword = readKeyPassword; this.secretKeys = secretKeys; @@ -62,7 +67,7 @@ public KeyStore generate() { Date startTime = new Date(); try { String keyStoreID = serverKeyPairAliasPrefix; - KeystoreBuilder keystoreBuilder = new KeystoreBuilder().withStoreType(keyStoreType); + KeystoreBuilder keystoreBuilder = new KeystoreBuilder().withKeyStoreConfig(keyStoreConfig); { KeyPairGenerator encKeyPairGenerator = config.getEncKeyPairGenerator(keyStoreID); @@ -89,7 +94,7 @@ public KeyStore generate() { } } { - SecretKeyGenerator secretKeyGenerator = config.getSecretKeyGenerator(keyStoreID); + SecretKeyGenerator secretKeyGenerator = config.getSecretKeyGenerator(); for (Map.Entry> keyEntry : secretKeys.entrySet()) { keystoreBuilder = buildSecretKey( diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceImpl.java index 0b8ff18b5..e67c6389e 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceImpl.java @@ -2,10 +2,13 @@ import com.google.common.collect.ImmutableMap; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; import de.adorsys.datasafe.encrypiton.impl.keystore.generator.KeyStoreServiceImplBaseFunctions; -import de.adorsys.datasafe.encrypiton.impl.keystore.types.PasswordBasedKeyConfig; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -17,35 +20,34 @@ import java.security.Key; import java.security.KeyStore; import java.security.PrivateKey; -import java.security.cert.Certificate; import java.security.cert.X509Certificate; import java.util.*; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.DOCUMENT_KEY_ID_PREFIX; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.PATH_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.*; @Slf4j @RuntimeDelegate public class KeyStoreServiceImpl implements KeyStoreService { - private final PasswordBasedKeyConfig passwordBasedKeyConfig; + private final KeyStoreConfig config; + private final String passwordStoreEncAlgo; @Inject - public KeyStoreServiceImpl(PasswordBasedKeyConfig passwordBasedKeyConfig) { - this.passwordBasedKeyConfig = passwordBasedKeyConfig; + public KeyStoreServiceImpl(KeyStoreConfig config) { + this.config = config; + this.passwordStoreEncAlgo = this.config.getPasswordKeysAlgo(); } @Override public KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, - KeyStoreType keyStoreType, - KeyStoreCreationConfig config) { + KeyCreationConfig config) { return createKeyStore( keyStoreAuth, - keyStoreType, config, ImmutableMap.of( new KeyID(PATH_KEY_ID_PREFIX + UUID.randomUUID().toString()), Optional.empty(), + new KeyID(PATH_KEY_ID_PREFIX_CTR + UUID.randomUUID().toString()), Optional.empty(), new KeyID(DOCUMENT_KEY_ID_PREFIX + UUID.randomUUID().toString()), Optional.empty() ) ); @@ -53,20 +55,16 @@ public KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, @Override public KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, - KeyStoreType keyStoreType, - KeyStoreCreationConfig config, + KeyCreationConfig keyConfig, Map> secretKeys) { log.debug("start create keystore "); - if (config == null) { - config = new KeyStoreCreationConfig(5, 5); - } // TODO, hier also statt der StoreID nun das String serverKeyPairAliasPrefix = UUID.randomUUID().toString(); log.debug("keystoreid = {}", serverKeyPairAliasPrefix); KeyStoreGenerator keyStoreGenerator = KeyStoreGenerator.builder() - .config(config) - .keyStoreType(keyStoreType) + .keyCreationConfig(keyConfig) + .keyStoreConfig(config) .serverKeyPairAliasPrefix(serverKeyPairAliasPrefix) .readKeyPassword(keyStoreAuth.getReadKeyPassword()) .secretKeys(secretKeys) @@ -82,17 +80,16 @@ public KeyStore createKeyStore(KeyStoreAuth keyStoreAuth, public KeyStore updateKeyStoreReadKeyPassword(KeyStore current, KeyStoreAuth currentCredentials, KeyStoreAuth newCredentials) { - KeyStore newKeystore = KeyStore.getInstance(current.getType()); - newKeystore.load(null, null); + KeyStore newKeystore = KeyStoreServiceImplBaseFunctions.newKeyStore(config); Enumeration aliases = current.aliases(); while (aliases.hasMoreElements()) { String alias = aliases.nextElement(); - Key currentKey = current.getKey(alias, currentCredentials.getReadKeyPassword().getValue().toCharArray()); + Key currentKey = current.getKey(alias, currentCredentials.getReadKeyPassword().getValue()); newKeystore.setKeyEntry( alias, currentKey, - newCredentials.getReadKeyPassword().getValue().toCharArray(), + newCredentials.getReadKeyPassword().getValue(), current.getCertificateChain(alias) ); } @@ -126,7 +123,7 @@ public PrivateKey getPrivateKey(KeyStoreAccess keyStoreAccess, KeyID keyID) { ReadKeyPassword readKeyPassword = keyStoreAccess.getKeyStoreAuth().getReadKeyPassword(); KeyStore keyStore = keyStoreAccess.getKeyStore(); PrivateKey privateKey; - privateKey = (PrivateKey) keyStore.getKey(keyID.getValue(), readKeyPassword.getValue().toCharArray()); + privateKey = (PrivateKey) keyStore.getKey(keyID.getValue(), readKeyPassword.getValue()); return privateKey; } @@ -134,7 +131,7 @@ public PrivateKey getPrivateKey(KeyStoreAccess keyStoreAccess, KeyID keyID) { @SneakyThrows public SecretKeySpec getSecretKey(KeyStoreAccess keyStoreAccess, KeyID keyID) { KeyStore keyStore = keyStoreAccess.getKeyStore(); - char[] password = keyStoreAccess.getKeyStoreAuth().getReadKeyPassword().getValue().toCharArray(); + char[] password = keyStoreAccess.getKeyStoreAuth().getReadKeyPassword().getValue(); return (SecretKeySpec) keyStore.getKey(keyID.getValue(), password); } @@ -142,14 +139,14 @@ public SecretKeySpec getSecretKey(KeyStoreAccess keyStoreAccess, KeyID keyID) { @SneakyThrows public void addPasswordBasedSecretKey(KeyStoreAccess keyStoreAccess, String alias, char[] secret) { PBEKeySpec pbeKeySpec = new PBEKeySpec(secret); - SecretKeyFactory keyFac = SecretKeyFactory.getInstance(passwordBasedKeyConfig.secretKeyFactoryId()); + SecretKeyFactory keyFac = SecretKeyFactory.getInstance(passwordStoreEncAlgo); SecretKey key = keyFac.generateSecret(pbeKeySpec); keyStoreAccess.getKeyStore() .setKeyEntry( alias, key, - keyStoreAccess.getKeyStoreAuth().getReadKeyPassword().getValue().toCharArray(), - new Certificate[0] + keyStoreAccess.getKeyStoreAuth().getReadKeyPassword().getValue(), + null ); } @@ -173,7 +170,7 @@ public KeyStore deserialize(byte[] payload, String storeId, ReadStorePassword re return KeyStoreServiceImplBaseFunctions.loadKeyStore( payload, storeId, - KeyStoreType.DEFAULT, + config, readStorePassword ); } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/PublicKeySerdeImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/PublicKeySerdeImpl.java index 4b074b5e2..c64e3fe9f 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/PublicKeySerdeImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/PublicKeySerdeImpl.java @@ -3,12 +3,10 @@ import de.adorsys.datasafe.encrypiton.api.keystore.PublicKeySerde; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import lombok.SneakyThrows; +import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; +import org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi; import javax.inject.Inject; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; import java.security.PublicKey; import java.util.Base64; @@ -18,6 +16,7 @@ @RuntimeDelegate public class PublicKeySerdeImpl implements PublicKeySerde { + @Inject public PublicKeySerdeImpl() { } @@ -25,19 +24,15 @@ public PublicKeySerdeImpl() { @Override @SneakyThrows public PublicKey readPubKey(String encoded) { - try (ObjectInputStream ois = - new ObjectInputStream(new ByteArrayInputStream(Base64.getDecoder().decode(encoded)))) { - return (PublicKey) ois.readObject(); - } + // FIXME: Legacy stuff + byte[] bytes = Base64.getDecoder().decode(encoded); + return new KeyFactorySpi().generatePublic(SubjectPublicKeyInfo.getInstance(bytes)); } @Override @SneakyThrows public String writePubKey(PublicKey publicKey) { - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - try (ObjectOutputStream oos = new ObjectOutputStream(bos)) { - oos.writeObject(publicKey); - return new String(Base64.getEncoder().encode(bos.toByteArray())); - } + // FIXME: Legacy stuff + return Base64.getEncoder().encodeToString(publicKey.getEncoded()); } } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/CaSignedCertificateBuilder.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/CaSignedCertificateBuilder.java index 7b509f600..1adedf2a2 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/CaSignedCertificateBuilder.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/CaSignedCertificateBuilder.java @@ -16,7 +16,6 @@ import java.math.BigInteger; import java.security.PrivateKey; import java.security.PublicKey; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -36,8 +35,6 @@ public class CaSignedCertificateBuilder { private X500Name subjectDN; - private boolean subjectOnlyInAlternativeName; - private Integer notAfterInDays; private Integer notBeforeInDays = 0; @@ -55,15 +52,7 @@ public X509CertificateHolder build(PrivateKey issuerPrivatekey) { if (dirty) throw new IllegalStateException("Builder can not be reused"); dirty = true; - // AUtoselect algorithm - if (StringUtils.isBlank(signatureAlgo)) { - String algorithm = issuerPrivatekey.getAlgorithm(); - if (StringUtils.equalsAnyIgnoreCase("DSA", algorithm)) { - signatureAlgo = "SHA256withDSA"; - } else if (StringUtils.equals("RSA", algorithm)) { - signatureAlgo = "SHA256WithRSA"; - } - } + signatureAlgo = autodetectAlgorithm(issuerPrivatekey); Date now = new Date(); Date notAfter = notAfterInDays != null ? DateUtils.addDays(now, notAfterInDays) : null; @@ -77,7 +66,10 @@ public X509CertificateHolder build(PrivateKey issuerPrivatekey) { .build(); List errorKeys = BatchValidator.filterNull(notNullCheckList); - if (errorKeys == null) errorKeys = new ArrayList<>(); + + if (errorKeys != null && !errorKeys.isEmpty()) { + throw new IllegalArgumentException("Fields can not be null: " + errorKeys); + } X500Name issuerDN = null; BasicConstraints basicConstraints = null; @@ -86,8 +78,6 @@ public X509CertificateHolder build(PrivateKey issuerPrivatekey) { if (createCaCert) { // self signed ca certificate basicConstraints = new BasicConstraints(true); - // in ca case, subject must subject must be set - subjectOnlyInAlternativeName = false; } else { // not a ca certificate basicConstraints = new BasicConstraints(false); @@ -95,11 +85,7 @@ public X509CertificateHolder build(PrivateKey issuerPrivatekey) { BigInteger serial = SerialNumberGenerator.uniqueSerial(); - X509v3CertificateBuilder v3CertGen = null; - - if (!errorKeys.isEmpty()) { - throw new IllegalArgumentException("Fields can not be null: " + errorKeys); - } + X509v3CertificateBuilder v3CertGen; v3CertGen = new JcaX509v3CertificateBuilder(issuerDN, serial, notBefore, notAfter, subjectDN, subjectPublicKey); JcaX509ExtensionUtils extUtils = V3CertificateUtils.getJcaX509ExtensionUtils(); @@ -123,6 +109,19 @@ public X509CertificateHolder build(PrivateKey issuerPrivatekey) { } + private String autodetectAlgorithm(PrivateKey issuerPrivatekey) { + if (null == signatureAlgo || signatureAlgo.isEmpty()) { + String algorithm = issuerPrivatekey.getAlgorithm(); + if (StringUtils.equalsAnyIgnoreCase("DSA", algorithm)) { + return "SHA256withDSA"; + } else if (StringUtils.equals("RSA", algorithm)) { + return "SHA256WithRSA"; + } + } + + return null; + } + public CaSignedCertificateBuilder withCa(boolean ca) { this.createCaCert = ca; return this; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyCreationConfigImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyCreationConfigImpl.java new file mode 100644 index 000000000..7fc4d3be3 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyCreationConfigImpl.java @@ -0,0 +1,43 @@ +package de.adorsys.datasafe.encrypiton.impl.keystore.generator; + +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; + +/** + * Created by peter on 09.01.18. + */ +public class KeyCreationConfigImpl { + private final KeyCreationConfig config; + + public KeyCreationConfigImpl(KeyCreationConfig config) { + this.config = config; + } + + public KeyPairGeneratorImpl getEncKeyPairGenerator(String keyPrefix) { + return new KeyPairGeneratorImpl( + config.getEncrypting().getAlgo(), + config.getEncrypting().getSize(), + config.getEncrypting().getSigAlgo(), + "enc-" + keyPrefix + ); + } + + public KeyPairGeneratorImpl getSignKeyPairGenerator(String keyPrefix) { + return new KeyPairGeneratorImpl( + config.getSinging().getAlgo(), + config.getSinging().getSize(), + config.getSinging().getSigAlgo(), + "sign-" + keyPrefix + ); + } + + public SecretKeyGeneratorImpl getSecretKeyGenerator() { + return new SecretKeyGeneratorImpl(config.getSecret().getAlgo(), config.getSecret().getSize()); + } + + public int getEncKeyNumber() { + return config.getEncKeyNumber(); + } + public int getSignKeyNumber() { + return config.getSignKeyNumber(); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyEntryData.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyEntryData.java index cee466edb..312981d78 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyEntryData.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyEntryData.java @@ -1,7 +1,7 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyEntry; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairData.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairData.java index 68dc53997..6995df4b2 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairData.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairData.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.encrypiton.impl.keystore.types.KeyPairEntry; import de.adorsys.datasafe.encrypiton.impl.keystore.types.SelfSignedKeyPairData; import lombok.Builder; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairGeneratorImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairGeneratorImpl.java index 43f8c5659..d7db80dc1 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairGeneratorImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyPairGeneratorImpl.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.encrypiton.impl.keystore.types.KeyPairGenerator; import de.adorsys.datasafe.encrypiton.impl.keystore.types.SelfSignedKeyPairData; import org.bouncycastle.asn1.x500.X500Name; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreCreationConfigImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreCreationConfigImpl.java deleted file mode 100644 index 31f4934b1..000000000 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreCreationConfigImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.adorsys.datasafe.encrypiton.impl.keystore.generator; - -import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig; - -/** - * Created by peter on 09.01.18. - */ -public class KeyStoreCreationConfigImpl { - private final KeyStoreCreationConfig config; - - public KeyStoreCreationConfigImpl(KeyStoreCreationConfig config) { - this.config = config; - } - - public KeyPairGeneratorImpl getEncKeyPairGenerator(String keyPrefix) { - return new KeyPairGeneratorImpl("RSA", 2048, "SHA256withRSA", "enc-" + keyPrefix); - } - - public KeyPairGeneratorImpl getSignKeyPairGenerator(String keyPrefix) { - return new KeyPairGeneratorImpl("RSA", 2048, "SHA256withRSA", "sign-" + keyPrefix); - } - - public SecretKeyGeneratorImpl getSecretKeyGenerator(String keyPrefix) { - return new SecretKeyGeneratorImpl("AES", 256); - } - - public int getEncKeyNumber() { - return config.getEncKeyNumber(); - } - public int getSignKeyNumber() { - return config.getSignKeyNumber(); - } -} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreServiceImplBaseFunctions.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreServiceImplBaseFunctions.java index b3a91bd9f..b5a9e0f1c 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreServiceImplBaseFunctions.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeyStoreServiceImplBaseFunctions.java @@ -1,9 +1,18 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; -import de.adorsys.datasafe.encrypiton.api.types.keystore.*; +import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyEntry; +import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyEntry; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.impl.keystore.types.KeyPairEntry; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import lombok.SneakyThrows; +import org.bouncycastle.asn1.x509.AlgorithmIdentifier; import org.bouncycastle.cert.X509CertificateHolder; +import org.bouncycastle.crypto.util.PBKDF2Config; +import org.bouncycastle.crypto.util.PBKDFConfig; +import org.bouncycastle.crypto.util.ScryptConfig; +import org.bouncycastle.jcajce.BCFKSLoadStoreParameter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -29,13 +38,18 @@ private KeyStoreServiceImplBaseFunctions() { /** * Create an initializes a new key store. The key store is not yet password protected. * - * @param keyStoreType storeType + * @param config storeType * @return KeyStore keyStore */ @SneakyThrows - public static KeyStore newKeyStore(KeyStoreType keyStoreType) { - KeyStore ks = KeyStore.getInstance(keyStoreType.getValue()); - ks.load(null, null); + public static KeyStore newKeyStore(KeyStoreConfig config) { + KeyStore ks = KeyStore.getInstance(config.getType()); + + if ("BCFKS".equals(config.getType())) { + createBCFKSKeystore(config, ks); + } else { + ks.load(null, null); + } return ks; } @@ -43,13 +57,12 @@ public static KeyStore newKeyStore(KeyStoreType keyStoreType) { * Write this key store into a byte array * * @param keystore keystore - * @param storeId storeId * @return key store byte array */ @SneakyThrows public static byte[] toByteArray(KeyStore keystore, String storeId, ReadStorePassword readStorePassword) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); - keystore.store(stream, readStorePassword.getValue().toCharArray()); + keystore.store(stream, readStorePassword.getValue()); return stream.toByteArray(); } @@ -57,29 +70,28 @@ public static byte[] toByteArray(KeyStore keystore, String storeId, ReadStorePas * Loads a key store. Given the store bytes, the store type * * @param in : the inputStream location which to read the keystore - * @param storeId : The store id. This is passed to the callback handler to identify the requested password record. - * @param storeType : the type of this key store. f null, the defaut java keystore type is used. + * @param keyStoreConfig : the type of this key store. f null, the defaut java keystore type is used. * @return KeyStore */ @SneakyThrows - public static KeyStore loadKeyStore(InputStream in, String storeId, KeyStoreType storeType, ReadStorePassword readStorePassword) { - // Use default type if blank. - if (storeType == null) storeType = KeyStoreType.DEFAULT; - - KeyStore ks = KeyStore.getInstance(storeType.getValue()); + public static KeyStore loadKeyStore(InputStream in, String storeId, + KeyStoreConfig keyStoreConfig, + ReadStorePassword readStorePassword) { + KeyStore ks = KeyStore.getInstance(keyStoreConfig.getType()); - ks.load(in, readStorePassword.getValue().toCharArray()); + ks.load(in, readStorePassword.getValue()); return ks; } /** * @param data : the byte array containing key store data. - * @param storeId : The store id. This is passed to the callback handler to identify the requested password record. - * @param keyStoreType : the type of this key store. f null, the defaut java keystore type is used. + * @param keyStoreConfig : the type of this key store. f null, the defaut java keystore type is used. * @return KeyStore */ - public static KeyStore loadKeyStore(byte[] data, String storeId, KeyStoreType keyStoreType, ReadStorePassword readStorePassword) { - return loadKeyStore(new ByteArrayInputStream(data), storeId, keyStoreType, readStorePassword); + public static KeyStore loadKeyStore(byte[] data, String storeId, + KeyStoreConfig keyStoreConfig, + ReadStorePassword readStorePassword) { + return loadKeyStore(new ByteArrayInputStream(data), storeId, keyStoreConfig, readStorePassword); } /** @@ -108,6 +120,49 @@ public static void addToKeyStore(final KeyStore ks, KeyEntry keyEntry) { } } + @SneakyThrows + private static void createBCFKSKeystore(KeyStoreConfig config, KeyStore ks) { + BCFKSLoadStoreParameter.EncryptionAlgorithm encAlgo = + BCFKSLoadStoreParameter.EncryptionAlgorithm.valueOf(config.getEncryptionAlgo()); + + BCFKSLoadStoreParameter.MacAlgorithm macAlgo = + BCFKSLoadStoreParameter.MacAlgorithm.valueOf(config.getMacAlgo()); + + ks.load(new BCFKSLoadStoreParameter.Builder() + .withStoreEncryptionAlgorithm(encAlgo) + .withStorePBKDFConfig(pbkdfConfig(config.getPbkdf())) + .withStoreMacAlgorithm(macAlgo) + .build() + ); + } + + @SneakyThrows + private static PBKDFConfig pbkdfConfig(KeyStoreConfig.PBKDF config) { + if (null != config.getPbkdf2()) { + AlgorithmIdentifier prf = (AlgorithmIdentifier) PBKDF2Config.class.getDeclaredField( + config.getPbkdf2().getAlgo() + ).get(PBKDF2Config.class); + + return new PBKDF2Config.Builder() + .withIterationCount(config.getPbkdf2().getIterCount()) + .withSaltLength(config.getPbkdf2().getSaltLength()) + .withPRF(prf) + .build(); + + } else if (config.getScrypt() != null) { + + return new ScryptConfig.Builder( + config.getScrypt().getCost(), + config.getScrypt().getBlockSize(), + config.getScrypt().getParallelization() + ) + .withSaltLength(config.getScrypt().getSaltLength()) + .build(); + } + + throw new IllegalArgumentException("Unknown PBKDF type"); + } + @SneakyThrows private static void addToKeyStore(final KeyStore ks, KeyPairEntry keyPairHolder) { List chainList = new ArrayList<>(); @@ -115,7 +170,7 @@ private static void addToKeyStore(final KeyStore ks, KeyPairEntry keyPairHolder) chainList.add(V3CertificateUtils.getX509JavaCertificate(subjectCert)); Certificate[] chain = chainList.toArray(new Certificate[chainList.size()]); ks.setKeyEntry(keyPairHolder.getAlias(), keyPairHolder.getKeyPair().getKeyPair().getPrivate(), - keyPairHolder.getReadKeyPassword().getValue().toCharArray(), chain); + keyPairHolder.getReadKeyPassword().getValue(), chain); } @SneakyThrows @@ -126,7 +181,7 @@ public static void addToKeyStore(final KeyStore ks, SecretKeyEntry secretKeyData } private static ProtectionParameter getPasswordProtectionParameter(ReadKeyPassword readKeyPassword) { - return new KeyStore.PasswordProtection(readKeyPassword.getValue().toCharArray()); + return new KeyStore.PasswordProtection(readKeyPassword.getValue()); } } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeystoreBuilder.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeystoreBuilder.java index 3115b6a7f..e96ea4323 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeystoreBuilder.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/KeystoreBuilder.java @@ -1,18 +1,18 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyEntry; -import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreType; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import java.security.KeyStore; import java.util.HashMap; import java.util.Map; public class KeystoreBuilder { - private KeyStoreType storeType; + private KeyStoreConfig keyStoreConfig; private Map keyEntries = new HashMap<>(); - public KeystoreBuilder withStoreType(KeyStoreType storeType) { - this.storeType = storeType; + public KeystoreBuilder withKeyStoreConfig(KeyStoreConfig keyStoreConfig) { + this.keyStoreConfig = keyStoreConfig; return this; } @@ -22,7 +22,7 @@ public KeystoreBuilder withKeyEntry(KeyEntry keyEntry) { } public KeyStore build() { - KeyStore ks = KeyStoreServiceImplBaseFunctions.newKeyStore(storeType); + KeyStore ks = KeyStoreServiceImplBaseFunctions.newKeyStore(keyStoreConfig); KeyStoreServiceImplBaseFunctions.fillKeyStore(ks, keyEntries.values()); return ks; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/ProviderUtils.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/ProviderUtils.java index 9614d6b1d..32804f577 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/ProviderUtils.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/ProviderUtils.java @@ -1,18 +1,13 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; +import lombok.experimental.UtilityClass; import org.bouncycastle.jce.provider.BouncyCastleProvider; -import javax.crypto.NoSuchPaddingException; import java.security.Provider; import java.security.Security; +@UtilityClass public class ProviderUtils { - public static final Provider bcProvider; - - static { - Security.addProvider(new BouncyCastleProvider()); - bcProvider = Security.getProvider("BC"); - if (bcProvider == null) throw new IllegalStateException(new NoSuchPaddingException("BC")); - } + public static final Provider bcProvider = Security.getProvider(BouncyCastleProvider.PROVIDER_NAME); } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyData.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyData.java index 2cd657144..07db999a0 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyData.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyData.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyEntry; import lombok.Builder; import lombok.Getter; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyGeneratorImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyGeneratorImpl.java index 15abee46a..6f0db726a 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyGeneratorImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/generator/SecretKeyGeneratorImpl.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.generator; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyGenerator; import javax.crypto.SecretKey; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/KeyPairGenerator.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/KeyPairGenerator.java index 2efe9ea04..7f059f0da 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/KeyPairGenerator.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/KeyPairGenerator.java @@ -1,6 +1,6 @@ package de.adorsys.datasafe.encrypiton.impl.keystore.types; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; /** * Created by peter on 26.02.18 at 17:09. diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/PasswordBasedKeyConfig.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/PasswordBasedKeyConfig.java deleted file mode 100644 index c8ed065e1..000000000 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/keystore/types/PasswordBasedKeyConfig.java +++ /dev/null @@ -1,6 +0,0 @@ -package de.adorsys.datasafe.encrypiton.impl.keystore.types; - -public interface PasswordBasedKeyConfig { - - String secretKeyFactoryId(); -} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryption.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryption.java new file mode 100644 index 000000000..928a358d7 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryption.java @@ -0,0 +1,205 @@ +package de.adorsys.datasafe.encrypiton.impl.pathencryption; + +import de.adorsys.datasafe.encrypiton.api.pathencryption.encryption.SymmetricPathEncryptionService; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import de.adorsys.datasafe.encrypiton.impl.pathencryption.dto.PathSegmentWithSecretKeyWith; +import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import de.adorsys.datasafe.types.api.resource.Uri; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +import javax.inject.Inject; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.Arrays; +import java.util.Base64; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static de.adorsys.datasafe.types.api.global.PathEncryptionId.AES_SIV; + +/** + * Path encryption service that maintains URI segments integrity. + * It means that path/to/file is encrypted to cipher(path)/cipher(to)/cipher(file) and each invocation of example: + * cipher(path) will yield same string, but cipher(path)/cipher(path) will not yield same segments - + * it will be more like abc/cde and not like abc/abc. + * Additionally each segment is authenticated against its parent path hash, so attacker can't + * move a/file to b/file without being detected. + */ +@Slf4j +@RuntimeDelegate +public class IntegrityPreservingUriEncryption implements SymmetricPathEncryptionService { + + private static final int DOT_SLASH_PREFIX_LENGTH = 2; + private static final String DOT_SLASH_PREFIX = "./"; + private static final String PATH_SEPARATOR = "/"; + + private final Function encryptAndEncode; + private final Function decryptAndDecode; + + @Inject + public IntegrityPreservingUriEncryption(PathEncryptorDecryptor pathEncryptorDecryptor) { + encryptAndEncode = keyAndSegment -> encryptorAndEncoder(keyAndSegment, pathEncryptorDecryptor); + decryptAndDecode = keyAndSegment -> decryptorAndDecoder(keyAndSegment, pathEncryptorDecryptor); + } + + /** + * Encrypts each URI segment separately and composes them back in same order. + */ + @Override + @SneakyThrows + public Uri encrypt(AuthPathEncryptionSecretKey pathEncryptionSecretKey, Uri bucketPath) { + validateArgs(pathEncryptionSecretKey, bucketPath); + validateUriIsRelative(bucketPath); + + Uri uri = processURIparts( + pathEncryptionSecretKey, + bucketPath, + encryptAndEncode + ); + + return AES_SIV.asUriRoot().resolve(uri); + } + + /** + * Decrypts each URI segment separately and composes them back in same order. + */ + @Override + @SneakyThrows + public Uri decrypt(AuthPathEncryptionSecretKey pathEncryptionSecretKey, Uri bucketPath) { + validateArgs(pathEncryptionSecretKey, bucketPath); + validateUriIsRelative(bucketPath); + + bucketPath = AES_SIV.asUriRoot().relativize(bucketPath); + + return processURIparts( + pathEncryptionSecretKey, + bucketPath, + decryptAndDecode + ); + } + + /** + * Parent path authentication digest. a/b/c - each path segment on encryption will be authenticated: + * for a - will be authenticated against `` + * for b - will be authenticated against `/encrypted(a)` + * for c - will be authenticated against `/encrypted(a)/encrypted(b)` + */ + @SneakyThrows + protected MessageDigest getDigest() { + return MessageDigest.getInstance("SHA-256"); + } + + protected String decryptorAndDecoder(PathSegmentWithSecretKeyWith keyAndSegment, + PathEncryptorDecryptor pathEncryptorDecryptor) { + byte[] segment = keyAndSegment.getPath().getBytes(StandardCharsets.UTF_8); + keyAndSegment.getDigest().update(segment); + + return new String( + pathEncryptorDecryptor.decrypt( + keyAndSegment.getPathEncryptionSecretKey(), + decode(keyAndSegment.getPath()), + keyAndSegment.getParentHash() + ), + StandardCharsets.UTF_8 + ); + } + + protected String encryptorAndEncoder(PathSegmentWithSecretKeyWith keyAndSegment, + PathEncryptorDecryptor pathEncryptorDecryptor) { + String result = encode( + pathEncryptorDecryptor.encrypt( + keyAndSegment.getPathEncryptionSecretKey(), + keyAndSegment.getPath().getBytes(StandardCharsets.UTF_8), + keyAndSegment.getParentHash() + ) + ); + + keyAndSegment.getDigest().update(result.getBytes(StandardCharsets.UTF_8)); + return result; + } + + @SneakyThrows + private byte[] decode(String encryptedPath) { + if (null == encryptedPath || encryptedPath.isEmpty()) { + return null; + } + + return Base64.getUrlDecoder().decode(encryptedPath); + } + + @SneakyThrows + private String encode(byte[] encryptedPath) { + if (null == encryptedPath) { + return null; + } + + return Base64.getUrlEncoder().encodeToString(encryptedPath); + } + + private Uri processURIparts( + AuthPathEncryptionSecretKey secretKeyEntry, + Uri bucketPath, + Function process) { + StringBuilder result = new StringBuilder(); + + String path = bucketPath.getRawPath(); + if (bucketPath.getRawPath().startsWith(DOT_SLASH_PREFIX)) { + result.append(DOT_SLASH_PREFIX); + path = bucketPath.getRawPath().substring(DOT_SLASH_PREFIX_LENGTH); + } + + if (path.isEmpty()) { + return new Uri(result.toString()); + } + + String[] segments = path.split(PATH_SEPARATOR); + + return new Uri(URI.create(processSegments(secretKeyEntry, process, segments))); + } + + private String processSegments(AuthPathEncryptionSecretKey secretKeyEntry, + Function process, + String[] segments) { + MessageDigest digest = getDigest(); + digest.update(PATH_SEPARATOR.getBytes(StandardCharsets.UTF_8)); + + return Arrays.stream(segments) + .map(it -> processAndAuthenticateSegment(it, secretKeyEntry, process, digest)) + .collect(Collectors.joining(PATH_SEPARATOR)); + } + + @SneakyThrows + private String processAndAuthenticateSegment( + String segment, + AuthPathEncryptionSecretKey secretKeyEntry, + Function process, + MessageDigest digest) { + MessageDigest currentDigest = (MessageDigest) digest.clone(); + return process.apply( + new PathSegmentWithSecretKeyWith( + digest, + currentDigest.digest(), + secretKeyEntry, + segment + ) + ); + } + + private static void validateArgs(AuthPathEncryptionSecretKey secretKeyEntry, Uri bucketPath) { + if (null == secretKeyEntry) { + throw new IllegalArgumentException("Secret key should not be null"); + } + + if (null == bucketPath) { + throw new IllegalArgumentException("Bucket path should not be null"); + } + } + + private static void validateUriIsRelative(Uri uri) { + if (uri.isAbsolute()) { + throw new IllegalArgumentException("URI should be relative"); + } + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionImpl.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionImpl.java index b16d8d19a..76bc10001 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionImpl.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionImpl.java @@ -4,7 +4,7 @@ import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; import de.adorsys.datasafe.encrypiton.api.pathencryption.encryption.SymmetricPathEncryptionService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import de.adorsys.datasafe.types.api.resource.Uri; import lombok.extern.slf4j.Slf4j; @@ -20,13 +20,13 @@ @RuntimeDelegate public class PathEncryptionImpl implements PathEncryption { - private final SymmetricPathEncryptionService bucketPathEncryptionService; + private final SymmetricPathEncryptionService symmetricPathEncryptionService; private final PrivateKeyService privateKeyService; @Inject - public PathEncryptionImpl(SymmetricPathEncryptionService bucketPathEncryptionService, + public PathEncryptionImpl(SymmetricPathEncryptionService symmetricPathEncryptionService, PrivateKeyService privateKeyService) { - this.bucketPathEncryptionService = bucketPathEncryptionService; + this.symmetricPathEncryptionService = symmetricPathEncryptionService; this.privateKeyService = privateKeyService; } @@ -35,8 +35,8 @@ public PathEncryptionImpl(SymmetricPathEncryptionService bucketPathEncryptionSer */ @Override public Uri encrypt(UserIDAuth forUser, Uri path) { - SecretKeyIDWithKey keySpec = privateKeyService.pathEncryptionSecretKey(forUser); - Uri encrypt = bucketPathEncryptionService.encrypt(keySpec.getSecretKey(), path); + AuthPathEncryptionSecretKey pathEncryptionSecretKey = privateKeyService.pathEncryptionSecretKey(forUser); + Uri encrypt = symmetricPathEncryptionService.encrypt(pathEncryptionSecretKey, path); log.debug("encrypted path {} for user {} path {}", encrypt, forUser.getUserID(), path); return encrypt; } @@ -46,9 +46,9 @@ public Uri encrypt(UserIDAuth forUser, Uri path) { */ @Override public Function decryptor(UserIDAuth forUser) { - SecretKeyIDWithKey keySpec = privateKeyService.pathEncryptionSecretKey(forUser); + AuthPathEncryptionSecretKey pathEncryptionSecretKey = privateKeyService.pathEncryptionSecretKey(forUser); return encryptedPath -> { - Uri decrypt = bucketPathEncryptionService.decrypt(keySpec.getSecretKey(), encryptedPath); + Uri decrypt = symmetricPathEncryptionService.decrypt(pathEncryptionSecretKey, encryptedPath); log.debug("decrypted path {} for user {} path {}", decrypt, forUser.getUserID(), encryptedPath); return decrypt; }; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptorDecryptor.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptorDecryptor.java new file mode 100644 index 000000000..33010ab8c --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptorDecryptor.java @@ -0,0 +1,22 @@ +package de.adorsys.datasafe.encrypiton.impl.pathencryption; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; + +public interface PathEncryptorDecryptor { + + /** + * @param pathSecretKey entity that contains keys for encrypt path + * @param originalPath path to encrypt + * @param associated Associated data to authenticate + * @return Encrypted path using {@code pathSecretKey} + */ + byte[] encrypt(AuthPathEncryptionSecretKey pathSecretKey, byte[] originalPath, byte[] associated); + + /** + * @param pathSecretKey entity that contains keys for decrypt path + * @param encryptedPath path to decrypt + * @param associated Associated data to authenticate + * @return Decrypted path using {@code pathSecretKey} + */ + byte[] decrypt(AuthPathEncryptionSecretKey pathSecretKey, byte[] encryptedPath, byte[] associated); +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathSegmentEncryptorDecryptor.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathSegmentEncryptorDecryptor.java new file mode 100644 index 000000000..1d0658f0d --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathSegmentEncryptorDecryptor.java @@ -0,0 +1,51 @@ +package de.adorsys.datasafe.encrypiton.impl.pathencryption; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.cryptomator.siv.SivMode; + +import javax.inject.Inject; + +/** + * Default path encryption/decryption that uses AES-SIV mode. + * + * @see RFC-845 + * Using @see SIV-MODE library for encryption and decryption + * Encodes resulting bytes using Base64-urlsafe encoding. + */ +@Slf4j +@RuntimeDelegate +public class PathSegmentEncryptorDecryptor implements PathEncryptorDecryptor { + + private final SivMode sivMode; + + @Inject + public PathSegmentEncryptorDecryptor(SivMode sivMode) { + this.sivMode = sivMode; + } + + @Override + public byte[] encrypt(AuthPathEncryptionSecretKey pathSecretKey, byte[] originalPath, byte[] associated) { + + return sivMode.encrypt( + pathSecretKey.getCounterSecretKey().getSecretKey(), + pathSecretKey.getSecretKey().getSecretKey(), + originalPath, + associated + ); + } + + @Override + @SneakyThrows + public byte[] decrypt(AuthPathEncryptionSecretKey pathSecretKey, byte[] encryptedPath, byte[] associated) { + + return sivMode.decrypt( + pathSecretKey.getCounterSecretKey().getSecretKey(), + pathSecretKey.getSecretKey().getSecretKey(), + encryptedPath, + associated + ); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/dto/PathSegmentWithSecretKeyWith.java b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/dto/PathSegmentWithSecretKeyWith.java new file mode 100644 index 000000000..5ad1609a3 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/dto/PathSegmentWithSecretKeyWith.java @@ -0,0 +1,37 @@ +package de.adorsys.datasafe.encrypiton.impl.pathencryption.dto; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +import java.security.MessageDigest; + +/** + * Contains path segment for encryption or decryption and related secret key entity. + */ +@Getter +@Setter +@AllArgsConstructor +public class PathSegmentWithSecretKeyWith { + + /** + * Digest to update with encrypted URI segment to authenticate. + */ + private final MessageDigest digest; + + /** + * Parent path hash. + */ + private final byte[] parentHash; + + /** + * Keys for encryption and decryption path. + */ + private final AuthPathEncryptionSecretKey pathEncryptionSecretKey; + + /** + * Encrypted or decrypted path segment. + */ + private final String path; +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfigTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfigTest.java new file mode 100644 index 000000000..c4748d4c1 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/api/types/encryption/MutableEncryptionConfigTest.java @@ -0,0 +1,92 @@ +package de.adorsys.datasafe.encrypiton.api.types.encryption; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; +import com.google.common.io.CharSource; +import com.google.common.io.Resources; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.SneakyThrows; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; + +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; + +class MutableEncryptionConfigTest extends BaseMockitoTest { + + private ObjectMapper mapper = createMapper(); + + @ValueSource(strings = { + "config-test/mutable-scrypt.yaml", + "config-test/mutable-pbkdf2.yaml" + }) + @ParameterizedTest + @SneakyThrows + void mappingTest(String yamlFixture) { + String expected = readResource(yamlFixture); + MutableEncryptionConfig config = readResource(mapper, yamlFixture, MutableEncryptionConfig.class); + assertThat(config.getKeystore().getType()).isEqualTo("store-type"); + assertThat(mapper.writeValueAsString(config.toEncryptionConfig())).isEqualTo(expected); + } + + @MethodSource("nullsTest") + @ParameterizedTest + @SneakyThrows + void mappingWithNullsTest(SourceAndExpectation yamlFixture) { + String expected = readResource(yamlFixture.getExpectation()); + MutableEncryptionConfig config = readResource(mapper, yamlFixture.getSource(), MutableEncryptionConfig.class); + assertThat(mapper.writeValueAsString(config.toEncryptionConfig())).isEqualTo(expected); + } + + @SneakyThrows + private T readResource(ObjectMapper mapper, String path, Class type) { + try (Reader reader = Resources.asCharSource(Resources.getResource(path), StandardCharsets.UTF_8).openStream()) { + return mapper.readValue(reader, type); + } + } + + @SneakyThrows + private String readResource(String path) { + CharSource reader = Resources.asCharSource(Resources.getResource(path), StandardCharsets.UTF_8); + return reader.read(); + } + + private static Stream nullsTest() { + return Stream.of( + new SourceAndExpectation( + "config-test/null-test/mutable-null-cms.yaml", + "config-test/null-test/expectation/mutable-null-cms.yaml" + ), + new SourceAndExpectation( + "config-test/null-test/mutable-null-keys.yaml", + "config-test/null-test/expectation/mutable-null-keys.yaml" + ), + new SourceAndExpectation( + "config-test/null-test/mutable-null-keystore.yaml", + "config-test/null-test/expectation/mutable-null-keystore.yaml" + ) + ); + } + + private static ObjectMapper createMapper() { + ObjectMapper mapper = new ObjectMapper(new YAMLFactory().enable(YAMLGenerator.Feature.MINIMIZE_QUOTES)); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + return mapper; + } + + @Data + @AllArgsConstructor + private static class SourceAndExpectation { + + private String source; + private String expectation; + } +} \ No newline at end of file diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/KeyPairGeneratorTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/KeyPairGeneratorTest.java index a49e6a82b..6cfb61e15 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/KeyPairGeneratorTest.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/KeyPairGeneratorTest.java @@ -1,16 +1,27 @@ package de.adorsys.datasafe.encrypiton.impl; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; -class KeyPairGeneratorTest { +import java.util.Date; + +import static org.assertj.core.api.Assertions.assertThat; + +class KeyPairGeneratorTest extends WithBouncyCastle { @Test void testKeyPairGenerationWithCA() { - ReadKeyPassword readKeyPassword = new ReadKeyPassword("read"); + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("read"); TestableKeyPairGeneratorImpl i = new TestableKeyPairGeneratorImpl("RSA", 2048, "SHA256withRSA", "enc"); i.setDayAfter(40); i.setWithCA(true); - i.generateEncryptionKey("affe", readKeyPassword); + + assertThat( + i.generateEncryptionKey("affe", readKeyPassword) + .getKeyPair() + .getSubjectCert() + .isValidOn(new Date()) + ).isTrue(); } } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/WithBouncyCastle.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/WithBouncyCastle.java new file mode 100644 index 000000000..129875c1e --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/WithBouncyCastle.java @@ -0,0 +1,15 @@ +package de.adorsys.datasafe.encrypiton.impl; + +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.jupiter.api.BeforeAll; + +import java.security.Security; + +public abstract class WithBouncyCastle extends BaseMockitoTest { + + @BeforeAll + static void setupBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CmsEncryptionServiceImplTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CmsEncryptionServiceImplTest.java index 879e3a230..45bf84a75 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CmsEncryptionServiceImplTest.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/CmsEncryptionServiceImplTest.java @@ -3,11 +3,16 @@ import com.google.common.io.ByteStreams; import de.adorsys.datasafe.encrypiton.api.cmsencryption.CMSEncryptionService; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.CmsEncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; +import de.adorsys.datasafe.encrypiton.impl.WithBouncyCastle; import de.adorsys.datasafe.encrypiton.impl.cmsencryption.exceptions.DecryptionException; -import de.adorsys.datasafe.encrypiton.impl.keystore.DefaultPasswordBasedKeyConfig; import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImpl; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.assertj.core.util.Sets; @@ -28,7 +33,6 @@ import java.nio.file.Paths; import java.security.KeyStore; import java.security.MessageDigest; -import java.security.Security; import java.util.Arrays; import java.util.Collections; @@ -39,18 +43,20 @@ import static org.mockito.internal.util.io.IOUtil.closeQuietly; @Slf4j -class CmsEncryptionServiceImplTest extends BaseMockitoTest { +class CmsEncryptionServiceImplTest extends WithBouncyCastle { private static final String TEST_MESSAGE_CONTENT = "message content"; private static KeyStoreAccess keyStoreAccess; - private static KeyStoreService keyStoreService = new KeyStoreServiceImpl(new DefaultPasswordBasedKeyConfig()); - - private CMSEncryptionService cmsEncryptionService = new CMSEncryptionServiceImpl(new DefaultCMSEncryptionConfig()); + private static KeyStoreService keyStoreService = new KeyStoreServiceImpl( + EncryptionConfig.builder().build().getKeystore() + ); + private CMSEncryptionService cmsEncryptionService = new CMSEncryptionServiceImpl( + new ASNCmsEncryptionConfig(CmsEncryptionConfig.builder().build()) + ); @BeforeAll static void setUp() { - Security.addProvider(new BouncyCastleProvider()); keyStoreAccess = getKeyStoreAccess(); } @@ -200,12 +206,12 @@ void cmsStreamEnvelopeOneKeyPairFailTest() { } private static KeyStoreAccess getKeyStoreAccess(String label) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(label); + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString(label); ReadStorePassword readStorePassword = new ReadStorePassword(label); KeyStoreAuth keyStoreAuth = new KeyStoreAuth(readStorePassword, readKeyPassword); - KeyStoreCreationConfig config = new KeyStoreCreationConfig(1, 1); - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + KeyCreationConfig config = KeyCreationConfig.builder().encKeyNumber(1).signKeyNumber(1).build(); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); return new KeyStoreAccess(keyStore, keyStoreAuth); } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/KeyStoreUtil.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/KeyStoreUtil.java index ba461d968..30c9d674d 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/KeyStoreUtil.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/KeyStoreUtil.java @@ -27,6 +27,6 @@ private boolean containsAlias(String id, KeyStoreAccess access) { @SneakyThrows private Key getKey(String id, KeyStoreAccess access) { - return access.getKeyStore().getKey(id, access.getKeyStoreAuth().getReadKeyPassword().getValue().toCharArray()); + return access.getKeyStore().getKey(id, access.getKeyStoreAuth().getReadKeyPassword().getValue()); } } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/SymetricEncryptionTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/SymetricEncryptionTest.java index 98971ad06..a05fda84a 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/SymetricEncryptionTest.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/cmsencryption/SymetricEncryptionTest.java @@ -2,9 +2,15 @@ import de.adorsys.datasafe.encrypiton.api.cmsencryption.CMSEncryptionService; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.CmsEncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; -import de.adorsys.datasafe.encrypiton.impl.keystore.DefaultPasswordBasedKeyConfig; +import de.adorsys.datasafe.encrypiton.impl.WithBouncyCastle; import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImpl; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.bouncycastle.cms.CMSException; @@ -19,23 +25,25 @@ import java.security.KeyStore; import java.util.Enumeration; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.PATH_KEY_ID_PREFIX; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.DOCUMENT_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.DOCUMENT_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX; import static de.adorsys.datasafe.encrypiton.impl.cmsencryption.KeyStoreUtil.getKeys; import static org.assertj.core.api.Assertions.assertThat; @Slf4j -class SymetricEncryptionTest { +class SymetricEncryptionTest extends WithBouncyCastle { private static final String MESSAGE_CONTENT = "message content"; - private CMSEncryptionService cmsEncryptionService = new CMSEncryptionServiceImpl(new DefaultCMSEncryptionConfig()); - private KeyStoreService keyStoreService = new KeyStoreServiceImpl(new DefaultPasswordBasedKeyConfig()); - private ReadKeyPassword readKeyPassword = new ReadKeyPassword("readkeypassword"); + private CMSEncryptionService cmsEncryptionService = new CMSEncryptionServiceImpl( + new ASNCmsEncryptionConfig(CmsEncryptionConfig.builder().build()) + ); + private KeyStoreService keyStoreService = new KeyStoreServiceImpl(EncryptionConfig.builder().build().getKeystore()); + private ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("readkeypassword"); private ReadStorePassword readStorePassword = new ReadStorePassword("readstorepassword"); private KeyStoreAuth keyStoreAuth = new KeyStoreAuth(readStorePassword, readKeyPassword); - private KeyStoreCreationConfig config = new KeyStoreCreationConfig(1, 1); - private KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + private KeyCreationConfig config = KeyCreationConfig.builder().signKeyNumber(1).encKeyNumber(1).build(); + private KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); private KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); @Test @@ -63,7 +71,7 @@ void symetricStreamEncryptAndDecryptTest() { @SneakyThrows void symetricNegativeStreamEncryptAndDecryptTest() { // This is the keystore we use to encrypt, it has SYMM_KEY_ID and PATH_KEY_ID symm. keys. - keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + keyStoreService.createKeyStore(keyStoreAuth, config); SecretKey realSecretKey = keyStoreService.getSecretKey(keyStoreAccess, keyIdByPrefix(DOCUMENT_KEY_ID_PREFIX)); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // Test consist in encrypting with real secret key, but use fake secretKeyId - PATH_KEY_ID diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java index 560f7a436..406749eab 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java @@ -1,14 +1,20 @@ package de.adorsys.datasafe.encrypiton.impl.keystore; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; import de.adorsys.datasafe.encrypiton.api.types.keystore.exceptions.KeyStoreConfigException; import de.adorsys.datasafe.encrypiton.impl.KeystoreUtil; -import de.adorsys.datasafe.encrypiton.impl.keystore.generator.KeyStoreCreationConfigImpl; +import de.adorsys.datasafe.encrypiton.impl.WithBouncyCastle; +import de.adorsys.datasafe.encrypiton.impl.keystore.generator.KeyCreationConfigImpl; import de.adorsys.datasafe.encrypiton.impl.keystore.generator.KeyStoreServiceImplBaseFunctions; import de.adorsys.datasafe.encrypiton.impl.keystore.types.KeyPairEntry; import de.adorsys.datasafe.encrypiton.impl.keystore.types.KeyPairGenerator; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -21,68 +27,68 @@ import java.util.List; import java.util.UUID; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.DOCUMENT_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.DOCUMENT_KEY_ID_PREFIX; -class KeyStoreServiceTest extends BaseMockitoTest { +class KeyStoreServiceTest extends WithBouncyCastle { - private KeyStoreService keyStoreService = new KeyStoreServiceImpl(new DefaultPasswordBasedKeyConfig()); + private KeyStoreService keyStoreService = new KeyStoreServiceImpl(EncryptionConfig.builder().build().getKeystore()); private KeyStoreAuth keyStoreAuth; @BeforeEach void setUp() { ReadStorePassword readStorePassword = new ReadStorePassword("keystorepass"); - ReadKeyPassword readKeyPassword = new ReadKeyPassword("keypass"); + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("keypass"); keyStoreAuth = new KeyStoreAuth(readStorePassword, readKeyPassword); } @Test void createKeyStore() throws Exception { - KeyStoreCreationConfig config = new KeyStoreCreationConfig(0, 1); - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + KeyCreationConfig config = KeyCreationConfig.builder().signKeyNumber(0).encKeyNumber(1).build(); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); Assertions.assertNotNull(keyStore); List list = Collections.list(keyStore.aliases()); - // One additional secret key being generated for path encryption and one for private doc encryption. - Assertions.assertEquals(3, list.size()); + // Two additional secret key(key and counter key) being generated for path encryption and one for private doc encryption. + Assertions.assertEquals(4, list.size()); - Assertions.assertEquals("UBER", keyStore.getType()); + Assertions.assertEquals("BCFKS", keyStore.getType()); Assertions.assertEquals(Security.getProvider("BC"), keyStore.getProvider()); } @Test void createKeyStoreEmptyConfig() throws Exception { - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, null); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyCreationConfig.builder().build()); Assertions.assertNotNull(keyStore); List list = Collections.list(keyStore.aliases()); // One additional secret key being generated for path encryption and one for private doc encryption. - Assertions.assertEquals(12, list.size()); + Assertions.assertEquals(5, list.size()); } @Test void createKeyStoreException() { - KeyStoreCreationConfig config = new KeyStoreCreationConfig(0, 0); + KeyCreationConfig config = KeyCreationConfig.builder().encKeyNumber(0).signKeyNumber(0).build(); Assertions.assertThrows(KeyStoreConfigException.class, () -> - keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config, Collections.emptyMap()) + keyStoreService.createKeyStore(keyStoreAuth, config, Collections.emptyMap()) ); } @Test void getPublicKeys() { - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, null); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyCreationConfig.builder().build()); KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); List publicKeys = keyStoreService.getPublicKeys(keyStoreAccess); - Assertions.assertEquals(5, publicKeys.size()); + Assertions.assertEquals(1, publicKeys.size()); } @Test void getPrivateKey() throws Exception { - KeyStore keyStore = KeyStoreServiceImplBaseFunctions.newKeyStore(KeyStoreType.DEFAULT); // UBER + KeyStore keyStore = KeyStoreServiceImplBaseFunctions.newKeyStore(KeyStoreConfig.builder().build()); // BCFKS - ReadKeyPassword readKeyPassword = new ReadKeyPassword("keypass"); - KeyStoreCreationConfigImpl keyStoreCreationConfig = new KeyStoreCreationConfigImpl(null); + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("keypass"); + KeyCreationConfigImpl keyStoreCreationConfig = new KeyCreationConfigImpl(KeyCreationConfig.builder().build()); KeyPairGenerator encKeyPairGenerator = keyStoreCreationConfig.getEncKeyPairGenerator("KEYSTORE-ID-0"); String alias = "KEYSTORE-ID-0" + UUID.randomUUID().toString(); KeyPairEntry keyPairEntry = encKeyPairGenerator.generateEncryptionKey(alias, readKeyPassword); @@ -99,7 +105,7 @@ void getPrivateKey() throws Exception { @Test void getPrivateKeyException() throws Exception { - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, null); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyCreationConfig.builder().build()); KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); List list = Collections.list(keyStore.aliases()); Assertions.assertThrows(ClassCastException.class, () -> { @@ -111,8 +117,8 @@ void getPrivateKeyException() throws Exception { @Test void getSecretKey() { - KeyStoreCreationConfig config = new KeyStoreCreationConfig(0, 1); - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + KeyCreationConfig config = KeyCreationConfig.builder().signKeyNumber(1).encKeyNumber(0).build(); + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); KeyID keyID = KeystoreUtil.keyIdByPrefix(keyStore, DOCUMENT_KEY_ID_PREFIX); diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreTypeTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreTypeTest.java deleted file mode 100644 index 8b03baedc..000000000 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreTypeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.adorsys.datasafe.encrypiton.impl.keystore; - -import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreType; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -class KeyStoreTypeTest extends BaseMockitoTest { - - @Test - void typeBySystemEnv() { - String value = this.getClass().getSimpleName() + UUID.randomUUID().toString(); - System.setProperty("SERVER_KEYSTORE_TYPE", value); - Assertions.assertEquals(value, TestableKeyStoreType.getStaticDefaultKeyStoreType().getValue()); - System.clearProperty("SERVER_KEYSTORE_TYPE"); - TestableKeyStoreType.resetType(); - } - - public static class TestableKeyStoreType extends KeyStoreType { - - public TestableKeyStoreType(String value) { - super(value); - } - - static KeyStoreType getStaticDefaultKeyStoreType() { - return KeyStoreType.getDefaultKeyStoreType(); - } - - static void resetType() { - DEFAULT = getStaticDefaultKeyStoreType(); - } - } -} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryptionTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryptionTest.java new file mode 100644 index 000000000..bb8ae6c10 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/IntegrityPreservingUriEncryptionTest.java @@ -0,0 +1,111 @@ +package de.adorsys.datasafe.encrypiton.impl.pathencryption; + +import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; +import de.adorsys.datasafe.encrypiton.api.types.keystore.*; +import de.adorsys.datasafe.encrypiton.impl.KeystoreUtil; +import de.adorsys.datasafe.encrypiton.impl.WithBouncyCastle; +import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImpl; +import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import lombok.extern.slf4j.Slf4j; +import org.cryptomator.siv.SivMode; +import org.junit.jupiter.api.Test; + +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.spec.SecretKeySpec; +import java.net.URI; +import java.security.KeyStore; + +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX_CTR; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +@Slf4j +class IntegrityPreservingUriEncryptionTest extends WithBouncyCastle { + + private IntegrityPreservingUriEncryption symmetricPathEncryptionService = new IntegrityPreservingUriEncryption( + new PathSegmentEncryptorDecryptor(new SivMode()) + ); + + private KeyStoreService keyStoreService = new KeyStoreServiceImpl(EncryptionConfig.builder().build().getKeystore()); + private ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("readkeypassword"); + private ReadStorePassword readStorePassword = new ReadStorePassword("readstorepassword"); + private KeyStoreAuth keyStoreAuth = new KeyStoreAuth(readStorePassword, readKeyPassword); + private KeyCreationConfig config = KeyCreationConfig.builder().encKeyNumber(0).signKeyNumber(1).build(); + private KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); + private KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); + + @Test + void testEncryptionDoesNotLeakSameSegments() { + String testPath = "path/to/path/file/to"; + + Uri testURI = new Uri(testPath); + AuthPathEncryptionSecretKey pathEncryptionSecretKey = pathEncryptionSecretKey(); + + Uri encrypted = symmetricPathEncryptionService.encrypt(pathEncryptionSecretKey, testURI); + + String[] encryptedSegments = encrypted.asString().split("/"); + assertThat(encryptedSegments[1]).isNotEqualTo(encryptedSegments[3]); + assertThat(encryptedSegments[2]).isNotEqualTo(encryptedSegments[5]); + } + + @Test + void testSuccessEncryptDecryptPath() { + String testPath = "path/to/file"; + + Uri testURI = new Uri(testPath); + AuthPathEncryptionSecretKey pathEncryptionSecretKey = pathEncryptionSecretKey(); + + Uri encrypted = symmetricPathEncryptionService.encrypt(pathEncryptionSecretKey, testURI); + log.debug("Encrypted path: {}", encrypted); + + Uri decrypted = symmetricPathEncryptionService.decrypt(pathEncryptionSecretKey, encrypted); + log.debug("Decrypted path: {}", decrypted); + + assertEquals(testPath, decrypted.toASCIIString()); + } + + @Test + void testFailEncryptPathWithBrokenEncryptedPath() { + AuthPathEncryptionSecretKey pathEncryptionSecretKey = pathEncryptionSecretKey(); + + assertThrows(BadPaddingException.class, + () -> symmetricPathEncryptionService.decrypt(pathEncryptionSecretKey, + new Uri(URI.create("bRQiW8qLNPEy5tO7shfV0w==/k0HooCVlmhHkQFw8mc==")))); + } + + @Test + void testFailEncryptPathWithTextPath() { + AuthPathEncryptionSecretKey pathEncryptionSecretKey = pathEncryptionSecretKey(); + + assertThrows( + IllegalBlockSizeException.class, + () -> symmetricPathEncryptionService.decrypt(pathEncryptionSecretKey, new Uri("simple/text/path/")) + ); + } + + private AuthPathEncryptionSecretKey pathEncryptionSecretKey() { + KeyID secretKeyId = KeystoreUtil.keyIdByPrefix(keyStore, KeyCreationConfig.PATH_KEY_ID_PREFIX); + SecretKeySpec secretKey = keyStoreService.getSecretKey( + keyStoreAccess, + secretKeyId + ); + + KeyID counterSecretKeyId = KeystoreUtil.keyIdByPrefix(keyStore, PATH_KEY_ID_PREFIX_CTR); + SecretKeySpec secretKeyCtr = keyStoreService.getSecretKey( + keyStoreAccess, + counterSecretKeyId + ); + + return new AuthPathEncryptionSecretKey( + new SecretKeyIDWithKey(secretKeyId, secretKey), + new SecretKeyIDWithKey(counterSecretKeyId, secretKeyCtr) + ); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-pbkdf2.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-pbkdf2.yaml new file mode 100644 index 000000000..75c0a7a5f --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-pbkdf2.yaml @@ -0,0 +1,27 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + pbkdf2: + algo: pbkdf-algo + saltLength: 2 + iterCount: 3 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo +cms: + algo: cms-algo1 diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-scrypt.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-scrypt.yaml new file mode 100644 index 000000000..9ad18ba44 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/mutable-scrypt.yaml @@ -0,0 +1,28 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + scrypt: + cost: 1 + blockSize: 2 + parallelization: 3 + saltLength: 4 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo +cms: + algo: cms-algo1 diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-cms.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-cms.yaml new file mode 100644 index 000000000..9d5e12ca7 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-cms.yaml @@ -0,0 +1,28 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + scrypt: + cost: 1 + blockSize: 2 + parallelization: 3 + saltLength: 4 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo +cms: + algo: AES256_GCM diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keys.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keys.yaml new file mode 100644 index 000000000..6cb3e3241 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keys.yaml @@ -0,0 +1,28 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + scrypt: + cost: 1 + blockSize: 2 + parallelization: 3 + saltLength: 4 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +keys: + encKeyNumber: 1 + signKeyNumber: 1 + secret: + algo: AES + size: 256 + encrypting: + algo: RSA + size: 2048 + sigAlgo: SHA256withRSA + singing: + algo: RSA + size: 2048 + sigAlgo: SHA256withRSA +cms: + algo: cms-algo1 diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keystore.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keystore.yaml new file mode 100644 index 000000000..5b5872fa0 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/expectation/mutable-null-keystore.yaml @@ -0,0 +1,27 @@ +--- +keystore: + type: BCFKS + encryptionAlgo: AES256_KWP + pbkdf: + pbkdf2: + algo: PRF_SHA512 + saltLength: 32 + iterCount: 20480 + macAlgo: HmacSHA3_512 + passwordKeysAlgo: PBEWithHmacSHA256AndAES_256 +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo +cms: + algo: cms-algo1 diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-cms.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-cms.yaml new file mode 100644 index 000000000..2d2653277 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-cms.yaml @@ -0,0 +1,26 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + scrypt: + cost: 1 + blockSize: 2 + parallelization: 3 + saltLength: 4 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo \ No newline at end of file diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keys.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keys.yaml new file mode 100644 index 000000000..52c23cba4 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keys.yaml @@ -0,0 +1,14 @@ +--- +keystore: + type: store-type + encryptionAlgo: store-enc + pbkdf: + scrypt: + cost: 1 + blockSize: 2 + parallelization: 3 + saltLength: 4 + macAlgo: store-mac + passwordKeysAlgo: store-pwd-keys +cms: + algo: cms-algo1 \ No newline at end of file diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keystore.yaml b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keystore.yaml new file mode 100644 index 000000000..e799a2f34 --- /dev/null +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/resources/config-test/null-test/mutable-null-keystore.yaml @@ -0,0 +1,17 @@ +--- +keys: + encKeyNumber: 1 + signKeyNumber: 2 + secret: + algo: sec-algo + size: 12 + encrypting: + algo: enc-algo + size: 13 + sigAlgo: srv-sig-algo + singing: + algo: sig-algo + size: 14 + sigAlgo: srv-sig-algo +cms: + algo: cms-algo1 \ No newline at end of file diff --git a/datasafe-encryption/pom.xml b/datasafe-encryption/pom.xml index 7fc6785ef..bd3383c55 100644 --- a/datasafe-encryption/pom.xml +++ b/datasafe-encryption/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-examples/datasafe-examples-business/README.md b/datasafe-examples/datasafe-examples-business/README.md index da51b1197..ffed9d68b 100644 --- a/datasafe-examples/datasafe-examples-business/README.md +++ b/datasafe-examples/datasafe-examples-business/README.md @@ -2,10 +2,10 @@ This module contains examples of how to use Datasafe library using its business layer. -- [BaseUserOperationsTestWithDefaultDatasafe](src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafe.java) +* [BaseUserOperationsTestWithDefaultDatasafe](src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafeTest.java) shows how to use standard Datasafe service -- [BaseUserOperationsTestWithVersionedDatasafe](src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafe.java) +* [BaseUserOperationsTestWithVersionedDatasafe](src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java) shows how to use standard Datasafe service with [software versioning](../../datasafe-metainfo/datasafe-metainfo-version-api/src/main/java/de/adorsys/datasafe/metainfo/version/api/version/VersionedPrivateSpaceService.java) -- [RuntimeOverrideOperationsTest](src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java) -shows how to customize Datasafe without recompilation \ No newline at end of file +* [RuntimeOverrideOperationsTest](src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java) +shows how to customize Datasafe without recompilation diff --git a/datasafe-examples/datasafe-examples-business/pom.xml b/datasafe-examples/datasafe-examples-business/pom.xml index 7e13c8229..08fc36099 100644 --- a/datasafe-examples/datasafe-examples-business/pom.xml +++ b/datasafe-examples/datasafe-examples-business/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-examples - 0.6.2 + 0.7.0 datasafe-examples-business @@ -47,6 +47,13 @@ mockito-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + diff --git a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafeTest.java b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafeTest.java index 90165d97b..77fb54f04 100644 --- a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafeTest.java +++ b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithDefaultDatasafeTest.java @@ -7,12 +7,14 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.ResolvedResource; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.BeforeEach; @@ -47,7 +49,7 @@ void createServices(@TempDir Path root) { Security.addProvider(new BouncyCastleProvider()); // this will create all Datasafe files and user documents under defaultDatasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), "secret")) + .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), new ReadStorePassword("secret"))) .storage(new FileSystemStorageService(root)) .build(); // END_SNIPPET @@ -64,7 +66,7 @@ void registerUser() { IMPORTANT: For cases when user profile is stored on S3 without object locks, this requires some global synchronization due to eventual consistency or you need to supply globally unique username on registration */ - defaultDatasafeServices.userProfile().registerUsingDefaults(new UserIDAuth("user", "passwrd")); + defaultDatasafeServices.userProfile().registerUsingDefaults(new UserIDAuth("user", ReadKeyPasswordTestFactory.getForString("passwrd"))); // END_SNIPPET assertThat(defaultDatasafeServices.userProfile().userExists(new UserID("user"))); @@ -294,7 +296,7 @@ private void writeToPrivate(UserIDAuth user, String path, String fileContent) { } private UserIDAuth registerUser(String username) { - UserIDAuth creds = new UserIDAuth(username, "passwrd" + username); + UserIDAuth creds = new UserIDAuth(username, ReadKeyPasswordTestFactory.getForString("passwrd" + username)); defaultDatasafeServices.userProfile().registerUsingDefaults(creds); return creds; } diff --git a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java index 0ac35ca01..2b133940f 100644 --- a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java +++ b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/BaseUserOperationsTestWithVersionedDatasafeTest.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.metainfo.version.impl.version.types.DFSVersion; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.types.api.actions.ListRequest; @@ -14,6 +15,7 @@ import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Versioned; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.BeforeEach; @@ -44,12 +46,11 @@ class BaseUserOperationsTestWithVersionedDatasafeTest { */ @BeforeEach void createServices(@TempDir Path root) { - Security.addProvider(new BouncyCastleProvider()); // BEGIN_SNIPPET:Create versioned Datasafe services Security.addProvider(new BouncyCastleProvider()); // this will create all Datasafe files and user documents under versionedServices = DaggerVersionedDatasafeServices.builder() - .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), "secret")) + .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), new ReadStorePassword("secret"))) .storage(new FileSystemStorageService(root)) .build(); // END_SNIPPET @@ -66,7 +67,7 @@ void registerUser() { IMPORTANT: For cases when user profile is stored on S3 without object locks, this requires some global synchronization due to eventual consistency or you need to supply globally unique username on registration */ - versionedServices.userProfile().registerUsingDefaults(new UserIDAuth("user", "passwrd")); + versionedServices.userProfile().registerUsingDefaults(new UserIDAuth("user", ReadKeyPasswordTestFactory.getForString("passwrd"))); // END_SNIPPET assertThat(versionedServices.userProfile().userExists(new UserID("user"))); @@ -166,7 +167,7 @@ void checkThatWeNeedToDownloadNewFile() { } private UserIDAuth registerUser(String username) { - UserIDAuth creds = new UserIDAuth(username, "passwrd" + username); + UserIDAuth creds = new UserIDAuth(username, ReadKeyPasswordTestFactory.getForString("passwrd" + username)); versionedServices.userProfile().registerUsingDefaults(creds); return creds; } diff --git a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java index 55d29c0e5..3d332e2d0 100644 --- a/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java +++ b/datasafe-examples/datasafe-examples-business/src/test/java/de/adorsys/datasafe/examples/business/filesystem/RuntimeOverrideOperationsTest.java @@ -4,6 +4,7 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptionImpl; import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptionImplRuntimeDelegatable; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; @@ -11,6 +12,7 @@ import de.adorsys.datasafe.types.api.context.BaseOverridesRegistry; import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.Test; @@ -39,13 +41,13 @@ void testPathEncryptionOverridden(@TempDir Path root) { // Customized service, without creating complete module and building it: DefaultDatasafeServices datasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), "secret")) + .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), new ReadStorePassword("secret"))) .storage(new FileSystemStorageService(root)) .overridesRegistry(registry) .build(); // registering user - UserIDAuth user = new UserIDAuth("user", "passwrd"); + UserIDAuth user = new UserIDAuth("user", ReadKeyPasswordTestFactory.getForString("passwrd")); datasafeServices.userProfile().registerUsingDefaults(user); // writing into user privatespace, note that with default implementation `file.txt` would be encrypted datasafeServices.privateService().write(WriteRequest.forDefaultPrivate(user, "file.txt")); @@ -58,7 +60,7 @@ void testPathEncryptionOverridden(@TempDir Path root) { class PathEncryptionImplOverridden extends PathEncryptionImpl { PathEncryptionImplOverridden(PathEncryptionImplRuntimeDelegatable.ArgumentsCaptor captor) { - super(captor.getBucketPathEncryptionService(), captor.getPrivateKeyService()); + super(captor.getSymmetricPathEncryptionService(), captor.getPrivateKeyService()); } @Override diff --git a/datasafe-examples/datasafe-examples-customize-dagger/pom.xml b/datasafe-examples/datasafe-examples-customize-dagger/pom.xml index b4c152fbb..ec11444ea 100644 --- a/datasafe-examples/datasafe-examples-customize-dagger/pom.xml +++ b/datasafe-examples/datasafe-examples-customize-dagger/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-examples - 0.6.2 + 0.7.0 datasafe-examples-customize-dagger @@ -53,6 +53,13 @@ mockito-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + diff --git a/datasafe-examples/datasafe-examples-customize-dagger/src/main/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServices.java b/datasafe-examples/datasafe-examples-customize-dagger/src/main/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServices.java index 2a8bd8d9b..898b265c7 100644 --- a/datasafe-examples/datasafe-examples-customize-dagger/src/main/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServices.java +++ b/datasafe-examples/datasafe-examples-customize-dagger/src/main/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServices.java @@ -12,6 +12,7 @@ import de.adorsys.datasafe.business.impl.storage.DefaultStorageModule; import de.adorsys.datasafe.directory.api.config.DFSConfig; import de.adorsys.datasafe.directory.api.profile.operations.ProfileOperations; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; import de.adorsys.datasafe.inbox.api.InboxService; import de.adorsys.datasafe.privatestore.api.PrivateSpaceService; import de.adorsys.datasafe.storage.api.StorageService; @@ -81,6 +82,16 @@ interface Builder { @BindsInstance Builder overridesRegistry(@Nullable OverridesRegistry overridesRegistry); + /** + * All encryption stuff configuration + * - which keystore to use + * - how to encrypt keys in keystore + * - which types of keys to create + * - what kind of encryption to use when encrypting document content + */ + @BindsInstance + Builder encryption(@Nullable EncryptionConfig encryptionConfig); + /** * @return Customized Datasafe services. */ diff --git a/datasafe-examples/datasafe-examples-customize-dagger/src/test/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServiceTest.java b/datasafe-examples/datasafe-examples-customize-dagger/src/test/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServiceTest.java index 04c0735fd..b1495d90f 100644 --- a/datasafe-examples/datasafe-examples-customize-dagger/src/test/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServiceTest.java +++ b/datasafe-examples/datasafe-examples-customize-dagger/src/test/java/de/adorsys/datasafe/examples/business/filesystem/CustomlyBuiltDatasafeServiceTest.java @@ -2,8 +2,10 @@ import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.types.api.actions.WriteRequest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -26,12 +28,12 @@ void testPathEncryptionOverridden(@TempDir Path root) { Security.addProvider(new BouncyCastleProvider()); // Customized service, we create required module using compile time DI provided by Dagger: CustomlyBuiltDatasafeServices datasafeServices = DaggerCustomlyBuiltDatasafeServices.builder() - .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), "secret")) + .config(new DefaultDFSConfig(root.toAbsolutePath().toUri(), new ReadStorePassword("secret"))) .storage(new FileSystemStorageService(root)) .build(); // registering user - UserIDAuth user = new UserIDAuth("user", "passwrd"); + UserIDAuth user = new UserIDAuth("user", ReadKeyPasswordTestFactory.getForString("passwrd")); datasafeServices.userProfile().registerUsingDefaults(user); // writing into user privatespace, note that with default implementation `file.txt` would be encrypted datasafeServices.privateService().write(WriteRequest.forDefaultPrivate(user, "file.txt")); diff --git a/datasafe-examples/datasafe-examples-multidfs/pom.xml b/datasafe-examples/datasafe-examples-multidfs/pom.xml index d93da99e4..498301d45 100644 --- a/datasafe-examples/datasafe-examples-multidfs/pom.xml +++ b/datasafe-examples/datasafe-examples-multidfs/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-examples - 0.6.2 + 0.7.0 datasafe-examples-multidfs @@ -52,6 +52,13 @@ mockito-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + diff --git a/datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java b/datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java index fb443fdd5..a437acb0e 100644 --- a/datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java +++ b/datasafe-examples/datasafe-examples-multidfs/src/test/java/de/adorsys/datasafe/examples/business/s3/MultiDfsWithCredentialsExampleTest.java @@ -12,10 +12,10 @@ import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; import de.adorsys.datasafe.directory.impl.profile.dfs.RegexAccessServiceWithStorageCredentialsImpl; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.RegexDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.api.UriBasedAuthStorageService; -import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import de.adorsys.datasafe.storage.impl.s3.S3ClientFactory; import de.adorsys.datasafe.storage.impl.s3.S3StorageService; import de.adorsys.datasafe.types.api.actions.ReadRequest; @@ -25,6 +25,8 @@ import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.StorageIdentifier; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import lombok.SneakyThrows; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; @@ -37,6 +39,7 @@ import org.testcontainers.shaded.com.google.common.collect.ImmutableMap; import java.io.OutputStream; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.security.Security; import java.util.Arrays; @@ -58,8 +61,8 @@ @Slf4j class MultiDfsWithCredentialsExampleTest { - private static final ExecutorService EXECUTOR = ExecutorServiceUtil - .submitterExecutesOnStarvationExecutingService(4, 4); + private static final String REGION = "eu-central-1"; + private static final ExecutorService EXECUTOR = ExecutorServiceUtil.submitterExecutesOnStarvationExecutingService(4, 4); private static Map minios = new EnumMap<>(MinioContainerId.class); private static AmazonS3 directoryClient = null; @@ -67,18 +70,22 @@ class MultiDfsWithCredentialsExampleTest { @BeforeAll static void startup() { + // on windows this is required + Security.addProvider(new BouncyCastleProvider()); + // Create all required minio-backed S3 buckets: Arrays.stream(MinioContainerId.values()).forEach(it -> { GenericContainer minio = createAndStartMinio(it.getAccessKey(), it.getSecretKey()); minios.put(it, minio); - String endpoint = "http://127.0.0.1:" + minio.getFirstMappedPort() + "/"; - endpointsByHost.put(it, endpoint + it.getBucketName() + "/"); + String endpoint = getDockerUri("http://127.0.0.1") + ":" + minio.getFirstMappedPort() + "/"; + endpointsByHost.put(it, endpoint + REGION + "/" + it.getBucketName() + "/"); log.info("MINIO for {} is available at: {} with access: '{}'/'{}'", it, endpoint, it.getAccessKey(), it.getSecretKey()); AmazonS3 client = S3ClientFactory.getClient( endpoint, + REGION, it.getAccessKey(), it.getSecretKey() ); @@ -112,7 +119,7 @@ void testMultiUserStorageUserSetup() { OverridesRegistry registry = new BaseOverridesRegistry(); DefaultDatasafeServices multiDfsDatasafe = DaggerDefaultDatasafeServices .builder() - .config(new DFSConfigWithStorageCreds(directoryBucketS3Uri, "PAZZWORT")) + .config(new DFSConfigWithStorageCreds(directoryBucketS3Uri, new ReadStorePassword("PAZZWORT"))) // This storage service will route requests to proper bucket based on URI content: // URI with directoryBucket to `directoryStorage` // URI with filesBucketOne will get dynamically generated S3Storage @@ -123,12 +130,13 @@ void testMultiUserStorageUserSetup() { // bind URI that contains `directoryBucket` to directoryStorage .put(Pattern.compile(directoryBucketS3Uri + ".+"), directoryStorage) .put( - Pattern.compile("http://127.0.0.1.+"), + Pattern.compile(getDockerUri("http://127.0.0.1") + ".+"), // Dynamically creates S3 client with bucket name equal to host value new UriBasedAuthStorageService( acc -> new S3StorageService( S3ClientFactory.getClient( - acc.getOnlyHostPart().toString(), + acc.getEndpoint(), + acc.getRegion(), acc.getAccessKey(), acc.getSecretKey() ), @@ -152,7 +160,8 @@ void testMultiUserStorageUserSetup() { // Depending on path of file - filesBucketOne or filesBucketTwo - requests will be routed to proper bucket. // I.e. path filesBucketOne/path/to/file will end up in `filesBucketOne` with key path/to/file // his profile and access credentials for `filesBucketOne` will be in `configBucket` - UserIDAuth john = new UserIDAuth("john", "secret"); + UserIDAuth john = new UserIDAuth("john", + ReadKeyPasswordTestFactory.getForString("secret")); // Here, nothing expects John has own storage credentials: multiDfsDatasafe.userProfile().registerUsingDefaults(john); @@ -238,4 +247,15 @@ private WithCredentialProvider(Lazy storageKeyStoreOp this.delegate = new RegexAccessServiceWithStorageCredentialsImpl(storageKeyStoreOperations); } } + + @SneakyThrows + private static String getDockerUri(String defaultUri) { + String dockerHost = System.getenv("DOCKER_HOST"); + if (dockerHost == null) { + return defaultUri; + } + + URI dockerUri = new URI(dockerHost); + return "http://" + dockerUri.getHost(); + } } diff --git a/datasafe-examples/datasafe-examples-versioned-s3/pom.xml b/datasafe-examples/datasafe-examples-versioned-s3/pom.xml index 7cc8b4ad7..03eaa4305 100644 --- a/datasafe-examples/datasafe-examples-versioned-s3/pom.xml +++ b/datasafe-examples/datasafe-examples-versioned-s3/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-examples - 0.6.2 + 0.7.0 datasafe-examples-versioned-s3 @@ -52,6 +52,13 @@ mockito-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + diff --git a/datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java b/datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java index 1da625a16..d61e5db87 100644 --- a/datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java +++ b/datasafe-examples/datasafe-examples-versioned-s3/src/test/java/de/adorsys/datasafe/examples/business/s3/BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest.java @@ -12,7 +12,7 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.impl.s3.S3StorageService; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; @@ -20,20 +20,23 @@ import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.callback.PhysicalVersionCallback; import de.adorsys.datasafe.types.api.resource.StorageVersion; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; -import org.junit.jupiter.api.io.TempDir; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; import java.io.OutputStream; +import java.net.URI; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; +import java.security.Security; import java.util.concurrent.atomic.AtomicReference; import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; @@ -62,7 +65,7 @@ class BaseUserOperationsWithDefaultDatasafeOnVersionedStorageTest { * This creates CEPH Rados gateway in docker container and creates S3 client for it. */ @BeforeAll - static void createServices(@TempDir Path root) { + static void createServices() { log.info("Starting CEPH"); // Create CEPH container: cephContainer = new GenericContainer("ceph/daemon") @@ -83,7 +86,7 @@ static void createServices(@TempDir Path root) { cephContainer.start(); Integer mappedPort = cephContainer.getMappedPort(8000); // URL for S3 API/bucket root: - cephMappedUrl = "http://0.0.0.0" + ":" + mappedPort; + cephMappedUrl = getDockerUri("http://0.0.0.0") + ":" + mappedPort; log.info("Ceph mapped URL: {}", cephMappedUrl); cephS3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration( @@ -119,7 +122,7 @@ void init() { // this will create all Datasafe files and user documents under S3 bucket root, we assume that // S3 versioned bucket was already created defaultDatasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(cephMappedUrl, "secret")) + .config(new DefaultDFSConfig(cephMappedUrl, new ReadStorePassword("secret"))) .storage(new S3StorageService( cephS3, VERSIONED_BUCKET_NAME, @@ -135,6 +138,7 @@ void init() { @SneakyThrows void writeFileThenReadLatestAndReadByVersion() { // BEGIN_SNIPPET:Versioned storage support - writing file and reading back + Security.addProvider(new BouncyCastleProvider()); // creating new user UserIDAuth user = registerUser("john"); @@ -230,8 +234,19 @@ private String writeToPrivate(UserIDAuth user, String path, String fileContent) } private UserIDAuth registerUser(String username) { - UserIDAuth creds = new UserIDAuth(username, "passwrd" + username); + UserIDAuth creds = new UserIDAuth(username, ReadKeyPasswordTestFactory.getForString("passwrd" + username)); defaultDatasafeServices.userProfile().registerUsingDefaults(creds); return creds; } + + @SneakyThrows + private static String getDockerUri(String defaultUri) { + String dockerHost = System.getenv("DOCKER_HOST"); + if (dockerHost == null) { + return defaultUri; + } + + URI dockerUri = new URI(dockerHost); + return "http://" + dockerUri.getHost(); + } } diff --git a/datasafe-examples/pom.xml b/datasafe-examples/pom.xml index ab3647c78..9becac62f 100644 --- a/datasafe-examples/pom.xml +++ b/datasafe-examples/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-inbox/datasafe-inbox-api/pom.xml b/datasafe-inbox/datasafe-inbox-api/pom.xml index 3b4bfce7e..0d852dbfd 100644 --- a/datasafe-inbox/datasafe-inbox-api/pom.xml +++ b/datasafe-inbox/datasafe-inbox-api/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-inbox - 0.6.2 + 0.7.0 datasafe-inbox-api @@ -20,4 +20,22 @@ ${project.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-inbox/datasafe-inbox-impl/pom.xml b/datasafe-inbox/datasafe-inbox-impl/pom.xml index 327b46c1b..af74c0929 100644 --- a/datasafe-inbox/datasafe-inbox-impl/pom.xml +++ b/datasafe-inbox/datasafe-inbox-impl/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-inbox - 0.6.2 + 0.7.0 datasafe-inbox-impl diff --git a/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/ListInboxImpl.java b/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/ListInboxImpl.java index 40238de3c..d732ac74b 100644 --- a/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/ListInboxImpl.java +++ b/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/ListInboxImpl.java @@ -37,7 +37,7 @@ public ListInboxImpl(PrivateKeyService keyService, ProfileRetrievalService profi @Override public Stream> list(ListRequest request) { - keyService.documentEncryptionSecretKey(request.getOwner()); // Just checking user has access + keyService.validateUserHasAccessOrThrow(request.getOwner()); return listService.list(resolveRelative(request)) .map(it -> fillEncryptedDecryptedSegments(request, it)); } diff --git a/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/RemoveFromInboxImpl.java b/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/RemoveFromInboxImpl.java index da372ee07..3ce26a8cc 100644 --- a/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/RemoveFromInboxImpl.java +++ b/datasafe-inbox/datasafe-inbox-impl/src/main/java/de/adorsys/datasafe/inbox/impl/actions/RemoveFromInboxImpl.java @@ -31,7 +31,7 @@ public RemoveFromInboxImpl(PrivateKeyService keyService, ResourceResolver resolv @Override public void remove(RemoveRequest request) { - keyService.documentEncryptionSecretKey(request.getOwner()); // Just checking user has access + keyService.validateUserHasAccessOrThrow(request.getOwner()); remover.remove(resolver.resolveRelativeToPrivateInbox(request.getOwner(), request.getLocation())); } } diff --git a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ListInboxImplTest.java b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ListInboxImplTest.java index 40a4e26a8..883f12ad5 100644 --- a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ListInboxImplTest.java +++ b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ListInboxImplTest.java @@ -6,12 +6,12 @@ import de.adorsys.datasafe.directory.api.types.UserPublicProfile; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.inbox.impl.actions.ListInboxImpl; import de.adorsys.datasafe.storage.api.actions.StorageListService; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.resource.*; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -29,7 +29,7 @@ class ListInboxImplTest extends BaseMockitoTest { private static final String PATH = "./"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private PrivateKeyService privateKeyService; @@ -70,6 +70,6 @@ void list() { when(listService.list(resource)).thenReturn(Stream.of(absoluteResolvedResource)); assertThat(inbox.list(request)).hasSize(1); - verify(privateKeyService).documentEncryptionSecretKey(auth); + verify(privateKeyService).validateUserHasAccessOrThrow(auth); } } diff --git a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ReadFromInboxImplTest.java b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ReadFromInboxImplTest.java index 54ed279f7..b5de32d06 100644 --- a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ReadFromInboxImplTest.java +++ b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/ReadFromInboxImplTest.java @@ -4,13 +4,13 @@ import de.adorsys.datasafe.encrypiton.api.document.EncryptedDocumentReadService; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.inbox.impl.actions.ReadFromInboxImpl; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -28,7 +28,7 @@ class ReadFromInboxImplTest extends BaseMockitoTest { private static final String BYTES = "Hello"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private ResourceResolver resolver; diff --git a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/RemoveFromInboxImplTest.java b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/RemoveFromInboxImplTest.java index 7baf30ce5..08fb41b2e 100644 --- a/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/RemoveFromInboxImplTest.java +++ b/datasafe-inbox/datasafe-inbox-impl/src/test/java/de/adorsys/datasafe/inbox/api/actions/RemoveFromInboxImplTest.java @@ -4,12 +4,12 @@ import de.adorsys.datasafe.directory.api.resource.ResourceResolver; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.inbox.impl.actions.RemoveFromInboxImpl; import de.adorsys.datasafe.storage.api.actions.StorageRemoveService; import de.adorsys.datasafe.types.api.actions.RemoveRequest; import de.adorsys.datasafe.types.api.resource.*; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -25,7 +25,7 @@ class RemoveFromInboxImplTest extends BaseMockitoTest { private static final String PATH = "./"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private PrivateKeyService privateKeyService; @@ -54,6 +54,6 @@ void remove() { inbox.remove(request); verify(removeService).remove(resource); - verify(privateKeyService).documentEncryptionSecretKey(auth); + verify(privateKeyService).validateUserHasAccessOrThrow(auth); } } diff --git a/datasafe-inbox/pom.xml b/datasafe-inbox/pom.xml index c035a5bf6..84c95e987 100644 --- a/datasafe-inbox/pom.xml +++ b/datasafe-inbox/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-long-run-tests/README.md b/datasafe-long-run-tests/README.md index a41a1432e..d49af3632 100644 --- a/datasafe-long-run-tests/README.md +++ b/datasafe-long-run-tests/README.md @@ -1,6 +1,65 @@ # Datasafe long run test results -### 1. Testing procedure description. +### 1. Testing environment preparation +Datasafe throughput tests was run on different Amazon EC2 instances. On each instance after creation was installed JDK, maven and git. Then datasafe project was pulled and executed +[RandomActionsOnDatasafeTest](datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnDatasafeTest.java) which uses one bucket. Test was launched with all combinations of 2, 4, 8 and 16 parallel threads and 100kb, 1mb and 10mb file sizes. + +#### Preparation commands for running test + +```text +ssh -i ~/Documents/mhr.pem ec2-user@x.x.x.x +``` + +where x.x.x.x - current ip address of ec2 instance. + +mhr.pem - key pair file to access remote console by ssh. + +Uploading jdk to remote server. jdk-8u221-linux-x64.rpm file should be first downloaded from Oracle website. +```text +scp -i ~/Documents/mhr.pem ~/jdk-8u221-linux-x64.rpm ec2-user@3.120.206.136:/home/ec2-user +``` +Installation of jdk, maven, git. +```text +sudo yum install -y jdk-8u221-linux-x64.rpm +sudo yum install -y git +sudo yum install -y maven +``` + +Datasafe checkout and compilation + +```text +git clone https://github.com/adorsys/datasafe.git +mvn -DskipTests=true install +cd datasafe-long-run-tests/datasafe-business-tests-random-actions/ +``` + +Test execution command. + +```text +mvn -DAWS_ACCESS_KEY="***" \ + -DAWS_SECRET_KEY="***" \ + -DAWS_BUCKET="***" \ + -DAWS_REGION="eu-central-1" \ + -DtestArgs="-Xmx512m \ + -Dcom.sun.management.jmxremote.ssl=false \ + -Dcom.sun.management.jmxremote.authenticate=false \ + -Dcom.sun.management.jmxremote.port=8090 \ + -Dcom.sun.management.jmxremote.rmi.port=8090 \ + -Djava.rmi.server.hostname=127.0.0.1 \ + -Dcom.sun.management.jmxremote.local.only=false" \ + -Dtest=RandomActionsOnDatasafeTest test +``` + +*** should be changed to real aws s3 bucket name, access key and secret key. + +With Xmx parameter used memory could be configured. But due to some memory leaks it was not used and test ran with all available memory. + +Enabling jmx monitoring +```text +ssh -i ~/Documents/mhr.pem -L 8090:127.0.0.1:8090 ec2-user@x.x.x.x +``` + +### 2. Testing procedure description Tests were done on 6 different aws ec2 instances: @@ -73,7 +132,7 @@ Threads 100kb 1mb 10mb 2 118.67294777989376 42.735968236780366 6.102306403813942 ``` -### 2. Test result charts. +### 3. Test result charts 1. WRITE operation @@ -108,7 +167,7 @@ MULTIBUCKET TEST All tests were made using AES256_CBC Encryption algorithm. On next chart test results using AES256_GCM comparing to AES256_CBC. ![](.images/CBCvsGCM.png) -### 3. CEPH S3 storage test +### 4. CEPH S3 storage test For Ceph testing, cluster consists of osd1, osd2, osd3 t2.xlarge ec2 instances and t2.large instances for ceph monitor and gateway. @@ -117,3 +176,34 @@ For Ceph testing, cluster consists of osd1, osd2, osd3 t2.xlarge ec2 instances a Each test was run with 2, 4, 8, 16 threads with single bucket and multi bucket(3 buckets were used) from ec2 c5n.2xlarge(8core) instance. ![](.images/ceph.png) + +### 5. Simple Datasafe Adapter test +There is also [RandomActionsOnSimpleDatasafeAdapterTest](datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnSimpleDatasafeAdapterTest.java) for testing functionality of Simple Datasafe Adapter (used for compatibility with predecessor of datasafe - docusafe). +To run test you need to have installed jdk and maven. +If your storage is aws s3 then command will be: +```text +mvn -DAWS_ACCESS_KEY="accesskey" \ + -DAWS_SECRET_KEY="secretkey" \ + -DAWS_BUCKET="datasafe-bucket" \ + -DAWS_REGION="eu-central-1" \ + -DtestArgs="-Xmx256m \ # memory limit for test + -DSTORAGE_PROVIDERS="AMAZON" \ # means that external s3 compatible storage will be used. By default local MINIO container is used. + -DFIXTURE_SIZE="MEDIUM" \ # available values: MEDIUM (1000 operations), LARGE (10000 operations). By default small fixture is used with 200 operations. + -DTHREADS=16 \ # comma separated list of desired number of threads + -DFILE_SIZES=100,1024,10240" \ # comma separated list of file sizes used in test + -Dtest=RandomActionsOnSimpleDatasafeAdapterTest test +``` +For Ceph you have to add AWS_URL param. Without this parameter test by default trying to connect to Amazon. +```text +mvn -DAWS_ACCESS_KEY="accesskey" \ + -DAWS_SECRET_KEY="secretkey" \ + -DAWS_BUCKET="ceph-bucket" \ + -DAWS_URL="host.ceph.com:7480" \ + -DtestArgs="-Xmx256m -DSTORAGE_PROVIDERS="AMAZON" -DFIXTURE_SIZE="MEDIUM" -DTHREADS=2,4,8,16 -DFILE_SIZES=100,1024,10240" \ + -Dtest=RandomActionsOnSimpleDatasafeAdapterTest test +``` +Test will automatcally run in all combinations of values of threads, file_size and storage providers lists. + +For simplifying running this test there is [runSimpleDatasafeAdapterPerformanceTest.sh](../scripts/runSimpleDatasafeAdapterPerformanceTest.sh) +script which uses credentials from environment variables and by default runs test with small fixture size, 2 threads and 100kb file size. +AWS_ACCESS_KEY, AWS_SECRET_KEY, AWS_BUCKET, AWS_REGION environment variables have to be set. And for Ceph also AWS_URL has to be set. \ No newline at end of file diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/parse_script_table.groovy b/datasafe-long-run-tests/datasafe-business-tests-random-actions/parse_script_table.groovy new file mode 100644 index 000000000..9365bfc57 --- /dev/null +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/parse_script_table.groovy @@ -0,0 +1,74 @@ +import java.nio.file.Paths +import groovy.transform.Field + +// script expects file name as argument +rawData = [:] +currHead = [] +Paths.get(this.args[0]).readLines().forEach { line -> + def heading = line =~ /.+with (\d+) threads and (\d+) Kb .+/ + if (heading.matches()) { + currHead = [heading.group(1), heading.group(2)] + } + + def dataEntry = line =~ /.+ - ([A-Z]{2,}) .+50=([0-9.]+), 99=([0-9.]+), 90=([0-9.]+), 75=([0-9.]+), 95=([0-9.]+).+throughputPerThread=([0-9.]+).+/ + if (dataEntry.matches()) { + def op = dataEntry.group(1) + if (!(op in rawData)) { + rawData[op] = [:] + } + + def sz = currHead[1] + if (!(sz in rawData[op])) { + rawData[op][sz] = [:] + } + + def nThreads = currHead[0] + if (!(nThreads in rawData[op][sz][nThreads])) { + rawData[op][sz][nThreads] = [:] + } + + def itnum = rawData[op][sz][nThreads].size() + rawData[op][sz][nThreads][itnum] = [dataEntry.group(2), dataEntry.group(3), dataEntry.group(4), dataEntry.group(5), dataEntry.group(6), dataEntry.group(7)] + } +} + +@Field final String ANSI_RESET = "\u001B[0m" +@Field final String ANSI_RED = "\u001B[31m" +@Field final String ANSI_YELLOW = "\u001B[33m" + +rawData.forEach { op, byOpValues -> + byOpValues.forEach { sz, bySizeValues -> + println(ANSI_YELLOW + "${op}" + ANSI_RESET + " operation performance with " + ANSI_YELLOW + "${sz}" + ANSI_RESET +" KB objects") + printSeparator() + curStr = ["Threads", "Throughput", "Throughput", "p50", "p99", "p90", "p75", "p95"] + printString(curStr) + curStr = ["", "ops", "MB/s", "", "", "", "", ""] + printString(curStr) + printSeparator() + bySizeValues.forEach { nThreads, byThreadValues -> + byThreadValues.forEach { itnum, val -> + def opsPerSec = Double.parseDouble(val[5]) * Integer.parseInt(nThreads) + String thr_ops = opsPerSec.round(2).toString() + String thr_kb = ANSI_RED + (opsPerSec * Integer.parseInt(sz) / 1024).round(2).toString() + ANSI_RESET + for (int i=0; i < val.size(); i++) { + if (val[i].isDouble() && !val[i].isInteger()) { + val[i] = Double.parseDouble(val[i]).round(2).toString() + } + } + curStr = [nThreads, thr_ops, thr_kb, val[0], val[1], val[2], val[3], val[4]] + printString(curStr) + printSeparator() + } + } + println() + } +} + +def printSeparator() { + println(("+"+"-".multiply(10)).multiply(8)+"+") +} + +def printString(List params) { + params.each { print '|' + it.center(it.contains(ANSI_RESET) ? 19 : 10) } + println("|") +} \ No newline at end of file diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/pom.xml b/datasafe-long-run-tests/datasafe-business-tests-random-actions/pom.xml index e492293e3..f68745632 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/pom.xml +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/pom.xml @@ -5,7 +5,7 @@ datasafe-long-run-tests de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -175,6 +175,7 @@ org.kie:kie-api org.kie:kie-internal com.amazonaws + org.bouncycastle diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnDatasafeTest.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnDatasafeTest.java index 1c0412748..494329efe 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnDatasafeTest.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnDatasafeTest.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import org.junit.jupiter.params.ParameterizedTest; @@ -44,7 +45,7 @@ void testRandomActionsParallelThreads(StorageDescriptor descriptor, int threadCo private DefaultDatasafeServices datasafeServices(StorageDescriptor descriptor) { return DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(descriptor.getLocation(), "PAZZWORT")) + .config(new DefaultDFSConfig(descriptor.getLocation(), new ReadStorePassword("PAZZWORT"))) .storage(descriptor.getStorageService().get()) .build(); } diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnMultiBucketTest.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnMultiBucketTest.java index 460ff43db..5a016943b 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnMultiBucketTest.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnMultiBucketTest.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.UserBasedDelegatingStorage; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; @@ -41,7 +42,7 @@ private DefaultDatasafeServices datasafeServices(StorageDescriptor descriptor) { return DaggerDefaultDatasafeServices .builder() - .config(new DefaultDFSConfig(descriptor.getLocation(), "PAZZWORT")) + .config(new DefaultDFSConfig(descriptor.getLocation(), new ReadStorePassword("PAZZWORT"))) .storage(new UserBasedDelegatingStorage(storageServiceByBucket(), buckets)) .build(); } diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnSimpleDatasafeAdapterTest.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnSimpleDatasafeAdapterTest.java index 3e2775d72..5cfa089a9 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnSimpleDatasafeAdapterTest.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/RandomActionsOnSimpleDatasafeAdapterTest.java @@ -7,8 +7,11 @@ import de.adorsys.datasafe.directory.api.types.*; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.inbox.api.InboxService; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.privatestore.api.PrivateSpaceService; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.exceptions.SimpleAdapterException; @@ -20,6 +23,7 @@ import de.adorsys.datasafe.types.api.actions.RemoveRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.*; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import lombok.RequiredArgsConstructor; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import org.junit.jupiter.params.ParameterizedTest; @@ -50,7 +54,7 @@ void testRandomActionsParallelThreads(StorageDescriptor descriptor, int threadCo StatisticService statisticService = new StatisticService(); executeTest( - smallSimpleDocusafeAdapterFixture(), + getSimpleDatasafeAdapterFixture(), descriptor.getName(), filesizeInKb, threadCount, @@ -63,7 +67,7 @@ void testRandomActionsParallelThreads(StorageDescriptor descriptor, int threadCo private DefaultDatasafeServices datasafeServicesFromSimpleDatasafeAdapter(StorageDescriptor descriptor) { SimpleDatasafeService datasafeService = new SimpleDatasafeServiceImpl( - DFSTestCredentialsFactory.credentials(descriptor) + DFSTestCredentialsFactory.credentials(descriptor), new MutableEncryptionConfig() ); return new DefaultDatasafeServices() { @@ -71,31 +75,37 @@ private DefaultDatasafeServices datasafeServicesFromSimpleDatasafeAdapter(Storag public PrivateSpaceService privateService() { return new PrivateSpaceService() { @Override - public Stream> list(ListRequest request) { - return datasafeService.list( + public PasswordClearingStream> list(ListRequest request) { + return new PasswordClearingStream<>(datasafeService.list( request.getOwner(), asFqnDir(request.getLocation()), ListRecursiveFlag.TRUE - ).stream().map(it -> new AbsoluteLocation<>(asResolved(descriptor.getLocation(), it))); + ).stream().map(it -> new AbsoluteLocation<>(asResolved(descriptor.getLocation(), it))), request.getOwner().getReadKeyPassword()); } @Override - public InputStream read(ReadRequest request) { - return new ByteArrayInputStream( + public PasswordClearingInputStream read(ReadRequest request) { + return new PasswordClearingInputStream(new ByteArrayInputStream( datasafeService.readDocument( request.getOwner(), asFqnDoc(request.getLocation())).getDocumentContent().getValue() - ); + ), request.getOwner().getReadKeyPassword()); } @Override public void remove(RemoveRequest request) { datasafeService.deleteFolder(request.getOwner(), asFqnDir(request.getLocation())); + request.getOwner().getReadKeyPassword().clear(); + } + + @Override + public void makeSurePasswordClearanceIsDone() { + } @Override - public OutputStream write(WriteRequest request) { - return new PutBlobOnClose(asFqnDoc(request.getLocation()), request.getOwner(), datasafeService); + public PasswordClearingOutputStream write(WriteRequest request) { + return new PasswordClearingOutputStream(new PutBlobOnClose(asFqnDoc(request.getLocation()), request.getOwner(), datasafeService), request.getOwner().getReadKeyPassword()); } @RequiredArgsConstructor @@ -217,6 +227,11 @@ public void deregisterStorageCredentials(UserIDAuth user, StorageIdentifier stor throw new IllegalStateException("Not implemented"); } + @Override + public Set listRegisteredStorageCredentials(UserIDAuth user) { + throw new IllegalStateException("Not implemented"); + } + @Override public boolean userExists(UserID ofUser) { throw new IllegalStateException("Not implemented"); diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/BaseRandomActions.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/BaseRandomActions.java index 4e061e37c..30b422d2b 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/BaseRandomActions.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/BaseRandomActions.java @@ -16,6 +16,7 @@ import de.adorsys.datasafe.privatestore.api.PrivateSpaceService; import de.adorsys.datasafe.teststorage.WithStorageProvider; import lombok.SneakyThrows; +import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.ValueSource; @@ -24,6 +25,7 @@ import java.io.Reader; import java.nio.charset.StandardCharsets; +import java.security.Security; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -69,6 +71,7 @@ public abstract class BaseRandomActions extends WithStorageProvider { @BeforeEach void prepare() { + Security.addProvider(new BouncyCastleProvider()); // Enable logging obfuscation System.setProperty("SECURE_LOGS", "on"); System.setProperty("SECURE_SENSITIVE", "on"); @@ -77,13 +80,17 @@ void prepare() { protected Fixture getFixture() { switch(FIXTURE_SIZE) { case "MEDIUM" : return fixture("fixture/fixture_1000_ops.json"); - case "BIG" : return fixture("fixture/fixture_10000_ops.json"); + case "LARGE" : return fixture("fixture/fixture_10000_ops.json"); default : return fixture("fixture/fixture_200_ops.json"); } } - protected Fixture smallSimpleDocusafeAdapterFixture() { - return fixture("fixture/fixture_simple_datasafe_200_ops.json"); + protected Fixture getSimpleDatasafeAdapterFixture() { + switch(FIXTURE_SIZE) { + case "MEDIUM" : return fixture("fixture/fixture_simple_datasafe_1000_ops.json"); + case "LARGE" : return fixture("fixture/fixture_simple_datasafe_10000_ops.json"); + default : return fixture("fixture/fixture_simple_datasafe_200_ops.json"); + } } @SneakyThrows diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/fixture/dto/TestUser.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/fixture/dto/TestUser.java index ac2c82f8a..2fbcd7a60 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/fixture/dto/TestUser.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/fixture/dto/TestUser.java @@ -2,7 +2,7 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,6 +20,6 @@ public class TestUser { public TestUser(String username, String password) { this.username = username; this.password = password; - this.auth = new UserIDAuth(new UserID(username), new ReadKeyPassword(password)); + this.auth = new UserIDAuth(new UserID(username), ReadKeyPasswordTestFactory.getForString(password)); } } diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/services/OperationExecutor.java b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/services/OperationExecutor.java index e9165109e..a63398f14 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/services/OperationExecutor.java +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/java/de/adorsys/datasafe/business/impl/e2e/randomactions/framework/services/OperationExecutor.java @@ -18,6 +18,7 @@ import de.adorsys.datasafe.types.api.resource.ResolvedResource; import de.adorsys.datasafe.types.api.resource.Uri; import de.adorsys.datasafe.types.api.shared.ContentGenerator; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -130,7 +131,7 @@ private Stream generateValidatingOperations(String execId, @SneakyThrows private void doCreate(Operation oper) { - UserIDAuth auth = new UserIDAuth(oper.getUserId(), oper.getUserId()); + UserIDAuth auth = new UserIDAuth(oper.getUserId(), ReadKeyPasswordTestFactory.getForString(oper.getUserId())); registrationService.registerUsingDefaults(auth); users.put(auth.getUserID().getValue(), new UserSpec(auth, new ContentGenerator(fileContentSize))); } diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_10000_ops.json b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_10000_ops.json new file mode 100644 index 000000000..b3ae16a2a --- /dev/null +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_10000_ops.json @@ -0,0 +1,92123 @@ +{ + "operations": [ + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/important/presentation.ppt", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/documents/document.pdf", + "home/documents/document.pdf", + "home/important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "important/presentation.ppt", + "presentation.ppt", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/presentation.ppt", + "presentation.ppt", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/documents/document.pdf", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf", + "home/home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/document.pdf", + "home/document.pdf", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "home/important/document.pdf", + "documents/important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/balance.xlsx", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/balance.xlsx", + "presentation.ppt", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [ + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "balance.xlsx", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "presentation.ppt", + "important/documents/document.pdf", + "home/file.txt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "presentation.ppt", + "important/documents/document.pdf", + "home/file.txt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "important/documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/important/presentation.ppt", + "important/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "home/home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "home/document.pdf", + "important/home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/document.pdf", + "presentation.ppt", + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/home/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/documents/presentation.ppt", + "important/documents/document.pdf", + "balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/documents/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "presentation.ppt", + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/balance.xlsx", + "file.txt", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [ + "documents/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "documents/documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt", + "important/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "important/file.txt", + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "document.pdf", + "home/document.pdf", + "important/file.txt", + "home/important/document.pdf", + "home/documents/balance.xlsx", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "document.pdf", + "home/document.pdf", + "important/file.txt", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "home/balance.xlsx", + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "home/balance.xlsx", + "presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "important/file.txt", + "presentation.ppt", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/file.txt", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/file.txt", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/file.txt", + "file.txt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/important/document.pdf", + "documents/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "home/important/document.pdf", + "important/important/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/documents/document.pdf", + "home/important/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/document.pdf", + "presentation.ppt", + "important/important/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/document.pdf", + "presentation.ppt", + "important/important/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/file.txt", + "presentation.ppt", + "important/important/document.pdf", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt", + "important/important/document.pdf", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt", + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "file.txt", + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "file.txt", + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/file.txt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "file.txt", + "important/home/balance.xlsx", + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "important/presentation.ppt", + "documents/document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "home/important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/presentation.ppt", + "home/balance.xlsx", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "home/documents/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/home/document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/file.txt", + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/balance.xlsx", + "home/documents/file.txt", + "documents/home/file.txt", + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "home/balance.xlsx", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "home/balance.xlsx", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/balance.xlsx", + "documents/home/presentation.ppt", + "home/documents/file.txt", + "documents/home/file.txt", + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/document.pdf", + "home/document.pdf", + "home/balance.xlsx", + "file.txt", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/important/document.pdf", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [ + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/home/document.pdf", + "documents/important/file.txt", + "important/important/balance.xlsx", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/presentation.ppt", + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [ + "documents/home/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/balance.xlsx", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt", + "important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "important/presentation.ppt", + "file.txt", + "documents/important/file.txt", + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/presentation.ppt", + "file.txt", + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/document.pdf", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "presentation.ppt", + "file.txt", + "home/documents/balance.xlsx", + "home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "home/document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/balance.xlsx", + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "home/home/balance.xlsx", + "file.txt", + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "important/documents/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx", + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "important/file.txt", + "home/home/balance.xlsx", + "file.txt", + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/file.txt", + "home/balance.xlsx", + "presentation.ppt", + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/file.txt", + "documents/important/document.pdf", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "important/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt", + "documents/important/document.pdf", + "home/balance.xlsx", + "balance.xlsx", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/documents/file.txt", + "file.txt", + "documents/documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt", + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/document.pdf", + "important/home/balance.xlsx", + "important/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/file.txt", + "documents/balance.xlsx", + "important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx", + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "home/file.txt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt", + "balance.xlsx", + "important/document.pdf", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "presentation.ppt", + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "file.txt", + "documents/documents/presentation.ppt", + "balance.xlsx", + "important/document.pdf", + "documents/home/document.pdf", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "presentation.ppt", + "home/balance.xlsx", + "home/file.txt", + "balance.xlsx", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "documents/balance.xlsx", + "documents/document.pdf", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/balance.xlsx", + "documents/presentation.ppt", + "home/home/presentation.ppt", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/file.txt", + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt", + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/file.txt", + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt", + "important/important/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "presentation.ppt", + "file.txt", + "important/important/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "important/file.txt", + "important/document.pdf", + "balance.xlsx", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt", + "presentation.ppt", + "important/file.txt", + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "home/document.pdf", + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/balance.xlsx", + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/documents/document.pdf", + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/file.txt", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/presentation.ppt", + "documents/important/balance.xlsx", + "documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "important/file.txt", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/important/file.txt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/important/file.txt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/file.txt", + "documents/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt", + "home/documents/balance.xlsx", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/presentation.ppt", + "important/presentation.ppt", + "documents/balance.xlsx", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/balance.xlsx", + "file.txt", + "important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "documents/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt", + "file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "home/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt", + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "home/home/presentation.ppt", + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/balance.xlsx", + "home/balance.xlsx", + "important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "home/home/presentation.ppt", + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "presentation.ppt", + "file.txt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [ + "home/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [ + "home/important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt", + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "presentation.ppt", + "important/file.txt", + "file.txt", + "home/important/file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "presentation.ppt", + "important/file.txt", + "file.txt", + "home/important/file.txt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "documents/important/file.txt", + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [ + "home/documents/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "home/home/presentation.ppt", + "documents/document.pdf", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "documents/file.txt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "home/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [ + "documents/important/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "important/presentation.ppt", + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/documents/balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/documents/balance.xlsx", + "important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [ + "documents/important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/file.txt", + "documents/presentation.ppt", + "documents/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/presentation.ppt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/file.txt", + "file.txt", + "home/home/file.txt", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/presentation.ppt", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/presentation.ppt", + "documents/balance.xlsx", + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/balance.xlsx", + "presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/documents/presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/home/file.txt", + "important/documents/balance.xlsx", + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "important/documents/presentation.ppt", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "document.pdf", + "file.txt", + "home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/home/balance.xlsx", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/", + "result": { + "dirContent": [ + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "file.txt", + "important/important/document.pdf", + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/balance.xlsx", + "presentation.ppt", + "home/file.txt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/balance.xlsx", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/document.pdf", + "documents/important/presentation.ppt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt", + "home/important/presentation.ppt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/presentation.ppt", + "documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/file.txt", + "home/important/document.pdf", + "file.txt", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [ + "important/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/file.txt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "documents/important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "home/file.txt", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt", + "balance.xlsx", + "important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "important/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/documents/balance.xlsx", + "balance.xlsx", + "important/important/presentation.ppt", + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "important/home/file.txt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "a81ddf01-fd7f-4f36-bf69-96e269c09cbd" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/documents/file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [ + "important/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/documents/document.pdf", + "important/important/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/documents/balance.xlsx", + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/document.pdf", + "documents/presentation.ppt", + "important/documents/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + } + ], + "userPrivateSpace": { + "user-1": {}, + "user-0": { + "balance.xlsx": { + "id": "fa56329b-a5a6-4720-9ed1-518b9ef6340d" + } + }, + "user-5": {}, + "user-4": { + "presentation.ppt": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + }, + "user-3": {}, + "user-2": { + "home/document.pdf": { + "id": "87e6fc3d-4586-442b-b0c3-46873fdd3cca" + }, + "important/document.pdf": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + }, + "user-9": { + "document.pdf": { + "id": "62f86682-a84f-4226-9794-c6faa8718090" + } + }, + "user-8": { + "important/file.txt": { + "id": "167fd37d-5051-4ae4-81a3-c1472a5b7fe2" + } + }, + "user-7": { + "documents/important/document.pdf": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "documents/presentation.ppt": { + "id": "a4c68936-40c4-47fe-bd05-d14430cad276" + }, + "documents/document.pdf": { + "id": "a95da826-3102-4782-98df-892e8007d8d6" + }, + "important/documents/presentation.ppt": { + "id": "3d36640c-56cb-4e7b-abee-b10afe31c5ab" + }, + "balance.xlsx": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + } + }, + "user-6": { + "presentation.ppt": { + "id": "7c7fb450-2767-4d7e-94b3-10823cdea7c5" + }, + "home/home/balance.xlsx": { + "id": "292056fc-1c28-471f-99c2-fe29fa040309" + } + } + }, + "userPublicSpace": { + "user-1": {}, + "user-0": {}, + "user-5": {}, + "user-4": {}, + "user-3": {}, + "user-2": {}, + "user-9": {}, + "user-8": {}, + "user-7": {}, + "user-6": {} + } +} \ No newline at end of file diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_1000_ops.json b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_1000_ops.json new file mode 100644 index 000000000..b8720ca81 --- /dev/null +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_1000_ops.json @@ -0,0 +1,9283 @@ +{ + "operations": [ + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt", + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "important/important/presentation.ppt", + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [ + "home/important/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/documents/document.pdf", + "home/documents/document.pdf", + "home/important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "home/balance.xlsx", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "file.txt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "important/presentation.ppt", + "presentation.ppt", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "presentation.ppt", + "documents/document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/presentation.ppt", + "documents/presentation.ppt", + "presentation.ppt", + "home/home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "home/documents/document.pdf", + "file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/document.pdf" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf", + "home/home/file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/file.txt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "home/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [ + "important/important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/documents/document.pdf" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/documents/balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "file.txt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/", + "result": { + "dirContent": [ + "home/documents/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/document.pdf", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "documents/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/document.pdf", + "result": { + "dirContent": [ + "documents/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/documents/presentation.ppt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/important/document.pdf", + "home/document.pdf", + "presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "documents/documents/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/", + "result": { + "dirContent": [ + "documents/documents/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/presentation.ppt", + "important/home/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "file.txt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "dirContent": [ + "important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "document.pdf" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/balance.xlsx", + "result": { + "content": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/important/file.txt" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/file.txt", + "result": { + "dirContent": [ + "important/important/file.txt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [ + "document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/file.txt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/file.txt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/", + "result": { + "dirContent": [ + "important/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/home/file.txt" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "important/important/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/home/document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/important/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/file.txt" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/document.pdf", + "result": { + "dirContent": [ + "important/important/document.pdf" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "home/document.pdf", + "important/presentation.ppt", + "home/important/document.pdf", + "documents/important/presentation.ppt", + "important/important/file.txt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/home/document.pdf" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "documents/balance.xlsx", + "documents/important/presentation.ppt" + ] + } + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "home/presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "document.pdf" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [ + "home/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/important/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "dirContent": [ + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/balance.xlsx", + "documents/balance.xlsx", + "presentation.ppt", + "important/important/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/presentation.ppt", + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/home/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/document.pdf", + "home/file.txt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/home/presentation.ppt" + ] + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/home/balance.xlsx" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/presentation.ppt", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/balance.xlsx" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/documents/file.txt", + "result": { + "dirContent": [ + "documents/documents/file.txt" + ] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/balance.xlsx" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/document.pdf", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "important/documents/document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/", + "result": { + "dirContent": [ + "important/home/document.pdf" + ] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-1", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "documents/home/balance.xlsx" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "documents/presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/document.pdf", + "balance.xlsx", + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/home/", + "result": { + "dirContent": [ + "home/home/balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "important/document.pdf" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + } + } + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "documents/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "documents/file.txt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/document.pdf" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/", + "result": { + "dirContent": [ + "documents/home/document.pdf" + ] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "home/file.txt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "important/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + } + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/balance.xlsx", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "home/important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/home/" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/important/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "location": "documents/home/file.txt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "d649d9c4-ecc9-410a-b6f8-3510710eb368" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/important/presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/home/balance.xlsx", + "result": { + "content": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + } + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/important/" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "58326dc1-27c9-4ec7-884a-045db4a3b8de" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "important/important/balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "35083c31-6b7c-43c3-9521-b256d529fb33" + }, + "location": "documents/documents/file.txt" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + }, + "location": "file.txt" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "location": "file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "location": "home/important/document.pdf" + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/important/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/documents/" + } + ], + "userPrivateSpace": { + "user-1": { + "home/important/document.pdf": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + }, + "user-0": { + "home/documents/document.pdf": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "important/important/balance.xlsx": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "balance.xlsx": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + } + }, + "user-5": {}, + "user-4": { + "documents/home/file.txt": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + }, + "documents/file.txt": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "home/important/document.pdf": { + "id": "12e680c3-22ce-469f-b62a-2bc37b194134" + }, + "file.txt": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + }, + "documents/home/balance.xlsx": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + }, + "user-3": { + "file.txt": { + "id": "77d01c9c-4631-4e07-9d9a-4cc1fdbc1a67" + } + }, + "user-2": { + "home/home/balance.xlsx": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "home/documents/balance.xlsx": { + "id": "2beec6d8-e1f6-4480-9303-e8201399b0b8" + }, + "balance.xlsx": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + }, + "user-9": { + "balance.xlsx": { + "id": "7d315536-f793-45d5-a309-81c1e03545d8" + } + }, + "user-8": { + "home/home/presentation.ppt": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "presentation.ppt": { + "id": "75cc14ad-8345-44b7-8a11-ad2cebc501c6" + }, + "important/documents/document.pdf": { + "id": "69900fe6-5fdd-4933-826f-49190e9d4b2b" + }, + "home/file.txt": { + "id": "d31ad19c-860e-40d7-b798-2aeecad10120" + } + }, + "user-7": {}, + "user-6": {} + }, + "userPublicSpace": { + "user-1": {}, + "user-0": {}, + "user-5": {}, + "user-4": {}, + "user-3": {}, + "user-2": {}, + "user-9": {}, + "user-8": {}, + "user-7": {}, + "user-6": {} + } +} \ No newline at end of file diff --git a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_200_ops.json b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_200_ops.json index 0c7115fd7..ccddef502 100644 --- a/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_200_ops.json +++ b/datasafe-long-run-tests/datasafe-business-tests-random-actions/src/test/resources/fixture/fixture_simple_datasafe_200_ops.json @@ -5,7 +5,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" }, "location": "balance.xlsx" }, @@ -14,7 +14,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "6612de12-3a82-4213-b3f9-2a618003c1b0" + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" }, "location": "important/presentation.ppt" }, @@ -34,7 +34,7 @@ "location": "balance.xlsx", "result": { "content": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" } } }, @@ -45,7 +45,7 @@ "location": "important/presentation.ppt", "result": { "content": { - "id": "6612de12-3a82-4213-b3f9-2a618003c1b0" + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" } } }, @@ -54,7 +54,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "e1bb97b1-085e-486e-be5e-670d5b3a777a" + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" }, "location": "home/home/balance.xlsx" }, @@ -63,7 +63,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "important/important/presentation.ppt" }, @@ -83,7 +83,7 @@ "location": "important/presentation.ppt", "result": { "content": { - "id": "6612de12-3a82-4213-b3f9-2a618003c1b0" + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" } } }, @@ -94,7 +94,7 @@ "location": "home/home/balance.xlsx", "result": { "content": { - "id": "e1bb97b1-085e-486e-be5e-670d5b3a777a" + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" } } }, @@ -109,7 +109,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "documents/home/balance.xlsx" }, @@ -118,7 +118,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" }, "location": "documents/home/file.txt" }, @@ -127,7 +127,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "cd6a2a0b-28ee-473b-a4bd-4236fb2cef71" + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" }, "location": "important/documents/file.txt" }, @@ -178,7 +178,7 @@ "location": "important/important/presentation.ppt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -189,7 +189,7 @@ "location": "documents/home/file.txt", "result": { "content": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" } } }, @@ -200,7 +200,7 @@ "location": "important/documents/file.txt", "result": { "content": { - "id": "cd6a2a0b-28ee-473b-a4bd-4236fb2cef71" + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" } } }, @@ -221,7 +221,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "cd6a2a0b-28ee-473b-a4bd-4236fb2cef71" + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" }, "location": "important/balance.xlsx" }, @@ -259,7 +259,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "e1bb97b1-085e-486e-be5e-670d5b3a777a" + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" }, "location": "home/presentation.ppt" }, @@ -268,7 +268,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "943b276b-a073-4141-9e5e-cad489d1f65b" + "id": "bddf3814-1bc9-442b-82fa-4bed9cbf8ef2" }, "location": "balance.xlsx" }, @@ -277,7 +277,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "documents/presentation.ppt" }, @@ -286,7 +286,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "file.txt" }, @@ -295,7 +295,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" }, "location": "documents/documents/presentation.ppt" }, @@ -315,7 +315,7 @@ "location": "file.txt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -330,7 +330,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "documents/home/file.txt" }, @@ -352,7 +352,7 @@ "location": "home/presentation.ppt", "result": { "content": { - "id": "e1bb97b1-085e-486e-be5e-670d5b3a777a" + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" } } }, @@ -363,7 +363,7 @@ "location": "file.txt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -378,7 +378,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "document.pdf" }, @@ -393,7 +393,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "943b276b-a073-4141-9e5e-cad489d1f65b" + "id": "bddf3814-1bc9-442b-82fa-4bed9cbf8ef2" }, "location": "balance.xlsx" }, @@ -417,7 +417,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "943b276b-a073-4141-9e5e-cad489d1f65b" + "id": "bddf3814-1bc9-442b-82fa-4bed9cbf8ef2" }, "location": "home/file.txt" }, @@ -426,7 +426,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "documents/file.txt" }, @@ -448,7 +448,7 @@ "location": "document.pdf", "result": { "content": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" } } }, @@ -459,7 +459,7 @@ "location": "documents/documents/presentation.ppt", "result": { "content": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" } } }, @@ -474,7 +474,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "cd6a2a0b-28ee-473b-a4bd-4236fb2cef71" + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" }, "location": "document.pdf" }, @@ -483,7 +483,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" }, "location": "documents/home/balance.xlsx" }, @@ -492,7 +492,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" }, "location": "presentation.ppt" }, @@ -501,7 +501,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "6612de12-3a82-4213-b3f9-2a618003c1b0" + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" }, "location": "home/important/document.pdf" }, @@ -510,7 +510,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "943b276b-a073-4141-9e5e-cad489d1f65b" + "id": "bddf3814-1bc9-442b-82fa-4bed9cbf8ef2" }, "location": "balance.xlsx" }, @@ -519,7 +519,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "presentation.ppt" }, @@ -528,7 +528,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "presentation.ppt" }, @@ -550,7 +550,7 @@ "location": "important/important/presentation.ppt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -561,7 +561,7 @@ "location": "file.txt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -572,7 +572,7 @@ "location": "document.pdf", "result": { "content": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" } } }, @@ -583,7 +583,7 @@ "location": "presentation.ppt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -598,7 +598,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" }, "location": "documents/document.pdf" }, @@ -609,7 +609,7 @@ "location": "documents/document.pdf", "result": { "content": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" } } }, @@ -630,7 +630,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" }, "location": "document.pdf" }, @@ -639,7 +639,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "file.txt" }, @@ -648,7 +648,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "file.txt" }, @@ -657,7 +657,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" }, "location": "documents/documents/document.pdf" }, @@ -692,7 +692,7 @@ "location": "presentation.ppt", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -703,7 +703,7 @@ "location": "file.txt", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -720,7 +720,7 @@ "location": "important/important/presentation.ppt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -729,7 +729,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "documents/documents/balance.xlsx" }, @@ -738,7 +738,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "documents/home/document.pdf" }, @@ -747,7 +747,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "important/important/file.txt" }, @@ -756,7 +756,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "location": "home/file.txt" }, @@ -765,7 +765,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "important/documents/document.pdf" }, @@ -818,7 +818,7 @@ "location": "documents/documents/presentation.ppt", "result": { "content": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" } } }, @@ -833,7 +833,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" }, "location": "home/balance.xlsx" }, @@ -844,7 +844,7 @@ "location": "home/balance.xlsx", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -861,7 +861,7 @@ "location": "important/documents/document.pdf", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -870,7 +870,7 @@ "type": "WRITE", "storageType": "PRIVATE", "contentId": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" }, "location": "home/documents/presentation.ppt" }, @@ -912,7 +912,7 @@ "location": "home/balance.xlsx", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -923,7 +923,7 @@ "location": "documents/home/document.pdf", "result": { "content": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" } } }, @@ -934,7 +934,7 @@ "location": "home/file.txt", "result": { "content": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } } }, @@ -945,7 +945,7 @@ "location": "important/documents/document.pdf", "result": { "content": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } } }, @@ -955,88 +955,1037 @@ "storageType": "PRIVATE", "location": "documents/documents/" }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" + }, + "location": "important/documents/file.txt" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/important/document.pdf", + "result": { + "content": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + } + } + }, + { + "userId": "user-1", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/important/" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "important/documents/presentation.ppt" + }, + { + "userId": "user-9", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt", + "home/file.txt" + ] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/presentation.ppt", + "result": { + "content": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "content": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-3", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-2", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "important/documents/" + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "document.pdf", + "result": { + "content": { + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" + } + } + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" + }, + "location": "documents/important/file.txt" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + } + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/home/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-9", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-6", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "bddf3814-1bc9-442b-82fa-4bed9cbf8ef2" + }, + "location": "document.pdf" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "home/balance.xlsx", + "result": { + "dirContent": [ + "home/balance.xlsx" + ] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "dirContent": [ + "important/presentation.ppt" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-8", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + }, + "location": "important/presentation.ppt" + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" + }, + "location": "documents/home/presentation.ppt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [ + "file.txt" + ] + } + }, + { + "userId": "user-0", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/" + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/balance.xlsx", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" + }, + "location": "home/balance.xlsx" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "documents/document.pdf" + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "documents/documents/document.pdf", + "home/documents/document.pdf", + "home/important/document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + } + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" + } + } + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + }, + "location": "home/documents/balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "home/file.txt" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/document.pdf", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "READ", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "content": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + } + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + } + } + }, + { + "userId": "user-7", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/documents/balance.xlsx", + "result": { + "content": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + } + } + }, + { + "userId": "user-7", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "home/documents/" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "" + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-3", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "important/balance.xlsx" + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "important/presentation.ppt", + "result": { + "content": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + } + } + }, + { + "userId": "user-8", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + } + } + }, + { + "userId": "user-4", + "type": "DELETE", + "storageType": "PRIVATE", + "location": "documents/home/" + }, + { + "userId": "user-4", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" + }, + "location": "document.pdf" + }, + { + "userId": "user-0", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "home/important/file.txt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "home/home/presentation.ppt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-0", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "documents/document.pdf", + "result": { + "content": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-5", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-2", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "file.txt" + }, + { + "userId": "user-3", + "type": "LIST", + "storageType": "PRIVATE", + "location": "documents/presentation.ppt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-4", + "type": "LIST", + "storageType": "PRIVATE", + "location": "presentation.ppt", + "result": { + "dirContent": [ + "presentation.ppt" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, { "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", "type": "DELETE", "storageType": "PRIVATE", - "location": "important/important/" + "location": "" + }, + { + "userId": "user-7", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "location": "document.pdf" + }, + { + "userId": "user-6", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" + }, + "location": "balance.xlsx" + }, + { + "userId": "user-8", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "important/presentation.ppt", + "home/balance.xlsx", + "balance.xlsx" + ] + } }, { "userId": "user-1", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "home/home/presentation.ppt", + "balance.xlsx" + ] + } + }, + { + "userId": "user-6", + "type": "LIST", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-4", + "type": "READ", + "storageType": "PRIVATE", + "location": "file.txt", + "result": { + "content": { + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" + } + } + }, + { + "userId": "user-5", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" + } + } + }, + { + "userId": "user-0", "type": "DELETE", "storageType": "PRIVATE", - "location": "important/documents/" + "location": "home/important/" + }, + { + "userId": "user-0", + "type": "READ", + "storageType": "PRIVATE", + "location": "home/file.txt", + "result": { + "content": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + } + } + }, + { + "userId": "user-8", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "presentation.ppt" + }, + { + "userId": "user-1", + "type": "WRITE", + "storageType": "PRIVATE", + "contentId": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "location": "home/documents/document.pdf" + }, + { + "userId": "user-7", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "document.pdf", + "balance.xlsx" + ] + } + }, + { + "userId": "user-9", + "type": "LIST", + "storageType": "PRIVATE", + "location": "important/home/file.txt", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-5", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [ + "balance.xlsx" + ] + } + }, + { + "userId": "user-2", + "type": "LIST", + "storageType": "PRIVATE", + "location": "", + "result": { + "dirContent": [] + } + }, + { + "userId": "user-6", + "type": "READ", + "storageType": "PRIVATE", + "location": "balance.xlsx", + "result": { + "content": { + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" + } + } } ], "userPrivateSpace": { - "user-1": {}, + "user-1": { + "home/home/presentation.ppt": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "home/documents/document.pdf": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, + "balance.xlsx": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + } + }, "user-0": { + "important/presentation.ppt": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" + }, "presentation.ppt": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, "home/file.txt": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" } }, "user-5": { - "documents/documents/document.pdf": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" - }, - "home/important/document.pdf": { - "id": "6612de12-3a82-4213-b3f9-2a618003c1b0" - }, "balance.xlsx": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" } }, "user-4": { - "file.txt": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "document.pdf": { + "id": "f0b369bf-5800-4413-8c8d-efeb6f01dfef" + }, + "presentation.ppt": { + "id": "0da90c49-ee7d-4711-bdd9-3c27693c2739" + }, + "documents/document.pdf": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" }, - "documents/home/document.pdf": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "file.txt": { + "id": "65d8cada-2213-4f2b-94b3-c542f8f0cad4" } }, "user-3": { - "home/documents/presentation.ppt": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" - } - }, - "user-2": { + "important/balance.xlsx": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, "presentation.ppt": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "id": "5bcdf706-bc73-4b1c-bc2d-0eaaa7b794f1" } }, - "user-9": { - "document.pdf": { - "id": "bb004a4e-b5fa-4e91-8103-a9cca394565d" + "user-2": {}, + "user-9": {}, + "user-8": { + "important/presentation.ppt": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" }, - "file.txt": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "home/balance.xlsx": { + "id": "90f6c20b-569f-48c3-a522-765b743e12d8" }, - "documents/home/balance.xlsx": { - "id": "6525b867-77a1-4070-870f-9ec5a2de8dec" - } - }, - "user-8": { - "document.pdf": { - "id": "768f827b-2b68-4580-8fd2-9c94ef825574" + "presentation.ppt": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" }, - "important/important/presentation.ppt": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" + "balance.xlsx": { + "id": "a67411e3-1e0e-4729-869d-b99b66fde9fd" } }, "user-7": { - "home/balance.xlsx": { - "id": "521b937b-c355-4c96-85d8-d0e8be3bf069" + "document.pdf": { + "id": "aac4d0d0-efb1-49bb-9759-90550cef00d2" + }, + "balance.xlsx": { + "id": "5bcdb1dd-4aed-4048-bf1a-738f389ef31a" } }, "user-6": { - "file.txt": { - "id": "7b486508-4e09-4dcb-b8f0-14020ab44c15" - }, "balance.xlsx": { - "id": "943b276b-a073-4141-9e5e-cad489d1f65b" + "id": "bc5e34c3-bb57-4343-8709-a9fc9be0ef15" } } }, diff --git a/datasafe-long-run-tests/pom.xml b/datasafe-long-run-tests/pom.xml index 3a54c34ed..1fe23d8d4 100644 --- a/datasafe-long-run-tests/pom.xml +++ b/datasafe-long-run-tests/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-metainfo/datasafe-metainfo-version-api/pom.xml b/datasafe-metainfo/datasafe-metainfo-version-api/pom.xml index de8f82093..62fcb560b 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-api/pom.xml +++ b/datasafe-metainfo/datasafe-metainfo-version-api/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-metainfo - 0.6.2 + 0.7.0 datasafe-metainfo-version-api @@ -25,4 +25,22 @@ ${project.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-metainfo/datasafe-metainfo-version-api/src/main/java/de/adorsys/datasafe/metainfo/version/api/actions/VersionedList.java b/datasafe-metainfo/datasafe-metainfo-version-api/src/main/java/de/adorsys/datasafe/metainfo/version/api/actions/VersionedList.java index 59c00a23c..cf0d9d6b7 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-api/src/main/java/de/adorsys/datasafe/metainfo/version/api/actions/VersionedList.java +++ b/datasafe-metainfo/datasafe-metainfo-version-api/src/main/java/de/adorsys/datasafe/metainfo/version/api/actions/VersionedList.java @@ -2,6 +2,7 @@ import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.metainfo.version.api.version.WithVersionStrategy; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.privatestore.api.actions.ListPrivate; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.VersionStrategy; @@ -19,12 +20,12 @@ public interface VersionedList extends ListPrivate, W * Lists latest resource locations, their date will correspond to latest one, not actual write date */ @Override - Stream> list(ListRequest request); + PasswordClearingStream> list(ListRequest request); /** * Lists versions of resource and provides latest resource link location. */ - Stream, ResolvedResource, Version>> listVersioned( + PasswordClearingStream, ResolvedResource, Version>> listVersioned( ListRequest request ); } diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/pom.xml b/datasafe-metainfo/datasafe-metainfo-version-impl/pom.xml index 8962f7572..b0785ebe3 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/pom.xml +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-metainfo - 0.6.2 + 0.7.0 datasafe-metainfo-version-impl diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/LatestPrivateSpaceImpl.java b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/LatestPrivateSpaceImpl.java index 2f93fa222..dec1aa0a7 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/LatestPrivateSpaceImpl.java +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/LatestPrivateSpaceImpl.java @@ -7,6 +7,9 @@ import de.adorsys.datasafe.metainfo.version.api.actions.VersionedWrite; import de.adorsys.datasafe.metainfo.version.api.version.VersionedPrivateSpaceService; import de.adorsys.datasafe.metainfo.version.impl.version.types.LatestDFSVersion; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.actions.RemoveRequest; @@ -49,7 +52,7 @@ public LatestPrivateSpaceImpl(V strategy, VersionedList listService, Versione // Delegate didn't work @Override - public Stream> list(ListRequest request) { + public PasswordClearingStream> list(ListRequest request) { return listService.list(request); } @@ -62,7 +65,7 @@ public Stream, ResolvedResource, Ver // Delegate didn't work @Override - public InputStream read(ReadRequest request) { + public PasswordClearingInputStream read(ReadRequest request) { return readService.read(request); } @@ -70,11 +73,17 @@ public InputStream read(ReadRequest request) { @Override public void remove(RemoveRequest request) { removeService.remove(request); + // password clearance is done in removeService + } + + @Override + public void makeSurePasswordClearanceIsDone() { + } // Delegate didn't work @Override - public OutputStream write(WriteRequest request) { + public PasswordClearingOutputStream write(WriteRequest request) { return writeService.write(request); } } diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestListImpl.java b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestListImpl.java index 2a73b2fbf..f093f6a3e 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestListImpl.java +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestListImpl.java @@ -6,6 +6,8 @@ import de.adorsys.datasafe.metainfo.version.impl.version.VersionEncoderDecoder; import de.adorsys.datasafe.metainfo.version.impl.version.types.DFSVersion; import de.adorsys.datasafe.metainfo.version.impl.version.types.LatestDFSVersion; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.privatestore.api.actions.ListPrivate; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; @@ -45,15 +47,15 @@ public LatestListImpl(V strategy, VersionEncoderDecoder encoder, ListPrivate lis } @Override - public Stream> list(ListRequest request) { + public PasswordClearingStream> list(ListRequest request) { // Returns absolute location of versioned resource tagged with date based on link - return listVersioned(request) + return new PasswordClearingStream(listVersioned(request) .map(Versioned::stripVersion) - .map(AbsoluteLocation::new); + .map(AbsoluteLocation::new), request.getOwner().getReadKeyPassword()); } @Override - public Stream, ResolvedResource, Version>> listVersioned( + public PasswordClearingStream, ResolvedResource, Version>> listVersioned( ListRequest request) { ListRequest forLatestSnapshotDir = request.toBuilder().location( @@ -67,10 +69,10 @@ public Stream, ResolvedResource, Ver request.getStorageIdentifier() ); - return listPrivate + return new PasswordClearingStream<>(listPrivate .list(forLatestSnapshotDir) .map(it -> parseVersion(it, linkDecryptor)) - .filter(Objects::nonNull); + .filter(Objects::nonNull), request.getOwner().getReadKeyPassword()); } private Versioned, ResolvedResource, Version> parseVersion( diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestReadImpl.java b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestReadImpl.java index 632920a76..1c3a8db07 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestReadImpl.java +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestReadImpl.java @@ -4,6 +4,7 @@ import de.adorsys.datasafe.metainfo.version.api.actions.VersionedRead; import de.adorsys.datasafe.metainfo.version.api.version.EncryptedLatestLinkService; import de.adorsys.datasafe.metainfo.version.impl.version.types.LatestDFSVersion; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; import de.adorsys.datasafe.privatestore.api.actions.ReadFromPrivate; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; @@ -39,7 +40,7 @@ public LatestReadImpl(V versionStrategy, ReadFromPrivate readFromPrivate, } @Override - public InputStream read(ReadRequest request) { + public PasswordClearingInputStream read(ReadRequest request) { AbsoluteLocation latestSnapshotLink = latestVersionLinkLocator.resolveLatestLinkLocation( diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestRemoveImpl.java b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestRemoveImpl.java index c75f0cb3b..4a5d2e7d2 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestRemoveImpl.java +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestRemoveImpl.java @@ -49,5 +49,11 @@ public void remove(RemoveRequest request) { .location(latestSnapshotLink.getResource()) .build() ); + request.getOwner().getReadKeyPassword().clear(); + } + + @Override + public void makeSurePasswordClearanceIsDone() { + } } diff --git a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestWriteImpl.java b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestWriteImpl.java index f895f26a7..0e766f782 100644 --- a/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestWriteImpl.java +++ b/datasafe-metainfo/datasafe-metainfo-version-impl/src/main/java/de/adorsys/datasafe/metainfo/version/impl/version/latest/actions/LatestWriteImpl.java @@ -5,6 +5,8 @@ import de.adorsys.datasafe.metainfo.version.api.version.EncryptedLatestLinkService; import de.adorsys.datasafe.metainfo.version.impl.version.VersionEncoderDecoder; import de.adorsys.datasafe.metainfo.version.impl.version.types.LatestDFSVersion; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.privatestore.api.actions.WriteToPrivate; import de.adorsys.datasafe.types.api.actions.WriteRequest; @@ -51,7 +53,7 @@ public LatestWriteImpl(V strategy, VersionEncoderDecoder encoder, EncryptedResou } @Override - public OutputStream write(WriteRequest request) { + public PasswordClearingOutputStream write(WriteRequest request) { AbsoluteLocation latestSnapshotLink = latestVersionLinkLocator.resolveLatestLinkLocation( request.getOwner(), request.getLocation(), request.getStorageIdentifier() @@ -67,7 +69,7 @@ public OutputStream write(WriteRequest request) { request.getStorageIdentifier() ); - return new VersionCommittingStream( + return new PasswordClearingOutputStream(new VersionCommittingStream( decryptedPathWithVersion.getVersion(), writeToPrivate.write( request.toBuilder().location(BasePrivateResource.forPrivate(decryptedPath)).build() @@ -75,7 +77,7 @@ public OutputStream write(WriteRequest request) { writeToPrivate, request.toBuilder().location(latestSnapshotLink.getResource()).build(), resourceRelativeToPrivate - ); + ), request.getOwner().getReadKeyPassword()); } private PrivateResource encryptPath(UserIDAuth auth, Uri uri, PrivateResource base, StorageIdentifier identifier) { diff --git a/datasafe-metainfo/pom.xml b/datasafe-metainfo/pom.xml index 8a0058322..e15852ffd 100644 --- a/datasafe-metainfo/pom.xml +++ b/datasafe-metainfo/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-privatestore/datasafe-privatestore-api/pom.xml b/datasafe-privatestore/datasafe-privatestore-api/pom.xml index de4eb7c2d..047773bf5 100644 --- a/datasafe-privatestore/datasafe-privatestore-api/pom.xml +++ b/datasafe-privatestore/datasafe-privatestore-api/pom.xml @@ -5,7 +5,7 @@ datasafe-privatestore de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -24,4 +24,21 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingInputStream.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingInputStream.java new file mode 100644 index 000000000..4a5e11f70 --- /dev/null +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingInputStream.java @@ -0,0 +1,28 @@ +package de.adorsys.datasafe.privatestore.api; + +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import lombok.experimental.Delegate; + +import java.io.Closeable; +import java.io.InputStream; + +@AllArgsConstructor +@RuntimeDelegate +public class PasswordClearingInputStream extends InputStream { + + @Delegate(types=InputStream.class, excludes = Closeable.class) + private final InputStream inputStream; + private final ReadKeyPassword readKeyPassword; + + @SneakyThrows + @Override + public void close() { + if (readKeyPassword != null) { + readKeyPassword.clear(); + } + inputStream.close(); + } +} diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingOutputStream.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingOutputStream.java new file mode 100644 index 000000000..5832d8ea2 --- /dev/null +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingOutputStream.java @@ -0,0 +1,26 @@ +package de.adorsys.datasafe.privatestore.api; + +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import lombok.experimental.Delegate; + +import java.io.Closeable; +import java.io.OutputStream; + +@AllArgsConstructor +public class PasswordClearingOutputStream extends OutputStream { + + @Delegate(types=OutputStream.class, excludes = Closeable.class) + private final OutputStream outputStream; + private final ReadKeyPassword readKeyPassword; + + @SneakyThrows + @Override + public void close() { + if (readKeyPassword != null) { + readKeyPassword.clear(); + } + outputStream.close(); + } +} diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingStream.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingStream.java new file mode 100644 index 000000000..94f3f5d23 --- /dev/null +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/PasswordClearingStream.java @@ -0,0 +1,30 @@ +package de.adorsys.datasafe.privatestore.api; + +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import lombok.experimental.Delegate; + +import java.io.Closeable; +import java.util.stream.BaseStream; +import java.util.stream.Stream; + +@AllArgsConstructor +public class PasswordClearingStream implements Stream { + @Delegate(types = LombokGenericStream.class, excludes = Closeable.class) + private final Stream stream; + private final ReadKeyPassword readKeyPassword; + + @SneakyThrows + @Override + public void close() { + if (readKeyPassword != null) { + readKeyPassword.clear(); + } + stream.close(); + } + + private abstract class LombokGenericStream implements Stream, BaseStream> { + } + +} diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ListPrivate.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ListPrivate.java index c8c86541e..4bab3009c 100644 --- a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ListPrivate.java +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ListPrivate.java @@ -1,6 +1,8 @@ package de.adorsys.datasafe.privatestore.api.actions; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PrivateResource; @@ -18,5 +20,5 @@ public interface ListPrivate { * @param request Where to list entries * @return Stream of absolute resource locations (location is decrypted) */ - Stream> list(ListRequest request); + PasswordClearingStream> list(ListRequest request); } diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ReadFromPrivate.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ReadFromPrivate.java index 9b061348f..86b306c5b 100644 --- a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ReadFromPrivate.java +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/ReadFromPrivate.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.privatestore.api.actions; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.resource.PrivateResource; @@ -18,5 +19,5 @@ public interface ReadFromPrivate { * @return Decrypted resource content stream * @apiNote Returned stream should be closed properly */ - InputStream read(ReadRequest request); + PasswordClearingInputStream read(ReadRequest request); } diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/RemoveFromPrivate.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/RemoveFromPrivate.java index 6e966e2d3..8c2d8af45 100644 --- a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/RemoveFromPrivate.java +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/RemoveFromPrivate.java @@ -14,4 +14,5 @@ public interface RemoveFromPrivate { * @param request Resource location (relative or absolute) */ void remove(RemoveRequest request); + void makeSurePasswordClearanceIsDone(); // this abstract method will make sure new implementations dont forget to handle password clearance } diff --git a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/WriteToPrivate.java b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/WriteToPrivate.java index 7584652de..8ac41b748 100644 --- a/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/WriteToPrivate.java +++ b/datasafe-privatestore/datasafe-privatestore-api/src/main/java/de/adorsys/datasafe/privatestore/api/actions/WriteToPrivate.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.privatestore.api.actions; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; import de.adorsys.datasafe.types.api.actions.WriteRequest; import de.adorsys.datasafe.types.api.resource.PrivateResource; @@ -17,5 +18,5 @@ public interface WriteToPrivate { * @return Stream that will get encrypted and stored within user privatespace. * @apiNote Returned stream should be closed properly */ - OutputStream write(WriteRequest request); + PasswordClearingOutputStream write(WriteRequest request); } diff --git a/datasafe-privatestore/datasafe-privatestore-impl/pom.xml b/datasafe-privatestore/datasafe-privatestore-impl/pom.xml index 62b6bb0bf..db67008b4 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/pom.xml +++ b/datasafe-privatestore/datasafe-privatestore-impl/pom.xml @@ -5,7 +5,7 @@ datasafe-privatestore de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -77,5 +77,13 @@ assertj-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + + diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImpl.java b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImpl.java index 2a4d22c88..730c1dcba 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImpl.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImpl.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.privatestore.impl.actions; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.privatestore.api.actions.ListPrivate; import de.adorsys.datasafe.storage.api.actions.StorageListService; @@ -32,7 +33,7 @@ public ListPrivateImpl(EncryptedResourceResolver resolver, StorageListService li } @Override - public Stream> list(ListRequest request) { + public PasswordClearingStream> list(ListRequest request) { // Access check is implicit - on keystore access in EncryptedResourceResolver AbsoluteLocation listDir = resolver.encryptAndResolvePath( @@ -45,9 +46,9 @@ public Stream> list(ListRequest { + return new PasswordClearingStream<>(listService.list(listDir).map(it -> { AbsoluteLocation decrypted = decryptingResolver.apply(it.getResource().asPrivate()); return new AbsoluteLocation<>(it.getResource().withResource(decrypted.getResource())); - }); + }), request.getOwner().getReadKeyPassword()); } } diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImpl.java b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImpl.java index aabfbd5d1..5d4fbae41 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImpl.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImpl.java @@ -2,15 +2,16 @@ import de.adorsys.datasafe.encrypiton.api.document.EncryptedDocumentReadService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.privatestore.api.actions.ReadFromPrivate; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.PrivateResource; import javax.inject.Inject; -import java.io.InputStream; /** * Default implementation for stream reading that encrypts incoming resource path if it is relative using @@ -22,6 +23,8 @@ public class ReadFromPrivateImpl implements ReadFromPrivate { private final EncryptedResourceResolver resolver; private final EncryptedDocumentReadService reader; + private ReadKeyPassword readKeyPassword; + @Inject public ReadFromPrivateImpl(EncryptedResourceResolver resolver, EncryptedDocumentReadService reader) { this.resolver = resolver; @@ -29,9 +32,9 @@ public ReadFromPrivateImpl(EncryptedResourceResolver resolver, EncryptedDocument } @Override - public InputStream read(ReadRequest request) { + public PasswordClearingInputStream read(ReadRequest request) { // Access check is implicit - on keystore access in EncryptedResourceResolver - return reader.read(resolveRelative(request)); + return new PasswordClearingInputStream(reader.read(resolveRelative(request)), request.getOwner().getReadKeyPassword()); } private ReadRequest> resolveRelative( @@ -46,4 +49,5 @@ private ReadRequest> resolveRelati .storageIdentifier(request.getStorageIdentifier()) .build(); } + } diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/RemoveFromPrivateImpl.java b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/RemoveFromPrivateImpl.java index 6ca59bb6d..1a84c0fb1 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/RemoveFromPrivateImpl.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/RemoveFromPrivateImpl.java @@ -33,5 +33,11 @@ public void remove(RemoveRequest request) { request.getLocation(), request.getStorageIdentifier()) ); + request.getOwner().getReadKeyPassword().clear(); + } + + @Override + public void makeSurePasswordClearanceIsDone() { + } } diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImpl.java b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImpl.java index ddea88ef8..969001427 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImpl.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/main/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImpl.java @@ -4,6 +4,7 @@ import de.adorsys.datasafe.encrypiton.api.document.EncryptedDocumentWriteService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.privatestore.api.actions.WriteToPrivate; import de.adorsys.datasafe.types.api.actions.WriteRequest; @@ -37,11 +38,11 @@ public WriteToPrivateImpl(PrivateKeyService privateKeyService, EncryptedResource } @Override - public OutputStream write(WriteRequest request) { + public PasswordClearingOutputStream write(WriteRequest request) { // Access check is explicit (will fail on bad keystore id): SecretKeyIDWithKey keySpec = privateKeyService.documentEncryptionSecretKey(request.getOwner()); - return writer.write( + return new PasswordClearingOutputStream(writer.write( WithCallback., ResourceWriteCallback>builder() .wrapped( resolver.encryptAndResolvePath( @@ -50,6 +51,6 @@ public OutputStream write(WriteRequest request) { request.getStorageIdentifier()) ).callbacks(request.getCallbacks()).build(), keySpec - ); + ), request.getOwner().getReadKeyPassword()); } } diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/EncryptedResourceResolverImplTest.java b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/EncryptedResourceResolverImplTest.java index b29844708..af7b6eb03 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/EncryptedResourceResolverImplTest.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/EncryptedResourceResolverImplTest.java @@ -5,13 +5,13 @@ import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.StorageIdentifier; import de.adorsys.datasafe.types.api.resource.Uri; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; @@ -36,7 +36,7 @@ class EncryptedResourceResolverImplTest extends BaseMockitoTest { private PrivateResource relative = BasePrivateResource.forPrivate(URI.create("./path")); private PrivateResource relativeEncrypted = BasePrivateResource.forPrivate(URI.create("./path/") .resolve(ENCRYPTED)); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private BucketAccessService accessService; diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImplTest.java b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImplTest.java index 251d13143..86a535402 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImplTest.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ListPrivateImplTest.java @@ -2,12 +2,12 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.storage.api.actions.StorageListService; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.resource.*; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -24,7 +24,7 @@ class ListPrivateImplTest extends BaseMockitoTest { private static final String PATH = "./"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private ResolvedResource resolvedResource; diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImplTest.java b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImplTest.java index bf4bab786..48344d2e9 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImplTest.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/ReadFromPrivateImplTest.java @@ -3,13 +3,13 @@ import de.adorsys.datasafe.encrypiton.api.document.EncryptedDocumentReadService; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -27,7 +27,7 @@ class ReadFromPrivateImplTest extends BaseMockitoTest { private static final String BYTES = "Hello"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); @Mock private EncryptedResourceResolver resolver; diff --git a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImplTest.java b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImplTest.java index e5212bb5a..5b48a6271 100644 --- a/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImplTest.java +++ b/datasafe-privatestore/datasafe-privatestore-impl/src/test/java/de/adorsys/datasafe/privatestore/impl/actions/WriteToPrivateImplTest.java @@ -5,7 +5,6 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; import de.adorsys.datasafe.privatestore.api.actions.EncryptedResourceResolver; import de.adorsys.datasafe.types.api.actions.WriteRequest; @@ -15,6 +14,7 @@ import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.WithCallback; import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -36,13 +36,16 @@ class WriteToPrivateImplTest extends BaseMockitoTest { private static final String BYTES = "Hello"; private static final URI ABSOLUTE_PATH = URI.create("s3://absolute"); - private UserIDAuth auth = new UserIDAuth(new UserID(""), new ReadKeyPassword("")); + private UserIDAuth auth = new UserIDAuth(new UserID(""), ReadKeyPasswordTestFactory.getForString("")); private SecretKeyIDWithKey secretKeyIDWithKey; @Mock private SecretKey secretKey; + @Mock + private SecretKey secretCrtKey; + @Mock private PrivateKeyService privateKeyService; diff --git a/datasafe-privatestore/pom.xml b/datasafe-privatestore/pom.xml index 48896e402..2e9a1c23e 100644 --- a/datasafe-privatestore/pom.xml +++ b/datasafe-privatestore/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-rest-impl/docker-compose.yml b/datasafe-rest-impl/docker-compose.yml new file mode 100644 index 000000000..838c605fb --- /dev/null +++ b/datasafe-rest-impl/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.3' +services: + db: + image: mysql:5.7 + restart: always + environment: + MYSQL_DATABASE: 'test_db' + MYSQL_USER: 'test' + MYSQL_PASSWORD: 'test' + MYSQL_ROOT_PASSWORD: 'password' + ports: + - '3306:3306' + expose: + - '3306' + volumes: + - my-db:/var/lib/mysql +volumes: + my-db: diff --git a/datasafe-rest-impl/pom.xml b/datasafe-rest-impl/pom.xml index 01e768861..de0a8fe33 100644 --- a/datasafe-rest-impl/pom.xml +++ b/datasafe-rest-impl/pom.xml @@ -5,11 +5,11 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 datasafe-rest-impl - 0.6.2 + 0.7.0 datasafe-rest-impl Spring Boot DataSafe Application @@ -92,10 +92,11 @@ logback-elasticsearch-appender 1.6 + com.fasterxml.jackson.core jackson-databind - 2.9.8 + 2.9.10 io.jsonwebtoken diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/BasicS3Factory.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/BasicS3Factory.java new file mode 100644 index 000000000..f3d53b438 --- /dev/null +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/BasicS3Factory.java @@ -0,0 +1,17 @@ +package de.adorsys.datasafe.rest.impl.config; + +import com.amazonaws.services.s3.AmazonS3; +import de.adorsys.datasafe.storage.impl.s3.S3ClientFactory; + +public class BasicS3Factory implements S3Factory { + + @Override + public AmazonS3 getClient(String endpointUrl, String region, String accessKey, String secretKey) { + return S3ClientFactory.getClient(endpointUrl, region, accessKey, secretKey); + } + + @Override + public AmazonS3 getAmazonClient(String region, String accessKey, String secretKey) { + return S3ClientFactory.getAmazonClient(region, accessKey, secretKey); + } +} diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfig.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfig.java index adcb2f6c6..950917e64 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfig.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfig.java @@ -20,6 +20,7 @@ import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImpl; import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; import de.adorsys.datasafe.directory.impl.profile.dfs.RegexAccessServiceWithStorageCredentialsImpl; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; import de.adorsys.datasafe.storage.api.RegexDelegatingStorage; import de.adorsys.datasafe.storage.api.SchemeDelegatingStorage; import de.adorsys.datasafe.storage.api.StorageService; @@ -29,11 +30,10 @@ import de.adorsys.datasafe.storage.impl.db.DatabaseStorageService; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.storage.impl.s3.BucketNameRemovingRouter; -import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; -import de.adorsys.datasafe.storage.impl.s3.S3ClientFactory; import de.adorsys.datasafe.storage.impl.s3.S3StorageService; import de.adorsys.datasafe.types.api.context.BaseOverridesRegistry; import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -66,19 +66,19 @@ public class DatasafeConfig { @Bean @ConditionalOnProperty(name = DATASAFE_S3_STORAGE, havingValue = "true") DFSConfig singleDfsConfigS3(DatasafeProperties properties) { - return new DefaultDFSConfig(properties.getSystemRoot(), properties.getKeystorePassword()); + return new DefaultDFSConfig(properties.getSystemRoot(), new ReadStorePassword(properties.getKeystorePassword())); } @Bean @ConditionalOnProperty(FILESYSTEM_ENV) DFSConfig singleDfsConfigFilesystem(DatasafeProperties properties) { - return new DefaultDFSConfig(properties.getSystemRoot(), properties.getKeystorePassword()); + return new DefaultDFSConfig(properties.getSystemRoot(), new ReadStorePassword(properties.getKeystorePassword())); } @Bean @ConditionalOnProperty(name = CLIENT_CREDENTIALS, havingValue = "true") DFSConfig withClientCredentials(DatasafeProperties properties) { - return new DFSConfigWithStorageCreds(properties.getSystemRoot(), properties.getKeystorePassword()); + return new DFSConfigWithStorageCreds(properties.getSystemRoot(), new ReadStorePassword(properties.getKeystorePassword())); } @Bean @@ -93,8 +93,8 @@ OverridesRegistry withClientCredentialsOverrides() { @Bean @ConditionalOnMissingBean(DFSConfig.class) DFSConfig multiDfsConfig(DatasafeProperties properties) { - return new MultiDFSConfig(URI.create(properties.getS3Path()), URI.create(properties.getDbProfilePath()), - properties.getKeystorePassword()); + return new MultiDFSConfig(URI.create(properties.getSystemRoot()), URI.create(properties.getDbUrl()), + new ReadStorePassword(properties.getKeystorePassword())); } /** @@ -102,7 +102,8 @@ DFSConfig multiDfsConfig(DatasafeProperties properties) { */ @Bean DefaultDatasafeServices datasafeService(StorageService storageService, DFSConfig dfsConfig, - Optional registry) { + Optional registry, + DatasafeProperties properties) { Security.addProvider(new BouncyCastleProvider()); @@ -111,12 +112,14 @@ DefaultDatasafeServices datasafeService(StorageService storageService, DFSConfig .config(dfsConfig) .storage(storageService) .overridesRegistry(registry.orElse(null)) + .encryption(properties.getEncryption().toEncryptionConfig()) .build(); } @Bean VersionedDatasafeServices versionedDatasafeServices(StorageService storageService, DFSConfig dfsConfig, - Optional registry) { + Optional registry, + DatasafeProperties properties) { Security.addProvider(new BouncyCastleProvider()); @@ -125,12 +128,13 @@ VersionedDatasafeServices versionedDatasafeServices(StorageService storageServic .config(dfsConfig) .storage(storageService) .overridesRegistry(registry.orElse(null)) + .encryption(properties.getEncryption().toEncryptionConfig()) .build(); } @Bean @ConditionalOnProperty(value = CLIENT_CREDENTIALS, havingValue = "true") - StorageService clientCredentials(AmazonS3 s3, DatasafeProperties properties) { + StorageService clientCredentials(AmazonS3 s3, S3Factory factory, DatasafeProperties properties) { ExecutorService executorService = ExecutorServiceUtil.submitterExecutesOnStarvationExecutingService(); S3StorageService basicStorage = new S3StorageService( s3, @@ -147,8 +151,9 @@ StorageService clientCredentials(AmazonS3 s3, DatasafeProperties properties) { Pattern.compile(".+"), new UriBasedAuthStorageService( acc -> new S3StorageService( - S3ClientFactory.getClient( - acc.getOnlyHostPart().toString(), + factory.getClient( + acc.getEndpoint(), + acc.getRegion(), acc.getAccessKey(), acc.getSecretKey() ), @@ -160,6 +165,11 @@ StorageService clientCredentials(AmazonS3 s3, DatasafeProperties properties) { ); } + @Bean + S3Factory factory() { + return new BasicS3Factory(); + } + /** * @return Filesystem based storage service */ @@ -203,14 +213,12 @@ StorageService multiStorageService(DatasafeProperties properties) { ExecutorServiceUtil.submitterExecutesOnStarvationExecutingService() ); - StorageService multiDfs = new SchemeDelegatingStorage( + return new SchemeDelegatingStorage( ImmutableMap.of( "s3", s3StorageService, "jdbc-mysql", db ) ); - - return multiDfs; } @Bean diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeProperties.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeProperties.java index e195aa00f..ddd7e8e01 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeProperties.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/DatasafeProperties.java @@ -1,5 +1,6 @@ package de.adorsys.datasafe.rest.impl.config; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -23,9 +24,6 @@ public class DatasafeProperties { */ private String keystorePassword; - private String s3Path; - private String dbProfilePath; - private String amazonUrl; private String amazonAccessKeyID; private String amazonSecretAccessKey; @@ -39,4 +37,6 @@ public class DatasafeProperties { * From where to serve static resources. */ private String staticResources; + + private MutableEncryptionConfig encryption = new MutableEncryptionConfig(); } diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/S3Factory.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/S3Factory.java new file mode 100644 index 000000000..7297baec4 --- /dev/null +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/config/S3Factory.java @@ -0,0 +1,9 @@ +package de.adorsys.datasafe.rest.impl.config; + +import com.amazonaws.services.s3.AmazonS3; + +public interface S3Factory { + + AmazonS3 getClient(String endpointUrl, String region, String accessKey, String secretKey); + AmazonS3 getAmazonClient(String region, String accessKey, String secretKey); +} diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/DocumentController.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/DocumentController.java index b155bacb0..ebe7e647f 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/DocumentController.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/DocumentController.java @@ -4,7 +4,6 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.rest.impl.exceptions.UnauthorizedException; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; @@ -67,7 +66,7 @@ public void readDocument(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path, HttpServletResponse response) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); ReadRequest request = ReadRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); // this is needed for swagger, produces is just a directive: @@ -94,7 +93,7 @@ public void writeDocument(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path, @RequestParam("file") MultipartFile file) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); WriteRequest request = WriteRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); try (OutputStream os = datasafeService.privateService().write(request); @@ -118,7 +117,7 @@ public List listDocuments(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @ApiParam(defaultValue = ".") @PathVariable(required = false) String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); path = Optional.ofNullable(path) .map(it -> it.replaceAll("^\\.$", "")) .orElse("./"); @@ -146,7 +145,7 @@ public void removeDocument(@RequestHeader String user, @RequestHeader String password, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); RemoveRequest request = RemoveRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); datasafeService.privateService().remove(request); diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/InboxController.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/InboxController.java index 75cedfff1..55b6cc0cb 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/InboxController.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/InboxController.java @@ -4,7 +4,6 @@ import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.rest.impl.exceptions.UnauthorizedException; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; @@ -77,7 +76,7 @@ public void readFromInbox(@RequestHeader String user, @RequestHeader String password, @PathVariable String path, HttpServletResponse response) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); PrivateResource resource = BasePrivateResource.forPrivate(path); // this is needed for swagger, produces is just a directive: response.addHeader(CONTENT_TYPE, APPLICATION_OCTET_STREAM_VALUE); @@ -100,7 +99,7 @@ public void readFromInbox(@RequestHeader String user, public void deleteFromInbox(@RequestHeader String user, @RequestHeader String password, @PathVariable String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); PrivateResource resource = BasePrivateResource.forPrivate(path); RemoveRequest request = RemoveRequest.forPrivate(userIDAuth, resource); dataSafeService.inboxService().remove(request); @@ -120,7 +119,7 @@ public List listInbox(@RequestHeader String user, @RequestHeader String password, @ApiParam(defaultValue = ".") @PathVariable(required = false) String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); path = Optional.ofNullable(path) .map(it -> it.replaceAll("^\\.$", "")) .orElse("./"); diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/ReadKeyPasswordHelper.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/ReadKeyPasswordHelper.java new file mode 100644 index 000000000..c0eae5298 --- /dev/null +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/ReadKeyPasswordHelper.java @@ -0,0 +1,16 @@ +package de.adorsys.datasafe.rest.impl.controller; + +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; + +import java.util.function.Supplier; + +public class ReadKeyPasswordHelper { + public static ReadKeyPassword getForString(String a) { + return new ReadKeyPassword(new Supplier() { + @Override + public char[] get() { + return a.toCharArray(); + } + }); + } +} diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/UserController.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/UserController.java index 4f6230025..f3c04fc8b 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/UserController.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/UserController.java @@ -4,7 +4,7 @@ import de.adorsys.datasafe.directory.api.types.StorageCredentials; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.rest.impl.config.DatasafeProperties; import de.adorsys.datasafe.rest.impl.dto.NewPasswordDTO; import de.adorsys.datasafe.rest.impl.dto.StorageCredsDTO; @@ -62,7 +62,7 @@ public class UserController { @ApiResponse(code = 400, message = "User already exists") }) public void createUser(@Validated @RequestBody UserDTO userDTO) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(userDTO.getPassword()); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(userDTO.getPassword()); UserIDAuth auth = new UserIDAuth(new UserID(userDTO.getUserName()), readKeyPassword); if (dataSafeService.userProfile().userExists(auth.getUserID())) { throw new UserExistsException("user '" + auth.getUserID().getValue() + "' already exists"); @@ -75,16 +75,16 @@ public void createUser(@Validated @RequestBody UserDTO userDTO) { public void changePassword(@RequestHeader String user, @RequestHeader String password, @Validated @RequestBody NewPasswordDTO newPassword) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); - dataSafeService.userProfile().updateReadKeyPassword(auth, new ReadKeyPassword(newPassword.getNewPassword())); + dataSafeService.userProfile().updateReadKeyPassword(auth, ReadKeyPasswordHelper.getForString(newPassword.getNewPassword())); } @GetMapping("/publicProfile") @ApiOperation("Reads users' public profile") public UserPublicProfileDTO getPublicProfile(@RequestHeader String user, @RequestHeader String password) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); return UserPublicProfileDTO.from(dataSafeService.userProfile().publicProfile(auth.getUserID())); } @@ -93,7 +93,7 @@ public UserPublicProfileDTO getPublicProfile(@RequestHeader String user, @ApiOperation("Reads users' private profile") public UserPrivateProfileDTO getPrivateProfile(@RequestHeader String user, @RequestHeader String password) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); return UserPrivateProfileDTO.from(dataSafeService.userProfile().privateProfile(auth)); } @@ -103,7 +103,7 @@ public UserPrivateProfileDTO getPrivateProfile(@RequestHeader String user, public void updatePublicProfile(@RequestHeader String user, @RequestHeader String password, @Validated @RequestBody UserPublicProfileDTO profileDto) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); dataSafeService.userProfile().updatePublicProfile(auth, profileDto.toProfile()); } @@ -113,7 +113,7 @@ public void updatePublicProfile(@RequestHeader String user, public void updatePrivateProfile(@RequestHeader String user, @RequestHeader String password, @Validated @RequestBody UserPrivateProfileDTO profileDto) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); dataSafeService.userProfile().updatePrivateProfile(auth, profileDto.toProfile()); } @@ -123,7 +123,7 @@ public void updatePrivateProfile(@RequestHeader String user, public void addStorageCredentials(@RequestHeader String user, @RequestHeader String password, @Validated @RequestBody StorageCredsDTO creds) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); dataSafeService.userProfile().registerStorageCredentials( auth, @@ -137,7 +137,7 @@ public void addStorageCredentials(@RequestHeader String user, public void removeStorageCredentials(@RequestHeader String user, @RequestHeader String password, @RequestHeader String storageId) { - ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + ReadKeyPassword readKeyPassword = ReadKeyPasswordHelper.getForString(password); UserIDAuth auth = new UserIDAuth(new UserID(user), readKeyPassword); dataSafeService.userProfile().deregisterStorageCredentials(auth, new StorageIdentifier(storageId)); } @@ -156,7 +156,7 @@ public void removeStorageCredentials(@RequestHeader String user, }) public void deleteUser(@RequestHeader String user, @RequestHeader String password) { - UserIDAuth auth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth auth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); if (!dataSafeService.userProfile().userExists(auth.getUserID())) { throw new UserDoesNotExistsException("user '" + auth.getUserID().getValue() + "' does not exists"); } diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/VersionController.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/VersionController.java index 11c8a33af..02872dd44 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/VersionController.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/controller/VersionController.java @@ -4,7 +4,6 @@ import de.adorsys.datasafe.business.impl.service.VersionedDatasafeServices; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.metainfo.version.impl.version.types.DFSVersion; import de.adorsys.datasafe.rest.impl.exceptions.UnauthorizedException; import de.adorsys.datasafe.types.api.actions.ListRequest; @@ -51,7 +50,7 @@ public List listVersionedDocuments(@RequestHeader String user, @RequestHeader String password, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable(required = false) String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); path = Optional.ofNullable(path).orElse("./"); try { List documentList = versionedDatasafeServices.latestPrivate().listWithDetails( @@ -81,7 +80,7 @@ public void readVersionedDocument(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path, HttpServletResponse response) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); ReadRequest request = ReadRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); // this is needed for swagger, produces is just a directive: @@ -108,7 +107,7 @@ public void writeVersionedDocument(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path, @RequestParam("file") MultipartFile file) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); WriteRequest request = WriteRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); try (OutputStream os = versionedDatasafeServices.latestPrivate().write(request); @@ -130,7 +129,7 @@ public void deleteVersionedDocument(@RequestHeader String user, @RequestHeader String password, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @PathVariable String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); RemoveRequest request = RemoveRequest.forPrivate(userIDAuth, new StorageIdentifier(storageId), path); versionedDatasafeServices.latestPrivate().remove(request); @@ -151,7 +150,7 @@ public List versionsOf(@RequestHeader String user, @RequestHeader(defaultValue = StorageIdentifier.DEFAULT_ID) String storageId, @ApiParam(defaultValue = ".") @PathVariable(required = false) String path) { - UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), new ReadKeyPassword(password)); + UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password)); path = Optional.ofNullable(path) .map(it -> it.replaceAll("^\\.$", "")) .orElse("./"); diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPrivateProfileDTO.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPrivateProfileDTO.java index 2a761e7cb..d2d81beac 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPrivateProfileDTO.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPrivateProfileDTO.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.rest.impl.dto; import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.types.api.global.Version; import de.adorsys.datasafe.types.api.resource.StorageIdentifier; import lombok.AllArgsConstructor; import lombok.Data; @@ -81,6 +82,7 @@ public UserPrivateProfile toProfile() { it -> Util.privateResource(it.getValue()) )) ) + .appVersion(Version.current()) .build(); } } diff --git a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPublicProfileDTO.java b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPublicProfileDTO.java index 1eb71e779..b4ea0d4b7 100644 --- a/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPublicProfileDTO.java +++ b/datasafe-rest-impl/src/main/java/de/adorsys/datasafe/rest/impl/dto/UserPublicProfileDTO.java @@ -1,6 +1,7 @@ package de.adorsys.datasafe.rest.impl.dto; import de.adorsys.datasafe.directory.api.types.UserPublicProfile; +import de.adorsys.datasafe.types.api.global.Version; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -29,6 +30,7 @@ public UserPublicProfile toProfile() { return UserPublicProfile.builder() .inbox(Util.publicResource(inbox)) .publicKeys(Util.publicResource(publicKeys)) + .appVersion(Version.current()) .build(); } } diff --git a/datasafe-rest-impl/src/main/resources/application.properties b/datasafe-rest-impl/src/main/resources/application.properties index 222fcfafb..215fe3dff 100644 --- a/datasafe-rest-impl/src/main/resources/application.properties +++ b/datasafe-rest-impl/src/main/resources/application.properties @@ -19,14 +19,19 @@ datasafe.amazonRegion=${AWS_REGION} #datasafe.amazonAccessKeyID= #datasafe.amazonRegion= -datasafe.s3Path=s3://adorsys-docusafe - # MySQL db -# example db path: jdbc-mysql://localhost:3306/test_db/ -datasafe.dbProfilePath=${MYSQL_PROFILE_PATH} # example url: jdbc-mysql://localhost:3306/test_db/ datasafe.dbUrl=${MYSQL_URL} datasafe.dbUsername=${MYSQL_USER} datasafe.dbPassword=${MYSQL_PASSWORD} spring.liquibase.enabled=false + +datasafe.encryption.keystore.type=BCFKS +datasafe.encryption.keystore.encryptionAlgo=AES256_KWP +datasafe.encryption.keystore.pbkdf.scrypt.cost=16384 +datasafe.encryption.keystore.pbkdf.scrypt.blockSize=8 +datasafe.encryption.keystore.pbkdf.scrypt.parallelization=1 +datasafe.encryption.keystore.pbkdf.scrypt.saltLength=16 +datasafe.encryption.keystore.macAlgo=HmacSHA3_512 +datasafe.encryption.cms.algo=CHACHA20_POLY1305 diff --git a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfigTest.java b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfigTest.java new file mode 100644 index 000000000..0fa08a3cd --- /dev/null +++ b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/config/DatasafeConfigTest.java @@ -0,0 +1,81 @@ +package de.adorsys.datasafe.rest.impl.config; + +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.S3Object; +import de.adorsys.datasafe.storage.api.StorageService; +import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import java.io.ByteArrayInputStream; + +import static java.nio.charset.StandardCharsets.UTF_8; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + +@ExtendWith(SpringExtension.class) +@SpringBootTest +@Slf4j +@ActiveProfiles("client-credentials-test") +class DatasafeConfigTest extends BaseMockitoTest { + + private static final String BASIC_STORAGE_ANSWER = "Hello"; + private static final String BASIC_FILE_STORAGE_PATH = "tmp/profile"; + private static final String BASIC_STORAGE_PATH = "file:///tmp/profile"; + + + private static final String DATA_BUCKET = "databucket"; + private static final String DATA_STORAGE_ANSWER = "Hello storage"; + private static final String DATA_FILE_STORAGE_PATH = "path-to/file"; + private static final String DATA_STORAGE_PATH = "http://user:passwd@0.0.0.0:9000/eu-central-1/databucket/path-to/file"; + + @Value("${AWS_BUCKET}") + private String basicBucket; + + // bucket name is overridden by dev build environment variable + @Autowired + private StorageService storageService; + + @MockBean + private AmazonS3 amazonS3; + + @Mock + private AmazonS3 amazonS3FromFactory; + + @MockBean + private S3Factory s3Factory; + + @BeforeEach + void prepare() { + S3Object object = new S3Object(); + object.setObjectContent(new ByteArrayInputStream(BASIC_STORAGE_ANSWER.getBytes(UTF_8))); + when(amazonS3.getObject(basicBucket, BASIC_FILE_STORAGE_PATH)).thenReturn(object); + + when(s3Factory.getClient("http://0.0.0.0:9000/", "eu-central-1", "user", "passwd")) + .thenReturn(amazonS3FromFactory); + S3Object another = new S3Object(); + another.setObjectContent(new ByteArrayInputStream(DATA_STORAGE_ANSWER.getBytes(UTF_8))); + when(amazonS3FromFactory.getObject(DATA_BUCKET, DATA_FILE_STORAGE_PATH)).thenReturn(another); + } + + @Test + void testProperRouting() { + assertThat( + storageService.read(BasePrivateResource.forAbsolutePrivate(BASIC_STORAGE_PATH)) + ).hasContent(BASIC_STORAGE_ANSWER); + + assertThat( + storageService.read(BasePrivateResource.forAbsolutePrivate(DATA_STORAGE_PATH)) + ).hasContent(DATA_STORAGE_ANSWER); + } +} \ No newline at end of file diff --git a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/BaseTokenDatasafeEndpointTest.java b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/BaseTokenDatasafeEndpointTest.java index bad5bc08e..2800a5c25 100644 --- a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/BaseTokenDatasafeEndpointTest.java +++ b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/BaseTokenDatasafeEndpointTest.java @@ -1,5 +1,6 @@ package de.adorsys.datasafe.rest.impl.controller; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.rest.impl.dto.UserDTO; import de.adorsys.datasafe.rest.impl.security.SecurityConstants; import de.adorsys.datasafe.rest.impl.security.SecurityProperties; @@ -14,7 +15,7 @@ public abstract class BaseTokenDatasafeEndpointTest extends BaseDatasafeEndpoint static final String PASSWORD_DESCRIPTION = "datasafe user's password"; static final String TEST_USER = "test"; - static final String TEST_PASS = "test"; + static final ReadKeyPassword TEST_PASS = ReadKeyPasswordHelper.getForString("test"); String token; private SecurityProperties securityProperties; diff --git a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/DocumentControllerTest.java b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/DocumentControllerTest.java index 4ec4036bc..fb4f358b5 100644 --- a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/DocumentControllerTest.java +++ b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/DocumentControllerTest.java @@ -1,6 +1,9 @@ package de.adorsys.datasafe.rest.impl.controller; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingStream; import de.adorsys.datasafe.privatestore.impl.PrivateSpaceServiceImpl; import de.adorsys.datasafe.types.api.resource.*; import lombok.SneakyThrows; @@ -48,7 +51,7 @@ public void setup() { @SneakyThrows @Test void readDocumentTest() { - when(dataSafeService.privateService().read(any())).thenReturn(new ByteArrayInputStream("file content".getBytes())); + when(dataSafeService.privateService().read(any())).thenReturn(new PasswordClearingInputStream(new ByteArrayInputStream("file content".getBytes()), null)); RestDocumentationResultHandler document = document("document-read-success", pathParameters( @@ -76,7 +79,7 @@ void readDocumentTest() { @SneakyThrows @Test void writeDocumentTest() { - when(dataSafeService.privateService().write(any())).thenReturn(new ByteArrayOutputStream()); + when(dataSafeService.privateService().write(any())).thenReturn(new PasswordClearingOutputStream(new ByteArrayOutputStream(), null)); RestDocumentationResultHandler document = document("document-write-success", pathParameters( @@ -106,7 +109,7 @@ void listDocumentsTest() { Uri location = new Uri("s3://bucket/user/path/to/file.txt"); PrivateResource privateResource = new BasePrivateResource(location).resolve(new Uri("/path/to/file.txt"), new Uri("/path/to/file.txt")); AbsoluteLocation resolvedPrivate = new AbsoluteLocation<>(new BaseResolvedResource(privateResource, Instant.now())); - when(dataSafeService.privateService().list(any())).thenReturn(Stream.of(resolvedPrivate)); + when(dataSafeService.privateService().list(any())).thenReturn(new PasswordClearingStream<>(Stream.of(resolvedPrivate), null)); RestDocumentationResultHandler document = document("document-list-success", pathParameters( diff --git a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/UserControllerTest.java b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/UserControllerTest.java index 5cce87c6a..66e1cf947 100644 --- a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/UserControllerTest.java +++ b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/UserControllerTest.java @@ -8,7 +8,6 @@ import de.adorsys.datasafe.directory.impl.profile.operations.DFSBasedProfileStorageImpl; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.rest.impl.dto.UserDTO; import de.adorsys.datasafe.types.api.resource.StorageIdentifier; import lombok.SneakyThrows; @@ -93,7 +92,7 @@ void changePasswordTest() { verify(userProfile).updateReadKeyPassword( eq(new UserIDAuth(TEST_USER, TEST_PASS)), - eq(new ReadKeyPassword(newPassword)) + eq(ReadKeyPasswordHelper.getForString(newPassword)) ); } diff --git a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/VersionControllerTest.java b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/VersionControllerTest.java index 812c012ee..0ad043f4e 100644 --- a/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/VersionControllerTest.java +++ b/datasafe-rest-impl/src/test/java/de/adorsys/datasafe/rest/impl/controller/VersionControllerTest.java @@ -4,6 +4,8 @@ import de.adorsys.datasafe.metainfo.version.api.version.VersionedPrivateSpaceService; import de.adorsys.datasafe.metainfo.version.impl.version.latest.DefaultVersionInfoServiceImpl; import de.adorsys.datasafe.metainfo.version.impl.version.types.DFSVersion; +import de.adorsys.datasafe.privatestore.api.PasswordClearingInputStream; +import de.adorsys.datasafe.privatestore.api.PasswordClearingOutputStream; import de.adorsys.datasafe.types.api.resource.*; import lombok.SneakyThrows; import org.junit.jupiter.api.BeforeEach; @@ -51,7 +53,7 @@ public void setup() { @SneakyThrows @Test void readVersionedDocumentTest() { - when(versionedDatasafeServices.latestPrivate().read(any())).thenReturn(new ByteArrayInputStream("hello".getBytes())); + when(versionedDatasafeServices.latestPrivate().read(any())).thenReturn(new PasswordClearingInputStream(new ByteArrayInputStream("hello".getBytes()), null)); RestDocumentationResultHandler document = document("versioned-read-success", pathParameters( @@ -79,7 +81,7 @@ void readVersionedDocumentTest() { @SneakyThrows @Test void writeVersionedDocumentTest() { - when(versionedDatasafeServices.latestPrivate().write(any())).thenReturn(new ByteArrayOutputStream()); + when(versionedDatasafeServices.latestPrivate().write(any())).thenReturn(new PasswordClearingOutputStream(new ByteArrayOutputStream(), null)); RestDocumentationResultHandler document = document("versioned-write-success", pathParameters( diff --git a/datasafe-rest-impl/src/test/resources/application-client-credentials-test.yaml b/datasafe-rest-impl/src/test/resources/application-client-credentials-test.yaml new file mode 100644 index 000000000..6c29de85d --- /dev/null +++ b/datasafe-rest-impl/src/test/resources/application-client-credentials-test.yaml @@ -0,0 +1,8 @@ +ALLOW_CLIENT_S3_CREDENTIALS: true +AWS_BUCKET: fooBar # this can be overridden on our dev branch, don't expect it in build, rely on injected value + +datasafe: + systemRoot: file:///tmp/ + amazonAccessKeyID: access + amazonSecretAccessKey: secret + amazonRegion: eu-central-1 diff --git a/datasafe-runtime-delegate/pom.xml b/datasafe-runtime-delegate/pom.xml index e40f589b3..22acc7d7a 100644 --- a/datasafe-runtime-delegate/pom.xml +++ b/datasafe-runtime-delegate/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe - 0.6.2 + 0.7.0 datasafe-runtime-delegate diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-api/pom.xml b/datasafe-simple-adapter/datasafe-simple-adapter-api/pom.xml index 4dd956561..47389e8d4 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-api/pom.xml +++ b/datasafe-simple-adapter/datasafe-simple-adapter-api/pom.xml @@ -5,32 +5,52 @@ datasafe-simple-adapter de.adorsys - 0.6.2 + 0.7.0 4.0.0 datasafe-simple-adapter-api + + de.adorsys + datasafe-types-api + ${project.version} + de.adorsys datasafe-encryption-api ${project.version} - compile + org.slf4j slf4j-api ${slf4j-simple.version} + org.junit.jupiter junit-jupiter-api 5.4.1 test - - - + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/SimpleDatasafeService.java b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/SimpleDatasafeService.java index a4cf815cb..eba0b177e 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/SimpleDatasafeService.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/SimpleDatasafeService.java @@ -2,7 +2,7 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.simple.adapter.api.types.*; import java.io.OutputStream; diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionConfig.java b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacyPathEncryptionConfig.java similarity index 88% rename from datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionConfig.java rename to datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacyPathEncryptionConfig.java index 4581ce89e..83b635699 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/PathEncryptionConfig.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacyPathEncryptionConfig.java @@ -1,4 +1,4 @@ -package de.adorsys.datasafe.encrypiton.impl.pathencryption; +package de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption; import javax.crypto.Cipher; import javax.crypto.SecretKey; @@ -6,7 +6,7 @@ /** * Path encryption cipher configurer. */ -public interface PathEncryptionConfig { +public interface LegacyPathEncryptionConfig { /** * @param secretKey Use this secret key diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacySymmetricPathEncryptionService.java b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacySymmetricPathEncryptionService.java new file mode 100644 index 000000000..286414dbc --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-api/src/main/java/de/adorsys/datasafe/simple/adapter/api/legacy/pathencryption/LegacySymmetricPathEncryptionService.java @@ -0,0 +1,27 @@ +package de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption; + +import de.adorsys.datasafe.types.api.resource.Uri; + +import javax.crypto.SecretKey; + +/** + * Encrypts and decrypts relative URI's using symmetric cryptography. + */ +public interface LegacySymmetricPathEncryptionService { + + /** + * Encrypts relative URI using secret key and serializes it into URL-friendly format. + * @param secretKey Key to encrypt with + * @param bucketPath Path to encrypt + * @return Encrypted relative URI that can be safely published. + */ + Uri encrypt(SecretKey secretKey, Uri bucketPath); + + /** + * Decrypts relative URI using secret key. + * @param secretKey Key to decrypt with + * @param bucketPath Path to decrypt + * @return Decrypted relative URI typically containing some sensitive information. + */ + Uri decrypt(SecretKey secretKey, Uri bucketPath); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/pom.xml b/datasafe-simple-adapter/datasafe-simple-adapter-impl/pom.xml index 6550801b3..4f67b43dc 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/pom.xml +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/pom.xml @@ -5,7 +5,7 @@ datasafe-simple-adapter de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -103,6 +103,11 @@ ${maven.compiler.plugin.version} + + com.google.dagger + dagger-compiler + ${dagger.version} + org.projectlombok lombok diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/LegacyDatasafeService.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/LegacyDatasafeService.java new file mode 100644 index 000000000..593e36cf4 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/LegacyDatasafeService.java @@ -0,0 +1,73 @@ +package de.adorsys.datasafe.simple.adapter.impl; + +import dagger.BindsInstance; +import dagger.Component; +import de.adorsys.datasafe.business.impl.document.DefaultDocumentModule; +import de.adorsys.datasafe.business.impl.inbox.actions.DefaultInboxActionsModule; +import de.adorsys.datasafe.business.impl.keystore.DefaultKeyStoreModule; +import de.adorsys.datasafe.business.impl.privatestore.actions.DefaultPrivateActionsModule; +import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; +import de.adorsys.datasafe.business.impl.storage.DefaultStorageModule; +import de.adorsys.datasafe.directory.api.config.DFSConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.simple.adapter.impl.cmsencryption.SwitchableCMSEncryptionModule; +import de.adorsys.datasafe.simple.adapter.impl.pathencryption.LegacyCredentialsModule; +import de.adorsys.datasafe.simple.adapter.impl.pathencryption.LegacyPathEncryptionModule; +import de.adorsys.datasafe.simple.adapter.impl.profile.HardcodedProfileModule; +import de.adorsys.datasafe.storage.api.StorageService; +import de.adorsys.datasafe.types.api.context.overrides.OverridesRegistry; + +import javax.annotation.Nullable; +import javax.inject.Singleton; + +/** + * Datasafe service that is compatible with 0.4.3 release. + */ +@Singleton +@Component(modules = { + LegacyCredentialsModule.class, + DefaultKeyStoreModule.class, + DefaultDocumentModule.class, + SwitchableCMSEncryptionModule.class, + LegacyPathEncryptionModule.class, + DefaultInboxActionsModule.class, + DefaultPrivateActionsModule.class, + HardcodedProfileModule.class, + DefaultStorageModule.class +}) +public interface LegacyDatasafeService extends DefaultDatasafeServices { + + @Component.Builder + interface Builder { + + /** + * Binds (configures) system root uri - where user profiles will be located and system + * access to open (but not to read key) keystore. + */ + @BindsInstance + Builder config(DFSConfig config); + + /** + * Binds (configures) all storage operations - not necessary to call {@code storageList} after. + */ + @BindsInstance + Builder storage(StorageService storageService); + + /** + * Provides class overriding functionality, so that you can disable i.e. path encryption + * @param overridesRegistry Map with class-overrides (note: you can override classes that are + * annotated with {@code RuntimeDelegate}) + */ + @BindsInstance + Builder overridesRegistry(@Nullable OverridesRegistry overridesRegistry); + + @BindsInstance + Builder encryption(@Nullable EncryptionConfig encryptionConfig); + + /** + * @return Provide NEW instance of Legacy Datasafe services. All dependencies except + * annotated with {@code @Singleton} will have scope analogous to Spring {code @Prototype}. + */ + LegacyDatasafeService build(); + } +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java index 0875b7c9a..ee52200c2 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java @@ -7,38 +7,32 @@ import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.google.common.base.Strings; import com.google.common.io.ByteStreams; -import de.adorsys.datasafe.business.impl.service.DaggerDefaultDatasafeServices; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRegistrationServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRemovalServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileRetrievalServiceImplRuntimeDelegatable; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadStorePassword; -import de.adorsys.datasafe.encrypiton.impl.cmsencryption.CMSEncryptionServiceImplRuntimeDelegatable; -import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptionImplRuntimeDelegatable; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.exceptions.SimpleAdapterException; import de.adorsys.datasafe.simple.adapter.api.types.*; -import de.adorsys.datasafe.simple.adapter.impl.profile.DFSRelativeProfileRegistrationService; -import de.adorsys.datasafe.simple.adapter.impl.profile.DFSRelativeProfileRemovalServiceImpl; -import de.adorsys.datasafe.simple.adapter.impl.profile.DFSRelativeProfileRetrievalServiceImpl; +import de.adorsys.datasafe.simple.adapter.impl.pathencryption.SwitchablePathEncryptionImpl; import de.adorsys.datasafe.storage.api.StorageService; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; -import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import de.adorsys.datasafe.storage.impl.s3.S3StorageService; import de.adorsys.datasafe.types.api.actions.ListRequest; import de.adorsys.datasafe.types.api.actions.ReadRequest; import de.adorsys.datasafe.types.api.actions.RemoveRequest; import de.adorsys.datasafe.types.api.actions.WriteRequest; -import de.adorsys.datasafe.types.api.context.BaseOverridesRegistry; import de.adorsys.datasafe.types.api.resource.AbsoluteLocationWithCapability; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.StorageCapability; +import de.adorsys.datasafe.types.api.utils.ExecutorServiceUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -61,23 +55,10 @@ public class SimpleDatasafeServiceImpl implements SimpleDatasafeService { private DefaultDatasafeServices customlyBuiltDatasafeServices; public SimpleDatasafeServiceImpl() { - this(DFSCredentialsFactory.getFromEnvironmnet()); + this(DFSCredentialsFactory.getFromEnvironmnet(), new MutableEncryptionConfig()); } - public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials) { - BaseOverridesRegistry baseOverridesRegistry = new BaseOverridesRegistry(); - PathEncryptionImplRuntimeDelegatable.overrideWith( - baseOverridesRegistry, - args -> new SwitchablePathEncryptionImpl( - args.getBucketPathEncryptionService(), - args.getPrivateKeyService()) - ); - - CMSEncryptionServiceImplRuntimeDelegatable.overrideWith( - baseOverridesRegistry, args -> new SwitchableCmsEncryptionImpl(args.getEncryptionConfig()) - ); - - makeUserProfilePathsHardcoded(baseOverridesRegistry); + public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials, MutableEncryptionConfig config) { if (dfsCredentials instanceof FilesystemDFSCredentials) { FilesystemDFSCredentials filesystemDFSCredentials = (FilesystemDFSCredentials) dfsCredentials; @@ -88,10 +69,14 @@ public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials) { log.info(lsf.toString()); this.systemRoot = FileSystems.getDefault().getPath(filesystemDFSCredentials.getRoot()).toAbsolutePath().toUri(); storageService = new FileSystemStorageService(FileSystems.getDefault().getPath(filesystemDFSCredentials.getRoot())); - customlyBuiltDatasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(systemRoot, universalReadStorePassword.getValue())) + customlyBuiltDatasafeServices = DaggerLegacyDatasafeService.builder() + .config(new DefaultDFSConfig(systemRoot, universalReadStorePassword)) + .encryption( + config.toEncryptionConfig().toBuilder() + .keystore(extractKeystoreType(config)) + .build() + ) .storage(getStorageService()) - .overridesRegistry(baseOverridesRegistry) .build(); log.info("build DFS to FILESYSTEM with root " + filesystemDFSCredentials.getRoot()); @@ -104,7 +89,6 @@ public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials) { lsf.add("url : " + amazonS3DFSCredentials.getUrl()); lsf.add("region : " + amazonS3DFSCredentials.getRegion()); lsf.add("path encryption : " + SwitchablePathEncryptionImpl.checkIsPathEncryptionToUse()); - lsf.add("region : " + amazonS3DFSCredentials.getRegion()); lsf.add("no https : " + amazonS3DFSCredentials.isNoHttps()); lsf.add("threadpool size : " + amazonS3DFSCredentials.getThreadPoolSize()); log.info(lsf.toString()); @@ -117,7 +101,8 @@ public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials) { ) .enablePathStyleAccess(); - boolean useEndpoint = (!amazonS3DFSCredentials.getUrl().equals(AMAZON_URL)); + boolean useEndpoint = !amazonS3DFSCredentials.getUrl().equals(AMAZON_URL) + && !amazonS3DFSCredentials.getUrl().startsWith(S3_PREFIX); if (useEndpoint) { AwsClientBuilder.EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration( amazonS3DFSCredentials.getUrl(), @@ -151,49 +136,30 @@ public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials) { ) ); this.systemRoot = URI.create(S3_PREFIX + amazonS3DFSCredentials.getRootBucket()); - customlyBuiltDatasafeServices = DaggerDefaultDatasafeServices.builder() - .config(new DefaultDFSConfig(systemRoot, universalReadStorePassword.getValue())) + + customlyBuiltDatasafeServices = DaggerLegacyDatasafeService.builder() + .config(new DefaultDFSConfig(systemRoot, universalReadStorePassword)) + .encryption( + config.toEncryptionConfig().toBuilder() + .keystore(extractKeystoreType(config)) + .build() + ) .storage(getStorageService()) - .overridesRegistry(baseOverridesRegistry) .build(); + log.info("build DFS to S3 with root " + amazonS3DFSCredentials.getRootBucket() + " and url " + amazonS3DFSCredentials.getUrl()); } } - private void makeUserProfilePathsHardcoded(BaseOverridesRegistry baseOverridesRegistry) { - ProfileRegistrationServiceImplRuntimeDelegatable.overrideWith( - baseOverridesRegistry, - args -> new DFSRelativeProfileRegistrationService( - args.getStorageKeyStoreOper(), - args.getKeyStoreOper(), - args.getAccess(), - args.getCheckService(), - args.getWriteService(), - args.getSerde(), - args.getDfsConfig() - ) - ); - - ProfileRetrievalServiceImplRuntimeDelegatable.overrideWith( - baseOverridesRegistry, args -> new DFSRelativeProfileRetrievalServiceImpl( - args.getDfsConfig(), - args.getCheckService(), - args.getAccess() - ) - ); + private KeyStoreConfig extractKeystoreType(MutableEncryptionConfig config) { + String keystoreType = null == config.getKeystore() || Strings.isNullOrEmpty(config.getKeystore().getType()) ? + "UBER" : config.getKeystore().getType(); - ProfileRemovalServiceImplRuntimeDelegatable.overrideWith( - baseOverridesRegistry, - args -> new DFSRelativeProfileRemovalServiceImpl( - args.getPrivateKeyService(), - args.getKeyStoreCache(), - args.getListService(), - args.getAccess(), - args.getDfsConfig(), - args.getRemoveService(), - args.getRetrievalService() - ) - ); + // FIXME: It is legacy keystore default - UBER, Release 1.1 should fix it + if (keystoreType.equals("UBER")) { + log.warn("Using UBER keystore type, consider switching to BCFKS"); + } + return KeyStoreConfig.builder().type(keystoreType).build(); } public StorageService getStorageService() { diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCMSEncryptionModule.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCMSEncryptionModule.java new file mode 100644 index 000000000..3fc0368d8 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCMSEncryptionModule.java @@ -0,0 +1,35 @@ +package de.adorsys.datasafe.simple.adapter.impl.cmsencryption; + +import dagger.Binds; +import dagger.Module; +import dagger.Provides; +import de.adorsys.datasafe.encrypiton.api.cmsencryption.CMSEncryptionService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.CmsEncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; + +import javax.annotation.Nullable; + +/** + * This module is responsible for providing CMS encryption of document. + */ +@Module +public abstract class SwitchableCMSEncryptionModule { + + /** + * Default CMS-encryption config using AES256_GCM. + */ + @Provides + static CmsEncryptionConfig cmsEncryptionConfig(@Nullable EncryptionConfig config) { + if (null == config) { + return EncryptionConfig.builder().build().getCms(); + } + + return config.getCms(); + } + + /** + * Default BouncyCastle based CMS encryption for document. + */ + @Binds + abstract CMSEncryptionService cmsEncryptionService(SwitchableCmsEncryptionImpl impl); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchableCmsEncryptionImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCmsEncryptionImpl.java similarity index 91% rename from datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchableCmsEncryptionImpl.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCmsEncryptionImpl.java index 990d59008..ecb0d0cf5 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchableCmsEncryptionImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/cmsencryption/SwitchableCmsEncryptionImpl.java @@ -1,8 +1,8 @@ -package de.adorsys.datasafe.simple.adapter.impl; +package de.adorsys.datasafe.simple.adapter.impl.cmsencryption; import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID; import de.adorsys.datasafe.encrypiton.api.types.keystore.PublicKeyIDWithPublicKey; -import de.adorsys.datasafe.encrypiton.impl.cmsencryption.CMSEncryptionConfig; +import de.adorsys.datasafe.encrypiton.impl.cmsencryption.ASNCmsEncryptionConfig; import de.adorsys.datasafe.encrypiton.impl.cmsencryption.CMSEncryptionServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -22,7 +22,7 @@ public class SwitchableCmsEncryptionImpl extends CMSEncryptionServiceImpl { private boolean withCmsEncryption = checkCmsEnccryptionToUse(); @Inject - public SwitchableCmsEncryptionImpl(CMSEncryptionConfig encryptionConfig) { + public SwitchableCmsEncryptionImpl(ASNCmsEncryptionConfig encryptionConfig) { super(encryptionConfig); } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/directory/LegacyDFSPrivateKeyServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/directory/LegacyDFSPrivateKeyServiceImpl.java new file mode 100644 index 000000000..47d77e95b --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/directory/LegacyDFSPrivateKeyServiceImpl.java @@ -0,0 +1,36 @@ +package de.adorsys.datasafe.simple.adapter.impl.legacy.directory; + +import de.adorsys.datasafe.directory.api.profile.keys.DocumentKeyStoreOperations; +import de.adorsys.datasafe.directory.impl.profile.keys.DFSPrivateKeyServiceImpl; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import de.adorsys.datasafe.encrypiton.api.types.keystore.SecretKeyIDWithKey; + +import javax.inject.Inject; + +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX; + +/** + * Retrieves and opens private keystore associated with user location DFS storage. + * Attempts to re-read keystore if not able to open it. + */ +public class LegacyDFSPrivateKeyServiceImpl extends DFSPrivateKeyServiceImpl { + + @Inject + public LegacyDFSPrivateKeyServiceImpl(DocumentKeyStoreOperations keyStoreOper) { + super(keyStoreOper); + } + + /** + * Reads path encryption secret key from DFS and caches the result. + */ + @Override + public AuthPathEncryptionSecretKey pathEncryptionSecretKey(UserIDAuth forUser) { + SecretKeyIDWithKey secretKeyIDWithKey = keyByPrefix(forUser, PATH_KEY_ID_PREFIX); + + return new AuthPathEncryptionSecretKey( + secretKeyIDWithKey, + secretKeyIDWithKey + ); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyIntegrityPreservingUriEncryption.java similarity index 86% rename from datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImpl.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyIntegrityPreservingUriEncryption.java index e8b2caa1e..715bc08dd 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyIntegrityPreservingUriEncryption.java @@ -1,7 +1,7 @@ -package de.adorsys.datasafe.encrypiton.impl.pathencryption; +package de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption; -import de.adorsys.datasafe.encrypiton.api.pathencryption.encryption.SymmetricPathEncryptionService; -import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacyPathEncryptionConfig; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacySymmetricPathEncryptionService; import de.adorsys.datasafe.types.api.resource.Uri; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -22,15 +22,14 @@ * cipher(path) will yield same string. */ @Slf4j -@RuntimeDelegate -public class SymmetricPathEncryptionServiceImpl implements SymmetricPathEncryptionService { +public class LegacyIntegrityPreservingUriEncryption implements LegacySymmetricPathEncryptionService { private static final String PATH_SEPARATOR = "/"; - private final PathEncryptionConfig encryptionConfig; + private final LegacyPathEncryptionConfig encryptionConfig; @Inject - public SymmetricPathEncryptionServiceImpl(PathEncryptionConfig encryptionConfig) { + public LegacyIntegrityPreservingUriEncryption(LegacyPathEncryptionConfig encryptionConfig) { this.encryptionConfig = encryptionConfig; } diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathDigestConfig.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathDigestConfig.java similarity index 71% rename from datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathDigestConfig.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathDigestConfig.java index 20c1914f9..a6771961e 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathDigestConfig.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathDigestConfig.java @@ -1,4 +1,4 @@ -package de.adorsys.datasafe.encrypiton.impl.pathencryption; +package de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,13 +8,13 @@ */ @Data @AllArgsConstructor -public class DefaultPathDigestConfig { +public class LegacyPathDigestConfig { private final String messageDigest; private final String algorithm; private final int shaKeyPartSize; - public DefaultPathDigestConfig() { + public LegacyPathDigestConfig() { this.messageDigest = "SHA-256"; this.algorithm = "AES"; this.shaKeyPartSize = 16; diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptionImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptionImpl.java new file mode 100644 index 000000000..ccfe48b98 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptionImpl.java @@ -0,0 +1,54 @@ +package de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption; + +import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; +import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.keystore.AuthPathEncryptionSecretKey; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacySymmetricPathEncryptionService; +import de.adorsys.datasafe.types.api.resource.Uri; +import lombok.extern.slf4j.Slf4j; + +import javax.inject.Inject; +import java.util.function.Function; + +/** + * Default path encryption service that uses {@link PrivateKeyService#pathEncryptionSecretKey(UserIDAuth)} as + * path encryption key. + */ +@Slf4j +public class LegacyPathEncryptionImpl implements PathEncryption { + + private final LegacySymmetricPathEncryptionService symmetricPathEncryptionService; + private final PrivateKeyService privateKeyService; + + @Inject + public LegacyPathEncryptionImpl(LegacySymmetricPathEncryptionService symmetricPathEncryptionService, + PrivateKeyService privateKeyService) { + this.symmetricPathEncryptionService = symmetricPathEncryptionService; + this.privateKeyService = privateKeyService; + } + + /** + * Simply pipes {@link LegacySymmetricPathEncryptionService} and {@link PrivateKeyService} to encrypt URI + */ + @Override + public Uri encrypt(UserIDAuth forUser, Uri path) { + AuthPathEncryptionSecretKey keySpec = privateKeyService.pathEncryptionSecretKey(forUser); + Uri encrypt = symmetricPathEncryptionService.encrypt(keySpec.getSecretKey().getSecretKey(), path); + log.debug("encrypted path {} for user {} path {}", encrypt, forUser.getUserID(), path); + return encrypt; + } + + /** + * Simply pipes {@link LegacySymmetricPathEncryptionService} and {@link PrivateKeyService} to decrypt URI + */ + @Override + public Function decryptor(UserIDAuth forUser) { + AuthPathEncryptionSecretKey keySpec = privateKeyService.pathEncryptionSecretKey(forUser); + return encryptedPath -> { + Uri decrypt = symmetricPathEncryptionService.decrypt(keySpec.getSecretKey().getSecretKey(), encryptedPath); + log.debug("decrypted path {} for user {} path {}", decrypt, forUser.getUserID(), encryptedPath); + return decrypt; + }; + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathEncryption.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptor.java similarity index 74% rename from datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathEncryption.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptor.java index a5171b1b6..a01b72406 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/main/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/DefaultPathEncryption.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/legacy/pathencryption/LegacyPathEncryptor.java @@ -1,6 +1,6 @@ -package de.adorsys.datasafe.encrypiton.impl.pathencryption; +package de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption; -import de.adorsys.datasafe.types.api.context.annotations.RuntimeDelegate; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacyPathEncryptionConfig; import lombok.SneakyThrows; import javax.crypto.Cipher; @@ -12,16 +12,15 @@ import java.util.Base64; /** - * Default path encryption/decryption that uses encryption specified by {@link DefaultPathDigestConfig} and + * Default path encryption/decryption that uses encryption specified by {@link LegacyPathDigestConfig} and * encodes resulting bytes using Base64-urlsafe encoding. */ -@RuntimeDelegate -public class DefaultPathEncryption implements PathEncryptionConfig { +public class LegacyPathEncryptor implements LegacyPathEncryptionConfig { - private final DefaultPathDigestConfig digestConfig; + private final LegacyPathDigestConfig digestConfig; @Inject - public DefaultPathEncryption(DefaultPathDigestConfig config) { + public LegacyPathEncryptor(LegacyPathDigestConfig config) { this.digestConfig = config; } @@ -46,7 +45,7 @@ public byte[] byteDeserializer(String input) { } @SneakyThrows - private static Cipher createCipher(SecretKey secretKey, DefaultPathDigestConfig config, int cipherMode) { + private static Cipher createCipher(SecretKey secretKey, LegacyPathDigestConfig config, int cipherMode) { byte[] key = secretKey.getEncoded(); MessageDigest sha = MessageDigest.getInstance(config.getMessageDigest()); key = sha.digest(key); diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyCredentialsModule.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyCredentialsModule.java new file mode 100644 index 000000000..12eea6807 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyCredentialsModule.java @@ -0,0 +1,52 @@ +package de.adorsys.datasafe.simple.adapter.impl.pathencryption; + +import dagger.Binds; +import dagger.Module; +import de.adorsys.datasafe.business.impl.directory.DefaultKeystoreCacheModule; +import de.adorsys.datasafe.directory.api.profile.dfs.BucketAccessService; +import de.adorsys.datasafe.directory.api.profile.keys.DocumentKeyStoreOperations; +import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; +import de.adorsys.datasafe.directory.api.profile.keys.PublicKeyService; +import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; +import de.adorsys.datasafe.directory.impl.profile.dfs.BucketAccessServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.DFSPublicKeyServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.DocumentKeyStoreOperationsImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.keys.StorageKeyStoreOperationsImplRuntimeDelegatable; +import de.adorsys.datasafe.simple.adapter.impl.legacy.directory.LegacyDFSPrivateKeyServiceImpl; + +/** + * This module is responsible for credentials access - either user or dfs. + */ +@Module(includes = DefaultKeystoreCacheModule.class) +public abstract class LegacyCredentialsModule { + + /** + * Default no-op service to get credentials to access filesystem. + */ + @Binds + abstract BucketAccessService bucketAccessService(BucketAccessServiceImplRuntimeDelegatable impl); + + /** + * Default public key service that reads user public keys from the location specified by his profile inside DFS. + */ + @Binds + abstract PublicKeyService publicKeyService(DFSPublicKeyServiceImplRuntimeDelegatable impl); + + /** + * Keystore(document) operations class that hides keystore access from other components. + */ + @Binds + abstract DocumentKeyStoreOperations docKeyStoreOperations(DocumentKeyStoreOperationsImplRuntimeDelegatable impl); + + /** + * Keystore(storage credentials) operations class that hides keystore access from other components. + */ + @Binds + abstract StorageKeyStoreOperations storageKeyStoreOperations(StorageKeyStoreOperationsImplRuntimeDelegatable impl); + + /** + * Private key service that expects there is only one path encryption key. + */ + @Binds + abstract PrivateKeyService privateKeyService(LegacyDFSPrivateKeyServiceImpl impl); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyPathEncryptionModule.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyPathEncryptionModule.java new file mode 100644 index 000000000..051fe8f1e --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/LegacyPathEncryptionModule.java @@ -0,0 +1,46 @@ +package de.adorsys.datasafe.simple.adapter.impl.pathencryption; + +import dagger.Binds; +import dagger.Module; +import dagger.Provides; +import de.adorsys.datasafe.encrypiton.api.pathencryption.PathEncryption; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacyPathEncryptionConfig; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacySymmetricPathEncryptionService; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyPathDigestConfig; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyPathEncryptor; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyIntegrityPreservingUriEncryption; + +/** + * This module is responsible for providing pathencryption of document. + */ +@Module +public abstract class LegacyPathEncryptionModule { + + /** + * Default path digest that specifies AES and SHA-256 for path encryption. + */ + @Provides + static LegacyPathDigestConfig digestConfig() { + return new LegacyPathDigestConfig(); + } + + /** + * Default path encryption that uses Base64-urlsafe path serialization + */ + @Binds + abstract LegacyPathEncryptionConfig config(LegacyPathEncryptor config); + + /** + * By default simply use + * {@link de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService} to get key + * and pass path with key to {@link LegacySymmetricPathEncryptionService} + */ + @Binds + abstract PathEncryption pathEncryption(SwitchablePathEncryptionImpl impl); + + /** + * Default symmetric path encryption that encrypts URI segment-by-segment. + */ + @Binds + abstract LegacySymmetricPathEncryptionService legacySymmetricPathEncryptionService(LegacyIntegrityPreservingUriEncryption impl); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchablePathEncryptionImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/SwitchablePathEncryptionImpl.java similarity index 71% rename from datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchablePathEncryptionImpl.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/SwitchablePathEncryptionImpl.java index a468009be..fe2bbe192 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SwitchablePathEncryptionImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/pathencryption/SwitchablePathEncryptionImpl.java @@ -1,9 +1,9 @@ -package de.adorsys.datasafe.simple.adapter.impl; +package de.adorsys.datasafe.simple.adapter.impl.pathencryption; import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; -import de.adorsys.datasafe.encrypiton.api.pathencryption.encryption.SymmetricPathEncryptionService; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.impl.pathencryption.PathEncryptionImpl; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacySymmetricPathEncryptionService; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyPathEncryptionImpl; import de.adorsys.datasafe.types.api.resource.Uri; import lombok.extern.slf4j.Slf4j; @@ -11,15 +11,16 @@ import java.util.function.Function; @Slf4j -public class SwitchablePathEncryptionImpl extends PathEncryptionImpl { +public class SwitchablePathEncryptionImpl extends LegacyPathEncryptionImpl { public static final String NO_BUCKETPATH_ENCRYPTION = "SC-NO-BUCKETPATH-ENCRYPTION"; private boolean withPathEncryption = checkIsPathEncryptionToUse(); @Inject - public SwitchablePathEncryptionImpl(SymmetricPathEncryptionService bucketPathEncryptionService, PrivateKeyService privateKeyService) { - super(bucketPathEncryptionService, privateKeyService); + public SwitchablePathEncryptionImpl(LegacySymmetricPathEncryptionService legacySymmetricPathEncryptionService, + PrivateKeyService privateKeyService) { + super(legacySymmetricPathEncryptionService, privateKeyService); } @Override diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationService.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationServiceImpl.java similarity index 63% rename from datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationService.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationServiceImpl.java index 59ff42c2c..c0c72aff7 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationService.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRegistrationServiceImpl.java @@ -11,19 +11,22 @@ import de.adorsys.datasafe.storage.api.actions.StorageCheckService; import de.adorsys.datasafe.storage.api.actions.StorageWriteService; +import javax.inject.Inject; + /** * This service does not store user profile files, assuming profile paths are hardcoded relative to system root or * accessible using {@link DFSConfig} */ -public class DFSRelativeProfileRegistrationService extends ProfileRegistrationServiceImpl { +public class DFSRelativeProfileRegistrationServiceImpl extends ProfileRegistrationServiceImpl { - public DFSRelativeProfileRegistrationService(StorageKeyStoreOperations storageKeyStoreOper, - DocumentKeyStoreOperations keyStoreOper, - BucketAccessService access, - StorageCheckService checkService, - StorageWriteService writeService, - GsonSerde serde, - DFSConfig dfsConfig) { + @Inject + public DFSRelativeProfileRegistrationServiceImpl(StorageKeyStoreOperations storageKeyStoreOper, + DocumentKeyStoreOperations keyStoreOper, + BucketAccessService access, + StorageCheckService checkService, + StorageWriteService writeService, + GsonSerde serde, + DFSConfig dfsConfig) { super(null, storageKeyStoreOper, keyStoreOper, access, checkService, writeService, serde, dfsConfig); } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRemovalServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRemovalServiceImpl.java index 4fcfd1161..ba77a30ef 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRemovalServiceImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRemovalServiceImpl.java @@ -10,12 +10,15 @@ import de.adorsys.datasafe.storage.api.actions.StorageListService; import de.adorsys.datasafe.storage.api.actions.StorageRemoveService; +import javax.inject.Inject; + /** * This service cleans up all users' files except profile json files. It assumes that user profile files does not * exist. */ public class DFSRelativeProfileRemovalServiceImpl extends ProfileRemovalServiceImpl { + @Inject public DFSRelativeProfileRemovalServiceImpl( PrivateKeyService privateKeyService, KeyStoreCache keyStoreCache, diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRetrievalServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRetrievalServiceImpl.java index 681e0af89..eb459e38c 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRetrievalServiceImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileRetrievalServiceImpl.java @@ -12,6 +12,8 @@ import de.adorsys.datasafe.storage.api.actions.StorageCheckService; import lombok.extern.slf4j.Slf4j; +import javax.inject.Inject; + /** * This service ignores profiles stored at some external location and instead assumes that all files are relative * to system root. @@ -23,6 +25,7 @@ public class DFSRelativeProfileRetrievalServiceImpl extends ProfileRetrievalServ private final StorageCheckService checkService; private final BucketAccessService access; + @Inject public DFSRelativeProfileRetrievalServiceImpl(DFSConfig dfsConfig, StorageCheckService checkService, BucketAccessService access) { super(null, null, null, null, null, null); @@ -35,7 +38,7 @@ public DFSRelativeProfileRetrievalServiceImpl(DFSConfig dfsConfig, StorageCheckS @Override public UserPublicProfile publicProfile(UserID ofUser) { CreateUserPublicProfile createUserPublicProfile = dfsConfig.defaultPublicTemplate(ofUser); - UserPublicProfile userPublicProfile = createUserPublicProfile.removeAccess(); + UserPublicProfile userPublicProfile = createUserPublicProfile.buildPublicProfile(); log.debug("get public profile {} for user {}", userPublicProfile, ofUser); return userPublicProfile; } @@ -44,7 +47,7 @@ public UserPublicProfile publicProfile(UserID ofUser) { public UserPrivateProfile privateProfile(UserIDAuth ofUser) { CreateUserPrivateProfile privateProfile = dfsConfig.defaultPrivateTemplate(ofUser); - UserPrivateProfile userPrivateProfile = privateProfile.removeAccess(); + UserPrivateProfile userPrivateProfile = privateProfile.buildPrivateProfile(); log.debug("get private profile {} for user {}", userPrivateProfile, ofUser); return userPrivateProfile; diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileUpdatingServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileUpdatingServiceImpl.java new file mode 100644 index 000000000..b2ac79db0 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/DFSRelativeProfileUpdatingServiceImpl.java @@ -0,0 +1,42 @@ +package de.adorsys.datasafe.simple.adapter.impl.profile; + +import de.adorsys.datasafe.directory.api.config.DFSConfig; +import de.adorsys.datasafe.directory.api.profile.keys.DocumentKeyStoreOperations; +import de.adorsys.datasafe.directory.api.profile.keys.PrivateKeyService; +import de.adorsys.datasafe.directory.api.profile.keys.StorageKeyStoreOperations; +import de.adorsys.datasafe.directory.api.types.UserPrivateProfile; +import de.adorsys.datasafe.directory.api.types.UserPublicProfile; +import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileUpdatingServiceImpl; +import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; + +import javax.inject.Inject; + +/** + * This service does not store user profile files, assuming profile paths are hardcoded relative to system root or + * accessible using {@link DFSConfig} + */ +public class DFSRelativeProfileUpdatingServiceImpl extends ProfileUpdatingServiceImpl { + + @Inject + public DFSRelativeProfileUpdatingServiceImpl(PrivateKeyService privateKeyService, + StorageKeyStoreOperations storageKeyStoreOper, + DocumentKeyStoreOperations keyStoreOper) { + super(null, privateKeyService, storageKeyStoreOper, keyStoreOper); + } + + @Override + public void updatePublicProfile(UserIDAuth forUser, UserPublicProfile profile) { + // NOP + } + + @Override + public void updatePrivateProfile(UserIDAuth forUser, UserPrivateProfile profile) { + // NOP + } + + @Override + public void updateReadKeyPassword(UserIDAuth forUser, ReadKeyPassword newPassword) { + super.updateReadKeyPassword(forUser, newPassword); + } +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/HardcodedProfileModule.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/HardcodedProfileModule.java new file mode 100644 index 000000000..b59d7cf7f --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/profile/HardcodedProfileModule.java @@ -0,0 +1,69 @@ +package de.adorsys.datasafe.simple.adapter.impl.profile; + +import dagger.Binds; +import dagger.Module; +import dagger.Provides; +import de.adorsys.datasafe.directory.api.profile.operations.*; +import de.adorsys.datasafe.directory.api.resource.ResourceResolver; +import de.adorsys.datasafe.directory.impl.profile.operations.DFSBasedProfileStorageImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.operations.actions.ProfileStorageCredentialsServiceImplRuntimeDelegatable; +import de.adorsys.datasafe.directory.impl.profile.resource.ResourceResolverImplRuntimeDelegatable; +import de.adorsys.datasafe.encrypiton.api.types.encryption.EncryptionConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; + +import javax.annotation.Nullable; + +@Module +public abstract class HardcodedProfileModule { + + @Provides + static KeyCreationConfig cmsEncryptionConfig(@Nullable EncryptionConfig config) { + if (null == config) { + return EncryptionConfig.builder().build().getKeys(); + } + + return config.getKeys(); + } + + /** + * Default profile reading service that simply reads json files with serialized public/private located on DFS. + */ + @Binds + abstract ProfileRetrievalService profileRetrievalService(DFSRelativeProfileRetrievalServiceImpl impl); + + /** + * Default profile creation service that simply creates keystore, public keys, user profile json files on DFS. + */ + @Binds + abstract ProfileRegistrationService creationService(DFSRelativeProfileRegistrationServiceImpl impl); + + /** + * Default profile updating service. + */ + @Binds + abstract ProfileUpdatingService updatingService(DFSRelativeProfileUpdatingServiceImpl impl); + + /** + * Default profile removal service. + */ + @Binds + abstract ProfileRemovalService removalService(DFSRelativeProfileRemovalServiceImpl impl); + + /** + * Storage credentials access. + */ + @Binds + abstract ProfileStorageCredentialsService profileStorageCredentialsService(ProfileStorageCredentialsServiceImplRuntimeDelegatable impl); + + /** + * Resource resolver that simply prepends relevant path segment from profile based on location type. + */ + @Binds + abstract ResourceResolver resourceResolver(ResourceResolverImplRuntimeDelegatable impl); + + /** + * Aggregate service for profile operations. + */ + @Binds + abstract ProfileOperations profileService(DFSBasedProfileStorageImplRuntimeDelegatable impl); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/CleanupDbTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/CleanupDbTest.java index c320b4480..8221de70b 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/CleanupDbTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/CleanupDbTest.java @@ -1,27 +1,41 @@ package de.adorsys.datasafe.simple.adapter.impl; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.types.DFSCredentials; import de.adorsys.datasafe.simple.adapter.api.types.DSDocument; import de.adorsys.datasafe.simple.adapter.api.types.DocumentContent; import de.adorsys.datasafe.simple.adapter.api.types.DocumentFQN; import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import static org.junit.jupiter.api.Assertions.assertEquals; +import java.security.Security; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; class CleanupDbTest extends WithStorageProvider { private SimpleDatasafeService simpleDatasafeService; private DFSCredentials dfsCredentials; + @BeforeAll + static void setupBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + private void createSimpleService(WithStorageProvider.StorageDescriptor descriptor) { dfsCredentials = InitFromStorageProvider.dfsFromDescriptor(descriptor); if (dfsCredentials != null) { - simpleDatasafeService = new SimpleDatasafeServiceImpl(dfsCredentials); + simpleDatasafeService = new SimpleDatasafeServiceImpl(dfsCredentials, new MutableEncryptionConfig()); } else { simpleDatasafeService = new SimpleDatasafeServiceImpl(); } @@ -35,8 +49,8 @@ void cleanupDb(WithStorageProvider.StorageDescriptor descriptor) { String content = "content of document"; String path = "a/b/c.txt"; - UserIDAuth user1 = new UserIDAuth("uzr", "user"); - UserIDAuth user2 = new UserIDAuth("other", "user"); + UserIDAuth user1 = new UserIDAuth("uzr", ReadKeyPasswordTestFactory.getForString("user")); + UserIDAuth user2 = new UserIDAuth("other", ReadKeyPasswordTestFactory.getForString("user")); simpleDatasafeService.createUser(user1); simpleDatasafeService.createUser(user2); @@ -46,18 +60,20 @@ void cleanupDb(WithStorageProvider.StorageDescriptor descriptor) { new DocumentContent(content.getBytes()))); // (1 keystore + 1 pub key + 1 file) * 2 - assertEquals(6, - descriptor.getStorageService().get().list( - BasePrivateResource.forAbsolutePrivate(descriptor.getLocation()) - ).count() - ); + try (Stream> ls = + descriptor.getStorageService().get() + .list(BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) + ) { + assertThat(ls).hasSize(6); + } simpleDatasafeService.cleanupDb(); - assertEquals(0, - descriptor.getStorageService().get().list( - BasePrivateResource.forAbsolutePrivate(descriptor.getLocation()) - ).count() - ); + try (Stream> ls = + descriptor.getStorageService().get() + .list(BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) + ) { + assertThat(ls).isEmpty(); + } } } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/DFSRelativeToRootProfileTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/DFSRelativeToRootProfileTest.java index 99543c87f..5eceabbd9 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/DFSRelativeToRootProfileTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/DFSRelativeToRootProfileTest.java @@ -2,14 +2,17 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.types.DFSCredentials; import de.adorsys.datasafe.simple.adapter.api.types.DSDocument; import de.adorsys.datasafe.simple.adapter.api.types.DocumentContent; import de.adorsys.datasafe.simple.adapter.api.types.DocumentFQN; import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; import lombok.SneakyThrows; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.BeforeEach; @@ -17,6 +20,7 @@ import org.junit.jupiter.params.provider.MethodSource; import java.security.Security; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -34,9 +38,11 @@ void createDatasafeAdapter(StorageDescriptor descriptor) { DFSCredentials credentials = InitFromStorageProvider.dfsFromDescriptor(descriptor); simpleDatasafeService = - null != credentials ? new SimpleDatasafeServiceImpl(credentials) : new SimpleDatasafeServiceImpl(); + null != credentials ? + new SimpleDatasafeServiceImpl(credentials, new MutableEncryptionConfig()) + : new SimpleDatasafeServiceImpl(); - userIDAuth = new UserIDAuth(new UserID("peter"), new ReadKeyPassword("password")); + userIDAuth = new UserIDAuth(new UserID("peter"), ReadKeyPasswordTestFactory.getForString("password")); simpleDatasafeService.createUser(userIDAuth); } @@ -53,8 +59,11 @@ void createWriteAndDeleteUserCleansAllNeeded(WithStorageProvider.StorageDescript simpleDatasafeService.destroyUser(userIDAuth); // Everything is cleaned up: - assertThat(descriptor.getStorageService().get().list( - BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) - ).isEmpty(); + try (Stream> ls = + descriptor.getStorageService().get() + .list(BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) + ) { + assertThat(ls).isEmpty(); + } } } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleAdapterFeatureTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleAdapterFeatureTest.java index 0a26bae47..28add3e03 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleAdapterFeatureTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleAdapterFeatureTest.java @@ -2,12 +2,14 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; import de.adorsys.datasafe.simple.adapter.api.types.*; +import de.adorsys.datasafe.simple.adapter.impl.cmsencryption.SwitchableCmsEncryptionImpl; +import de.adorsys.datasafe.simple.adapter.impl.pathencryption.SwitchablePathEncryptionImpl; import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; import de.adorsys.datasafe.types.api.resource.PrivateResource; import de.adorsys.datasafe.types.api.resource.ResolvedResource; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Nullable; @@ -19,18 +21,19 @@ import java.io.InputStream; import java.io.StringWriter; -import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; import java.nio.file.Path; import java.util.Optional; +import java.util.stream.Stream; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @Slf4j -class SimpleAdapterFeatureTest { +class SimpleAdapterFeatureTest extends WithBouncyCastle { - private UserIDAuth userIDAuth = new UserIDAuth(new UserID("peter"), new ReadKeyPassword("password")); + private UserIDAuth userIDAuth = new UserIDAuth(new UserID("peter"), ReadKeyPasswordTestFactory.getForString("password")); private String content = "content of document"; private String path = "a/b/c.txt"; private DSDocument document = new DSDocument(new DocumentFQN(path), new DocumentContent(content.getBytes())); @@ -40,6 +43,7 @@ class SimpleAdapterFeatureTest { void afterEach() { System.setProperty(SwitchablePathEncryptionImpl.NO_BUCKETPATH_ENCRYPTION, Boolean.FALSE.toString()); System.setProperty(SwitchableCmsEncryptionImpl.NO_CMSENCRYPTION_AT_ALL, Boolean.FALSE.toString()); + } @Test @@ -49,7 +53,9 @@ void testWithEncryption() { simpleDatasafeService.storeDocument(userIDAuth, document); AbsoluteLocation rootLocation = getPrivateResourceAbsoluteLocation(); - Assertions.assertEquals(0, simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path)).count()); + try (Stream> stream = simpleDatasafeService.getStorageService().list(rootLocation)) { + Assertions.assertEquals(0, stream.filter(el -> el.location().toASCIIString().contains(path)).count()); + } simpleDatasafeService.destroyUser(userIDAuth); } @@ -62,12 +68,18 @@ void testWithoutPathEncryption() { simpleDatasafeService.storeDocument(userIDAuth, document); AbsoluteLocation rootLocation = getPrivateResourceAbsoluteLocation(); - Assertions.assertEquals(1, simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path)).count()); - Optional> first = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path)).findFirst(); - InputStream read = simpleDatasafeService.getStorageService().read(first.get()); - StringWriter writer = new StringWriter(); - IOUtils.copy(read, writer, StandardCharsets.UTF_8); - assertFalse(writer.toString().equals(content)); + try (Stream> absoluteLocationStream = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path))) { + Assertions.assertEquals(1, absoluteLocationStream.count()); + } + try (Stream> absoluteLocationStream = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path))) { + Optional> first = absoluteLocationStream.findFirst(); + + try (InputStream read = simpleDatasafeService.getStorageService().read(first.get())) { + StringWriter writer = new StringWriter(); + IOUtils.copy(read, writer, UTF_8); + assertFalse(writer.toString().equals(content)); + } + } simpleDatasafeService.destroyUser(userIDAuth); } @@ -82,12 +94,18 @@ void testWithoutEncryption() { simpleDatasafeService.storeDocument(userIDAuth, document); AbsoluteLocation rootLocation = getPrivateResourceAbsoluteLocation(); - Assertions.assertEquals(1, simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path)).count()); - Optional> first = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path)).findFirst(); - InputStream read = simpleDatasafeService.getStorageService().read(first.get()); - StringWriter writer = new StringWriter(); - IOUtils.copy(read, writer, StandardCharsets.UTF_8); - assertTrue(writer.toString().equals(content)); + try (Stream> absoluteLocationStream = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path))) { + Assertions.assertEquals(1, absoluteLocationStream.count()); + } + try (Stream> absoluteLocationStream = simpleDatasafeService.getStorageService().list(rootLocation).filter(el -> el.location().toASCIIString().contains(path))) { + Optional> first =absoluteLocationStream.findFirst(); + + try (InputStream read = simpleDatasafeService.getStorageService().read(first.get())) { + StringWriter writer = new StringWriter(); + IOUtils.copy(read, writer, UTF_8); + assertTrue(writer.toString().equals(content)); + } + } simpleDatasafeService.destroyUser(userIDAuth); } @@ -106,5 +124,4 @@ private AbsoluteLocation getPrivateResourceAbsoluteLocation() { return rootLocation; } - } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapter043CompatTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapter043CompatTest.java index 124e89246..aa0cca4af 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapter043CompatTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapter043CompatTest.java @@ -2,19 +2,17 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.types.*; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; import de.adorsys.datasafe.types.api.shared.Dirs; import de.adorsys.datasafe.types.api.shared.Resources; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.SneakyThrows; -import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import java.nio.file.Path; -import java.security.Security; import static org.assertj.core.api.Assertions.assertThat; @@ -22,20 +20,20 @@ * This test ensures that SimpleDatasafeAdapter can use setup and folder structure from version 0.4.3 * (backward compatibility) */ -class SimpleDatasafeAdapter043CompatTest extends BaseMockitoTest { +class SimpleDatasafeAdapter043CompatTest extends WithBouncyCastle { - private UserIDAuth userIDAuth = new UserIDAuth(new UserID("peter"), new ReadKeyPassword("password")); + private UserIDAuth userIDAuth = new UserIDAuth(new UserID("peter"), ReadKeyPasswordTestFactory.getForString("password")); private SimpleDatasafeServiceImpl simpleDatasafeService; private Path dfsRoot; @SneakyThrows @BeforeEach void extractFixtureAndPrepare(@TempDir Path tempDir) { - Security.addProvider(new BouncyCastleProvider()); dfsRoot = tempDir; Resources.copyResourceDir("compat-0.4.3", tempDir); simpleDatasafeService = new SimpleDatasafeServiceImpl( - FilesystemDFSCredentials.builder().root(tempDir.toString()).build() + FilesystemDFSCredentials.builder().root(tempDir.toString()).build(), + new MutableEncryptionConfig() ); } @@ -65,16 +63,16 @@ void writeNewAndReadFileFromOldVersion() { .containsExactlyInAnyOrder(newPath, oldPath); // validate folder structure - assertThat(Dirs.walk(dfsRoot, 1)).containsExactlyInAnyOrder("profiles", "users"); + assertThat(Dirs.walk(dfsRoot, 1)).containsExactlyInAnyOrder("profiles/", "users/"); assertThat(Dirs.walk(dfsRoot.resolve("profiles"))) - .containsExactlyInAnyOrder("private", "public", "private/peter", "public/peter"); + .containsExactlyInAnyOrder("private/", "public/", "private/peter", "public/peter"); assertThat(Dirs.walk(dfsRoot.resolve("users"), 3)) .containsExactlyInAnyOrder( - "peter", - "peter/private", - "peter/public", + "peter/", + "peter/private/", + "peter/public/", "peter/private/keystore", - "peter/private/files", + "peter/private/files/", "peter/public/pubkeys" ); } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapterTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapterTest.java index a37f13289..055e00ace 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapterTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeAdapterTest.java @@ -3,17 +3,22 @@ import com.amazonaws.services.s3.model.AmazonS3Exception; import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.types.*; import de.adorsys.datasafe.storage.impl.fs.FileSystemStorageService; import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import de.adorsys.datasafe.types.api.resource.BasePrivateResource; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import de.adorsys.datasafe.types.api.resource.ResolvedResource; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.io.Streams; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -38,12 +43,17 @@ class SimpleDatasafeAdapterTest extends WithStorageProvider { private UserIDAuth userIDAuth; private DFSCredentials dfsCredentials; + @BeforeAll + static void setupBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } + void myinit(StorageDescriptor descriptor) { dfsCredentials = InitFromStorageProvider.dfsFromDescriptor(descriptor); } private static Stream storages() { - return allDefaultStorages(); + return allDefaultStorages(); } @BeforeEach @@ -53,11 +63,11 @@ void mybefore() { void mystart() { if (dfsCredentials != null) { - simpleDatasafeService = new SimpleDatasafeServiceImpl(dfsCredentials); + simpleDatasafeService = new SimpleDatasafeServiceImpl(dfsCredentials, new MutableEncryptionConfig()); } else { simpleDatasafeService = new SimpleDatasafeServiceImpl(); } - userIDAuth = new UserIDAuth(new UserID("peter"), new ReadKeyPassword("password")); + userIDAuth = new UserIDAuth(new UserID("peter"), ReadKeyPasswordTestFactory.getForString("password")); simpleDatasafeService.createUser(userIDAuth); } @@ -67,6 +77,26 @@ void myafter() { simpleDatasafeService.destroyUser(userIDAuth); } + @ParameterizedTest + @MethodSource("minioOnly") + @SneakyThrows + void justCreateAndDeleteUserForMinioOnly(WithStorageProvider.StorageDescriptor descriptor) { + myinit(descriptor); + mystart(); + + // SimpleDatasafeAdapter does not use user profile json files, so only keystore and pubkeys should exist: + try (Stream> ls = descriptor.getStorageService().get() + .list(BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) + ) { + assertThat(ls).extracting(it -> descriptor.getLocation().relativize(it.location()).asString()) + .containsExactlyInAnyOrder( + "users/peter/public/pubkeys", + "users/peter/private/keystore" + ); + } + log.info("test create user and delete user with {}", descriptor.getName()); + } + @ParameterizedTest @MethodSource("storages") @SneakyThrows @@ -75,15 +105,16 @@ void justCreateAndDeleteUser(WithStorageProvider.StorageDescriptor descriptor) { mystart(); // SimpleDatasafeAdapter does not use user profile json files, so only keystore and pubkeys should exist: - assertThat(descriptor.getStorageService().get().list( - BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) - ).extracting(it -> descriptor.getLocation().relativize(it.location()).asString()) - .containsExactlyInAnyOrder( - "users/peter/public/pubkeys", - "users/peter/private/keystore" - ); - - log.info("test create user and delete user with " + descriptor.getName()); + try (Stream> ls = descriptor.getStorageService().get() + .list(BasePrivateResource.forAbsolutePrivate(descriptor.getLocation())) + ) { + assertThat(ls).extracting(it -> descriptor.getLocation().relativize(it.location()).asString()) + .containsExactlyInAnyOrder( + "users/peter/public/pubkeys", + "users/peter/private/keystore" + ); + } + log.info("test create user and delete user with {}", descriptor.getName()); } @ParameterizedTest @@ -113,7 +144,7 @@ void writeAndReadFileWithPasswordChange(WithStorageProvider.StorageDescriptor de String path = "a/b/c.txt"; DSDocument document = new DSDocument(new DocumentFQN(path), new DocumentContent(content.getBytes())); simpleDatasafeService.storeDocument(userIDAuth, document); - ReadKeyPassword newPassword = new ReadKeyPassword("AAAAAAHHH!"); + ReadKeyPassword newPassword = ReadKeyPasswordTestFactory.getForString("AAAAAAHHH!"); simpleDatasafeService.changeKeystorePassword(userIDAuth, newPassword); assertThrows( @@ -158,7 +189,7 @@ void writeAndReadFiles(WithStorageProvider.StorageDescriptor descriptor) { List list = TestHelper.createDocuments(root, 2, 2, 3); List created = new ArrayList<>(); for (DSDocument dsDocument : list) { - log.debug("store " + dsDocument.getDocumentFQN().toString()); + log.debug("store {}", dsDocument.getDocumentFQN()); simpleDatasafeService.storeDocument(userIDAuth, dsDocument); created.add(dsDocument.getDocumentFQN()); assertTrue(simpleDatasafeService.documentExists(userIDAuth, dsDocument.getDocumentFQN())); @@ -227,7 +258,7 @@ void writeAndReadFilesAsStream(WithStorageProvider.StorageDescriptor descriptor) void testTwoUsers(WithStorageProvider.StorageDescriptor descriptor) { myinit(descriptor); mystart(); - UserIDAuth userIDAuth2 = new UserIDAuth(new UserID("peter2"), new ReadKeyPassword("password2")); + UserIDAuth userIDAuth2 = new UserIDAuth(new UserID("peter2"), ReadKeyPasswordTestFactory.getForString("password2")); simpleDatasafeService.createUser(userIDAuth2); String content = "content of document"; @@ -238,10 +269,10 @@ void testTwoUsers(WithStorageProvider.StorageDescriptor descriptor) { simpleDatasafeService.storeDocument(userIDAuth2, document); // tiny checks, that the password is important - UserIDAuth wrongPasswordUser1 = new UserIDAuth(userIDAuth.getUserID(), new ReadKeyPassword(UUID.randomUUID().toString())); + UserIDAuth wrongPasswordUser1 = new UserIDAuth(userIDAuth.getUserID(), ReadKeyPasswordTestFactory.getForString(UUID.randomUUID().toString())); assertThrows(UnrecoverableKeyException.class, () -> simpleDatasafeService.readDocument(wrongPasswordUser1, new DocumentFQN(path))); - UserIDAuth wrongPasswordUser2 = new UserIDAuth(userIDAuth2.getUserID(), new ReadKeyPassword(UUID.randomUUID().toString())); + UserIDAuth wrongPasswordUser2 = new UserIDAuth(userIDAuth2.getUserID(), ReadKeyPasswordTestFactory.getForString(UUID.randomUUID().toString())); assertThrows(UnrecoverableKeyException.class, () -> simpleDatasafeService.readDocument(wrongPasswordUser2, new DocumentFQN(path))); // now read the docs with the correct password @@ -277,7 +308,7 @@ private void show(String message, List listFound) { log.debug("---------------------------------"); log.debug(message); for (DocumentFQN doc : listFound) { - log.debug("found:" + doc); + log.debug("found: {}", doc); } } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/WithBouncyCastle.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/WithBouncyCastle.java new file mode 100644 index 000000000..feaae5787 --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/WithBouncyCastle.java @@ -0,0 +1,15 @@ +package de.adorsys.datasafe.simple.adapter.impl; + +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.jupiter.api.BeforeAll; + +import java.security.Security; + +public abstract class WithBouncyCastle extends BaseMockitoTest { + + @BeforeAll + static void setupBouncyCastle() { + Security.addProvider(new BouncyCastleProvider()); + } +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/KeystoreUtil.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/KeystoreUtil.java new file mode 100644 index 000000000..d5dd8473d --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/KeystoreUtil.java @@ -0,0 +1,25 @@ +package de.adorsys.datasafe.simple.adapter.impl.legacy; + +import de.adorsys.datasafe.encrypiton.api.types.keystore.KeyID; +import lombok.SneakyThrows; +import lombok.experimental.UtilityClass; + +import java.security.KeyStore; +import java.util.Enumeration; + +@UtilityClass +public class KeystoreUtil { + + @SneakyThrows + public KeyID keyIdByPrefix(KeyStore keyStore, String prefix) { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String element = aliases.nextElement(); + if (element.startsWith(prefix)) { + return new KeyID(element); + } + } + + throw new IllegalArgumentException("Keystore does not contain key with prefix: " + prefix); + } +} diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImplTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/LegacyIntegrityPreservingUriEncryptionTest.java similarity index 56% rename from datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImplTest.java rename to datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/LegacyIntegrityPreservingUriEncryptionTest.java index deef2250c..07e563d09 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/pathencryption/SymmetricPathEncryptionServiceImplTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/test/java/de/adorsys/datasafe/simple/adapter/impl/legacy/LegacyIntegrityPreservingUriEncryptionTest.java @@ -1,12 +1,19 @@ -package de.adorsys.datasafe.encrypiton.impl.pathencryption; +package de.adorsys.datasafe.simple.adapter.impl.legacy; import de.adorsys.datasafe.encrypiton.api.keystore.KeyStoreService; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig; +import de.adorsys.datasafe.encrypiton.api.types.encryption.KeyStoreConfig; import de.adorsys.datasafe.encrypiton.api.types.keystore.*; -import de.adorsys.datasafe.encrypiton.impl.KeystoreUtil; -import de.adorsys.datasafe.encrypiton.impl.keystore.DefaultPasswordBasedKeyConfig; import de.adorsys.datasafe.encrypiton.impl.keystore.KeyStoreServiceImpl; +import de.adorsys.datasafe.simple.adapter.api.legacy.pathencryption.LegacySymmetricPathEncryptionService; +import de.adorsys.datasafe.simple.adapter.impl.WithBouncyCastle; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyPathDigestConfig; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyPathEncryptor; +import de.adorsys.datasafe.simple.adapter.impl.legacy.pathencryption.LegacyIntegrityPreservingUriEncryption; import de.adorsys.datasafe.types.api.resource.Uri; -import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadStorePassword; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; @@ -17,23 +24,23 @@ import java.net.URISyntaxException; import java.security.KeyStore; -import static de.adorsys.datasafe.encrypiton.api.types.keystore.KeyStoreCreationConfig.PATH_KEY_ID_PREFIX; +import static de.adorsys.datasafe.encrypiton.api.types.encryption.KeyCreationConfig.PATH_KEY_ID_PREFIX; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @Slf4j -class SymmetricPathEncryptionServiceImplTest extends BaseMockitoTest { +class LegacyIntegrityPreservingUriEncryptionTest extends WithBouncyCastle { - private SymmetricPathEncryptionServiceImpl bucketPathEncryptionService = new SymmetricPathEncryptionServiceImpl( - new DefaultPathEncryption(new DefaultPathDigestConfig()) + private LegacySymmetricPathEncryptionService legacySymmetricPathEncryptionService = new LegacyIntegrityPreservingUriEncryption( + new LegacyPathEncryptor(new LegacyPathDigestConfig()) ); - private KeyStoreService keyStoreService = new KeyStoreServiceImpl(new DefaultPasswordBasedKeyConfig()); - private ReadKeyPassword readKeyPassword = new ReadKeyPassword("readkeypassword"); + private KeyStoreService keyStoreService = new KeyStoreServiceImpl(KeyStoreConfig.builder().build()); + private ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString("readkeypassword"); private ReadStorePassword readStorePassword = new ReadStorePassword("readstorepassword"); private KeyStoreAuth keyStoreAuth = new KeyStoreAuth(readStorePassword, readKeyPassword); - private KeyStoreCreationConfig config = new KeyStoreCreationConfig(0, 1); - private KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyStoreType.DEFAULT, config); + private KeyCreationConfig config = KeyCreationConfig.builder().encKeyNumber(1).signKeyNumber(1).build(); + private KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); private KeyStoreAccess keyStoreAccess = new KeyStoreAccess(keyStore, keyStoreAuth); @Test @@ -48,8 +55,8 @@ void testSuccessEncryptDecryptPath() { keyStoreAccess, KeystoreUtil.keyIdByPrefix(keyStore, PATH_KEY_ID_PREFIX) ); - Uri encrypted = bucketPathEncryptionService.encrypt(secretKey, testURI); - Uri decrypted = bucketPathEncryptionService.decrypt(secretKey, encrypted); + Uri encrypted = legacySymmetricPathEncryptionService.encrypt(secretKey, testURI); + Uri decrypted = legacySymmetricPathEncryptionService.decrypt(secretKey, encrypted); log.debug("Encrypted path: {}", encrypted); @@ -66,8 +73,8 @@ void testFailEncryptPathWithWrongKeyID() throws URISyntaxException { SecretKeySpec secretKey = keyStoreService.getSecretKey(keyStoreAccess, new KeyID("Invalid key")); // secret keys is null, because during key obtain was used incorrect KeyID, - // so bucketPathEncryptionService#encrypt throw BaseException(was handled NullPointerException) - assertThrows(IllegalArgumentException.class, () -> bucketPathEncryptionService.encrypt(secretKey, testURI)); + // so symmetricPathEncryptionService#encrypt throw BaseException(was handled NullPointerException) + assertThrows(IllegalArgumentException.class, () -> legacySymmetricPathEncryptionService.encrypt(secretKey, testURI)); } @Test @@ -78,7 +85,7 @@ void testFailEncryptPathWithBrokenEncryptedPath() { ); assertThrows(BadPaddingException.class, - () -> bucketPathEncryptionService.decrypt(secretKey, + () -> legacySymmetricPathEncryptionService.decrypt(secretKey, new Uri(URI.create("bRQiW8qLNPEy5tO7shfV0w==/k0HooCVlmhHkQFw8mc==")))); } @@ -90,7 +97,7 @@ void testFailEncryptPathWithTextPath() { ); assertThrows(IllegalBlockSizeException.class, - () -> bucketPathEncryptionService.decrypt(secretKey, + () -> legacySymmetricPathEncryptionService.decrypt(secretKey, new Uri("/simple/text/path/"))); } } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/pom.xml b/datasafe-simple-adapter/datasafe-simple-adapter-spring/pom.xml index b303769eb..906b6fb25 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-spring/pom.xml +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/pom.xml @@ -5,7 +5,7 @@ datasafe-simple-adapter de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringBeans.java b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringBeans.java index b3ce0beb3..83c80841f 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringBeans.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringBeans.java @@ -5,6 +5,7 @@ import de.adorsys.datasafe.simple.adapter.spring.factory.SpringSimpleDatasafeServiceFactory; import de.adorsys.datasafe.simple.adapter.spring.properties.SpringAmazonS3DFSCredentialsProperties; import de.adorsys.datasafe.simple.adapter.spring.properties.SpringDFSCredentialProperties; +import de.adorsys.datasafe.simple.adapter.spring.properties.SpringDatasafeEncryptionProperties; import de.adorsys.datasafe.simple.adapter.spring.properties.SpringFilesystemDFSCredentialsProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -15,10 +16,12 @@ @EnableConfigurationProperties({ SpringDFSCredentialProperties.class, SpringFilesystemDFSCredentialsProperties.class, - SpringAmazonS3DFSCredentialsProperties.class} -) + SpringAmazonS3DFSCredentialsProperties.class, + SpringDatasafeEncryptionProperties.class +}) @Slf4j public class DatasafeSpringBeans { + public DatasafeSpringBeans() { log.info("INIT of DatasafeSpringBeans"); } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringConfiguration.java b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringConfiguration.java index 839339870..6a866eb39 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringConfiguration.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/DatasafeSpringConfiguration.java @@ -1,11 +1,18 @@ package de.adorsys.datasafe.simple.adapter.spring; import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import java.security.Security; + @Configuration @ComponentScan(basePackageClasses = DatasafeSpringBeans.class) @Slf4j public class DatasafeSpringConfiguration { + + public DatasafeSpringConfiguration() { + Security.addProvider(new BouncyCastleProvider()); + } } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/factory/SpringSimpleDatasafeServiceFactory.java b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/factory/SpringSimpleDatasafeServiceFactory.java index afd1cde94..aa250b0b4 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/factory/SpringSimpleDatasafeServiceFactory.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/factory/SpringSimpleDatasafeServiceFactory.java @@ -1,11 +1,13 @@ package de.adorsys.datasafe.simple.adapter.spring.factory; +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.api.exceptions.SimpleAdapterException; import de.adorsys.datasafe.simple.adapter.api.types.AmazonS3DFSCredentials; import de.adorsys.datasafe.simple.adapter.api.types.DFSCredentials; import de.adorsys.datasafe.simple.adapter.api.types.FilesystemDFSCredentials; import de.adorsys.datasafe.simple.adapter.impl.SimpleDatasafeServiceImpl; +import de.adorsys.datasafe.simple.adapter.spring.properties.SpringDatasafeEncryptionProperties; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.PostConstruct; @@ -15,9 +17,13 @@ public class SpringSimpleDatasafeServiceFactory { @Autowired DFSCredentials wiredDfsCredentials; + @Autowired + SpringDatasafeEncryptionProperties encryptionProperties; + DFSCredentials dfsCredentials; boolean useWiredCredentials = true; + @PostConstruct public void postConstruct() { if (useWiredCredentials) { @@ -43,11 +49,21 @@ public SpringSimpleDatasafeServiceFactory(DFSCredentials credentials) { public SimpleDatasafeService getSimpleDataSafeServiceWithSubdir(String subdirBelowRoot) { if (dfsCredentials instanceof AmazonS3DFSCredentials) { AmazonS3DFSCredentials amazonS3DFSCredentials = (AmazonS3DFSCredentials) dfsCredentials; - return new SimpleDatasafeServiceImpl(amazonS3DFSCredentials.toBuilder().rootBucket(amazonS3DFSCredentials.getRootBucket() + "/" + subdirBelowRoot).build()); + return new SimpleDatasafeServiceImpl( + amazonS3DFSCredentials.toBuilder().rootBucket( + amazonS3DFSCredentials.getRootBucket() + "/" + subdirBelowRoot + ).build(), + null != encryptionProperties ? encryptionProperties.getEncryption() : new MutableEncryptionConfig() + ); } if (dfsCredentials instanceof FilesystemDFSCredentials) { FilesystemDFSCredentials filesystemDFSCredentials = (FilesystemDFSCredentials) dfsCredentials; - return new SimpleDatasafeServiceImpl(filesystemDFSCredentials.toBuilder().root(filesystemDFSCredentials.getRoot() + "/" + subdirBelowRoot).build()); + return new SimpleDatasafeServiceImpl( + filesystemDFSCredentials.toBuilder().root( + filesystemDFSCredentials.getRoot() + "/" + subdirBelowRoot + ).build(), + null != encryptionProperties ? encryptionProperties.getEncryption() : new MutableEncryptionConfig() + ); } throw new SimpleAdapterException("missing switch for DFSCredentials" + dfsCredentials); } diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/properties/SpringDatasafeEncryptionProperties.java b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/properties/SpringDatasafeEncryptionProperties.java new file mode 100644 index 000000000..e925ae2bd --- /dev/null +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/main/java/de/adorsys/datasafe/simple/adapter/spring/properties/SpringDatasafeEncryptionProperties.java @@ -0,0 +1,12 @@ +package de.adorsys.datasafe.simple.adapter.spring.properties; + +import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +@Data +@ConfigurationProperties(prefix = "datasafe") +public class SpringDatasafeEncryptionProperties { + + private MutableEncryptionConfig encryption = new MutableEncryptionConfig(); +} diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/test/java/de/adorsys/datasafe/simple/adapter/spring/InjectionTest.java b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/test/java/de/adorsys/datasafe/simple/adapter/spring/InjectionTest.java index 577d72961..61f9a4ec3 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/test/java/de/adorsys/datasafe/simple/adapter/spring/InjectionTest.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-spring/src/test/java/de/adorsys/datasafe/simple/adapter/spring/InjectionTest.java @@ -2,10 +2,11 @@ import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; import de.adorsys.datasafe.simple.adapter.spring.annotations.UseDatasafeSpringConfiguration; import de.adorsys.datasafe.teststorage.WithStorageProvider; +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.test.context.SpringBootTest; @@ -24,7 +25,7 @@ public class InjectionTest extends WithStorageProvider { public void testCreateUser(SimpleDatasafeService datasafeService) { assertThat(datasafeService).isNotNull(); UserID userid = new UserID("peter"); - ReadKeyPassword password = new ReadKeyPassword("password"); + ReadKeyPassword password = ReadKeyPasswordTestFactory.getForString("password"); UserIDAuth userIDAuth = new UserIDAuth(userid, password); assertThat(datasafeService.userExists(userid)).isFalse(); datasafeService.createUser(userIDAuth); diff --git a/datasafe-simple-adapter/pom.xml b/datasafe-simple-adapter/pom.xml index 60e784185..951dceadc 100644 --- a/datasafe-simple-adapter/pom.xml +++ b/datasafe-simple-adapter/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-simple-adapter/readme.md b/datasafe-simple-adapter/readme.md index 1c5d1fa34..29dce8864 100644 --- a/datasafe-simple-adapter/readme.md +++ b/datasafe-simple-adapter/readme.md @@ -17,7 +17,7 @@ import de.adorsys.datasafe.simple.adapter.api.SimpleDatasafeService; # parameter classes of service methods import de.adorsys.datasafe.encrypiton.api.types.UserID; import de.adorsys.datasafe.encrypiton.api.types.UserIDAuth; -import de.adorsys.datasafe.encrypiton.api.types.keystore.ReadKeyPassword; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; import de.adorsys.datasafe.simple.adapter.api.types.DSDocument; import de.adorsys.datasafe.simple.adapter.api.types.DocumentDirectoryFQN; import de.adorsys.datasafe.simple.adapter.api.types.DocumentFQN; diff --git a/datasafe-storage/datasafe-storage-api/pom.xml b/datasafe-storage/datasafe-storage-api/pom.xml index f66f043a5..44377c451 100644 --- a/datasafe-storage/datasafe-storage-api/pom.xml +++ b/datasafe-storage/datasafe-storage-api/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe-storage - 0.6.2 + 0.7.0 datasafe-storage-api @@ -43,4 +43,22 @@ test + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${lombok.version} + + + + + + diff --git a/datasafe-storage/datasafe-storage-api/src/main/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageService.java b/datasafe-storage/datasafe-storage-api/src/main/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageService.java index c43011cd1..f3796b52b 100644 --- a/datasafe-storage/datasafe-storage-api/src/main/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageService.java +++ b/datasafe-storage/datasafe-storage-api/src/main/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageService.java @@ -13,13 +13,14 @@ /** * Storage connection pool that creates S3/or other clients on the fly, based on provided credentials in URI. * URI format that is expected: - * s3://access-key:secret-key@bucket/path/in/bucket + * s3://access-key:secret-key@region/bucket/path/in/bucket */ @RequiredArgsConstructor public class UriBasedAuthStorageService extends BaseDelegatingStorage { private final Map clientByItsAccessKey = new ConcurrentHashMap<>(); private final Function bucketExtractor; + private final Function regionExtractor; private final Function endpointExtractor; // Builder to create S3 or other kind of Storage service @@ -30,10 +31,20 @@ public class UriBasedAuthStorageService extends BaseDelegatingStorage { */ public UriBasedAuthStorageService(Function storageServiceBuilder) { this.storageServiceBuilder = storageServiceBuilder; - this.bucketExtractor = location -> location.getPath().replaceAll("^/", "").split("/")[0]; + Function segmentator = location -> location.getPath().replaceAll("^/", "").split("/"); + this.regionExtractor = location -> segmentator.apply(location)[0]; + this.bucketExtractor = location -> segmentator.apply(location)[1]; this.endpointExtractor = location -> - location.getScheme() + "://" + location.getHost() + portValue(location) + "/" + - this.bucketExtractor.apply(location); + location.getScheme() + "://" + location.getHost() + portValue(location) + "/"; + } + + public UriBasedAuthStorageService(Function storageServiceBuilder, + Function segmentator) { + this.storageServiceBuilder = storageServiceBuilder; + this.regionExtractor = location -> segmentator.apply(location)[0]; + this.bucketExtractor = location -> segmentator.apply(location)[1]; + this.endpointExtractor = location -> + location.getScheme() + "://" + location.getHost() + portValue(location) + "/"; } @Override @@ -43,6 +54,7 @@ protected StorageService service(AbsoluteLocation location) { AccessId accessId = new AccessId( authority[0], authority[1], + regionExtractor.apply(uri), bucketExtractor.apply(uri), endpointExtractor.apply(uri), uri, @@ -65,6 +77,7 @@ public static class AccessId { private final String accessKey; private final String secretKey; + private final String region; private final String bucketName; private final String endpoint; diff --git a/datasafe-storage/datasafe-storage-api/src/test/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageServiceTest.java b/datasafe-storage/datasafe-storage-api/src/test/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageServiceTest.java index a66b8bca2..a4376cca6 100644 --- a/datasafe-storage/datasafe-storage-api/src/test/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageServiceTest.java +++ b/datasafe-storage/datasafe-storage-api/src/test/java/de/adorsys/datasafe/storage/api/UriBasedAuthStorageServiceTest.java @@ -6,6 +6,7 @@ import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.ToString; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -87,68 +88,74 @@ void write(MappedItem item) { private static Stream fixture() { return Stream.of( new MappedItem( - "http://user:password@host:9999/bucket", + "http://user:password@host:9999/region/bucket", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host:9999/bucket", - URI.create("http://host:9999/bucket"), + "http://host:9999/", + URI.create("http://host:9999/region/bucket"), URI.create("http://host:9999") ) ), new MappedItem( - "http://user:password@host:9999/bucket/", + "http://user:password@host:9999/region/bucket/", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host:9999/bucket", - URI.create("http://host:9999/bucket/"), + "http://host:9999/", + URI.create("http://host:9999/region/bucket/"), URI.create("http://host:9999") ) ), new MappedItem( - "http://user:password@host:9999/bucket/path/to", + "http://user:password@host:9999/region/bucket/path/to", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host:9999/bucket", - URI.create("http://host:9999/bucket/path/to"), + "http://host:9999/", + URI.create("http://host:9999/region/bucket/path/to"), URI.create("http://host:9999") ) ), new MappedItem( - "http://user:password@host:9999/bucket/path/to/", + "http://user:password@host:9999/region/bucket/path/to/", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host:9999/bucket", - URI.create("http://host:9999/bucket/path/to/"), + "http://host:9999/", + URI.create("http://host:9999/region/bucket/path/to/"), URI.create("http://host:9999") ) ), new MappedItem( - "http://user:password@host.com/bucket", + "http://user:password@host.com/region/bucket", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host.com/bucket", - URI.create("http://host.com/bucket"), + "http://host.com/", + URI.create("http://host.com/region/bucket"), URI.create("http://host.com") ) ), new MappedItem( - "http://user:password@host.com/bucket/", + "http://user:password@host.com/region/bucket/", new UriBasedAuthStorageService.AccessId( "user", "password", + "region", "bucket", - "http://host.com/bucket", - URI.create("http://host.com/bucket/"), + "http://host.com/", + URI.create("http://host.com/region/bucket/"), URI.create("http://host.com") ) ) @@ -156,6 +163,7 @@ private static Stream fixture() { } @Getter + @ToString(of = "uriAsString") @RequiredArgsConstructor private static class MappedItem { @@ -163,7 +171,7 @@ private static class MappedItem { private final AbsoluteLocation uri; private final UriBasedAuthStorageService.AccessId accessId; - public MappedItem(String uri, UriBasedAuthStorageService.AccessId accessId) { + private MappedItem(String uri, UriBasedAuthStorageService.AccessId accessId) { this.uriAsString = uri; this.uri = BasePrivateResource.forAbsolutePrivate(uri); this.accessId = accessId; diff --git a/datasafe-storage/datasafe-storage-impl-db/pom.xml b/datasafe-storage/datasafe-storage-impl-db/pom.xml index 411d2ac57..c04a6b0cf 100644 --- a/datasafe-storage/datasafe-storage-impl-db/pom.xml +++ b/datasafe-storage/datasafe-storage-impl-db/pom.xml @@ -5,7 +5,7 @@ datasafe-storage de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-storage/datasafe-storage-impl-db/src/test/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageServiceTest.java b/datasafe-storage/datasafe-storage-impl-db/src/test/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageServiceTest.java index d30eb640f..d6a5d52ef 100644 --- a/datasafe-storage/datasafe-storage-impl-db/src/test/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageServiceTest.java +++ b/datasafe-storage/datasafe-storage-impl-db/src/test/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageServiceTest.java @@ -9,9 +9,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.io.InputStream; import java.io.OutputStream; import java.util.Collections; import java.util.Set; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -71,21 +73,28 @@ void objectExists() { void list() { writeData(OTHER_FILE, MESSAGE); - assertThat(storageService.list(FILE)) - .extracting(it -> it.getResource().location().asString()) - .containsOnly("jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello.txt"); + try (Stream> ls = storageService.list(FILE)) { + assertThat(ls) + .extracting(it -> it.getResource().location().asString()) + .containsOnly("jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello.txt"); + } - assertThat(storageService.list(ROOT)) - .extracting(it -> it.getResource().location().asString()) - .containsOnly( - "jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello.txt", - "jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello1.txt" - ); + try (Stream> ls = storageService.list(ROOT)) { + assertThat(ls) + .extracting(it -> it.getResource().location().asString()) + .containsOnly( + "jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello.txt", + "jdbc://localhost:9999/h2:mem:test/private_profiles/path/hello1.txt" + ); + } } @Test + @SneakyThrows void read() { - assertThat(storageService.read(FILE)).hasContent(MESSAGE); + try (InputStream read = storageService.read(FILE)) { + assertThat(read).hasContent(MESSAGE); + } } @Test @@ -95,9 +104,12 @@ void remove() { } @Test + @SneakyThrows void write() { writeData(OTHER_FILE, MESSAGE); - assertThat(storageService.read(OTHER_FILE)).hasContent(MESSAGE); + try (InputStream read = storageService.read(OTHER_FILE)) { + assertThat(read).hasContent(MESSAGE); + } } @SneakyThrows diff --git a/datasafe-storage/datasafe-storage-impl-fs/pom.xml b/datasafe-storage/datasafe-storage-impl-fs/pom.xml index 859dc823b..fb45da1cc 100644 --- a/datasafe-storage/datasafe-storage-impl-fs/pom.xml +++ b/datasafe-storage/datasafe-storage-impl-fs/pom.xml @@ -5,7 +5,7 @@ datasafe-storage de.adorsys - 0.6.2 + 0.7.0 4.0.0 @@ -36,14 +36,6 @@ lombok - - de.adorsys - datasafe-types-api - ${project.version} - test-jar - test - - commons-io commons-io @@ -72,6 +64,14 @@ mockito-core test + + de.adorsys + datasafe-types-api + ${project.version} + test-jar + test + + diff --git a/datasafe-storage/datasafe-storage-impl-fs/src/main/java/de/adorsys/datasafe/storage/impl/fs/FileSystemStorageService.java b/datasafe-storage/datasafe-storage-impl-fs/src/main/java/de/adorsys/datasafe/storage/impl/fs/FileSystemStorageService.java index 3866ad102..5c847c99d 100644 --- a/datasafe-storage/datasafe-storage-impl-fs/src/main/java/de/adorsys/datasafe/storage/impl/fs/FileSystemStorageService.java +++ b/datasafe-storage/datasafe-storage-impl-fs/src/main/java/de/adorsys/datasafe/storage/impl/fs/FileSystemStorageService.java @@ -89,7 +89,9 @@ public OutputStream write(WithCallback> ls = storageService.list(root)) { + assertThat(storageService.objectExists(ls.findFirst().get())).isTrue(); + } } @Test void listEmpty() { Path nonExistingFile = storageDir.resolve(UUID.randomUUID().toString()); AbsoluteLocation nonExistingFileLocation = new AbsoluteLocation<>(BasePrivateResource.forPrivate(nonExistingFile.toUri())); - assertThat(storageService.list(nonExistingFileLocation).collect(Collectors.toList())).isEmpty(); + try (Stream> ls = storageService.list(nonExistingFileLocation)) { + assertThat(ls).isEmpty(); + } } @SneakyThrows @@ -104,33 +108,43 @@ void listDotFilesToo() { Path dotFile = storageDir.resolve(".dotfile"); AbsoluteLocation newFileLocation = new AbsoluteLocation<>(BasePrivateResource.forPrivate(dotFile.toUri())); - assertThat(storageService.list(root).collect(Collectors.toList())).isEmpty(); - try (OutputStream os = storageService.write(WithCallback.noCallback(newFileLocation))) { - os.write(MESSAGE.getBytes()); + try (Stream> lsStorageService = storageService.list(root)) { + assertThat(lsStorageService).isEmpty(); + } + try (OutputStream osStorageService = storageService.write(WithCallback.noCallback(newFileLocation))) { + osStorageService.write(MESSAGE.getBytes()); + } + try (Stream> lsStorageService = storageService.list(root)) { + assertThat(lsStorageService).isNotEmpty(); } - assertThat(storageService.list(root).collect(Collectors.toList())).isNotEmpty(); } @Test void list() { createFileWithMessage(); - assertThat(storageService.list(root)) - .hasSize(1) - .extracting(AbsoluteLocation::location) - .asString().contains(FILE); + try (Stream> lsStorageService = storageService.list(root)) { + assertThat(lsStorageService) + .hasSize(1) + .extracting(AbsoluteLocation::location) + .asString().contains(FILE); + } } @Test void listOnNonExisting() { - assertThat(storageService.list(root)).isEmpty(); + try (Stream> lsStorageService = storageService.list(root)) { + assertThat(lsStorageService).isEmpty(); + } } @Test + @SneakyThrows void read() { createFileWithMessage(); - - assertThat(storageService.read(fileWithMsg)).hasContent(MESSAGE); + try (InputStream read = storageService.read(fileWithMsg)) { + assertThat(read).hasContent(MESSAGE); + } } @Test @@ -140,7 +154,9 @@ void write() { os.write(MESSAGE.getBytes()); } - assertThat(storageService.read(fileWithMsg)).hasContent(MESSAGE); + try (InputStream read = storageService.read(fileWithMsg)) { + assertThat(read).hasContent(MESSAGE); + } } @Test diff --git a/datasafe-storage/datasafe-storage-impl-fs/src/test/resources/simplelogger.properties b/datasafe-storage/datasafe-storage-impl-fs/src/test/resources/simplelogger.properties deleted file mode 100644 index 4ef696449..000000000 --- a/datasafe-storage/datasafe-storage-impl-fs/src/test/resources/simplelogger.properties +++ /dev/null @@ -1,7 +0,0 @@ -org.slf4j.simpleLogger.defaultLogLevel: info - -org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss.SSS -org.slf4j.simpleLogger.showDateTime=true -org.slf4j.simpleLogger.showThreadName=true - -org.slf4j.simpleLogger.logFile=System.out diff --git a/datasafe-storage/datasafe-storage-impl-s3/pom.xml b/datasafe-storage/datasafe-storage-impl-s3/pom.xml index e6f36ad39..3931ec8c2 100644 --- a/datasafe-storage/datasafe-storage-impl-s3/pom.xml +++ b/datasafe-storage/datasafe-storage-impl-s3/pom.xml @@ -5,7 +5,7 @@ datasafe-storage de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/S3ClientFactory.java b/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/S3ClientFactory.java index 38cd26555..841607ee6 100644 --- a/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/S3ClientFactory.java +++ b/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/S3ClientFactory.java @@ -10,10 +10,10 @@ @UtilityClass public class S3ClientFactory { - public AmazonS3 getClient(String endpointUrl, String accessKey, String secretKey) { + public AmazonS3 getClient(String endpointUrl, String region, String accessKey, String secretKey) { return AmazonS3ClientBuilder.standard() .withEndpointConfiguration( - new AwsClientBuilder.EndpointConfiguration(endpointUrl, "eu-central-1") + new AwsClientBuilder.EndpointConfiguration(endpointUrl, region) ) .withCredentials( new AWSStaticCredentialsProvider( @@ -23,4 +23,15 @@ public AmazonS3 getClient(String endpointUrl, String accessKey, String secretKey .enablePathStyleAccess() .build(); } + + public AmazonS3 getAmazonClient(String region, String accessKey, String secretKey) { + return AmazonS3ClientBuilder.standard() + .withRegion(region) + .withCredentials( + new AWSStaticCredentialsProvider( + new BasicAWSCredentials(accessKey, secretKey) + ) + ) + .build(); + } } diff --git a/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/StaticBucketRouter.java b/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/StaticBucketRouter.java index 6951d49cc..2c43345b5 100644 --- a/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/StaticBucketRouter.java +++ b/datasafe-storage/datasafe-storage-impl-s3/src/main/java/de/adorsys/datasafe/storage/impl/s3/StaticBucketRouter.java @@ -3,6 +3,8 @@ import de.adorsys.datasafe.types.api.resource.AbsoluteLocation; import lombok.RequiredArgsConstructor; +import java.util.function.UnaryOperator; + @RequiredArgsConstructor public class StaticBucketRouter implements BucketRouter { @@ -15,6 +17,13 @@ public String bucketName(AbsoluteLocation resource) { @Override public String resourceKey(AbsoluteLocation resource) { - return resource.location().getRawPath().replaceFirst("^/", ""); + UnaryOperator trimStartingSlash = str -> str.replaceFirst("^/", ""); + + String resourcePath = trimStartingSlash.apply(resource.location().getRawPath()); + if (bucketName == null || "".equals(bucketName) || !resourcePath.contains(bucketName)) { + return resourcePath; + } + + return trimStartingSlash.apply(resourcePath.substring(resourcePath.indexOf(bucketName) + bucketName.length())); } } diff --git a/datasafe-storage/datasafe-storage-impl-s3/src/test/java/de/adorsys/datasafe/storage/impl/s3/S3SystemStorageServiceTest.java b/datasafe-storage/datasafe-storage-impl-s3/src/test/java/de/adorsys/datasafe/storage/impl/s3/S3SystemStorageServiceTest.java index bb0e06fa7..6dcfe4876 100644 --- a/datasafe-storage/datasafe-storage-impl-s3/src/test/java/de/adorsys/datasafe/storage/impl/s3/S3SystemStorageServiceTest.java +++ b/datasafe-storage/datasafe-storage-impl-s3/src/test/java/de/adorsys/datasafe/storage/impl/s3/S3SystemStorageServiceTest.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.stream.Collectors; +import static de.adorsys.datasafe.types.api.shared.DockerUtil.getDockerUri; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -31,8 +32,7 @@ class S3SystemStorageServiceTest extends BaseMockitoTest { private static String accessKeyID = "admin"; private static String secretAccessKey = "password"; - private static String region = "eu-central-1"; - private static String url = "http://localhost"; + private static String url = getDockerUri("http://localhost"); private static BasicAWSCredentials creds = new BasicAWSCredentials(accessKeyID, secretAccessKey); private static AmazonS3 s3; private static AbsoluteLocation root; @@ -56,6 +56,7 @@ static void beforeAll() { minio.start(); Integer mappedPort = minio.getMappedPort(9000); log.info("Mapped port: " + mappedPort); + String region = "eu-central-1"; s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(url + ":" + mappedPort, region)) .withCredentials(new AWSStaticCredentialsProvider(creds)) diff --git a/datasafe-storage/pom.xml b/datasafe-storage/pom.xml index 1b3bcac8f..3e7f258e9 100644 --- a/datasafe-storage/pom.xml +++ b/datasafe-storage/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-test-storages/pom.xml b/datasafe-test-storages/pom.xml index a2b9f9967..8aa13a6ab 100644 --- a/datasafe-test-storages/pom.xml +++ b/datasafe-test-storages/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/datasafe-test-storages/src/main/java/de/adorsys/datasafe/teststorage/WithStorageProvider.java b/datasafe-test-storages/src/main/java/de/adorsys/datasafe/teststorage/WithStorageProvider.java index ee16a859f..3cd82f3a4 100644 --- a/datasafe-test-storages/src/main/java/de/adorsys/datasafe/teststorage/WithStorageProvider.java +++ b/datasafe-test-storages/src/main/java/de/adorsys/datasafe/teststorage/WithStorageProvider.java @@ -43,6 +43,8 @@ import java.util.function.Supplier; import java.util.stream.Stream; +import static de.adorsys.datasafe.types.api.shared.DockerUtil.getDockerUri; + /** * Provides different storage types - filesystem, minio, etc. to be used in tests. @@ -62,14 +64,14 @@ public abstract class WithStorageProvider extends BaseMockitoTest { private static String minioAccessKeyID = "admin"; private static String minioSecretAccessKey = "password"; private static String minioRegion = "eu-central-1"; - private static String minioUrl = "http://localhost"; + private static String minioUrl = getDockerUri("http://localhost"); private static String minioMappedUrl; // Note that CEPH is used to test bucket-level versioning, so you will get versioned bucket: private static String cephAccessKeyID = "admin"; private static String cephSecretAccessKey = "password"; private static String cephRegion = "eu-central-1"; - private static String cephUrl = "http://0.0.0.0"; // not localhost! + private static String cephUrl = getDockerUri("http://0.0.0.0");// not localhost! private static String cephMappedUrl; private static String amazonAccessKeyID = readPropOrEnv("AWS_ACCESS_KEY"); @@ -97,8 +99,6 @@ public abstract class WithStorageProvider extends BaseMockitoTest { @BeforeAll static void init(@TempDir Path tempDir) { log.info("Executing init"); - // TODO fixme - log.info(""); // for some strange reason, the newline of the previous statement is gone WithStorageProvider.tempDir = tempDir; minioStorage = Suppliers.memoize(() -> { @@ -193,6 +193,20 @@ protected static Stream allStorages() { ).filter(Objects::nonNull); } + @ValueSource + protected static Stream fsOnly() { + return Stream.of( + fs() + ).filter(Objects::nonNull); + } + + @ValueSource + protected static Stream minioOnly() { + return Stream.of( + minio() + ).filter(Objects::nonNull); + } + protected static StorageDescriptor fs() { return new StorageDescriptor( StorageDescriptorName.FILESYSTEM, @@ -222,6 +236,7 @@ protected static StorageDescriptor cephVersioned() { if (skipCeph()) { return null; } + return new StorageDescriptor( StorageDescriptorName.CEPH, () -> { @@ -273,11 +288,18 @@ protected static StorageDescriptor s3() { } private void removeObjectFromS3(AmazonS3 amazonS3, String bucket, String prefix) { + // if bucket name contains slashes then move all after first slash to prefix + String[] parts = bucket.split("/", 2); + if (parts.length == 2) { + bucket = parts[0]; + prefix = parts[1] + "/" + prefix; + } + String lambdafinalBucket = bucket; amazonS3.listObjects(bucket, prefix) .getObjectSummaries() .forEach(it -> { log.debug("Remove {}", it.getKey()); - amazonS3.deleteObject(bucket, it.getKey()); + amazonS3.deleteObject(lambdafinalBucket, it.getKey()); }); } diff --git a/datasafe-types-api/pom.xml b/datasafe-types-api/pom.xml index fed5853ff..49ac98b76 100644 --- a/datasafe-types-api/pom.xml +++ b/datasafe-types-api/pom.xml @@ -5,7 +5,7 @@ de.adorsys datasafe - 0.6.2 + 0.7.0 datasafe-types-api @@ -44,6 +44,36 @@ guava test + + org.slf4j + slf4j-api + ${slf4j-simple.version} + + + org.slf4j + slf4j-simple + ${slf4j-simple.version} + test + + + org.junit.jupiter + junit-jupiter-api + ${jupiter.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.junit.jupiter + junit-jupiter-api + test + + + diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/PathEncryptionId.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/PathEncryptionId.java new file mode 100644 index 000000000..ce73c0f4c --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/PathEncryptionId.java @@ -0,0 +1,28 @@ +package de.adorsys.datasafe.types.api.global; + +import de.adorsys.datasafe.types.api.resource.Uri; +import lombok.Getter; + +/** + * Identifies what algorithm was used to encrypt path. + */ +@Getter +public enum PathEncryptionId { + + AES_SIV("SIV"); + + // Should be 3-symbol string + private final String name; + + PathEncryptionId(String name) { + if (name.length() > 3) { + throw new IllegalArgumentException("Too long encryption identifier name, 3 characters expected"); + } + + this.name = name; + } + + public Uri asUriRoot() { + return new Uri(name + "/"); + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/Version.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/Version.java new file mode 100644 index 000000000..25bff9324 --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/global/Version.java @@ -0,0 +1,25 @@ +package de.adorsys.datasafe.types.api.global; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * This class carries logical Datasafe version (i.e. dictates user profile structure) so that application can + * detect incompatibilities between old data and new code and act accordingly. + * Can be extended and used by Datasafe client for identifying different profiles/keystores configurations + */ +@Getter +@RequiredArgsConstructor +public class Version { + + /** + * The first version before major changes happened. + */ + public static Version BASELINE = new Version("v0"); + + private final String id; + + public static Version current() { + return BASELINE; + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordString.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordString.java new file mode 100644 index 000000000..2ee8d108b --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordString.java @@ -0,0 +1,80 @@ +package de.adorsys.datasafe.types.api.types; + +import de.adorsys.datasafe.types.api.utils.Obfuscate; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; + +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Supplier; + +/** + * Wrapper for password sensitive data. + */ +@Slf4j +@RequiredArgsConstructor +@EqualsAndHashCode(exclude = {"toBeCleared", "cleared"} ) +@ToString +public class BaseTypePasswordString { + private char[] value; + private AtomicBoolean toBeCleared = new AtomicBoolean(true); + private AtomicBoolean cleared = new AtomicBoolean(false); + + /** + * ATTENTION + *

+ * caller of method gives responsiblity of char[] + * to this class. char[] will be nullyfied + * asap (after successfull read/write/list) + * + * @param value will be nullified asap + */ + public BaseTypePasswordString(char[] value) { + this.value = value; + toBeCleared.set(true); + cleared.set(false); + } + + /** + * caller of method makes sure, supplied char[] is deleted asap + * + * @param value will stay unchanged + */ + public BaseTypePasswordString(Supplier value) { + this.value = value.get(); + toBeCleared.set(false); + cleared.set(false); + } + + + /** + * clears the char array + */ + public void clear() { + synchronized (value) { + if (toBeCleared.get()) { + cleared.set(true); + log.debug("CLEAR PASSWORD {}", this.getClass().getSimpleName()); + Arrays.fill(value, '0'); + } + } + } + + @SneakyThrows + public char[] getValue() { + synchronized (value) { + if (cleared.get()) { + throw new BaseTypePasswordStringException("Password was cleared before and must not be reused"); + } + return value; + } + } + + @Override + public String toString() { + return "BaseTypePasswordString{" + Obfuscate.secureSensitiveChar(getValue()) + "}"; + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordStringException.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordStringException.java new file mode 100644 index 000000000..f8ecf1192 --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/BaseTypePasswordStringException.java @@ -0,0 +1,10 @@ +package de.adorsys.datasafe.types.api.types; + + +import java.security.UnrecoverableKeyException; + +public class BaseTypePasswordStringException extends UnrecoverableKeyException { + public BaseTypePasswordStringException(String message) { + super(message); + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadKeyPassword.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadKeyPassword.java new file mode 100644 index 000000000..8425c4dbd --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadKeyPassword.java @@ -0,0 +1,29 @@ +package de.adorsys.datasafe.types.api.types; + +import java.util.function.Supplier; + +/** + * Wrapper for password for reading secret or private key entry. + */ +public class ReadKeyPassword extends BaseTypePasswordString { + + /** + * caller of method makes sure, supplied char[] is deleted asap + * @param readKeyPassword will stay unchanged + */ + public ReadKeyPassword(Supplier readKeyPassword) { + super(readKeyPassword); + } + + /** + * ATTENTION + * + * caller of method gives responsiblity of char[] + * to this class. char[] will be nullyfied + * asap (after successfull read/write/list) + * @param readKeyPassword will be nullified asap + */ + public ReadKeyPassword(char[] readKeyPassword) { + super(readKeyPassword); + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadStorePassword.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadStorePassword.java new file mode 100644 index 000000000..8dd1f0718 --- /dev/null +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/types/ReadStorePassword.java @@ -0,0 +1,18 @@ +package de.adorsys.datasafe.types.api.types; + +import java.util.function.Supplier; + +/** + * Wrapper for keystore serialization/deserialization password as well as password for reading public keys. + */ +public class ReadStorePassword extends BaseTypePasswordString { + + public ReadStorePassword(String readStorePassword) { + super(new Supplier() { + @Override + public char[] get() { + return readStorePassword.toCharArray(); + } + }); + } +} diff --git a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/utils/Obfuscate.java b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/utils/Obfuscate.java index 4402f6d5c..32cd11c74 100644 --- a/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/utils/Obfuscate.java +++ b/datasafe-types-api/src/main/java/de/adorsys/datasafe/types/api/utils/Obfuscate.java @@ -3,6 +3,7 @@ import lombok.SneakyThrows; import lombok.experimental.UtilityClass; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Base64; @@ -73,6 +74,32 @@ public static String secure(String value) { return computeSha(value); } + /** + * Method has slightly other name as secureSensitive, + * because is call sometimes with null and thus can not + * be clearly assigned. + * + * By default, protects highly sensitive data, but allows to log it using SECURE_SENSITIVE property. + * @param value Its toString() result will get encrypted. + * @return Secured string value that is safe to log. + * + */ + public static String secureSensitiveChar(char[] value) { + if (value == null) { + return null; + } + + if (isDisabled(secureLogs) && isDisabled(secureSensitive)) { + return new String(value); + } + + if ("hash".equalsIgnoreCase(secureSensitive)) { + return "hash:" + computeShaChar(value).substring(0, 4); + } + + return "****"; + } + /** * By default, protects highly sensitive data, but allows to log it using SECURE_SENSITIVE property. * @param value Its toString() result will get encrypted. @@ -100,6 +127,15 @@ private static String computeSha(String s) { return encoder.encodeToString(hash); } + private static String computeShaChar(char[] s) { + byte[] originalBytes = new byte[s.length]; + for (int i = 0; i < s.length; i++) { + originalBytes[i] = (byte) s[i]; + } + byte[] hash = getDigest().digest(originalBytes); + return encoder.encodeToString(hash); + } + private static boolean isDisabled(String value) { return "0".equals(value) || "false".equalsIgnoreCase(value) diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/resource/VersionedPrivateResourceTest.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/resource/VersionedPrivateResourceTest.java new file mode 100644 index 000000000..be0f76e81 --- /dev/null +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/resource/VersionedPrivateResourceTest.java @@ -0,0 +1,66 @@ +package de.adorsys.datasafe.types.api.resource; + +import de.adorsys.datasafe.types.api.shared.BaseMockitoTest; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; + +class VersionedPrivateResourceTest extends BaseMockitoTest { + + private static final String SOME_PATH = "some/path/"; + private Version version = mock(Version.class); + + private PrivateResource resource = BasePrivateResource.forPrivate(SOME_PATH); + private PrivateResource absoluteResource = BasePrivateResource + .forAbsolutePrivate("file://some/path/").getResource(); + + private VersionedPrivateResource tested = new VersionedPrivateResource<>(resource, version); + private VersionedPrivateResource absoluteTested = new VersionedPrivateResource<>(absoluteResource, version); + + @Test + void encryptedPath() { + assertThat(tested.encryptedPath().asString()).isEqualTo(SOME_PATH); + } + + @Test + void decryptedPath() { + assertThat(tested.decryptedPath().asString()).isEqualTo(""); + } + + @Test + void location() { + assertThat(tested.location().asString()).isEqualTo(SOME_PATH); + } + + @Test + void resolveFrom() { + assertThat( + tested.resolveFrom(BasePrivateResource.forAbsolutePrivate("file://data")).location().asString() + ).isEqualTo("file://data/some/path/"); + } + + @Test + void resolve() { + assertThat( + absoluteTested.resolve(new Uri("aa"), new Uri("bb")).location().asString() + ).isEqualTo("file://some/path/aa"); + } + + @Test + void withAuthority() { + assertThat( + absoluteTested.withAuthority("user", "secret").location().toASCIIString() + ).isEqualTo("file://user:secret@some/path/"); + } + + @Test + void getResource() { + assertThat(tested.getResource()).isEqualTo(resource); + } + + @Test + void getVersion() { + assertThat(tested.getVersion()).isEqualTo(version); + } +} diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Dirs.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Dirs.java index e92528acd..f2f18831f 100644 --- a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Dirs.java +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Dirs.java @@ -1,8 +1,11 @@ package de.adorsys.datasafe.types.api.shared; +import de.adorsys.datasafe.types.api.resource.Uri; import lombok.SneakyThrows; import lombok.experimental.UtilityClass; +import org.junit.jupiter.api.condition.OS; +import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -23,8 +26,17 @@ public List walk(Path root, int depth) { return walk .filter(it -> !(it.getFileName().startsWith(".") || it.getFileName().startsWith(".."))) .filter(it -> !it.equals(root)) - .map(it -> root.relativize(it).toString().replaceFirst("\\./", "")) + .map(it -> root.toUri().relativize(it.toUri()).toString().replaceFirst("\\./", "")) .collect(Collectors.toList()); } } + + public String computeRelativePreventingDoubleUrlEncode(Path root, Path child) { + if (!OS.WINDOWS.isCurrentOs()) { + return URI.create(root.relativize(child).toString()).getPath(); + } + + // Windows causes double-encoding of URI + return new Uri(URI.create(root.relativize(child).toString().replace('\\', '/'))).asString(); + } } diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/DockerUtil.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/DockerUtil.java new file mode 100644 index 000000000..26e94cb5c --- /dev/null +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/DockerUtil.java @@ -0,0 +1,21 @@ +package de.adorsys.datasafe.types.api.shared; + +import lombok.SneakyThrows; +import lombok.experimental.UtilityClass; + +import java.net.URI; + +@UtilityClass +public class DockerUtil { + + @SneakyThrows + public static String getDockerUri(String defaultUri) { + String dockerHost = System.getenv("DOCKER_HOST"); + if (dockerHost == null) { + return defaultUri; + } + + URI dockerUri = new URI(dockerHost); + return "http://" + dockerUri.getHost(); + } +} diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Position.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Position.java deleted file mode 100644 index 798f4c133..000000000 --- a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/shared/Position.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.adorsys.datasafe.types.api.shared; - -import java.util.stream.Stream; - -/** - * Utility class for getting the element at the position from a stream. - */ -public final class Position { - - private Position() { - } - - /** - * Returns first element from stream. - * @param data Stream from which to get element - * @param Generic - * @return First element of the stream, or throws {@link IllegalArgumentException} if stream is empty. - */ - public static T first(Stream data) { - return data.findFirst().orElseThrow(() -> new IllegalArgumentException("No first element")); - } -} diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/types/ReadKeyPasswordTest.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/types/ReadKeyPasswordTest.java new file mode 100644 index 000000000..674e276b2 --- /dev/null +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/types/ReadKeyPasswordTest.java @@ -0,0 +1,80 @@ +package de.adorsys.datasafe.types.api.types; + +import de.adorsys.datasafe.types.api.utils.ReadKeyPasswordTestFactory; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.function.Supplier; + +import static org.junit.jupiter.api.Assertions.assertThrows; + + +public class ReadKeyPasswordTest { + String passwordString = "a password that should be nullyfied"; + @Test + public void testClearanceForUnsupplied() { + char[] password = passwordString.toCharArray(); + char[] copyOfPassword = Arrays.copyOf(password, password.length); + + ReadKeyPassword readKeyPassword = new ReadKeyPassword(password); + Assertions.assertThat(Arrays.equals(password, copyOfPassword)).isTrue(); + readKeyPassword.clear(); + Assertions.assertThat(Arrays.equals(password, copyOfPassword)).isFalse(); + assertThrows(BaseTypePasswordStringException.class, () -> readKeyPassword.getValue()); + + } + + @Test + public void testClearanceForSupplied() { + char[] password = passwordString.toCharArray(); + char[] copyOfPassword = Arrays.copyOf(password, password.length); + + ReadKeyPassword readKeyPassword = new ReadKeyPassword(new Supplier() { + @Override + public char[] get() { + return password; + } + }); + Assertions.assertThat(Arrays.equals(password, copyOfPassword)).isTrue(); + readKeyPassword.clear(); + Assertions.assertThat(Arrays.equals(password, copyOfPassword)).isTrue(); + Assertions.assertThat(Arrays.equals(readKeyPassword.getValue(), copyOfPassword)).isTrue(); + + } + + + @Test + public void testWithDeprecatedConstructor() { + String passwordString = "that is the password"; + char[] copyOfPassword = Arrays.copyOf(passwordString.toCharArray(), passwordString.toCharArray().length); + + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString(passwordString); + ReadKeyPassword readKeyPasswordBackup = new ReadKeyPassword(new Supplier() { + @Override + public char[] get() { + return readKeyPassword.getValue(); + } + }); + Assertions.assertThat(Arrays.equals(passwordString.toCharArray(), copyOfPassword)).isTrue(); + readKeyPassword.clear(); + Assertions.assertThat(Arrays.equals(passwordString.toCharArray(), copyOfPassword)).isTrue(); + Assertions.assertThat(Arrays.equals(readKeyPassword.getValue(), copyOfPassword)).isTrue(); + } + + @Test + public void overwriteString() { + String s = "peter"; + s.toCharArray()[0] = 'P'; + Assertions.assertThat(s.equals("Peter")).isFalse(); + } + + + @Test + public void useOnceOnly() { + ReadKeyPassword readKeyPassword = new ReadKeyPassword("peter".toCharArray()); + readKeyPassword.clear(); + assertThrows(BaseTypePasswordStringException.class, () -> readKeyPassword.getValue()); + } + +} diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ObfuscateTest.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ObfuscateTest.java index dddf8ce13..029617860 100644 --- a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ObfuscateTest.java +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ObfuscateTest.java @@ -1,10 +1,10 @@ package de.adorsys.datasafe.types.api.utils; import de.adorsys.datasafe.types.api.resource.Uri; +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.nio.file.Paths; - import static org.assertj.core.api.Assertions.assertThat; class ObfuscateTest { @@ -56,7 +56,7 @@ void secureUriWithHashAndAuthorityIgnoresAuthority() { @Test void securePath() { Obfuscate.secureLogs = "STARS"; - assertThat(new Uri(Paths.get(TEST_STRING).toUri()).toString()) + assertThat(new Uri("file:///path/to/file").toString()) .isEqualTo("Uri{uri=fi****e:///****/****/****}"); } @@ -90,7 +90,7 @@ void secureURISlash() { @Test void disabledHidingSecretRequiresSecureLogsOff() { - Obfuscate.secureSensitive = "OFF"; + Obfuscate.secureSensitive = "TRUE"; assertThat(Obfuscate.secureSensitive(TEST_STRING)).isEqualTo("****"); Obfuscate.secureSensitive = "OFF"; @@ -123,4 +123,21 @@ void hidingSecretEmpty() { Obfuscate.secureSensitive = ""; assertThat(Obfuscate.secureSensitive(TEST_STRING)).isEqualTo("****"); } + + @Test + void obfuscateCharOn() { + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString(TEST_STRING); + Obfuscate.secureSensitive = ""; + Assertions.assertTrue(readKeyPassword.toString().contains("****")); + Assertions.assertFalse(readKeyPassword.toString().contains(TEST_STRING)); + } + + @Test + void obfuscateCharOFF() { + ReadKeyPassword readKeyPassword = ReadKeyPasswordTestFactory.getForString(TEST_STRING); + Obfuscate.secureSensitive = "OFF"; + Obfuscate.secureLogs = "OFF"; + Assertions.assertFalse(readKeyPassword.toString().contains("****")); + Assertions.assertTrue(readKeyPassword.toString().contains(TEST_STRING)); + } } diff --git a/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ReadKeyPasswordTestFactory.java b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ReadKeyPasswordTestFactory.java new file mode 100644 index 000000000..7a80692f1 --- /dev/null +++ b/datasafe-types-api/src/test/java/de/adorsys/datasafe/types/api/utils/ReadKeyPasswordTestFactory.java @@ -0,0 +1,16 @@ +package de.adorsys.datasafe.types.api.utils; + +import de.adorsys.datasafe.types.api.types.ReadKeyPassword; + +import java.util.function.Supplier; + +public class ReadKeyPasswordTestFactory { + public static ReadKeyPassword getForString(String a) { + return new ReadKeyPassword(new Supplier() { + @Override + public char[] get() { + return a.toCharArray(); + } + }); + } +} diff --git a/embed.sh b/embed.sh index 8c02dc120..9e3515f60 100755 --- a/embed.sh +++ b/embed.sh @@ -95,7 +95,7 @@ function snippet_position_end() # expects 2 args - filename and snippet beginnin CLEANED=$(cleanup_embedded) -while read -r line; do +while IFS= read -r line; do if [[ $line =~ $ANCHOR_PATTERN ]]; then filename="${BASH_REMATCH[2]}" snippet_name="${BASH_REMATCH[1]}" diff --git a/last-module-codecoverage-check/pom.xml b/last-module-codecoverage-check/pom.xml index b31231432..27f940b35 100644 --- a/last-module-codecoverage-check/pom.xml +++ b/last-module-codecoverage-check/pom.xml @@ -5,7 +5,7 @@ datasafe de.adorsys - 0.6.2 + 0.7.0 4.0.0 diff --git a/mvnw b/mvnw new file mode 100755 index 000000000..d2f0ea380 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# 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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven2 Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 000000000..b26ab24f0 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index 99d3e4f5a..48b12f245 100644 --- a/pom.xml +++ b/pom.xml @@ -19,12 +19,13 @@ datasafe-simple-adapter datasafe-test-storages datasafe-long-run-tests + datasafe-cli last-module-codecoverage-check de.adorsys datasafe - 0.6.2 + 0.7.0 datasafe Datasafe https://github.com/adorsys/datasafe @@ -50,7 +51,7 @@ Maksym Hryshchenko - mhrex@adorsys.de + mhr@adorsys.de adorsys https://adorsys.de/ @@ -78,20 +79,22 @@ ${basedir}/../target/jacoco-e2e.exec 1.8 + 19.2.0 3.7.0 3.1.1 1.18.6 3.5 - 1.58 + 1.64 2.8.5 - 2.17 + 2.24 27.0.1-jre + 4.0.3 5.4.1 1.4.1 3.12.2 2.25.1 2.22.1 - 1.18 + 1.19 UTF-8 false 1.8 @@ -118,6 +121,8 @@ 3.6.1 5.1.7.RELEASE 2.1.5.RELEASE + 1.3.1 + 2.10.0 @@ -165,6 +170,11 @@ guava ${guava.version} + + info.picocli + picocli + ${picocli.version} + org.slf4j slf4j-api @@ -195,6 +205,11 @@ auto-service ${auto-service.version} + + org.cryptomator + siv-mode + ${siv-mode.version} + diff --git a/scripts/runSimpleDatasafeAdapterPerformanceTest.sh b/scripts/runSimpleDatasafeAdapterPerformanceTest.sh new file mode 100644 index 000000000..e5480863d --- /dev/null +++ b/scripts/runSimpleDatasafeAdapterPerformanceTest.sh @@ -0,0 +1,39 @@ +#!/bin/sh +ERR= +REQ_ENVS="AWS_ACCESS_KEY AWS_SECRET_KEY AWS_BUCKET AWS_REGION" +for ENV in ${REQ_ENVS}; do + if [ -z "${!ENV}" ] ; then + echo "ERROR: missing ${ENV} environment variable" + ERR=1 + fi +done + +help() +{ + echo + echo "********************************************************************************************" + echo "Script usage:" + echo "Before running test script ensures that environment variables are set." + echo "List of used variables:" + echo "AWS_ACCESS_KEY" + echo "AWS_SECRET_KEY" + echo "AWS_BUCKET" + echo "AWS_REGION" + echo "AWS_URL - optional. Used when storage location is not default aws s3 (for example for ceph)" + echo "********************************************************************************************" +} + +if [ "$ERR" = "1" ]; then + help + exit 1 +fi + +cd "$(dirname "$0")/../datasafe-long-run-tests/datasafe-business-tests-random-actions/" || exit +mvn \ +-DAWS_ACCESS_KEY="$AWS_ACCESS_KEY" \ +-DAWS_SECRET_KEY="$AWS_SECRET_KEY" \ +-DAWS_BUCKET="$AWS_BUCKET" \ +-DAWS_URL="$AWS_URL" \ +-DAWS_REGION="$AWS_REGION" \ +-DtestArgs="-Xmx256m -DSTORAGE_PROVIDERS="AMAZON" -DFIXTURE_SIZE="SMALL" -DTHREADS=2 -DFILE_SIZES=100" \ +-Dtest=RandomActionsOnSimpleDatasafeAdapterTest test \ No newline at end of file