diff --git a/.assets/forseti-visualizer-example.gif b/.assets/forseti-visualizer-example.gif
new file mode 100644
index 0000000..5c779e0
Binary files /dev/null and b/.assets/forseti-visualizer-example.gif differ
diff --git a/.gitignore b/.gitignore
index 9cc502c..2bc701e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,14 @@
# Ignore build files
forseti-api/dist-forseti-visualizer-ui
+forseti-api/dist
-# Env/Encrypted
+# Examples: Env/Encrypted
source.env
source-gwongcloud.env
-clah_source.env
-clah_dockersource.env
dockersource.env
asdf.env.enc
config.json
+start_cloud_sql_proxy.sh
# Keys
sa-key.json
diff --git a/README.md b/README.md
index a0551a0..84daa84 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Forseti Visualizer
+![](.assets/forseti-visualizer-example.gif)
+
Forseti Visualizer provides a visualization solution, based on [Forseti Security's](https://github.com/forseti-security/forseti-security) Inventorying and Violation modules. Forseti Visualizer attempts to enable Google Cloud Platform users to better understand their GCP Organization Structure, while providing insights into policy adherence through identification of violations.
## Overview
@@ -41,7 +43,7 @@ npm run build
### forseti-api
-Navigate to forseti-api/. Create a source.env file, which will should be sourced and set prior to runtime. You will need to populate the fields below. The HANDLE and CHANNEL are leveraged for the IAM Explain functionality.
+Navigate to forseti-api/. Create a `source.env` file, which will should be sourced to set the appropriate ENV variables prior to runtime. You will need to populate the fields below. The HANDLE and CHANNEL are leveraged for the IAM Explain functionality.
```bash
# navigate to forseti-api
@@ -52,15 +54,32 @@ cp -R ../forseti-visualizer-ui/dist ../forseti-api/dist-forseti-visualizer-ui
# create source.env file
cat > source.env << EOF
-export CLOUDSQL_HOSTNAME="[IP HERE]"
-export CLOUDSQL_USERNAME="[YOUR_USER_HERE]"
-export CLOUDSQL_PASSWORD="[YOUR_PASSWORD_HERE]"
+export CLOUDSQL_HOSTNAME="[IP HERE:127.0.0.1]"
+export CLOUDSQL_USERNAME="[YOUR_USER_HERE:root]"
+export CLOUDSQL_PASSWORD="[YOUR_PASSWORD_HERE:]"
export CLOUDSQL_SCHEMA="forseti_security"
export FORSETI_SERVER_VM_CHANNEL="[FORSETI-SERVER-VM_IP]:[GRPC_PORT:50051]"
export FORSETI_DATA_MODEL_HANDLE="[DATA_MODEL_HANDLE_HASH:21254f1de747879237a95cb552e80844]"
EOF
```
+You'll also need to seed the project with a `config.json` file under server/config.json.
+
+```bash
+cat > server/config.json << EOF
+{
+ "host": "0.0.0.0",
+ "port": 8080,
+ "bodyLimit": "100kb",
+ "corsHeaders": ["Link"],
+
+ "oauth2ClientId": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com",
+ "oauth2ClientSecret": "[CLIENT_SECRET]",
+ "oauth2Callback": "http://localhost:8080/auth/google/callback",
+}
+EOF
+```
+
While still in the "forseti-api/" directory:
```bash
diff --git a/forseti-api/.babelrc b/forseti-api/.babelrc
new file mode 100644
index 0000000..ff3059c
--- /dev/null
+++ b/forseti-api/.babelrc
@@ -0,0 +1,3 @@
+{
+ "presets": ["@babel/preset-env"]
+}
\ No newline at end of file
diff --git a/forseti-api/README.md b/forseti-api/README.md
index 27bc7d5..c1d7f09 100644
--- a/forseti-api/README.md
+++ b/forseti-api/README.md
@@ -4,8 +4,8 @@ The node.js backend for the forseti-visualizer project. Forseti API serves cont
## Pre-Requisites
-* The hosted solution must have a route to the Cloud SQL database.
-* The hosted solution must have access to the forseti-server via GRPC (port 50051)
+* A database connection using [Cloud SQL Proxy (recommended)](#Cloud-SQL-Proxy).
+* If using IAM Explainer, the hosted solution must have access to the forseti-server GCE VM via a Firewall enabling GRPC traffic (port 50051)
To build and deploy the solution from your local system, please ensure you have the following:
@@ -36,19 +36,14 @@ cat > server/config.json << EOF
"host": "0.0.0.0",
"port": 8080,
"bodyLimit": "100kb",
- "corsHeaders": ["Link"],
- "GCLOUD_PROJECT": "[PROJECT_ID]",
- "DATA_BACKEND": "datastore",
- "NODE_ENV": "",
- "OAUTH2_CLIENT_ID": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com",
- "OAUTH2_CLIENT_SECRET": "[CLIENT_SECRET]",
- "OAUTH2_CALLBACK": "http://localhost:8080/auth/google/callback",
-
- "SECRET": "[SECRET]"
+ "corsHeaders": ["Link"],
+
+ "oauth2ClientId": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com",
+ "oauth2ClientSecret": "[CLIENT_SECRET]",
+ "oauth2Callback": "http://localhost:8080/auth/google/callback",
}
EOF
-
npm install
source source.env
# the forseti-api server runs on localhost port 8080
@@ -57,7 +52,7 @@ npm start
## Deployment - Docker
-To get started with Docker, you will need to create a local dockersource.env file with the following content. (For Docker, do not use double quotes)
+`IF you are using Docker...`, you will need to create a local dockersource.env file with the following content. (Note: Do not include the double quotes)
```bash
cat > dockersource.env << EOF
@@ -76,6 +71,18 @@ export PROJECT_ID="$(gcloud config get-value project -q)"
docker run --env-file $SOURCE_FILE --rm -d -p 8080:8080 gcr.io/$PROJECT_ID/$IMAGE_NAME
```
-## Opinions
+## References
* [.jshintrc](https://stackoverflow.com/questions/36318895/vs-code-with-es6) - JS formatting hints
+
+### Cloud SQL Proxy
+
+* [Reference](https://cloud.google.com/sql/docs/mysql/connect-admin-proxy#install)
+
+```bash
+curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
+chmod +x cloud_sql_proxy
+
+INSTANCE_CONNECTION_NAME="forseti-security-1e88:us-central1:forseti-server-db-586f404"
+./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306
+```
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png
deleted file mode 100644
index d830957..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg
deleted file mode 100644
index a902a06..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg
+++ /dev/null
@@ -1 +0,0 @@
-API Analytics
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png
deleted file mode 100644
index d364c4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg
deleted file mode 100644
index c99f207..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg
+++ /dev/null
@@ -1 +0,0 @@
-API Monetization
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png
deleted file mode 100644
index 9022b8a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg
deleted file mode 100644
index fed41e2..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg
+++ /dev/null
@@ -1 +0,0 @@
-Apigee API Platform
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png
deleted file mode 100644
index 6f5fa8f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg
deleted file mode 100644
index 3d37d20..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg
+++ /dev/null
@@ -1 +0,0 @@
-Apigee Sense
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png
deleted file mode 100644
index 1502083..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg
deleted file mode 100644
index 23fac26..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud Endpoints
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png
deleted file mode 100644
index 190acb4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg
deleted file mode 100644
index 4dcfc10..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg
+++ /dev/null
@@ -1 +0,0 @@
-Developer Portal
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png
deleted file mode 100644
index a7e0a71..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg
deleted file mode 100644
index 3ead5b3..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- BigQuery
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png
deleted file mode 100644
index 1c62a13..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg
deleted file mode 100644
index 90aa45e..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Composer
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png
deleted file mode 100644
index c53ddf8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg
deleted file mode 100644
index cc5f6d4..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
- Cloud Dataflow
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png
deleted file mode 100644
index 9c5ad7d..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg
deleted file mode 100644
index 3a78fde..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- Cloud Datalab
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png
deleted file mode 100644
index 17132f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg
deleted file mode 100644
index c97bf97..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Cloud Dataprep
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png
deleted file mode 100644
index eb5ed2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg
deleted file mode 100644
index 53fcae8..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
- Cloud Dataproc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png
deleted file mode 100644
index 5b5610c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg
deleted file mode 100644
index 2c19e57..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
- Cloud PubSub
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png
deleted file mode 100644
index a930f8e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg
deleted file mode 100644
index e30c594..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Data Studio
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png
deleted file mode 100644
index 3a463ca..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg
deleted file mode 100644
index d33de7a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-
- Genomics
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png
deleted file mode 100644
index d7ddd49..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg
deleted file mode 100644
index 78b4e5d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
- Advanced Solutions Lab
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png
deleted file mode 100644
index b147e07..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg
deleted file mode 100644
index 52eeaa9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud AutoML
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png
deleted file mode 100644
index 271b502..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg
deleted file mode 100644
index 8f644ac..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Cloud Jobs API
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png
deleted file mode 100644
index f85ff7f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg
deleted file mode 100644
index 75d162e..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Cloud Machine Learning
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png
deleted file mode 100644
index a8c4308..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg
deleted file mode 100644
index e83f40a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud Natural Language API
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png
deleted file mode 100644
index fd5ccea..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg
deleted file mode 100644
index ab707ba..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
- Cloud Speech API
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png
deleted file mode 100644
index 158946a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg
deleted file mode 100644
index 7cd4957..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud TPU
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png
deleted file mode 100644
index 5822fa6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg
deleted file mode 100644
index 022392a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Text-to-Speech
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png
deleted file mode 100644
index 6997d9f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg
deleted file mode 100644
index efc2d09..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Cloud Translation API
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png
deleted file mode 100644
index 1c6e00c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg
deleted file mode 100644
index eeb20e8..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Cloud Video Intelligence API
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png
deleted file mode 100644
index 28e2d63..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg
deleted file mode 100644
index 538060f..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Cloud Vision API
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png
deleted file mode 100644
index 7166aec..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg
deleted file mode 100644
index c44e697..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg
+++ /dev/null
@@ -1 +0,0 @@
-Dialogflow Enterprise Edition
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png
deleted file mode 100644
index b82ddbd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg
deleted file mode 100644
index eb6dcae..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- App Engine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png
deleted file mode 100644
index 24188a4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg
deleted file mode 100644
index ff9de20..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Cloud Functions
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png
deleted file mode 100644
index a4b52d9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg
deleted file mode 100644
index 2ce64de..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
- Compute Engine
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png
deleted file mode 100644
index 0e434e3..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg
deleted file mode 100644
index b617e80..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Container Engine
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png
deleted file mode 100644
index 67a2504..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg
deleted file mode 100644
index 18d4e9e..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
- Container-Optimized OS
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png
deleted file mode 100644
index 94a26fd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg
deleted file mode 100644
index 9cde361..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg
+++ /dev/null
@@ -1 +0,0 @@
-GPU
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png
deleted file mode 100644
index 8b9cf7a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg
deleted file mode 100644
index 4062d8c..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Data Transfer Appliance
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg
deleted file mode 100644
index 68c6e0d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
- Cloud Deployment Manager
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg
deleted file mode 100644
index 76e08bb..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud SDK
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg
deleted file mode 100644
index ddb6838..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Source Repositories
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg
deleted file mode 100644
index dd697d9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Test Lab
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg
deleted file mode 100644
index 36ffa70..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Tools for Android Studio
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg
deleted file mode 100644
index 77a5b82..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Tools for IntelliJ
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png
deleted file mode 100644
index bc2bd2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg
deleted file mode 100644
index 3c59013..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud Tools for PowerShell
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png
deleted file mode 100644
index eef3f78..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg
deleted file mode 100644
index c9740f6..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud Tools for Visual Studio
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png
deleted file mode 100644
index d09c343..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg
deleted file mode 100644
index 452fcbf..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
- Container Builder
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png
deleted file mode 100644
index e645187..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg
deleted file mode 100644
index 34d0c8b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- Container Registry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg
deleted file mode 100644
index 27a423c..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Google Plugin for Eclipse
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png
deleted file mode 100644
index ead1366..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg
deleted file mode 100644
index 2ea6fb7..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Blue-Hexagon
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png
deleted file mode 100644
index 444e0cd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg
deleted file mode 100644
index 81c3ecc..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png
deleted file mode 100644
index 6f2473c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg
deleted file mode 100644
index 0eaa0a2..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png
deleted file mode 100644
index 843cf28..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg
deleted file mode 100644
index abb6d86..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Cloud-Dataproc44
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png
deleted file mode 100644
index 93463fc..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg
deleted file mode 100644
index aee2b6b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png
deleted file mode 100644
index 3d1434e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg
deleted file mode 100644
index 9e7d4a7..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png
deleted file mode 100644
index cff08c4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg
deleted file mode 100644
index 9c67215..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Modifiers
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png
deleted file mode 100644
index 9abba86..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg
deleted file mode 100644
index 7abc86d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- modifiers_custom-virtual-machine
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png
deleted file mode 100644
index 744785b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg
deleted file mode 100644
index 37613a7..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Modifiers_
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png
deleted file mode 100644
index 09cc085..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg
deleted file mode 100644
index 0ee0de9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- modifiers_high-memory-machine
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png
deleted file mode 100644
index 69f0b9f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg
deleted file mode 100644
index 2fd364e..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- modifiers_preemptable-vm
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png
deleted file mode 100644
index 3a3fa98..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg
deleted file mode 100644
index 59788eb..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Modifiers_
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png
deleted file mode 100644
index 2b968f1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg
deleted file mode 100644
index d8a379c..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Modifiers_
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png
deleted file mode 100644
index 40ac278..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg
deleted file mode 100644
index fb58b4d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Modifiers_
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png
deleted file mode 100644
index 6e59e1a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg
deleted file mode 100644
index d61ab78..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Modifiers_
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg
deleted file mode 100644
index 8ed8462..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Generic-GCP
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png
deleted file mode 100644
index 451fa4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg
deleted file mode 100644
index 931bbf9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg
+++ /dev/null
@@ -1 +0,0 @@
-Artboard 1
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png
deleted file mode 100644
index c1f20ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg
deleted file mode 100644
index 2f0fdfe..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
-
-
-
-
- GCP_logo_solid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png
deleted file mode 100644
index 2d90728..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg
deleted file mode 100644
index df139cb..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg
+++ /dev/null
@@ -1,46 +0,0 @@
-
- Asset 1lockup
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png
deleted file mode 100644
index cb41fd3..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg
deleted file mode 100644
index a4dacc2..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Asset 1
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png
deleted file mode 100644
index 6d36a4e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg
deleted file mode 100644
index 876f5e9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png
deleted file mode 100644
index cbe1bf1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg
deleted file mode 100644
index bedd3b8..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png
deleted file mode 100644
index 272ddb2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg
deleted file mode 100644
index 3756472..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png
deleted file mode 100644
index 048d95b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png
deleted file mode 100644
index 225f273..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg
deleted file mode 100644
index 9dc926a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png
deleted file mode 100644
index 9eb52c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg
deleted file mode 100644
index 1412afe..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Prediction-API
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png
deleted file mode 100644
index 198a5a2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg
deleted file mode 100644
index 4ae83ed..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
- BeyondCorp
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg
deleted file mode 100644
index 47e45aa..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
- Cloud IAM
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg
deleted file mode 100644
index 6620f8a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
- Cloud Resource Manager
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png
deleted file mode 100644
index fd93a89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg
deleted file mode 100644
index 6c38e73..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Security Command Center
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png
deleted file mode 100644
index fca9bed..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg
deleted file mode 100644
index 2587dce..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Security Scanner
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png
deleted file mode 100644
index 1f4e154..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg
deleted file mode 100644
index d962e1b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
- Data Loss Prevention API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png
deleted file mode 100644
index 722a7f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg
deleted file mode 100644
index 1c10517..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Identity-Aware Proxy
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png
deleted file mode 100644
index 46edd26..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg
deleted file mode 100644
index 751be07..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
- Key Management Service
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png
deleted file mode 100644
index 75da211..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg
deleted file mode 100644
index 8969840..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
- Security Key Enforcement
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png
deleted file mode 100644
index cdb2ab7..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg
deleted file mode 100644
index 9ad6718..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Cloud IoT Core
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png
deleted file mode 100644
index f56c646..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg
deleted file mode 100644
index 09728ca..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
- Cloud APIs
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg
deleted file mode 100644
index 138bf88..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Billing API
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg
deleted file mode 100644
index 4e9cc3a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Console
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg
deleted file mode 100644
index 68c6e0d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
- Cloud Deployment Manager
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg
deleted file mode 100644
index c1f8af4..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Mobile App
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg
deleted file mode 100644
index 304cfee..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Shell
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png
deleted file mode 100644
index 74418c0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg
deleted file mode 100644
index 1ae9215..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Debugger
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png
deleted file mode 100644
index b187414..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg
deleted file mode 100644
index 8afe06b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Error Reporting
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png
deleted file mode 100644
index 800aa37..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg
deleted file mode 100644
index 512dec2..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- Logging
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg
deleted file mode 100644
index b12cf3d..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
- Monitoring
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png
deleted file mode 100644
index 614e569..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg
deleted file mode 100644
index b7cb5a1..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Stackdriver
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png
deleted file mode 100644
index 9c90cd4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg
deleted file mode 100644
index 3809757..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Trace
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png
deleted file mode 100644
index 5cc9bc1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg
deleted file mode 100644
index 0dbfb7a..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Armor
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png
deleted file mode 100644
index b2ac398..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg
deleted file mode 100644
index 0d80004..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
- Cloud CDN
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png
deleted file mode 100644
index 2d8c27b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg
deleted file mode 100644
index a50ad0b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud DNS
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png
deleted file mode 100644
index a3f1b89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg
deleted file mode 100644
index ce153b4..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud External IP Addresses
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png
deleted file mode 100644
index ff4a839..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg
deleted file mode 100644
index 10966f5..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
- Cloud Firewall Rules
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png
deleted file mode 100644
index b245d3c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg
deleted file mode 100644
index 4f8addf..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Cloud Load Balancing
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png
deleted file mode 100644
index 3dde351..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg
deleted file mode 100644
index 25d9c41..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
- Cloud Network
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png
deleted file mode 100644
index f00fdf6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg
deleted file mode 100644
index bfb5ac9..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
- Cloud Router
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png
deleted file mode 100644
index 51743c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg
deleted file mode 100644
index 8a25c1f..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- Cloud Routes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png
deleted file mode 100644
index ef51194..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg
deleted file mode 100644
index 89e142e..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
- Cloud VPN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png
deleted file mode 100644
index d11202d..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg
deleted file mode 100644
index ac3acae..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
- Cloud Interconnect
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png
deleted file mode 100644
index be0e43f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg
deleted file mode 100644
index 09c4369..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg
+++ /dev/null
@@ -1 +0,0 @@
-Partner Interconnect
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png
deleted file mode 100644
index 5de7b57..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg
deleted file mode 100644
index 17934ea..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg
+++ /dev/null
@@ -1 +0,0 @@
-Network Service Tiers_Premium
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png
deleted file mode 100644
index 674e95f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg
deleted file mode 100644
index 02f1dd8..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg
+++ /dev/null
@@ -1 +0,0 @@
-Network Service Tiers_Standard
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png
deleted file mode 100644
index 7944217..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg
deleted file mode 100644
index 0520325..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
- Virtual Private Cloud
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md b/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md
deleted file mode 100644
index b7bd579..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Google Cloud Icons
-
-[Icons URL](https://cloud.google.com/icons/)
-
-## Uploading files to GCS
-
-```bash
-gsutil mb gs://forseti-visualizer-icons
-
-```
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png
deleted file mode 100644
index afce5e0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg
deleted file mode 100644
index 3cd6344..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
- Cloud Bigtable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png
deleted file mode 100644
index 43a77a8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg
deleted file mode 100644
index 8cddfa0..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Cloud Datastore
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png
deleted file mode 100644
index ceb3b89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg
deleted file mode 100644
index 29f7f52..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg
+++ /dev/null
@@ -1 +0,0 @@
-Cloud Memorystore
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png
deleted file mode 100644
index 9763c55..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg
deleted file mode 100644
index 2566744..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Cloud SQL
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png
deleted file mode 100644
index 88068fb..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg
deleted file mode 100644
index c8ba860..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
- Cloud Spanner
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png
deleted file mode 100644
index 3b7bb1a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg
deleted file mode 100644
index 55e2d81..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
- Cloud Storage
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png
deleted file mode 100644
index 4be2acf..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg
deleted file mode 100644
index 0269161..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Persistent Disk
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png
deleted file mode 100644
index 43d58bc..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png
deleted file mode 100644
index 890c233..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png
deleted file mode 100644
index 28adc62..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png
deleted file mode 100644
index d830957..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png
deleted file mode 100644
index d364c4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png
deleted file mode 100644
index d7ddd49..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png
deleted file mode 100644
index 9022b8a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png
deleted file mode 100644
index 6f5fa8f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png
deleted file mode 100644
index b82ddbd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png
deleted file mode 100644
index 444e0cd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png
deleted file mode 100644
index 198a5a2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png
deleted file mode 100644
index a7e0a71..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png
deleted file mode 100644
index ead1366..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png
deleted file mode 100644
index f56c646..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png
deleted file mode 100644
index 5cc9bc1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png
deleted file mode 100644
index b147e07..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png
deleted file mode 100644
index afce5e0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png
deleted file mode 100644
index b2ac398..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png
deleted file mode 100644
index 1c62a13..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png
deleted file mode 100644
index 2d8c27b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png
deleted file mode 100644
index c53ddf8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png
deleted file mode 100644
index 9c5ad7d..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png
deleted file mode 100644
index 17132f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png
deleted file mode 100644
index eb5ed2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png
deleted file mode 100644
index 43a77a8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png
deleted file mode 100644
index 1502083..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png
deleted file mode 100644
index a3f1b89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png
deleted file mode 100644
index ff4a839..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png
deleted file mode 100644
index 24188a4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png
deleted file mode 100644
index cdb2ab7..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png
deleted file mode 100644
index 271b502..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png
deleted file mode 100644
index b245d3c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png
deleted file mode 100644
index f85ff7f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png
deleted file mode 100644
index ceb3b89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png
deleted file mode 100644
index a8c4308..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png
deleted file mode 100644
index 3dde351..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png
deleted file mode 100644
index 5b5610c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png
deleted file mode 100644
index f00fdf6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png
deleted file mode 100644
index 51743c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png
deleted file mode 100644
index 9763c55..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png
deleted file mode 100644
index fd93a89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png
deleted file mode 100644
index fca9bed..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png
deleted file mode 100644
index 88068fb..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png
deleted file mode 100644
index fd5ccea..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png
deleted file mode 100644
index 3b7bb1a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png
deleted file mode 100644
index 158946a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png
deleted file mode 100644
index 5822fa6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png
deleted file mode 100644
index bc2bd2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png
deleted file mode 100644
index eef3f78..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png
deleted file mode 100644
index 6997d9f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png
deleted file mode 100644
index ef51194..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png
deleted file mode 100644
index 1c6e00c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png
deleted file mode 100644
index 28e2d63..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png
deleted file mode 100644
index 6f2473c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png
deleted file mode 100644
index 843cf28..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png
deleted file mode 100644
index a4b52d9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png
deleted file mode 100644
index 93463fc..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png
deleted file mode 100644
index d09c343..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png
deleted file mode 100644
index 0e434e3..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png
deleted file mode 100644
index e645187..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png
deleted file mode 100644
index 3d1434e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png
deleted file mode 100644
index 67a2504..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png
deleted file mode 100644
index 1f4e154..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png
deleted file mode 100644
index a930f8e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png
deleted file mode 100644
index 74418c0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png
deleted file mode 100644
index d11202d..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png
deleted file mode 100644
index 190acb4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png
deleted file mode 100644
index 7166aec..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png
deleted file mode 100644
index b187414..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png
deleted file mode 100644
index 2d90728..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png
deleted file mode 100644
index cb41fd3..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png
deleted file mode 100644
index 94a26fd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png
deleted file mode 100644
index 3a463ca..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png
deleted file mode 100644
index 451fa4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png
deleted file mode 100644
index c1f20ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png
deleted file mode 100644
index 722a7f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png
deleted file mode 100644
index 6d36a4e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png
deleted file mode 100644
index 46edd26..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png
deleted file mode 100644
index cbe1bf1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png
deleted file mode 100644
index 272ddb2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png
deleted file mode 100644
index 800aa37..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png
deleted file mode 100644
index be0e43f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png
deleted file mode 100644
index 4be2acf..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png
deleted file mode 100644
index 9eb52c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png
deleted file mode 100644
index 5de7b57..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png
deleted file mode 100644
index 75da211..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png
deleted file mode 100644
index 614e569..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png
deleted file mode 100644
index 674e95f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png
deleted file mode 100644
index 048d95b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png
deleted file mode 100644
index 225f273..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png
deleted file mode 100644
index 9c90cd4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png
deleted file mode 100644
index 8b9cf7a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png
deleted file mode 100644
index 7944217..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png
deleted file mode 100644
index 43d58bc..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png
deleted file mode 100644
index 890c233..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png
deleted file mode 100644
index cff08c4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png
deleted file mode 100644
index 9abba86..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png
deleted file mode 100644
index 744785b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png
deleted file mode 100644
index 09cc085..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png
deleted file mode 100644
index 69f0b9f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png
deleted file mode 100644
index 3a3fa98..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png
deleted file mode 100644
index 2b968f1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png
deleted file mode 100644
index 40ac278..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png
deleted file mode 100644
index 6e59e1a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png
deleted file mode 100644
index 28adc62..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh b/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh
deleted file mode 100644
index 8778cc5..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# Copyright 2019 Google LLC
-#
-# 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.
-
-export TEMP_DIR="public"
-export BUCKET_NAME="gs://forseti-visualizer-icons"
-
-mkdir $TEMP_DIR
-
-find . -name "*.png" -exec cp {} $TEMP_DIR \; -print
-
-gsutil cp -R $TEMP_DIR $BUCKET_NAME
-
-gsutil iam ch allUsers:objectViewer $BUCKET_NAME
diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json
deleted file mode 100644
index 88ba35b..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json
+++ /dev/null
@@ -1,73 +0,0 @@
-[{
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/compute.admin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/compute.xpnAdmin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/iam.organizationRoleAdmin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/orgpolicy.policyAdmin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/owner"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.folderAdmin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.organizationAdmin"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.projectCreator"
-}, {
- "resources": ["organization/358329783625"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/storage.admin"
-}, {
- "resources": ["folder/379678980128"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.folderAdmin"
-}, {
- "resources": ["folder/379678980128"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.folderEditor"
-}, {
- "resources": ["folder/631974286168"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.folderAdmin"
-}, {
- "resources": ["folder/631974286168"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/resourcemanager.folderEditor"
-}, {
- "resources": ["project/the-core"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/compute.admin"
-}, {
- "resources": ["project/the-core"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/editor"
-}, {
- "resources": ["project/cloud-identity-log-export"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/compute.networkUser"
-}, {
- "resources": ["project/cloud-identity-log-export"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/owner"
-}, {
- "resources": ["tf-lb-https-gke"],
- "member": "user/garrettwong@mycloud.com",
- "role": "roles/container.admin"
-}]
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json
deleted file mode 100644
index 91484a0..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json
+++ /dev/null
@@ -1,2231 +0,0 @@
-[{
- "id": 1086937,
- "resource_type": "organization",
- "category": "resource",
- "resource_id": "358329783624",
- "parent_id": null,
- "resource_data_displayname": "mycloud.com",
- "resource_data_name": "organizations/358329783624",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087269,
- "resource_type": "folder",
- "category": "resource",
- "resource_id": "379678980128",
- "parent_id": 1086937,
- "resource_data_displayname": "Machine Learning",
- "resource_data_name": "folders/379678980128",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087270,
- "resource_type": "folder",
- "category": "resource",
- "resource_id": "631974286168",
- "parent_id": 1086937,
- "resource_data_displayname": "Common Services",
- "resource_data_name": "folders/631974286168",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087271,
- "resource_type": "folder",
- "category": "resource",
- "resource_id": "95108949912",
- "parent_id": 1086937,
- "resource_data_displayname": "Next2019",
- "resource_data_name": "folders/95108949912",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087272,
- "resource_type": "folder",
- "category": "resource",
- "resource_id": "429021693524",
- "parent_id": 1086937,
- "resource_data_displayname": "Audit",
- "resource_data_name": "folders/429021693524",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087268,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "datadog",
- "parent_id": 1086937,
- "resource_data_displayname": "",
- "resource_data_name": "datadog",
- "qq": "DELETE_REQUESTED",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087273,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "actions-codelab2-c23dc",
- "parent_id": 1086937,
- "resource_data_displayname": "",
- "resource_data_name": "actions-codelab2",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087274,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "actions-codelab-2b402",
- "parent_id": 1086937,
- "resource_data_displayname": "",
- "resource_data_name": "actions-codelab",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087275,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "the-core",
- "parent_id": 1086937,
- "resource_data_displayname": "",
- "resource_data_name": "the-core",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087598,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "forsetiviz",
- "parent_id": 1087271,
- "resource_data_displayname": "",
- "resource_data_name": "forsetiviz",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087601,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "machine-learning-space-60f8",
- "parent_id": 1087269,
- "resource_data_displayname": "",
- "resource_data_name": "machine-learning-space",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087457,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "devops-1ca6",
- "parent_id": 1087270,
- "resource_data_displayname": "",
- "resource_data_name": "devops",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087458,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "cloud-identity-log-export-e896",
- "parent_id": 1087272,
- "resource_data_displayname": "",
- "resource_data_name": "cloud-identity-log-export",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087460,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "log-sinks-13e2",
- "parent_id": 1087270,
- "resource_data_displayname": "",
- "resource_data_name": "log-sinks",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087461,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "billing-export-224721",
- "parent_id": 1087272,
- "resource_data_displayname": "",
- "resource_data_name": "billing-export",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087462,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "gwc-service-accounts",
- "parent_id": 1087270,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-service-accounts",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087476,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "forseti-security-1e88",
- "parent_id": 1087272,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-security",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087486,
- "resource_type": "project",
- "category": "resource",
- "resource_id": "sandbox-d24a",
- "parent_id": 1087270,
- "resource_data_displayname": "",
- "resource_data_name": "sandbox",
- "qq": "ACTIVE",
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087747,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "f870bb1119d03960447cf5607fdc23d983f5cba1",
- "parent_id": 1087728,
- "resource_data_displayname": "",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com/keys/f870bb1119d03960447cf5607fdc23d983f5cba1",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087748,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "6682783915782212445",
- "parent_id": 1087458,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087749,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "108061090596963688110",
- "parent_id": 1087486,
- "resource_data_displayname": "App Engine default service account",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-d24a@appspot.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087519,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "log-sinks-13e2:billing_dataset",
- "parent_id": 1087460,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087520,
- "resource_type": "appengine_app",
- "category": "resource",
- "resource_id": "12895176895115487131",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "apps/sandbox-d24a",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087523,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "sandbox-d24a:_a0de8134e431651da41eebdd63aff3d91712bac0",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087526,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "sandbox-d24a:_f64394b2e029e57be754bd1289d9c6239a8233a4",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087276,
- "resource_type": "appengine_app",
- "category": "resource",
- "resource_id": "13425635519886651018",
- "parent_id": 1087273,
- "resource_data_displayname": "",
- "resource_data_name": "apps/actions-codelab2-c23dc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087277,
- "resource_type": "appengine_app",
- "category": "resource",
- "resource_id": "7945097770081965604",
- "parent_id": 1087274,
- "resource_data_displayname": "",
- "resource_data_name": "apps/actions-codelab-2b402",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087533,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "sandbox-d24a:demos",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087789,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "103637530803869903316",
- "parent_id": 1087462,
- "resource_data_displayname": "terraform",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087278,
- "resource_type": "appengine_app",
- "category": "resource",
- "resource_id": "12124268524944363433",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "apps/gwc-core",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087280,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "actions-codelab-2b402:_a0de8134e431651da41eebdd63aff3d91712bac0",
- "parent_id": 1087274,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087538,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "2367329402438925077",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "cloud-sql-network",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087539,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "8520483207830141801",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "datalab-network",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087540,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "9166398486162884720",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087541,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "6783578822461276754",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "msad-1-net",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087542,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "3668895297047108157",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "test-vpc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087297,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "112216796485388173458",
- "parent_id": 1087273,
- "resource_data_displayname": "App Engine default service account",
- "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/actions-codelab2-c23dc@appspot.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087810,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "181e7ae878a7aa904867465f56c56a1fa09c0aef",
- "parent_id": 1087789,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/181e7ae878a7aa904867465f56c56a1fa09c0aef",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087299,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "110926080687946263114",
- "parent_id": 1087274,
- "resource_data_displayname": "Dialogflow Integrations",
- "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087811,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "70dadc2b7b6933386b2ec6785c01036a12fd5e5b",
- "parent_id": 1087789,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/70dadc2b7b6933386b2ec6785c01036a12fd5e5b",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087812,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "115009270172643806285",
- "parent_id": 1087486,
- "resource_data_displayname": "firebase-adminsdk",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/firebase-adminsdk-bzpww@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087813,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "3594925605044832310",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-client-vm-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087302,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "6bdb3d2678f354e7e135a1129bc13df98587bec1",
- "parent_id": 1087299,
- "resource_data_displayname": "",
- "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com/keys/6bdb3d2678f354e7e135a1129bc13df98587bec1",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087814,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "8486162231495969663",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-server-vm-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087303,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "110156228593365405487",
- "parent_id": 1087273,
- "resource_data_displayname": "firebase-adminsdk",
- "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/firebase-adminsdk-ja904@actions-codelab2-c23dc.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087815,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "6813813017106770059",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-viz",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087304,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "116253849059323265974",
- "parent_id": 1087274,
- "resource_data_displayname": "App Engine default service account",
- "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/actions-codelab-2b402@appspot.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087305,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "117224473281259054462",
- "parent_id": 1087273,
- "resource_data_displayname": "Dialogflow Integrations",
- "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087306,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "111257885974099395354",
- "parent_id": 1087274,
- "resource_data_displayname": "firebase-adminsdk",
- "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/firebase-adminsdk-su0if@actions-codelab-2b402.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087307,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "c361c09f92c96d133416fc8cd9be2765ddd5200c",
- "parent_id": 1087305,
- "resource_data_displayname": "",
- "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com/keys/c361c09f92c96d133416fc8cd9be2765ddd5200c",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087309,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "gwc-core:_4784c839abe01535aeb06117b4eadd1bdff4d036",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087822,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "107406175416283934817",
- "parent_id": 1087462,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/724908491897-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087316,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "gwc-core:_a0de8134e431651da41eebdd63aff3d91712bac0",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087319,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "gwc-core:audit_logs",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087838,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "114644472468659911846",
- "parent_id": 1087461,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/billing-export-224721/serviceAccounts/821978887269-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087839,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "103052378991472800101",
- "parent_id": 1087486,
- "resource_data_displayname": "Sandbox Service Account",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087841,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "101412755338781731808",
- "parent_id": 1087462,
- "resource_data_displayname": "deployment-sa",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087844,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "8529250661964401263",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087589,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "114673245419123644810",
- "parent_id": 1087275,
- "resource_data_displayname": "cloud-identity-sa",
- "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087845,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "112584810090416955649",
- "parent_id": 1087458,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/716672103529-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087590,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "3b229bf74cc286f7cb7ecc5cac711c4f29f157b6",
- "parent_id": 1087589,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087846,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "77983d81a130c15f09463ad216945ef586fa07ed",
- "parent_id": 1087841,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com/keys/77983d81a130c15f09463ad216945ef586fa07ed",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087591,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2",
- "parent_id": 1087589,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087592,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "105851209756305009829",
- "parent_id": 1087275,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/gwc-core/serviceAccounts/1012227841684-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087848,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "1284527881802702040",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-1cjx",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087593,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "113724968357944586915",
- "parent_id": 1087275,
- "resource_data_displayname": "App Engine default service account",
- "resource_data_name": "projects/gwc-core/serviceAccounts/gwc-core@appspot.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087849,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "1365024326368058543",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-bn9k",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087594,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "115923635699569204829",
- "parent_id": 1087275,
- "resource_data_displayname": "Terraform service account",
- "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087850,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "1191788173398596818",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-wzfq",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087595,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "6fbe7d606eee666ef72a93fbe5904ccd9a82c689",
- "parent_id": 1087594,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com/keys/6fbe7d606eee666ef72a93fbe5904ccd9a82c689",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087596,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "116560305678240202448",
- "parent_id": 1087275,
- "resource_data_displayname": "deployment-sa",
- "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087597,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d",
- "parent_id": 1087596,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com/keys/7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087599,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "117038248974815894357",
- "parent_id": 1087275,
- "resource_data_displayname": "Vault Admin",
- "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087600,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "3bea3132931ff03185fe8c176cde8cc99dfbd977",
- "parent_id": 1087599,
- "resource_data_displayname": "",
- "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com/keys/3bea3132931ff03185fe8c176cde8cc99dfbd977",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087602,
- "resource_type": "appengine_app",
- "category": "resource",
- "resource_id": "7406181609418660989",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "apps/machine-learning-space-60f8",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087605,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "forseti-viz-icons",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-viz-icons",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087606,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "garrettwong-buckettest",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "garrettwong-buckettest",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087609,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core-cloud-identity-bucket",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core-cloud-identity-bucket",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087610,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core-terraform",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core-terraform",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087866,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "5659742664575713443",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-5m8f",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087611,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core-txf",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core-txf",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087612,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1260466199391954455",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "allow-nat",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087868,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "1305210344048197795",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-lprx",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087613,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8408436723735118928",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087614,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1879006215180436560",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087870,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "105374360607252435374",
- "parent_id": 1087458,
- "resource_data_displayname": "Cloud Identity Service Account",
- "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087615,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6104720101290067024",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087871,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "8716914576440459428",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-w0gl",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087616,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2846317778922947664",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087617,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8190585790517272077",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "deny-nat-egress",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087873,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "1349542120304269820",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-forsetiviz-cluster-default-pool-d1b8ab4a-l9gq",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087618,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4681437096951735725",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "deny-to-nat",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087619,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core-vault",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core-vault",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087620,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core-vault-assets",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core-vault-assets",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087621,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "gwc-core.appspot.com",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gwc-core.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087622,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "staging.gwc-core.appspot.com",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "staging.gwc-core.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087623,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "us.artifacts.gwc-core.appspot.com",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "us.artifacts.gwc-core.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087879,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "7819493649714347229",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087624,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8840757871121191570",
- "parent_id": 1087462,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087880,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "6625292033309551567",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "tf-lb-https-gke",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087625,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "154428764001587858",
- "parent_id": 1087462,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087626,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4730986369469043346",
- "parent_id": 1087462,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087627,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3213663656032785042",
- "parent_id": 1087462,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087883,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "6a1f60f162aff5348c3013658a524610904a67ef",
- "parent_id": 1087870,
- "resource_data_displayname": "",
- "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com/keys/6a1f60f162aff5348c3013658a524610904a67ef",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087628,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "2637731837486884872",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "nat-instance",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087629,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4959239979711782591",
- "parent_id": 1087461,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087885,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "5858401807007079739",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087630,
- "resource_type": "instance",
- "category": "resource",
- "resource_id": "623843538070989298",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "natted-instance",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087886,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "113912014131861751716",
- "parent_id": 1087460,
- "resource_data_displayname": "log-sinks Project Service Account",
- "resource_data_name": "projects/log-sinks-13e2/serviceAccounts/project-service-account@log-sinks-13e2.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087631,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1802803161659006655",
- "parent_id": 1087461,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087632,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6936203938477825727",
- "parent_id": 1087461,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087633,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4085155770665197247",
- "parent_id": 1087461,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087634,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1474260097917291323",
- "parent_id": 1087458,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087635,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1870970434454063931",
- "parent_id": 1087458,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087636,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1981283667269684027",
- "parent_id": 1087458,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087637,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1723232115046517563",
- "parent_id": 1087458,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087638,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "5586891510912435277",
- "parent_id": 1087457,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087639,
- "resource_type": "cloudsqlinstance",
- "category": "resource",
- "resource_id": "2949407881675395326",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-server-db-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087645,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "112534036763134582613",
- "parent_id": 1087486,
- "resource_data_displayname": "cloud-identity-sa",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087906,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "110382659820927879347",
- "parent_id": 1087476,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087919,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "eb6651a1fdaff077959a5ede567614cabc9137b7",
- "parent_id": 1087906,
- "resource_data_displayname": "",
- "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/eb6651a1fdaff077959a5ede567614cabc9137b7",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087921,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "be66264f720a23f37ac32f847c9e28e57a0b9821",
- "parent_id": 1087906,
- "resource_data_displayname": "",
- "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/be66264f720a23f37ac32f847c9e28e57a0b9821",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087669,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "9167572ee699c606085ee658d0f2856b40c165a3",
- "parent_id": 1087645,
- "resource_data_displayname": "",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9167572ee699c606085ee658d0f2856b40c165a3",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087671,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "7e42a7c738ec078a05533980ecad4173578d22d8",
- "parent_id": 1087645,
- "resource_data_displayname": "",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/7e42a7c738ec078a05533980ecad4173578d22d8",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087674,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3559637054228243367",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "app-fw",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087930,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "artifacts.sandbox-d24a.appspot.com",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "artifacts.sandbox-d24a.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087675,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3658969782248009627",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "block85",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087676,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "5419153792255191193",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-http",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087677,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1918152733254722973",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-http-8080",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087678,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2451771014981675160",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-https",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087679,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "100197118367544255719",
- "parent_id": 1087486,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087680,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "797528068453578342",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "express-fw",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087681,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "5789176365957240934",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "firewall-rules-grpc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087682,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2367746070100265389",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-client-allow-ssh-external-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087683,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6869999435676862902",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-client-deny-all-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087684,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6347185470600334096",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-server-allow-grpc-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087685,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "5794008895649695996",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-server-allow-ssh-external-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087686,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8354713138199218974",
- "parent_id": 1087476,
- "resource_data_displayname": "",
- "resource_data_name": "forseti-server-deny-all-586f404",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087942,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "113486930990684019570",
- "parent_id": 1087476,
- "resource_data_displayname": "forseti-server-gcp-586f404",
- "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087687,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd",
- "parent_id": 1087679,
- "resource_data_displayname": "",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com/keys/d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087943,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "113107835673196937238",
- "parent_id": 1087601,
- "resource_data_displayname": "firebase-adminsdk",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/firebase-adminsdk-2gg81@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087688,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "106791106999041034442",
- "parent_id": 1087457,
- "resource_data_displayname": "Dev Ops Service Account",
- "resource_data_name": "projects/devops-1ca6/serviceAccounts/devops-sa@devops-1ca6.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087944,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "eu-bucket-gcs",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "eu-bucket-gcs",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087689,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6561904487888682171",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087690,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "2258776410475385487",
- "parent_id": 1087462,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087691,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "5061568228366081308",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087692,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "115085871534648005204",
- "parent_id": 1087486,
- "resource_data_displayname": "my translation lab service account",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087948,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "103741238050124993901",
- "parent_id": 1087598,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/forsetiviz/serviceAccounts/656666665848-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087693,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "770007614534024379",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087949,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "117226999893450872731",
- "parent_id": 1087476,
- "resource_data_displayname": "forseti-client-gcp-586f404",
- "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-client-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087694,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8319158338057788701",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087950,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "sandbox-d24a-lb-assets-9c8b",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "sandbox-d24a-lb-assets-9c8b",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087695,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "7186315676718824635",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087696,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "7513218054359735580",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087697,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2702390912279215291",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087698,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1603709377119378717",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087954,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "105521825310981536781",
- "parent_id": 1087601,
- "resource_data_displayname": "Cloud Identity Service Account",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087699,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3803766427012574135",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-aa62a218-all",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087700,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8591193285889392857",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-044938d7-all",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087956,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "sandbox-d24a-txf",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "sandbox-d24a-txf",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087701,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "285018743533480888",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-aa62a218-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087702,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4479623730538512602",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-044938d7-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087958,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "817321bb30aa63c7ba5688e5308c1e597016eb60",
- "parent_id": 1087954,
- "resource_data_displayname": "",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com/keys/817321bb30aa63c7ba5688e5308c1e597016eb60",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087703,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "927533043422604215",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "gke-tf-lb-https-gke-aa62a218-vms",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087959,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "sandbox-d24a.appspot.com",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "sandbox-d24a.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087448,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "gwc-core:demos",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087704,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "273566788756209882",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-cl-cluster-044938d7-vms",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087960,
- "resource_type": "kubernetes_cluster",
- "category": "resource",
- "resource_id": "6359115376722877353",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "cl-cluster",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087705,
- "resource_type": "network",
- "category": "resource",
- "resource_id": "5928899249887698626",
- "parent_id": 1087461,
- "resource_data_displayname": "",
- "resource_data_name": "default",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087961,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "104261382341648333601",
- "parent_id": 1087601,
- "resource_data_displayname": "Dialogflow Integrations",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087706,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4834178662425487078",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-542aec7db3ea1d72-node-http-hc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087962,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "staging.sandbox-d24a.appspot.com",
- "parent_id": 1087486,
- "resource_data_displayname": "",
- "resource_data_name": "staging.sandbox-d24a.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087707,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8187257422791432676",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-forsetiviz-cluster-f293571b-all",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087963,
- "resource_type": "kubernetes_cluster",
- "category": "resource",
- "resource_id": "10556751157192063221",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "forsetiviz-cluster",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087708,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4288703620966606167",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-8c74983584882cf4-node-http-hc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087964,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "630a2263e95a102deacbcaccf97fb53c6e6dc038",
- "parent_id": 1087961,
- "resource_data_displayname": "",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com/keys/630a2263e95a102deacbcaccf97fb53c6e6dc038",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087453,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "actions-codelab2-c23dc.appspot.com",
- "parent_id": 1087273,
- "resource_data_displayname": "",
- "resource_data_name": "actions-codelab2-c23dc.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087965,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "118339782968778270113",
- "parent_id": 1087601,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/428092455983-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087454,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "staging.actions-codelab2-c23dc.appspot.com",
- "parent_id": 1087273,
- "resource_data_displayname": "",
- "resource_data_name": "staging.actions-codelab2-c23dc.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087710,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2321420806240459236",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-forsetiviz-cluster-f293571b-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087966,
- "resource_type": "kubernetes_cluster",
- "category": "resource",
- "resource_id": "12655547366249308525",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "tf-lb-https-gke",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087455,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "actions-codelab-2b402.appspot.com",
- "parent_id": 1087274,
- "resource_data_displayname": "",
- "resource_data_name": "actions-codelab-2b402.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087711,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8604191622166802776",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-923f70a0fe8acf4d-node-http-hc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087967,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "artifacts.forsetiviz.appspot.com",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "artifacts.forsetiviz.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087712,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4851948630043122148",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "gke-forsetiviz-cluster-f293571b-vms",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087968,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "forsetiviz_cloudbuild",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "forsetiviz_cloudbuild",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087713,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3266144110484138376",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "tf-lb-https-gke-hc-0",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087714,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6211942447999168195",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-95a374b364bdb4ad-node-http-hc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087970,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "artifacts.machine-learning-space-60f8.appspot.com",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "artifacts.machine-learning-space-60f8.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087459,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "staging.actions-codelab-2b402.appspot.com",
- "parent_id": 1087274,
- "resource_data_displayname": "",
- "resource_data_name": "staging.actions-codelab-2b402.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087715,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "7867525312654377360",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-de802f70d972df6f-node-http-hc",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087971,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "machine-learning-space-60f8-lb-assets-19ff",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "machine-learning-space-60f8-lb-assets-19ff",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087716,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4379855750536135066",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-fw-a1658c9ab435411e9b70d42010a80006",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087972,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "machine-learning-space-60f8.appspot.com",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "machine-learning-space-60f8.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087717,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "7026258630888983571",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-fw-a5bb0df4e430011e9b5e142010a8a006",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087973,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "mls-bucket",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "mls-bucket",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087718,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4551384873048813262",
- "parent_id": 1087598,
- "resource_data_displayname": "",
- "resource_data_name": "k8s-fw-a930c138442eb11e9b5e142010a8a006",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087463,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1951856080361073130",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "allow-example-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087719,
- "resource_type": "serviceaccount_key",
- "category": "resource",
- "resource_id": "9a76c99c5ea3f67c397291befa3b0594fabd3312",
- "parent_id": 1087692,
- "resource_data_displayname": "",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9a76c99c5ea3f67c397291befa3b0594fabd3312",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087464,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2480342816767322119",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "allow-example-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087465,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "994587516002990895",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "datalab-network-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087721,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "105806508553642215035",
- "parent_id": 1087457,
- "resource_data_displayname": "Compute Engine default service account",
- "resource_data_name": "projects/devops-1ca6/serviceAccounts/168499148573-compute@developer.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087466,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1131391913826196724",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-http",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087467,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1506291513080683763",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-https",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087468,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "9157225028724115540",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-icmp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087469,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "4568142173340092500",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-internal",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087470,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "5856217382399952980",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-rdp",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087471,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2810349476565928020",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "default-allow-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087472,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1257583069503706716",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-2-3beda741-all",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087728,
- "resource_type": "serviceaccount",
- "category": "resource",
- "resource_id": "113878897713821412398",
- "parent_id": 1087486,
- "resource_data_displayname": "Dialogflow Integrations",
- "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087473,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "3820051603014047324",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-2-3beda741-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087474,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "642963830582826588",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-2-3beda741-vms",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087475,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6266273573893066929",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-3-d2bbade1-all",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087477,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "6918141359070138545",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-3-d2bbade1-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087478,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1342946987620716720",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "gke-standard-cluster-3-d2bbade1-vms",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087479,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1831428783725186312",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "istio-multicluster-test-pods",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087480,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8023956336684351714",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "ldap-389",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087481,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "8636955595501126196",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "msad-1-allow-internal-ports",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087482,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "863440702458741300",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "msad-1-tcp-3389",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087994,
- "resource_type": "bucket",
- "category": "resource",
- "resource_id": "staging.machine-learning-space-60f8.appspot.com",
- "parent_id": 1087601,
- "resource_data_displayname": "",
- "resource_data_name": "staging.machine-learning-space-60f8.appspot.com",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087483,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "2263909467577623833",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "natfirewall",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087484,
- "resource_type": "firewall",
- "category": "resource",
- "resource_id": "1333156223082357601",
- "parent_id": 1087275,
- "resource_data_displayname": "",
- "resource_data_name": "vault-us-central1-vm-ssh",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}, {
- "id": 1087485,
- "resource_type": "dataset",
- "category": "resource",
- "resource_id": "log-sinks-13e2:_a0de8134e431651da41eebdd63aff3d91712bac0",
- "parent_id": 1087460,
- "resource_data_displayname": "",
- "resource_data_name": "",
- "qq": null,
- "inventory_index_id": 1552609278876965
-}]
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json
deleted file mode 100644
index b503f03..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8676,"created_at_datetime":"2019-03-09T02:22:31.000Z","full_name":"organization/358329783625/folder/429021693524/project/forseti-security-1e88/cloudsqlinstance/2949407881675395326/","resource_data":"{\"authorizedNetworks\": [{\"kind\": \"sql#aclEntry\", \"name\": \"default\", \"value\": \"0.0.0.0/0\"}], \"ipv4Enabled\": true, \"requireSsl\": false}","resource_name":"forseti-server-db-586f404","resource_id":"forseti-server-db-586f404","resource_type":"cloudsqlinstance","rule_index":0,"rule_name":"Cloud SQL rule to search for publicly exposed instances","violation_data":"{\"authorized_networks\": [\"0.0.0.0/0\"], \"full_name\": \"organization/358329783625/folder/429021693524/project/forseti-security-1e88/cloudsqlinstance/2949407881675395326/\", \"instance_name\": \"forseti-server-db-586f404\", \"project_id\": \"forseti-server-db-586f404\", \"require_ssl\": false}","violation_hash":"d4cae72704e2afdd2eb7350694319518ac687ad6e5bd991eea2c7e2655cf3644d1a3237cab9bffbc1cbd87deb079c8a184ca8bc45681e916790f2ad31dbae237","violation_type":"CLOUD_SQL_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8677,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/folder/379678980128/project/machine-learning-space-60f8/firewall/3803766427012574135/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-tf-lb-https-gke-aa62a218-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/machine-learning-space-60f8/global/networks/tf-lb-https-gke\", \"priority\": 1000, \"sourceRanges\": [\"10.32.0.0/14\"], \"targetTags\": [\"gke-tf-lb-https-gke-aa62a218-node\"]}","resource_name":"gke-tf-lb-https-gke-aa62a218-all","resource_id":"machine-learning-space-60f8","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-tf-lb-https-gke-aa62a218-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-tf-lb-https-gke-aa62a218-all\"]}}","violation_hash":"2a1d9ec788a4cf1ada6b12aa5a11d6cde2c68fa505e0a7bc684b534e182af3935f2dd19df316ccfaa18360f146e79950ef7018526c60c386c5c981b30a405966","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8678,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/1257583069503706716/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-standard-cluster-2-3beda741-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/datalab-network\", \"priority\": 1000, \"sourceRanges\": [\"10.20.0.0/19\"], \"targetTags\": [\"gke-standard-cluster-2-3beda741-node\"]}","resource_name":"gke-standard-cluster-2-3beda741-all","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-standard-cluster-2-3beda741-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-standard-cluster-2-3beda741-all\"]}}","violation_hash":"27643d9e702b282897ed98df24dd0e9c1b86f558f49041832682909c3de5337866d34f6cf4744bdd87e54dcb3ffe8697c0a722de1dfb3bb38c52081b74261150","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8679,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/1831428783725186312/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"istio-multicluster-test-pods\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/default\", \"priority\": 900, \"sourceRanges\": [\"10.12.0.0/14\", \"10.40.0.0/14\", \"10.8.0.0/14\"], \"targetTags\": [\"bar\", \"datalab\", \"gke-cluster-1-04c3f62e-node\", \"gke-cluster-2-2de9b5d0-node\", \"gke-standard-cluster-1-058b1890-node\"]}","resource_name":"istio-multicluster-test-pods","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"istio-multicluster-test-pods\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"istio-multicluster-test-pods\"]}}","violation_hash":"19eaa154b5080f3e211ad0f817c98e73902a733030ed79c684289f355a202e7d6082f1745236a0f41d7c92c6bc8463e04dad8112ca7ed89265fb086d76d25d2c","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8680,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/6266273573893066929/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-standard-cluster-3-d2bbade1-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/datalab-network\", \"priority\": 1000, \"sourceRanges\": [\"10.252.0.0/19\"], \"targetTags\": [\"gke-standard-cluster-3-d2bbade1-node\"]}","resource_name":"gke-standard-cluster-3-d2bbade1-all","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-standard-cluster-3-d2bbade1-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-standard-cluster-3-d2bbade1-all\"]}}","violation_hash":"014bdd882568d4ee67895a0b113865b66f9c1def99ce894a055e0e38752f0bdf150acbfb9b84e02110ac4ce4b93a391418210d4f9ffe3cdd109ff66e135be12e","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8681,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/bucket/forseti-visualizer-icons/","resource_data":"{\"bindings\": [{\"members\": [\"projectEditor:gwc-core\", \"projectOwner:gwc-core\"], \"role\": \"roles/storage.legacyBucketOwner\"}, {\"members\": [\"projectViewer:gwc-core\"], \"role\": \"roles/storage.legacyBucketReader\"}, {\"members\": [\"allUsers\"], \"role\": \"roles/storage.objectViewer\"}], \"etag\": \"CAI=\", \"kind\": \"storage#policy\", \"resourceId\": \"projects/_/buckets/forseti-visualizer-icons\"}","resource_name":"allUsers:None","resource_id":"forseti-visualizer-icons","resource_type":"bucket","rule_index":1,"rule_name":"Prevent public users from having access to buckets via IAM","violation_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/bucket/forseti-visualizer-icons/\", \"member\": \"allUsers:None\", \"role\": \"roles/storage.objectViewer\"}","violation_hash":"932c5d0e5b59489894d0063ee83fc07258380d4191bd60e5a82d4a9eb4ee147fa0c64417cc650001ad896c32b347f29da12c8b8a034aa1e69ce8a6848788de08","violation_type":"IAM_POLICY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8682,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/","resource_data":"{\"auditConfigs\": [{\"auditLogConfigs\": [{\"logType\": \"ADMIN_READ\"}], \"service\": \"iam.googleapis.com\"}], \"bindings\": [{\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/appengine.appViewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/bigquery.admin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/bigquery.dataViewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/billing.admin\"}, {\"members\": [\"domain:mycloud.com\"], \"role\": \"roles/billing.creator\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/browser\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/cloudasset.viewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/cloudsql.viewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/compute.admin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/compute.networkViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:ghaleb@google.com\", \"user:milindp@google.com\", \"user:smalasani@google.com\"], \"role\": \"roles/compute.osLoginExternalUser\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/compute.securityAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/compute.xpnAdmin\"}, {\"members\": [\"domain:mycloud.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/iam.organizationRoleAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.organizationRoleViewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/iam.securityReviewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountKeyAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountUser\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/logging.admin\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/monitoring.admin\"}, {\"members\": [\"domain:mycloud.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/orgpolicy.policyAdmin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/orgpolicy.policyViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/owner\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.folderAdmin\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:milindp@google.com\"], \"role\": \"roles/resourcemanager.folderViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.organizationAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\", \"user:milindp@google.com\"], \"role\": \"roles/resourcemanager.organizationViewer\"}, {\"members\": [\"domain:mycloud.com\", \"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.projectCreator\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/resourcemanager.projectIamAdmin\"}, {\"members\": [\"serviceAccount:service-org-358329783625@security-center-api.iam.gserviceaccount.com\"], \"role\": \"roles/securitycenter.serviceAgent\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/servicemanagement.quotaViewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/serviceusage.serviceUsageConsumer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/storage.admin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/storage.objectAdmin\"}], \"etag\": \"BwWCHzj4Klo=\"}","resource_name":"user:garrettwong@gcpawesomedemos.com","resource_id":"358329783625","resource_type":"organization","rule_index":0,"rule_name":"Allow only IAM members in my domain to be an OrgAdmin","violation_data":"{\"full_name\": \"organization/358329783625/\", \"member\": \"user:garrettwong@gcpawesomedemos.com\", \"role\": \"roles/resourcemanager.organizationAdmin\"}","violation_hash":"5e6bc56aeaec657a6c11ef720476d32a5163ba5b03861afacd9075596980c17d14d4ec2312da59fd5f9f0cfc9a56e32556f256b9f62bfaf97503e7d6c892f87f","violation_type":"IAM_POLICY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8683,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/folder/631974286168/project/sandbox-d24a/bucket/eu-bucket-gcs/","resource_data":"{\"acl\": [{\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-owners-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-owners-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"owners\"}, \"role\": \"OWNER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-owners-147925056168\"}, {\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-editors-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-editors-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"editors\"}, \"role\": \"OWNER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-editors-147925056168\"}, {\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-viewers-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-viewers-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"viewers\"}, \"role\": \"READER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-viewers-147925056168\"}], \"defaultObjectAcl\": [{\"entity\": \"project-owners-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"owners\"}, \"role\": \"OWNER\"}, {\"entity\": \"project-editors-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"editors\"}, \"role\": \"OWNER\"}, {\"entity\": \"project-viewers-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"viewers\"}, \"role\": \"READER\"}], \"etag\": \"CAE=\", \"iamConfiguration\": {\"bucketPolicyOnly\": {\"enabled\": false}}, \"id\": \"eu-bucket-gcs\", \"kind\": \"storage#bucket\", \"location\": \"EUROPE-WEST2\", \"metageneration\": \"1\", \"name\": \"eu-bucket-gcs\", \"owner\": {\"entity\": \"project-owners-147925056168\"}, \"projectNumber\": \"147925056168\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs\", \"storageClass\": \"REGIONAL\", \"timeCreated\": \"2019-03-08T04:48:48.198Z\", \"updated\": \"2019-03-08T04:48:48.198Z\"}","resource_name":"","resource_id":"eu-bucket-gcs","resource_type":"bucket","rule_index":0,"rule_name":"All buckets in organization must be in the US.","violation_data":"\"[u'EUROPE-WEST2']\"","violation_hash":"0ef6293eeace71a13b214e87b36ec02468a47eefd90fadd47f869a6662c511f2ecc1e802a3282eb9744b7740944a606d4e16b03ed899bf1f39e6ccc9cb6faaa0","violation_type":"LOCATION_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8684,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/181e7ae878a7aa904867465f56c56a1fa09c0aef/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/181e7ae878a7aa904867465f56c56a1fa09c0aef/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"181e7ae878a7aa904867465f56c56a1fa09c0aef\", \"valid_after_time\": \"2018-10-11T14:05:28Z\", \"valid_before_time\": \"2028-10-08T14:05:28Z\"}","resource_name":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_id":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-11T14:05:28Z\", \"key_id\": \"181e7ae878a7aa904867465f56c56a1fa09c0aef\", \"project_id\": \"gwc-service-accounts\", \"service_account_id\": \"terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"service_account_name\": \"terraform\", \"violation_reason\": \"Key ID 181e7ae878a7aa904867465f56c56a1fa09c0aef not rotated since 2018-10-11T14:05:28Z.\"}","violation_hash":"9942e4893576d9b6bcfedfc7349e4f9564e6fbd16a74e7f27cfa164b6f83af6dae0512112e174a86e6bfcaa3ef2bd70689caa8baa574d8ae91ac80b3a3fc63d6","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8685,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/70dadc2b7b6933386b2ec6785c01036a12fd5e5b/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/70dadc2b7b6933386b2ec6785c01036a12fd5e5b/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"70dadc2b7b6933386b2ec6785c01036a12fd5e5b\", \"valid_after_time\": \"2018-10-11T14:06:48Z\", \"valid_before_time\": \"2028-10-08T14:06:48Z\"}","resource_name":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_id":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-11T14:06:48Z\", \"key_id\": \"70dadc2b7b6933386b2ec6785c01036a12fd5e5b\", \"project_id\": \"gwc-service-accounts\", \"service_account_id\": \"terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"service_account_name\": \"terraform\", \"violation_reason\": \"Key ID 70dadc2b7b6933386b2ec6785c01036a12fd5e5b not rotated since 2018-10-11T14:06:48Z.\"}","violation_hash":"1afca5846d03cf21f87294b3ee38b9be2ef2ecdedbf51cbbffa0af17d72079765bc204978503c06dc4fe00c3de33f57e77e0fdb6b6ae2f14d9d2f801a2d15d96","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8686,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"3b229bf74cc286f7cb7ecc5cac711c4f29f157b6\", \"valid_after_time\": \"2018-10-18T03:43:43Z\", \"valid_before_time\": \"2028-10-15T03:43:43Z\"}","resource_name":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_id":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-18T03:43:43Z\", \"key_id\": \"3b229bf74cc286f7cb7ecc5cac711c4f29f157b6\", \"project_id\": \"gwc-core\", \"service_account_id\": \"cloud-identity-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"cloud-identity-sa\", \"violation_reason\": \"Key ID 3b229bf74cc286f7cb7ecc5cac711c4f29f157b6 not rotated since 2018-10-18T03:43:43Z.\"}","violation_hash":"88974b603fe9503354c5dc588f34be086b12a93e53da73201944339d95032217018caeeaab011e110f3cf6c52b1b0580dd526a923945e0921597c9d9284648ab","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8687,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2\", \"valid_after_time\": \"2018-10-18T04:00:49Z\", \"valid_before_time\": \"2028-10-15T04:00:49Z\"}","resource_name":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_id":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-18T04:00:49Z\", \"key_id\": \"619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2\", \"project_id\": \"gwc-core\", \"service_account_id\": \"cloud-identity-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"cloud-identity-sa\", \"violation_reason\": \"Key ID 619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2 not rotated since 2018-10-18T04:00:49Z.\"}","violation_hash":"366a2e7488f81d630e9cd77c6e9bd224316a5ae2a50f09bae0c278f23858ee81457e62a6eaf992cd8e4a41c4324fa0191d3ebf008244ae86f3e530b50b113c55","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8688,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/115923635699569204829/serviceaccount_key/6fbe7d606eee666ef72a93fbe5904ccd9a82c689/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/115923635699569204829/serviceaccount_key/6fbe7d606eee666ef72a93fbe5904ccd9a82c689/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"6fbe7d606eee666ef72a93fbe5904ccd9a82c689\", \"valid_after_time\": \"2018-11-11T02:24:54Z\", \"valid_before_time\": \"2028-11-08T02:24:54Z\"}","resource_name":"terraform-sa@gwc-core.iam.gserviceaccount.com","resource_id":"terraform-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-11-11T02:24:54Z\", \"key_id\": \"6fbe7d606eee666ef72a93fbe5904ccd9a82c689\", \"project_id\": \"gwc-core\", \"service_account_id\": \"terraform-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"Terraform service account\", \"violation_reason\": \"Key ID 6fbe7d606eee666ef72a93fbe5904ccd9a82c689 not rotated since 2018-11-11T02:24:54Z.\"}","violation_hash":"739b2945fc7aab641d28c38d8d4b743c985d8027d7f83c78683c34bb263773d6a7baf955ef00ea6399410fad5ed709cb7160f45469b5288b88fba6c263631833","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"}]
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/favicon.ico b/forseti-api/dist-forseti-visualizer-ui/favicon.ico
deleted file mode 100644
index 550aa69..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/favicon.ico and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2
deleted file mode 100644
index b5a9567..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2 and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff
deleted file mode 100644
index c64755a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf
deleted file mode 100644
index 5f72e91..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot
deleted file mode 100644
index da7bd5e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot
deleted file mode 100644
index 55085ca..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff
deleted file mode 100644
index 2578261..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2
deleted file mode 100644
index 3ef9c3e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2 and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf
deleted file mode 100644
index a309313..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2
deleted file mode 100644
index 71b07ce..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2 and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff
deleted file mode 100644
index a892a7a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot
deleted file mode 100644
index 68c010a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf
deleted file mode 100644
index 7ece328..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png b/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png
deleted file mode 100644
index d830957..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png b/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png
deleted file mode 100644
index d364c4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png b/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png
deleted file mode 100644
index d7ddd49..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png b/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png
deleted file mode 100644
index 9022b8a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png b/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png
deleted file mode 100644
index 6f5fa8f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png b/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png
deleted file mode 100644
index b82ddbd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png b/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png
deleted file mode 100644
index 198a5a2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png b/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png
deleted file mode 100644
index a7e0a71..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png
deleted file mode 100644
index f56c646..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png
deleted file mode 100644
index 5cc9bc1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png
deleted file mode 100644
index b147e07..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png
deleted file mode 100644
index afce5e0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png
deleted file mode 100644
index b2ac398..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png
deleted file mode 100644
index 2d8c27b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png
deleted file mode 100644
index c53ddf8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png
deleted file mode 100644
index 9c5ad7d..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png
deleted file mode 100644
index 17132f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png
deleted file mode 100644
index eb5ed2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png
deleted file mode 100644
index 43a77a8..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png
deleted file mode 100644
index 1502083..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png
deleted file mode 100644
index ff4a839..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png
deleted file mode 100644
index 24188a4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png
deleted file mode 100644
index cdb2ab7..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png
deleted file mode 100644
index 271b502..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png
deleted file mode 100644
index f85ff7f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png
deleted file mode 100644
index ceb3b89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png
deleted file mode 100644
index 3dde351..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png
deleted file mode 100644
index 5b5610c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png
deleted file mode 100644
index 31e24ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png
deleted file mode 100644
index f00fdf6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png
deleted file mode 100644
index 51743c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png
deleted file mode 100644
index 9763c55..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png
deleted file mode 100644
index fd93a89..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png
deleted file mode 100644
index fca9bed..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png
deleted file mode 100644
index 88068fb..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png
deleted file mode 100644
index 3b7bb1a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png
deleted file mode 100644
index 158946a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png
deleted file mode 100644
index 5822fa6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png
deleted file mode 100644
index bc2bd2c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png
deleted file mode 100644
index eef3f78..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png
deleted file mode 100644
index 6997d9f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png
deleted file mode 100644
index ef51194..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png
deleted file mode 100644
index 1c6e00c..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png
deleted file mode 100644
index 28e2d63..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png b/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png
deleted file mode 100644
index a4b52d9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png
deleted file mode 100644
index d09c343..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png
deleted file mode 100644
index 0e434e3..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png
deleted file mode 100644
index e645187..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png b/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png
deleted file mode 100644
index 67a2504..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png b/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png
deleted file mode 100644
index 1f4e154..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png b/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png
deleted file mode 100644
index a930f8e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png b/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png
deleted file mode 100644
index 74418c0..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png b/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png
deleted file mode 100644
index 190acb4..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png b/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png
deleted file mode 100644
index 7166aec..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png b/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png
deleted file mode 100644
index b187414..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png b/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png
deleted file mode 100644
index 2d90728..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png b/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png
deleted file mode 100644
index 94a26fd..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png b/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png
deleted file mode 100644
index 3a463ca..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png
deleted file mode 100644
index 451fa4a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png
deleted file mode 100644
index c1f20ba..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png
deleted file mode 100644
index 1ff83f6..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png b/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png
deleted file mode 100644
index 722a7f2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png b/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png
deleted file mode 100644
index 6d36a4e..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png b/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png
deleted file mode 100644
index 46edd26..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png b/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png
deleted file mode 100644
index cbe1bf1..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png b/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png
deleted file mode 100644
index 272ddb2..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png b/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png
deleted file mode 100644
index 85243df..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png b/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png
deleted file mode 100644
index 9eb52c9..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png b/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png
deleted file mode 100644
index 5de7b57..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png b/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png
deleted file mode 100644
index 75da211..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png b/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png
deleted file mode 100644
index 614e569..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png b/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png
deleted file mode 100644
index 674e95f..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png b/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png
deleted file mode 100644
index 048d95b..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png b/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png
deleted file mode 100644
index 225f273..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png b/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png
deleted file mode 100644
index 8b9cf7a..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png b/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png
deleted file mode 100644
index 43d58bc..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg
deleted file mode 100644
index caa8cc4..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg
+++ /dev/null
@@ -1,3296 +0,0 @@
-
-
-
-
-Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg
deleted file mode 100644
index bba5446..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg
+++ /dev/null
@@ -1,799 +0,0 @@
-
-
-
-
-Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg
deleted file mode 100644
index 4ef85aa..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg
+++ /dev/null
@@ -1,4516 +0,0 @@
-
-
-
-
-Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png b/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png
deleted file mode 100644
index 890c233..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png b/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png
deleted file mode 100644
index 28adc62..0000000
Binary files a/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png and /dev/null differ
diff --git a/forseti-api/dist-forseti-visualizer-ui/index.html b/forseti-api/dist-forseti-visualizer-ui/index.html
deleted file mode 100644
index 823fabb..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/index.html
+++ /dev/null
@@ -1 +0,0 @@
-
Forseti-Visualizer We're sorry but forseti-visualizer-ui doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
diff --git a/forseti-api/dist-forseti-visualizer-ui/resources.csv b/forseti-api/dist-forseti-visualizer-ui/resources.csv
deleted file mode 100644
index 12b2788..0000000
--- a/forseti-api/dist-forseti-visualizer-ui/resources.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-1,"organization","resource","organizations/123",,"mycloud.com","organizations/123","ACTIVE"
-2,"folder","resource","folders/24242421",1,"GWC Folder","folders/24242421","ACTIVE"
-5,"project","resource","gwc-infra",2,"gwc-infra","gwc-infra-d603","ACTIVE"
-6,"project","resource","gwc-app",2,"gwc-app","gwc-app-9c1f","ACTIVE"
-7,"project","resource","gwc-db",2,"gwc-db","gwc-db-0c8b","ACTIVE"
-8,"project","resource","gwc-network",2,"gwc-network","gwc-network-0c8b","ACTIVE"
-9,"bucket","resource","gwc-bucket",5,"gwc-bucket","gwc-bucket-0c8b","ACTIVE"
-10,"firewall","resource","gwc-fw",8,"gwc-fw","gwc-fw-0c8b","ACTIVE"
\ No newline at end of file
diff --git a/forseti-api/dist/server.js b/forseti-api/dist/server.js
deleted file mode 100644
index 05694bd..0000000
--- a/forseti-api/dist/server.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2019 Google LLC
-//
-// 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.
-
-'use strict';
-
-// express 4.0
-
-var express = require('express');
-
-var api = require('./server/api');
-
-// Constants
-var PORT = 8080;
-var HOST = '0.0.0.0';
-
-// App
-var app = express();
-app.set('view engine', 'pug');
-app.use(express.static('public')); // images,css,etc.
-
-
-app.get('/', function (req, res) {
- var name = 'Test';
- res.render('index', {
- title: 'Hi ' + name
- });
-});
-
-app.get('/home', function (req, res) {
- res.send('GET: ' + req.url);
-});
-
-app.post('/home', function (req, res) {
- res.send('POST: ' + req.url);
-});
-
-app.get('/q', function (req, res) {
- var name = getRandomName();
- res.send('Hello ' + name);
-});
-
-app.get('/q/:id', function (req, res) {
- var id = req.params.id;
- res.send('Hello Q' + id);
-});
-
-app.listen(PORT, HOST);
-console.log('Running on http://' + HOST + ':' + PORT);
-//# sourceMappingURL=server.js.map
\ No newline at end of file
diff --git a/forseti-api/dist/server.js.map b/forseti-api/dist/server.js.map
deleted file mode 100644
index 52abb7b..0000000
--- a/forseti-api/dist/server.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../server.js"],"names":["express","require","api","console","log","PORT","HOST","app","set","use","static","getRandomId","randomDouble","Math","random","randomInt","floor","getRandomName","randomId","get","req","res","name","render","title","send","url","post","id","params","listen"],"mappings":"AAAA;;AAEA;;AACA,IAAMA,UAAUC,QAAQ,SAAR,CAAhB;;AAEA,IAAMC,MAAMD,QAAQ,cAAR,CAAZ;;AAEAE,QAAQC,GAAR,CAAYF,GAAZ;;AAEA;AACA,IAAMG,OAAO,IAAb;AACA,IAAMC,OAAO,SAAb;;AAEA;AACA,IAAMC,MAAMP,SAAZ;AACAO,IAAIC,GAAJ,CAAQ,aAAR,EAAuB,KAAvB;AACAD,IAAIE,GAAJ,CAAQT,QAAQU,MAAR,CAAe,QAAf,CAAR,E,CAAmC;;;AAGnC,SAASC,WAAT,GAAuB;AACrB,MAAIC,eAAgBC,KAAKC,MAAL,KAAgB,CAAjB,GAAsB,CAAzC,CADqB,CACuB;AAC5C,MAAIC,YAAYF,KAAKG,KAAL,CAAWJ,YAAX,CAAhB;;AAEA,SAAOG,SAAP;AACD;AACD,SAASE,aAAT,GAAyB;AACvB,MAAIC,WAAWP,aAAf;AACA,MAAIO,aAAa,CAAjB,EAAoB,OAAO,OAAP;AACpB,MAAIA,aAAa,CAAjB,EAAoB,OAAO,MAAP,CAApB,KACK,aAAWA,QAAX;AACN;;AAEDX,IAAIY,GAAJ,CAAQ,GAAR,EAAa,UAACC,GAAD,EAAMC,GAAN,EAAc;AACzB,MAAIC,OAAOL,eAAX;AACAI,MAAIE,MAAJ,CAAW,OAAX,EAAoB;AAClBC,mBAAaF;AADK,GAApB;AAGD,CALD;;AAOAf,IAAIY,GAAJ,CAAQ,OAAR,EAAiB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AACnCA,MAAII,IAAJ,CAAS,UAAUL,IAAIM,GAAvB;AACD,CAFD;;AAIAnB,IAAIoB,IAAJ,CAAS,OAAT,EAAkB,UAAUP,GAAV,EAAeC,GAAf,EAAoB;AACpCA,MAAII,IAAJ,CAAS,WAAWL,IAAIM,GAAxB;AACD,CAFD;;AAIAnB,IAAIY,GAAJ,CAAQ,IAAR,EAAc,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AAChC,MAAIC,OAAOL,eAAX;AACAI,MAAII,IAAJ,YAAkBH,IAAlB;AACD,CAHD;;AAKAf,IAAIY,GAAJ,CAAQ,QAAR,EAAkB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AACpC,MAAIO,KAAKR,IAAIS,MAAJ,CAAWD,EAApB;AACAP,MAAII,IAAJ,aAAmBG,EAAnB;AACD,CAHD;;AAMArB,IAAIuB,MAAJ,CAAWzB,IAAX,EAAiBC,IAAjB;AACAH,QAAQC,GAAR,wBAAiCE,IAAjC,SAAyCD,IAAzC","file":"server.js","sourcesContent":["'use strict';\n\n// express 4.0\nconst express = require('express');\n\nconst api = require('./server/api');\n\nconsole.log(api);\n\n// Constants\nconst PORT = 8080;\nconst HOST = '0.0.0.0';\n\n// App\nconst app = express();\napp.set('view engine', 'pug');\napp.use(express.static('public')); // images,css,etc.\n\n\nfunction getRandomId() {\n let randomDouble = (Math.random() * 5) + 1; // generate between [1,5] inclusive\n let randomInt = Math.floor(randomDouble);\n \n return randomInt;\n}\nfunction getRandomName() {\n let randomId = getRandomId();\n if (randomId === 1) return 'Mommy';\n if (randomId === 5) return 'SeQi';\n else return `Q${randomId}`;\n}\n\napp.get('/', (req, res) => {\n let name = getRandomName();\n res.render('index', {\n title: `Hi ${name}`\n });\n});\n\napp.get('/home', function (req, res) {\n res.send('GET: ' + req.url);\n});\n\napp.post('/home', function (req, res) {\n res.send('POST: ' + req.url);\n});\n\napp.get('/q', function (req, res) {\n var name = getRandomName();\n res.send(`Hello ${name}`);\n});\n\napp.get('/q/:id', function (req, res) {\n let id = req.params.id;\n res.send(`Hello Q${id}`);\n});\n\n\napp.listen(PORT, HOST);\nconsole.log(`Running on http://${HOST}:${PORT}`);"]}
\ No newline at end of file
diff --git a/forseti-api/orginal.env b/forseti-api/orginal.env
deleted file mode 100644
index 6441fd9..0000000
--- a/forseti-api/orginal.env
+++ /dev/null
@@ -1,6 +0,0 @@
-CLOUDSQL_HOSTNAME=104.197.52.78
-CLOUDSQL_USERNAME=root
-CLOUDSQL_PASSWORD=testPassword1
-CLOUDSQL_SCHEMA=forseti_security
-FORSETI_SERVER_VM_CHANNEL=35.232.32.159:50051
-FORSETI_DATA_MODEL_HANDLE=21254f1de747879237a95cb552e80828
\ No newline at end of file
diff --git a/forseti-api/package-lock.json b/forseti-api/package-lock.json
index 37e91ee..04c9576 100644
--- a/forseti-api/package-lock.json
+++ b/forseti-api/package-lock.json
@@ -1,9 +1,56 @@
{
"name": "forseti-visualizer-api",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@babel/cli": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.0.tgz",
+ "integrity": "sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.1.8",
+ "commander": "^2.8.1",
+ "convert-source-map": "^1.1.0",
+ "fs-readdir-recursive": "^1.1.0",
+ "glob": "^7.0.0",
+ "lodash": "^4.17.13",
+ "make-dir": "^2.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ }
+ }
+ },
"@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
@@ -13,6 +60,330 @@
"@babel/highlight": "^7.0.0"
}
},
+ "@babel/core": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.0.tgz",
+ "integrity": "sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.7.0",
+ "@babel/helpers": "^7.7.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/template": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "convert-source-map": "^1.1.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
+ "lodash": "^4.17.13",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz",
+ "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz",
+ "integrity": "sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz",
+ "integrity": "sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz",
+ "integrity": "sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz",
+ "integrity": "sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.6.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
+ "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.1.0",
+ "regjsgen": "^0.5.0",
+ "regjsparser": "^0.6.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.1.0"
+ }
+ },
+ "regjsgen": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
+ "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
+ "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz",
+ "integrity": "sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz",
+ "integrity": "sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz",
+ "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.7.0",
+ "@babel/template": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz",
+ "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz",
+ "integrity": "sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz",
+ "integrity": "sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz",
+ "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz",
+ "integrity": "sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.7.0",
+ "@babel/helper-simple-access": "^7.7.0",
+ "@babel/helper-split-export-declaration": "^7.7.0",
+ "@babel/template": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz",
+ "integrity": "sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
+ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
+ "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz",
+ "integrity": "sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.7.0",
+ "@babel/helper-wrap-function": "^7.7.0",
+ "@babel/template": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz",
+ "integrity": "sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.7.0",
+ "@babel/helper-optimise-call-expression": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz",
+ "integrity": "sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz",
+ "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz",
+ "integrity": "sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.7.0",
+ "@babel/template": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.0.tgz",
+ "integrity": "sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
+ },
"@babel/highlight": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
@@ -61,1618 +432,1422 @@
}
}
},
- "@google-cloud/bigtable": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/@google-cloud/bigtable/-/bigtable-0.15.0.tgz",
- "integrity": "sha512-A1znbWIsfThKYFz0EGfEzQPhbcnF8/PPkPyS8LDgsglO9z99FhsTqNv3TpytpF7YwsVsP+NMX7Nygp93eB7lAw==",
- "requires": {
- "@google-cloud/common-grpc": "^0.7.1",
- "arrify": "^1.0.0",
- "concat-stream": "^1.5.0",
- "create-error-class": "^3.0.2",
- "dot-prop": "^4.2.0",
- "escape-string-regexp": "^1.0.5",
- "extend": "^3.0.0",
- "google-auth-library": "^1.6.1",
- "google-gax": "^0.17.1",
- "is": "^3.0.1",
- "is-utf8": "^0.2.1",
- "lodash.flatten": "^4.2.0",
- "lodash.merge": "^4.6.0",
- "lodash.snakecase": "^4.1.1",
- "lodash.union": "^4.6.0",
- "long": "^4.0.0",
- "prop-assign": "^1.0.0",
- "protobufjs": "^6.8.0",
- "pumpify": "^1.3.3",
- "retry-request": "^4.0.0",
- "stream-events": "^1.0.2",
- "string-format-obj": "^1.0.0",
- "through2": "^2.0.3"
- }
- },
- "@google-cloud/common": {
- "version": "0.20.3",
- "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz",
- "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==",
+ "@babel/node": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.7.0.tgz",
+ "integrity": "sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw==",
+ "dev": true,
"requires": {
- "@types/duplexify": "^3.5.0",
- "@types/request": "^2.47.0",
- "arrify": "^1.0.1",
- "axios": "^0.18.0",
- "duplexify": "^3.6.0",
- "ent": "^2.2.0",
- "extend": "^3.0.1",
- "google-auth-library": "^1.6.0",
- "is": "^3.2.1",
- "pify": "^3.0.0",
- "request": "^2.87.0",
- "retry-request": "^4.0.0",
- "split-array-stream": "^2.0.0",
- "stream-events": "^1.0.4",
- "through2": "^2.0.3"
+ "@babel/register": "^7.7.0",
+ "commander": "^2.8.1",
+ "core-js": "^3.2.1",
+ "lodash": "^4.17.13",
+ "node-environment-flags": "^1.0.5",
+ "regenerator-runtime": "^0.13.3",
+ "v8flags": "^3.1.1"
},
"dependencies": {
- "axios": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
- "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
- "requires": {
- "follow-redirects": "1.5.10",
- "is-buffer": "^2.0.2"
- }
+ "core-js": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.3.6.tgz",
+ "integrity": "sha512-u4oM8SHwmDuh5mWZdDg9UwNVq5s1uqq6ZDLLIs07VY+VJU91i3h4f3K/pgFvtUQPGdeStrZ+odKyfyt4EnKHfA==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "dev": true
}
}
},
- "@google-cloud/common-grpc": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/@google-cloud/common-grpc/-/common-grpc-0.7.1.tgz",
- "integrity": "sha512-VK2X6rLRJIQMmkTS3p483up/Vb8zZHLoMFSmo17iiqebgaAoDpOhBiXXy4thtfabk02Nu5QtYT0QwM49OeU/ew==",
+ "@babel/parser": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz",
+ "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz",
+ "integrity": "sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA==",
+ "dev": true,
"requires": {
- "@google-cloud/common": "^0.20.0",
- "@grpc/proto-loader": "^0.1.0",
- "dot-prop": "^4.2.0",
- "duplexify": "^3.6.0",
- "extend": "^3.0.1",
- "grpc": "^1.12.3",
- "is": "^3.2.1",
- "retry-request": "^4.0.0",
- "through2": "^2.0.3"
- },
- "dependencies": {
- "@grpc/proto-loader": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.1.0.tgz",
- "integrity": "sha512-GHoZBR5N+65AWazsCiJDxeMSbUpp2qNYbjeD3mP27L2PT25+GvIupIIJiCgULH87NAiAd9SmWMRBVz+uSiHpgA==",
- "requires": {
- "@types/lodash": "^4.14.104",
- "@types/node": "^9.4.6",
- "lodash": "^4.17.5",
- "protobufjs": "^6.8.6"
- }
- },
- "@types/node": {
- "version": "9.6.49",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.49.tgz",
- "integrity": "sha512-YY0Okyn4QXC4ugJI+Kng5iWjK8A6eIHiQVaGIhJkyn0YL6Iqo0E0tBC8BuhvYcBK87vykBijM5FtMnCqaa5anA=="
- }
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.7.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0"
}
},
- "@google-cloud/kms": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@google-cloud/kms/-/kms-0.4.0.tgz",
- "integrity": "sha512-aiIlnGrO7taze4c3/kv070c7UFdRzVzwPJXg9XE6Ns4Dnuzg+ge5HtdsSGyFjf8sz7j+IL4rYGauxwjpaIVX8g==",
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz",
+ "integrity": "sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ==",
+ "dev": true,
"requires": {
- "google-gax": "^0.25.0",
- "lodash.merge": "^4.6.0"
- },
- "dependencies": {
- "gcp-metadata": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz",
- "integrity": "sha512-Q6HrgfrCQeEircnNP3rCcEgiDv7eF9+1B+1MMgpE190+/+0mjQR8PxeOaRgxZWmdDAF9EIryHB9g1moPiw1SbQ==",
- "requires": {
- "gaxios": "^1.0.2",
- "json-bigint": "^0.3.0"
- }
- },
- "google-auth-library": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz",
- "integrity": "sha512-cDQMzTotwyWMrg5jRO7q0A4TL/3GWBgO7I7q5xGKNiiFf9SmGY/OJ1YsLMgI2MVHHsEGyrqYnbnmV1AE+Z6DnQ==",
- "requires": {
- "base64-js": "^1.3.0",
- "fast-text-encoding": "^1.0.0",
- "gaxios": "^1.2.1",
- "gcp-metadata": "^1.0.0",
- "gtoken": "^2.3.2",
- "https-proxy-agent": "^2.2.1",
- "jws": "^3.1.5",
- "lru-cache": "^5.0.0",
- "semver": "^5.5.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
- }
- }
- },
- "google-gax": {
- "version": "0.25.6",
- "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.25.6.tgz",
- "integrity": "sha512-+CVtOSLQt42mwVvJJirhBiAvWsp8zKeb9zW5Wy3wyvb3VG9OugHzZpwvYO9D4yNPPspe7L9CpIs80I5nUJlS8w==",
- "requires": {
- "@grpc/grpc-js": "^0.3.0",
- "@grpc/proto-loader": "^0.4.0",
- "duplexify": "^3.6.0",
- "google-auth-library": "^3.0.0",
- "google-proto-files": "^0.20.0",
- "grpc": "^1.16.0",
- "grpc-gcp": "^0.1.1",
- "is-stream-ended": "^0.1.4",
- "lodash.at": "^4.6.0",
- "lodash.has": "^4.5.2",
- "protobufjs": "^6.8.8",
- "retry-request": "^4.0.0",
- "semver": "^6.0.0",
- "walkdir": "^0.3.2"
- }
- },
- "google-proto-files": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.20.0.tgz",
- "integrity": "sha512-ORU+XhOeDv/UPtnCYLkO1ItmfhRCRPR3ZoeVQ7GfVzEs7PVitPIhsYlY5ZzG8XXnsdmtK27ENurfQ1jhAWpZHg==",
- "requires": {
- "@google-cloud/promisify": "^0.4.0",
- "protobufjs": "^6.8.0",
- "walkdir": "^0.3.0"
- }
- },
- "lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "yallist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
- "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
- }
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0"
}
},
- "@google-cloud/promisify": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz",
- "integrity": "sha512-4yAHDC52TEMCNcMzVC8WlqnKKKq+Ssi2lXoUg9zWWkZ6U6tq9ZBRYLHHCRdfU+EU9YJsVmivwGcKYCjRGjnf4Q=="
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
+ "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0"
+ }
},
- "@grpc/grpc-js": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.3.6.tgz",
- "integrity": "sha512-SmLNuPGlUur64bNS9aHZguqWDVQ8+Df1CGn+xsh7l6T2wiP5ArOMlywZ3TZo6z/rwKtGQgUJY9ZrPYUmHEXd/Q==",
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz",
+ "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==",
+ "dev": true,
"requires": {
- "semver": "^5.5.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
- }
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
}
},
- "@grpc/proto-loader": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.4.0.tgz",
- "integrity": "sha512-Jm6o+75uWT7E6+lt8edg4J1F/9+BedOjaMgwE14pxS/AO43/0ZqK+rCLVVrXLoExwSAZvgvOD2B0ivy3Spsspw==",
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==",
+ "dev": true,
"requires": {
- "lodash.camelcase": "^4.3.0",
- "protobufjs": "^6.8.6"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
}
},
- "@mrmlnc/readdir-enhanced": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
- "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz",
+ "integrity": "sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw==",
+ "dev": true,
"requires": {
- "call-me-maybe": "^1.0.1",
- "glob-to-regexp": "^0.3.0"
+ "@babel/helper-create-regexp-features-plugin": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@nodelib/fs.stat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
- "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz",
+ "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/aspromise": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
- "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
+ "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/base64": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
- "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
+ "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/codegen": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
- "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
+ "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/eventemitter": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
- "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/fetch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
- "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz",
+ "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==",
+ "dev": true,
"requires": {
- "@protobufjs/aspromise": "^1.1.1",
- "@protobufjs/inquire": "^1.1.0"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@protobufjs/float": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
- "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz",
+ "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/inquire": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
- "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz",
+ "integrity": "sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.7.0"
+ }
},
- "@protobufjs/path": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
- "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz",
+ "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@protobufjs/pool": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
- "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz",
+ "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "lodash": "^4.17.13"
+ }
},
- "@protobufjs/utf8": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
- "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
+ "@babel/plugin-transform-classes": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz",
+ "integrity": "sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.7.0",
+ "@babel/helper-define-map": "^7.7.0",
+ "@babel/helper-function-name": "^7.7.0",
+ "@babel/helper-optimise-call-expression": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.7.0",
+ "@babel/helper-split-export-declaration": "^7.7.0",
+ "globals": "^11.1.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ }
+ }
},
- "@types/babel-types": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
- "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz",
+ "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@types/babylon": {
- "version": "6.16.5",
- "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
- "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz",
+ "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==",
+ "dev": true,
"requires": {
- "@types/babel-types": "*"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@types/caseless": {
- "version": "0.12.2",
- "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
- "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz",
+ "integrity": "sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@types/duplexify": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz",
- "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==",
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
+ "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
+ "dev": true,
"requires": {
- "@types/node": "*"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@types/form-data": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
- "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz",
+ "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==",
+ "dev": true,
"requires": {
- "@types/node": "*"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@types/lodash": {
- "version": "4.14.134",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.134.tgz",
- "integrity": "sha512-2/O0khFUCFeDlbi7sZ7ZFRCcT812fAeOLm7Ev4KbwASkZ575TDrDcY7YyaoHdTOzKcNbfiwLYZqPmoC4wadrsw=="
+ "@babel/plugin-transform-for-of": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz",
+ "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@types/long": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
- "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q=="
+ "@babel/plugin-transform-function-name": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz",
+ "integrity": "sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@types/node": {
- "version": "12.0.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz",
- "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A=="
+ "@babel/plugin-transform-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz",
+ "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "@types/request": {
- "version": "2.48.1",
- "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz",
- "integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==",
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz",
+ "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==",
+ "dev": true,
"requires": {
- "@types/caseless": "*",
- "@types/form-data": "*",
- "@types/node": "*",
- "@types/tough-cookie": "*"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "@types/tough-cookie": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz",
- "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
+ "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
},
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz",
+ "integrity": "sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-simple-access": "^7.7.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ }
},
- "abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz",
+ "integrity": "sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg==",
+ "dev": true,
"requires": {
- "event-target-shim": "^5.0.0"
+ "@babel/helper-hoist-variables": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
}
},
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz",
+ "integrity": "sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA==",
+ "dev": true,
"requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "@babel/helper-module-transforms": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "acorn": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
- "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz",
+ "integrity": "sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.7.0"
+ }
},
- "acorn-es7-plugin": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz",
- "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s="
+ "@babel/plugin-transform-new-target": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz",
+ "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "acorn-globals": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
- "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "@babel/plugin-transform-object-super": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
+ "dev": true,
"requires": {
- "acorn": "^4.0.4"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.5.5"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz",
+ "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "^7.4.4",
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz",
+ "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz",
+ "integrity": "sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.0"
},
"dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
+ "regenerator-transform": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
+ "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
+ "dev": true,
+ "requires": {
+ "private": "^0.1.6"
+ }
}
}
},
- "acorn-jsx": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
- "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
- "dev": true
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz",
+ "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
},
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz",
+ "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==",
+ "dev": true,
"requires": {
- "es6-promisify": "^5.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "ajv": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
- "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+ "@babel/plugin-transform-spread": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz",
+ "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==",
+ "dev": true,
"requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "@babel/helper-plugin-utils": "^7.0.0"
}
},
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz",
+ "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==",
+ "dev": true,
"requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz",
+ "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz",
+ "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz",
+ "integrity": "sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.1.tgz",
+ "integrity": "sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.7.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.7.0",
+ "@babel/plugin-proposal-dynamic-import": "^7.7.0",
+ "@babel/plugin-proposal-json-strings": "^7.2.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.7.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-syntax-top-level-await": "^7.7.0",
+ "@babel/plugin-transform-arrow-functions": "^7.2.0",
+ "@babel/plugin-transform-async-to-generator": "^7.7.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
+ "@babel/plugin-transform-block-scoping": "^7.6.3",
+ "@babel/plugin-transform-classes": "^7.7.0",
+ "@babel/plugin-transform-computed-properties": "^7.2.0",
+ "@babel/plugin-transform-destructuring": "^7.6.0",
+ "@babel/plugin-transform-dotall-regex": "^7.7.0",
+ "@babel/plugin-transform-duplicate-keys": "^7.5.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
+ "@babel/plugin-transform-for-of": "^7.4.4",
+ "@babel/plugin-transform-function-name": "^7.7.0",
+ "@babel/plugin-transform-literals": "^7.2.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.2.0",
+ "@babel/plugin-transform-modules-amd": "^7.5.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.7.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.7.0",
+ "@babel/plugin-transform-modules-umd": "^7.7.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.0",
+ "@babel/plugin-transform-new-target": "^7.4.4",
+ "@babel/plugin-transform-object-super": "^7.5.5",
+ "@babel/plugin-transform-parameters": "^7.4.4",
+ "@babel/plugin-transform-property-literals": "^7.2.0",
+ "@babel/plugin-transform-regenerator": "^7.7.0",
+ "@babel/plugin-transform-reserved-words": "^7.2.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.2.0",
+ "@babel/plugin-transform-spread": "^7.6.2",
+ "@babel/plugin-transform-sticky-regex": "^7.2.0",
+ "@babel/plugin-transform-template-literals": "^7.4.4",
+ "@babel/plugin-transform-typeof-symbol": "^7.2.0",
+ "@babel/plugin-transform-unicode-regex": "^7.7.0",
+ "@babel/types": "^7.7.1",
+ "browserslist": "^4.6.0",
+ "core-js-compat": "^3.1.1",
+ "invariant": "^2.2.2",
+ "js-levenshtein": "^1.1.3",
+ "semver": "^5.5.0"
},
"dependencies": {
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
}
}
},
- "ansi-align": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
- "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
+ "@babel/register": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.7.0.tgz",
+ "integrity": "sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg==",
"dev": true,
"requires": {
- "string-width": "^2.0.0"
+ "find-cache-dir": "^2.0.0",
+ "lodash": "^4.17.13",
+ "make-dir": "^2.1.0",
+ "pirates": "^4.0.0",
+ "source-map-support": "^0.5.16"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
},
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "source-map-support": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
}
}
},
- "ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
- "dev": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
+ "@babel/template": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz",
+ "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/types": "^7.7.0"
+ }
},
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "@babel/traverse": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz",
+ "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==",
"dev": true,
- "optional": true,
"requires": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.7.0",
+ "@babel/helper-function-name": "^7.7.0",
+ "@babel/helper-split-export-declaration": "^7.7.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
},
"dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true,
- "optional": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true,
- "optional": true
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true,
- "optional": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
"dev": true,
- "optional": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "@babel/highlight": "^7.0.0"
}
},
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true,
- "optional": true
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true,
- "optional": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
- "optional": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "ms": "^2.1.1"
}
},
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
},
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "optional": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
- }
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
}
},
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "@babel/types": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz",
+ "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==",
"dev": true,
"requires": {
- "sprintf-js": "~1.0.2"
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ }
}
},
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
- },
- "array-filter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
- "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "@google-cloud/bigtable": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/bigtable/-/bigtable-0.15.0.tgz",
+ "integrity": "sha512-A1znbWIsfThKYFz0EGfEzQPhbcnF8/PPkPyS8LDgsglO9z99FhsTqNv3TpytpF7YwsVsP+NMX7Nygp93eB7lAw==",
"requires": {
- "array-uniq": "^1.0.1"
+ "@google-cloud/common-grpc": "^0.7.1",
+ "arrify": "^1.0.0",
+ "concat-stream": "^1.5.0",
+ "create-error-class": "^3.0.2",
+ "dot-prop": "^4.2.0",
+ "escape-string-regexp": "^1.0.5",
+ "extend": "^3.0.0",
+ "google-auth-library": "^1.6.1",
+ "google-gax": "^0.17.1",
+ "is": "^3.0.1",
+ "is-utf8": "^0.2.1",
+ "lodash.flatten": "^4.2.0",
+ "lodash.merge": "^4.6.0",
+ "lodash.snakecase": "^4.1.1",
+ "lodash.union": "^4.6.0",
+ "long": "^4.0.0",
+ "prop-assign": "^1.0.0",
+ "protobufjs": "^6.8.0",
+ "pumpify": "^1.3.3",
+ "retry-request": "^4.0.0",
+ "stream-events": "^1.0.2",
+ "string-format-obj": "^1.0.0",
+ "through2": "^2.0.3"
}
},
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
- },
- "ascli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz",
- "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=",
+ "@google-cloud/common": {
+ "version": "0.20.3",
+ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz",
+ "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==",
"requires": {
- "colour": "~0.7.1",
- "optjs": "~3.2.2"
+ "@types/duplexify": "^3.5.0",
+ "@types/request": "^2.47.0",
+ "arrify": "^1.0.1",
+ "axios": "^0.18.0",
+ "duplexify": "^3.6.0",
+ "ent": "^2.2.0",
+ "extend": "^3.0.1",
+ "google-auth-library": "^1.6.0",
+ "is": "^3.2.1",
+ "pify": "^3.0.0",
+ "request": "^2.87.0",
+ "retry-request": "^4.0.0",
+ "split-array-stream": "^2.0.0",
+ "stream-events": "^1.0.4",
+ "through2": "^2.0.3"
+ },
+ "dependencies": {
+ "axios": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
+ "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
+ "requires": {
+ "follow-redirects": "1.5.10",
+ "is-buffer": "^2.0.2"
+ }
+ }
}
},
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "@google-cloud/common-grpc": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@google-cloud/common-grpc/-/common-grpc-0.7.1.tgz",
+ "integrity": "sha512-VK2X6rLRJIQMmkTS3p483up/Vb8zZHLoMFSmo17iiqebgaAoDpOhBiXXy4thtfabk02Nu5QtYT0QwM49OeU/ew==",
"requires": {
- "safer-buffer": "~2.1.0"
+ "@google-cloud/common": "^0.20.0",
+ "@grpc/proto-loader": "^0.1.0",
+ "dot-prop": "^4.2.0",
+ "duplexify": "^3.6.0",
+ "extend": "^3.0.1",
+ "grpc": "^1.12.3",
+ "is": "^3.2.1",
+ "retry-request": "^4.0.0",
+ "through2": "^2.0.3"
+ },
+ "dependencies": {
+ "@grpc/proto-loader": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.1.0.tgz",
+ "integrity": "sha512-GHoZBR5N+65AWazsCiJDxeMSbUpp2qNYbjeD3mP27L2PT25+GvIupIIJiCgULH87NAiAd9SmWMRBVz+uSiHpgA==",
+ "requires": {
+ "@types/lodash": "^4.14.104",
+ "@types/node": "^9.4.6",
+ "lodash": "^4.17.5",
+ "protobufjs": "^6.8.6"
+ }
+ },
+ "@types/node": {
+ "version": "9.6.49",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.49.tgz",
+ "integrity": "sha512-YY0Okyn4QXC4ugJI+Kng5iWjK8A6eIHiQVaGIhJkyn0YL6Iqo0E0tBC8BuhvYcBK87vykBijM5FtMnCqaa5anA=="
+ }
}
},
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
- },
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "dev": true
- },
- "async-each": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
- "dev": true
- },
- "asynckit": {
+ "@google-cloud/kms": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
- },
- "aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
- },
- "axios": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
- "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
- "requires": {
- "follow-redirects": "1.5.10",
- "is-buffer": "^2.0.2"
- }
- },
- "babel-cli": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
- "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
- "dev": true,
- "requires": {
- "babel-core": "^6.26.0",
- "babel-polyfill": "^6.26.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "chokidar": "^1.6.1",
- "commander": "^2.11.0",
- "convert-source-map": "^1.5.0",
- "fs-readdir-recursive": "^1.0.0",
- "glob": "^7.1.2",
- "lodash": "^4.17.4",
- "output-file-sync": "^1.1.2",
- "path-is-absolute": "^1.0.1",
- "slash": "^1.0.0",
- "source-map": "^0.5.6",
- "v8flags": "^2.1.1"
- }
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
- }
- },
- "babel-core": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
- "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/@google-cloud/kms/-/kms-0.4.0.tgz",
+ "integrity": "sha512-aiIlnGrO7taze4c3/kv070c7UFdRzVzwPJXg9XE6Ns4Dnuzg+ge5HtdsSGyFjf8sz7j+IL4rYGauxwjpaIVX8g==",
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
+ "google-gax": "^0.25.0",
+ "lodash.merge": "^4.6.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "gcp-metadata": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz",
+ "integrity": "sha512-Q6HrgfrCQeEircnNP3rCcEgiDv7eF9+1B+1MMgpE190+/+0mjQR8PxeOaRgxZWmdDAF9EIryHB9g1moPiw1SbQ==",
"requires": {
- "ms": "2.0.0"
+ "gaxios": "^1.0.2",
+ "json-bigint": "^0.3.0"
+ }
+ },
+ "google-auth-library": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz",
+ "integrity": "sha512-cDQMzTotwyWMrg5jRO7q0A4TL/3GWBgO7I7q5xGKNiiFf9SmGY/OJ1YsLMgI2MVHHsEGyrqYnbnmV1AE+Z6DnQ==",
+ "requires": {
+ "base64-js": "^1.3.0",
+ "fast-text-encoding": "^1.0.0",
+ "gaxios": "^1.2.1",
+ "gcp-metadata": "^1.0.0",
+ "gtoken": "^2.3.2",
+ "https-proxy-agent": "^2.2.1",
+ "jws": "^3.1.5",
+ "lru-cache": "^5.0.0",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ }
+ }
+ },
+ "google-gax": {
+ "version": "0.25.6",
+ "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.25.6.tgz",
+ "integrity": "sha512-+CVtOSLQt42mwVvJJirhBiAvWsp8zKeb9zW5Wy3wyvb3VG9OugHzZpwvYO9D4yNPPspe7L9CpIs80I5nUJlS8w==",
+ "requires": {
+ "@grpc/grpc-js": "^0.3.0",
+ "@grpc/proto-loader": "^0.4.0",
+ "duplexify": "^3.6.0",
+ "google-auth-library": "^3.0.0",
+ "google-proto-files": "^0.20.0",
+ "grpc": "^1.16.0",
+ "grpc-gcp": "^0.1.1",
+ "is-stream-ended": "^0.1.4",
+ "lodash.at": "^4.6.0",
+ "lodash.has": "^4.5.2",
+ "protobufjs": "^6.8.8",
+ "retry-request": "^4.0.0",
+ "semver": "^6.0.0",
+ "walkdir": "^0.3.2"
}
+ },
+ "google-proto-files": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.20.0.tgz",
+ "integrity": "sha512-ORU+XhOeDv/UPtnCYLkO1ItmfhRCRPR3ZoeVQ7GfVzEs7PVitPIhsYlY5ZzG8XXnsdmtK27ENurfQ1jhAWpZHg==",
+ "requires": {
+ "@google-cloud/promisify": "^0.4.0",
+ "protobufjs": "^6.8.0",
+ "walkdir": "^0.3.0"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
- "babel-generator": {
- "version": "6.26.1",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
- "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
- "dev": true,
- "requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
- }
+ "@google-cloud/promisify": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz",
+ "integrity": "sha512-4yAHDC52TEMCNcMzVC8WlqnKKKq+Ssi2lXoUg9zWWkZ6U6tq9ZBRYLHHCRdfU+EU9YJsVmivwGcKYCjRGjnf4Q=="
},
- "babel-helper-bindify-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
- "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
- "dev": true,
+ "@grpc/grpc-js": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.3.6.tgz",
+ "integrity": "sha512-SmLNuPGlUur64bNS9aHZguqWDVQ8+Df1CGn+xsh7l6T2wiP5ArOMlywZ3TZo6z/rwKtGQgUJY9ZrPYUmHEXd/Q==",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ }
}
},
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
- "dev": true,
+ "@grpc/proto-loader": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.4.0.tgz",
+ "integrity": "sha512-Jm6o+75uWT7E6+lt8edg4J1F/9+BedOjaMgwE14pxS/AO43/0ZqK+rCLVVrXLoExwSAZvgvOD2B0ivy3Spsspw==",
"requires": {
- "babel-helper-explode-assignable-expression": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "lodash.camelcase": "^4.3.0",
+ "protobufjs": "^6.8.6"
}
},
- "babel-helper-call-delegate": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "dev": true,
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
"requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
}
},
- "babel-helper-define-map": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
- }
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
},
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
- "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
},
- "babel-helper-explode-class": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
- "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
- "dev": true,
- "requires": {
- "babel-helper-bindify-decorators": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "dev": true,
- "requires": {
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
},
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "dev": true,
+ "@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
}
},
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
- "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
},
- "babel-helper-regex": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
- "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
- }
+ "@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
},
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
},
- "babel-helper-replace-supers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "dev": true,
- "requires": {
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+ },
+ "@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
},
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "@sinonjs/commons": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz",
+ "integrity": "sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "type-detect": "4.0.8"
}
},
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "@sinonjs/formatio": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz",
+ "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "@sinonjs/commons": "^1",
+ "@sinonjs/samsam": "^3.1.0"
}
},
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "@sinonjs/samsam": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz",
+ "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "@sinonjs/commons": "^1.3.0",
+ "array-from": "^2.1.1",
+ "lodash": "^4.17.15"
}
},
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
- "dev": true
- },
- "babel-plugin-syntax-async-generators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
- "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
+ "@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
"dev": true
},
- "babel-plugin-syntax-class-constructor-call": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz",
- "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=",
- "dev": true
+ "@types/babel-types": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
+ "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="
},
- "babel-plugin-syntax-class-properties": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
- "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
- "dev": true
+ "@types/babylon": {
+ "version": "6.16.5",
+ "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
+ "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
+ "requires": {
+ "@types/babel-types": "*"
+ }
},
- "babel-plugin-syntax-decorators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
- "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
- "dev": true
+ "@types/caseless": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
+ "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="
},
- "babel-plugin-syntax-do-expressions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz",
- "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=",
+ "@types/chai": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.5.tgz",
+ "integrity": "sha512-YvbLiIc0DbbhiANrfVObdkLEHJksQZVq0Uvfg550SRAKVYaEJy+V70j65BVe2WNp6E3HtKsUczeijHFCjba3og==",
"dev": true
},
- "babel-plugin-syntax-dynamic-import": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
- "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
+ "@types/cookiejar": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz",
+ "integrity": "sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw==",
"dev": true
},
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
- "dev": true
+ "@types/duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==",
+ "requires": {
+ "@types/node": "*"
+ }
},
- "babel-plugin-syntax-export-extensions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz",
- "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=",
- "dev": true
+ "@types/form-data": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
+ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
+ "requires": {
+ "@types/node": "*"
+ }
},
- "babel-plugin-syntax-function-bind": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz",
- "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=",
- "dev": true
+ "@types/lodash": {
+ "version": "4.14.134",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.134.tgz",
+ "integrity": "sha512-2/O0khFUCFeDlbi7sZ7ZFRCcT812fAeOLm7Ev4KbwASkZ575TDrDcY7YyaoHdTOzKcNbfiwLYZqPmoC4wadrsw=="
},
- "babel-plugin-syntax-object-rest-spread": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
- "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
- "dev": true
+ "@types/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q=="
},
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
- "dev": true
+ "@types/node": {
+ "version": "12.0.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz",
+ "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A=="
},
- "babel-plugin-transform-async-generator-functions": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
- "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
- "dev": true,
+ "@types/request": {
+ "version": "2.48.1",
+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz",
+ "integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==",
"requires": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-generators": "^6.5.0",
- "babel-runtime": "^6.22.0"
+ "@types/caseless": "*",
+ "@types/form-data": "*",
+ "@types/node": "*",
+ "@types/tough-cookie": "*"
}
},
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "@types/superagent": {
+ "version": "3.8.7",
+ "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-3.8.7.tgz",
+ "integrity": "sha512-9KhCkyXv268A2nZ1Wvu7rQWM+BmdYUVkycFeNnYrUL5Zwu7o8wPQ3wBfW59dDP+wuoxw0ww8YKgTNv8j/cgscA==",
"dev": true,
"requires": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-functions": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "@types/cookiejar": "*",
+ "@types/node": "*"
}
},
- "babel-plugin-transform-class-constructor-call": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz",
- "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-class-constructor-call": "^6.18.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "@types/tough-cookie": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz",
+ "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="
},
- "babel-plugin-transform-class-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
- "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-plugin-syntax-class-properties": "^6.8.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
},
- "babel-plugin-transform-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
- "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
- "dev": true,
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"requires": {
- "babel-helper-explode-class": "^6.24.1",
- "babel-plugin-syntax-decorators": "^6.13.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-types": "^6.24.1"
+ "event-target-shim": "^5.0.0"
}
},
- "babel-plugin-transform-do-expressions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz",
- "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=",
- "dev": true,
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
- "babel-plugin-syntax-do-expressions": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
}
},
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
},
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
+ "acorn-es7-plugin": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz",
+ "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s="
},
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "dev": true,
+ "acorn-globals": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "acorn": "^4.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
+ }
}
},
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "dev": true,
- "requires": {
- "babel-helper-define-map": "^6.24.1",
- "babel-helper-function-name": "^6.24.1",
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-helper-replace-supers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "acorn-jsx": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
+ "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
+ "dev": true
},
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "dev": true,
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "es6-promisify": "^5.0.0"
}
},
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "dev": true,
+ "ajv": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+ "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
"requires": {
- "babel-runtime": "^6.22.0"
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "dev": true,
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "ansi-align": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
+ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
}
},
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
+ "dev": true
},
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
+ "ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true
},
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
- "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dev": true,
+ "optional": true,
"requires": {
- "babel-plugin-transform-strict-mode": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
}
},
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "sprintf-js": "~1.0.2"
}
},
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
},
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "dev": true,
- "requires": {
- "babel-helper-replace-supers": "^6.24.1",
- "babel-runtime": "^6.22.0"
- }
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "dev": true,
- "requires": {
- "babel-helper-call-delegate": "^6.24.1",
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
},
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "array-filter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
+ "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
},
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "array-from": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
+ "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=",
+ "dev": true
},
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "dev": true,
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"requires": {
- "babel-runtime": "^6.22.0"
+ "array-uniq": "^1.0.1"
}
},
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
},
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "regexpu-core": "^2.0.0"
- }
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
},
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
- "dev": true,
- "requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
},
- "babel-plugin-transform-export-extensions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz",
- "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-export-extensions": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
- "babel-plugin-transform-function-bind": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz",
- "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=",
- "dev": true,
+ "ascli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz",
+ "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=",
"requires": {
- "babel-plugin-syntax-function-bind": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "colour": "~0.7.1",
+ "optjs": "~3.2.2"
}
},
- "babel-plugin-transform-object-rest-spread": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
- "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
- "dev": true,
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"requires": {
- "babel-plugin-syntax-object-rest-spread": "^6.8.0",
- "babel-runtime": "^6.26.0"
+ "safer-buffer": "~2.1.0"
}
},
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
- "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "dev": true,
- "requires": {
- "regenerator-transform": "^0.10.0"
- }
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
- "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
},
- "babel-polyfill": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
- "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "regenerator-runtime": "^0.10.5"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
- "dev": true
- }
- }
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
- "babel-preset-es2015": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
- "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
- "dev": true,
- "requires": {
- "babel-plugin-check-es2015-constants": "^6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
- "babel-plugin-transform-es2015-classes": "^6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
- "babel-plugin-transform-es2015-destructuring": "^6.22.0",
- "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1",
- "babel-plugin-transform-es2015-for-of": "^6.22.0",
- "babel-plugin-transform-es2015-function-name": "^6.24.1",
- "babel-plugin-transform-es2015-literals": "^6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
- "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "^6.24.1",
- "babel-plugin-transform-es2015-object-super": "^6.24.1",
- "babel-plugin-transform-es2015-parameters": "^6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
- "babel-plugin-transform-es2015-spread": "^6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "^6.24.1",
- "babel-plugin-transform-es2015-template-literals": "^6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",
- "babel-plugin-transform-es2015-unicode-regex": "^6.24.1",
- "babel-plugin-transform-regenerator": "^6.24.1"
- }
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
},
- "babel-preset-stage-0": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz",
- "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-do-expressions": "^6.22.0",
- "babel-plugin-transform-function-bind": "^6.22.0",
- "babel-preset-stage-1": "^6.24.1"
- }
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true
},
- "babel-preset-stage-1": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz",
- "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-class-constructor-call": "^6.24.1",
- "babel-plugin-transform-export-extensions": "^6.22.0",
- "babel-preset-stage-2": "^6.24.1"
- }
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
- "babel-preset-stage-2": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
- "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-dynamic-import": "^6.18.0",
- "babel-plugin-transform-class-properties": "^6.24.1",
- "babel-plugin-transform-decorators": "^6.24.1",
- "babel-preset-stage-3": "^6.24.1"
- }
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
- "babel-preset-stage-3": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
- "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
- "babel-plugin-transform-async-generator-functions": "^6.24.1",
- "babel-plugin-transform-async-to-generator": "^6.24.1",
- "babel-plugin-transform-exponentiation-operator": "^6.24.1",
- "babel-plugin-transform-object-rest-spread": "^6.22.0"
- }
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "dev": true,
- "requires": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
- }
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
},
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "axios": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
+ "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "follow-redirects": "1.5.10",
+ "is-buffer": "^2.0.2"
}
},
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "object.assign": "^4.1.0"
}
},
- "babel-traverse": {
+ "babel-runtime": {
"version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
}
},
"babel-types": {
@@ -1939,6 +2114,23 @@
}
}
},
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz",
+ "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001004",
+ "electron-to-chromium": "^1.3.295",
+ "node-releases": "^1.1.38"
+ }
+ },
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
@@ -2006,6 +2198,12 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
},
+ "caniuse-lite": {
+ "version": "1.0.30001008",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz",
+ "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==",
+ "dev": true
+ },
"capture-stack-trace": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
@@ -2025,17 +2223,33 @@
"lazy-cache": "^1.0.3"
}
},
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "chai": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
+ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.0",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chai-http": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/chai-http/-/chai-http-4.3.0.tgz",
+ "integrity": "sha512-zFTxlN7HLMv+7+SPXZdkd5wUlK+KxH6Q7bIEMiEx0FK3zuuMqL7cwICAQ0V1+yYRozBburYuxN1qZstgHpFZQg==",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "@types/chai": "4",
+ "@types/superagent": "^3.8.3",
+ "cookiejar": "^2.1.1",
+ "is-ip": "^2.0.0",
+ "methods": "^1.1.2",
+ "qs": "^6.5.1",
+ "superagent": "^3.7.0"
}
},
"character-parser": {
@@ -2052,51 +2266,31 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
},
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
"chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"dev": true,
"optional": true,
"requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
"path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true,
- "optional": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
}
},
"ci-info": {
@@ -2220,6 +2414,12 @@
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
@@ -2330,9 +2530,9 @@
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-source-map": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
- "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.1"
@@ -2348,6 +2548,12 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
+ "dev": true
+ },
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
@@ -2358,6 +2564,24 @@
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
"integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
},
+ "core-js-compat": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz",
+ "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.7.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -2433,6 +2657,15 @@
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -2505,14 +2738,11 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true,
- "requires": {
- "repeating": "^2.0.0"
- }
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
},
"diff-match-patch": {
"version": "1.0.4",
@@ -2594,6 +2824,12 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
+ "electron-to-chromium": {
+ "version": "1.3.304",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.304.tgz",
+ "integrity": "sha512-a5mqa13jCdBc+Crgk3Gyr7vpXCiFWfFq23YDCEmrPYeiDOQKZDVE6EX/Q4Xdv97n3XkcjiSBDOY0IS19yP2yeA==",
+ "dev": true
+ },
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@@ -2636,6 +2872,35 @@
"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
"integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
},
+ "es-abstract": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
+ "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.0",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
"es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
@@ -2944,69 +3209,6 @@
}
}
},
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "dev": true,
- "optional": true,
- "requires": {
- "fill-range": "^2.1.0"
- },
- "dependencies": {
- "fill-range": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
- "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true,
- "optional": true
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "dev": true,
- "optional": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "optional": true,
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
"express": {
"version": "4.17.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
@@ -3245,13 +3447,6 @@
"flat-cache": "^2.0.1"
}
},
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true,
- "optional": true
- },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -3297,6 +3492,59 @@
}
}
},
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "flat": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "~2.0.3"
+ }
+ },
"flat-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
@@ -3327,16 +3575,6 @@
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
},
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "dev": true,
- "optional": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -3352,6 +3590,12 @@
"mime-types": "^2.1.12"
}
},
+ "formidable": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
+ "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
+ "dev": true
+ },
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -3982,6 +4226,18 @@
}
}
},
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
"get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
@@ -4014,46 +4270,6 @@
"path-is-absolute": "^1.0.0"
}
},
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "dev": true,
- "optional": true,
- "requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true,
- "optional": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
"glob-parent": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
@@ -4087,12 +4303,6 @@
"ini": "^1.3.4"
}
},
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
- },
"globby": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz",
@@ -4200,6 +4410,12 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
"integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
},
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
"grpc": {
"version": "1.21.1",
"resolved": "https://registry.npmjs.org/grpc/-/grpc-1.21.1.tgz",
@@ -4682,21 +4898,18 @@
"function-bind": "^1.1.1"
}
},
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -4731,14 +4944,19 @@
}
}
},
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.1"
+ "parse-passwd": "^1.0.0"
}
},
"http-errors": {
@@ -4764,11 +4982,11 @@
}
},
"https-proxy-agent": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
- "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+ "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
"requires": {
- "agent-base": "^4.1.0",
+ "agent-base": "^4.3.0",
"debug": "^3.1.0"
}
},
@@ -4953,6 +5171,12 @@
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
},
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
"ipaddr.js": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
@@ -5000,6 +5224,12 @@
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
"is-ci": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
@@ -5032,6 +5262,12 @@
}
}
},
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
"is-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
@@ -5045,25 +5281,8 @@
"kind-of": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- },
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
- "dev": true,
- "optional": true
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-primitive": "^2.0.0"
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
}
},
"is-expression": {
@@ -5092,15 +5311,6 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
},
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -5127,6 +5337,15 @@
"is-path-inside": "^1.0.0"
}
},
+ "is-ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-2.0.0.tgz",
+ "integrity": "sha1-aO6gfooKCpTC0IDdZ0xzGrKkYas=",
+ "dev": true,
+ "requires": {
+ "ip-regex": "^2.0.0"
+ }
+ },
"is-npm": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
@@ -5178,20 +5397,6 @@
"isobject": "^3.0.1"
}
},
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
- "dev": true,
- "optional": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true,
- "optional": true
- },
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -5228,6 +5433,15 @@
"resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
"integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
},
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -5264,6 +5478,12 @@
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
+ "js-levenshtein": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
+ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "dev": true
+ },
"js-stringify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
@@ -5290,12 +5510,6 @@
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
- },
"json-bigint": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz",
@@ -5326,10 +5540,21 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
},
"jsonfile": {
"version": "4.0.0",
@@ -5359,6 +5584,12 @@
"promise": "^7.0.1"
}
},
+ "just-extend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz",
+ "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==",
+ "dev": true
+ },
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
@@ -5415,6 +5646,16 @@
"type-check": "~0.3.2"
}
},
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
"lodash": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
@@ -5465,6 +5706,52 @@
"resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
"integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg="
},
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "lolex": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz",
+ "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==",
+ "dev": true
+ },
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
@@ -5521,13 +5808,6 @@
"object-visit": "^1.0.0"
}
},
- "math-random": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
- "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
- "dev": true,
- "optional": true
- },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -5634,6 +5914,164 @@
"minimist": "0.0.8"
}
},
+ "mocha": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz",
+ "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.5",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.0",
+ "yargs-parser": "13.1.1",
+ "yargs-unparser": "1.6.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ }
+ }
+ },
"morgan": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
@@ -5718,6 +6156,54 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
+ "nise": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.2.tgz",
+ "integrity": "sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^3.2.1",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "lolex": "^4.1.0",
+ "path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ }
+ }
+ },
+ "node-environment-flags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+ "dev": true,
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
"node-fetch": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
@@ -5728,6 +6214,29 @@
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.4.tgz",
"integrity": "sha512-UOfdpxivIYY4g5tqp5FNRNgROVNxRACUxxJREntJLFaJr1E0UEqFtUIk0F/jYx/E+Y6sVXd0KDi/m5My0yGCVw=="
},
+ "node-modules-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
+ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "1.1.39",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz",
+ "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"nodemon": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz",
@@ -5849,14 +6358,11 @@
}
},
"normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
- "optional": true,
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
+ "optional": true
},
"npm-run-path": {
"version": "2.0.2",
@@ -5920,6 +6426,12 @@
}
}
},
+ "object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+ "dev": true
+ },
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -5933,15 +6445,26 @@
"isobject": "^3.0.0"
}
},
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
"dev": true,
- "optional": true,
"requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
}
},
"object.pick": {
@@ -6009,12 +6532,6 @@
"resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz",
"integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4="
},
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
"os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
@@ -6029,21 +6546,34 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
- "output-file-sync": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
- "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.4",
- "mkdirp": "^0.5.1",
- "object-assign": "^4.1.0"
+ "p-limit": "^2.0.0"
}
},
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"package-json": {
@@ -6075,37 +6605,11 @@
"callsites": "^3.0.0"
}
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "dev": true,
- "optional": true,
- "requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true,
- "optional": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "dev": true
},
"parseurl": {
"version": "1.3.3",
@@ -6156,6 +6660,12 @@
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
},
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -6191,6 +6701,12 @@
"pify": "^3.0.0"
}
},
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
"pause": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
@@ -6206,6 +6722,24 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
+ "pirates": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
+ "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
+ "dev": true,
+ "requires": {
+ "node-modules-regexp": "^1.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ },
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -6332,13 +6866,6 @@
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
"dev": true
},
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true,
- "optional": true
- },
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
@@ -6569,27 +7096,6 @@
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
},
- "randomatic": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
- "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
- "dev": true,
- "optional": true
- }
- }
- },
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -6657,31 +7163,19 @@
"integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
"dev": true
},
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
- },
- "regenerator-transform": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
- "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "regenerate-unicode-properties": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
+ "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
"dev": true,
"requires": {
- "babel-runtime": "^6.18.0",
- "babel-types": "^6.19.0",
- "private": "^0.1.6"
+ "regenerate": "^1.4.0"
}
},
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-equal-shallow": "^0.1.3"
- }
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"regex-not": {
"version": "1.0.2",
@@ -6698,17 +7192,6 @@
"integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
"dev": true
},
- "regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
- "dev": true,
- "requires": {
- "regenerate": "^1.2.1",
- "regjsgen": "^0.2.0",
- "regjsparser": "^0.1.4"
- }
- },
"registry-auth-token": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
@@ -6728,29 +7211,6 @@
"rc": "^1.0.1"
}
},
- "regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
- "dev": true
- },
- "regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
- "dev": true,
- "requires": {
- "jsesc": "~0.5.0"
- },
- "dependencies": {
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
- "dev": true
- }
- }
- },
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -6767,15 +7227,6 @@
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true,
- "requires": {
- "is-finite": "^1.0.0"
- }
- },
"request": {
"version": "2.88.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
@@ -6803,6 +7254,18 @@
"uuid": "^3.3.2"
}
},
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
"resolve": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
@@ -7005,6 +7468,12 @@
"write-file-atomic": "1.3.1"
}
},
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
"set-value": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
@@ -7052,6 +7521,27 @@
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
+ "sinon": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz",
+ "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.4.0",
+ "@sinonjs/formatio": "^3.2.1",
+ "@sinonjs/samsam": "^3.3.3",
+ "diff": "^3.5.0",
+ "lolex": "^4.2.0",
+ "nise": "^1.5.2",
+ "supports-color": "^5.5.0"
+ }
+ },
+ "sinon-chai": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.3.0.tgz",
+ "integrity": "sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA==",
+ "dev": true
+ },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -7217,15 +7707,6 @@
"urix": "^0.1.0"
}
},
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true,
- "requires": {
- "source-map": "^0.5.6"
- }
- },
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
@@ -7326,6 +7807,26 @@
"strip-ansi": "^3.0.0"
}
},
+ "string.prototype.trimleft": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -7369,11 +7870,40 @@
"resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
"integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls="
},
+ "superagent": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
+ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "^1.2.0",
+ "cookiejar": "^2.1.0",
+ "debug": "^3.1.0",
+ "extend": "^3.0.0",
+ "form-data": "^2.3.1",
+ "formidable": "^1.2.0",
+ "methods": "^1.1.1",
+ "mime": "^1.4.1",
+ "qs": "^6.5.1",
+ "readable-stream": "^2.3.5"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ }
+ }
+ },
"supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
},
"table": {
"version": "5.4.0",
@@ -7554,12 +8084,6 @@
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
"integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
},
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
- "dev": true
- },
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -7588,6 +8112,12 @@
"prelude-ls": "~1.1.2"
}
},
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -7689,6 +8219,34 @@
}
}
},
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
+ "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
+ "dev": true
+ },
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -7853,12 +8411,6 @@
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
- "dev": true
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -7875,12 +8427,12 @@
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
},
"v8flags": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
+ "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
"dev": true,
"requires": {
- "user-home": "^1.1.1"
+ "homedir-polyfill": "^1.0.1"
}
},
"vary": {
@@ -7917,6 +8469,21 @@
"isexe": "^2.0.0"
}
},
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
"widest-line": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
@@ -8052,6 +8619,124 @@
"window-size": "^0.1.4",
"y18n": "^3.2.0"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
+ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
+ "dev": true,
+ "requires": {
+ "flat": "^4.1.0",
+ "lodash": "^4.17.15",
+ "yargs": "^13.3.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ }
+ }
}
}
}
diff --git a/forseti-api/package.json b/forseti-api/package.json
index 2519a1d..e9c0b16 100644
--- a/forseti-api/package.json
+++ b/forseti-api/package.json
@@ -1,15 +1,16 @@
{
"name": "forseti-visualizer-api",
- "version": "1.0.2",
+ "version": "2.0.0",
"description": "Forseti Visualizer API to serve Forseti Based GCP content",
"author": "Garrett Wong",
"main": "server.js",
"scripts": {
- "dev": "nodemon -w src --exec \"babel-node server --presets es2015,stage-0\"",
- "build": "babel src -s -D -d dist --presets es2015,stage-0",
- "serve": "nodemon -w src --exec \"babel-node server --presets es2015,stage-0\"",
+ "dev": "nodemon -w server --exec \"babel-node server",
+ "build": "babel server -s -D -d dist",
+ "serve": "nodemon -w server --exec \"babel-node server\"",
"start": "npm run serve",
- "test": "eslint src"
+ "test": "babel server.js -d dist && mocha --recursive --exit --require @babel/register",
+ "babel-version": "babel --version"
},
"eslintConfig": {
"extends": "eslint:recommended",
@@ -55,12 +56,18 @@
"url": "https://github.com/npm/npm.git"
},
"devDependencies": {
- "babel-cli": "^6.26.0",
- "babel-core": "^6.26.3",
- "babel-preset-es2015": "^6.24.1",
- "babel-preset-stage-0": "^6.24.1",
+ "@babel/cli": "^7.7.0",
+ "@babel/core": "^7.7.0",
+ "@babel/node": "^7.7.0",
+ "@babel/preset-env": "^7.7.1",
+ "@babel/register": "^7.7.0",
+ "chai": "^4.2.0",
+ "chai-http": "^4.3.0",
"eslint": "^5.3.0",
"js-yaml": ">=3.13.1",
- "nodemon": "^1.18.3"
+ "mocha": "^6.2.2",
+ "nodemon": "^1.18.3",
+ "sinon": "^7.5.0",
+ "sinon-chai": "^3.3.0"
}
}
diff --git a/forseti-api/public/scripts/q-modal.js b/forseti-api/public/scripts/q-modal.js
deleted file mode 100644
index 1d1d3f0..0000000
--- a/forseti-api/public/scripts/q-modal.js
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2019 Google LLC
-//
-// 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.
-
-let modalInstances = [];
-
-document.addEventListener('DOMContentLoaded', function () {
-
- modalInstances = initializeModals();
-
-
- initSubmitText();
-});
-
-function initializeModals() {
- var elems = document.querySelectorAll('.modal');
- let options = {
- onOpenStart: function(a, b) {
- console.log(a, b);
-
- let href = b.getAttribute('href');
-
- console.log(href);
-
- let qNumReplaced = href.replace('#!/Q/', '');
-
- document.getElementById('q-num').innerText = qNumReplaced;
- }
- };
-
- var instances = M.Modal.init(elems, options);
-
- return instances;
-}
-
-
-function initSubmitText() {
- let submitTextBtn = document.getElementById('submit-text');
- submitTextBtn.addEventListener('click', function(event) {
- console.log(event);
- let textToAssociate = document.getElementById('text-to-associate').value;
- console.log(textToAssociate);
-
- let modalInstance = M.Modal.getInstance($('.modal'));
-
- alert(textToAssociate);
-
- if (textToAssociate !== '') {
- modalInstance.close();
- }
- });
-}
\ No newline at end of file
diff --git a/forseti-api/server.js b/forseti-api/server.js
index 6731642..9844891 100644
--- a/forseti-api/server.js
+++ b/forseti-api/server.js
@@ -66,7 +66,7 @@ const passport = require('passport');
const sessionConfig = {
resave: false,
saveUninitialized: false,
- secret: config.SECRET,
+ secret: config.randomString,
signed: true
};
@@ -89,7 +89,7 @@ app.use(session(sessionConfig));
app.use(passport.initialize());
app.use(passport.session());
-app.use(require('./server/services/oauth2').router);
+app.use(require('./server/services/oauth2').router); //auth
/* END AUTH */
diff --git a/forseti-api/server/api/forseti.js b/forseti-api/server/api/forseti.js
index e2aa643..f9e3b98 100644
--- a/forseti-api/server/api/forseti.js
+++ b/forseti-api/server/api/forseti.js
@@ -25,13 +25,16 @@ export default ({
let forsetiApi = Router();
forsetiApi.all('*', cors());
-
+
/**
* @desc returns .json file content
*/
forsetiApi.get('/', function (req, res) {
ForsetiService.getResourcesJson(function (error, results) {
- if (error) throw error;
+ if (error) {
+ console.log(error);
+ // throw error;
+ }
let json = results;
res.json(json);
});
@@ -40,9 +43,16 @@ export default ({
/**
* @desc returns resources
*/
- forsetiApi.get('/resources', function (req, res) {
- ForsetiService.getResources(function (error, results) {
- if (error) throw error;
+ forsetiApi.get('/resources/:parentId?', function (req, res) {
+ console.log(req.params.parentId);
+
+ let parentId = req.params.parentId ? req.params.parentId : null;
+
+ ForsetiService.getResources(parentId, function (error, results) {
+ if (error) {
+ console.log(error);
+ // throw error;
+ }
let json = results;
res.json(json);
});
@@ -83,7 +93,7 @@ export default ({
console.log('Error: ', error);
else {
console.log(results);
-
+
// TODO:
res.json(results.accesses);
@@ -98,7 +108,12 @@ export default ({
let inventoryIndexId = req.params.inventoryIndexId;
ForsetiService.getViolations(inventoryIndexId, function (error, results) {
- if (error) throw error;
+ if (error) {
+ console.log(error);
+ // throw error;
+ }
+ console.log('getViolations() results:', results)
+
let json = results;
res.json(json);
});
diff --git a/forseti-api/server/api/index.js b/forseti-api/server/api/index.js
index c45e82f..8b85192 100644
--- a/forseti-api/server/api/index.js
+++ b/forseti-api/server/api/index.js
@@ -19,8 +19,7 @@ import {
Router
} from 'express';
import forseti from './forseti';
-
-import CryptoService from '../services/crypto-service';
+import user from './user';
export default ({
config,
@@ -33,11 +32,12 @@ export default ({
config,
db
}));
-
- // api.use('/auth', auth({
- // config,
- // db
- // }));
+
+ // mount resources
+ api.use('/user', user({
+ config,
+ db
+ }));
// perhaps expose some API metadata at the root
api.get('/', (req, res) => {
@@ -48,30 +48,5 @@ export default ({
});
});
-
- /* Testing */
-
- // perhaps expose some API metadata at the root
- api.get('/enc', async (req, res) => {
- // enc / dec
- let textToEncrypt = "Haha";
-
- let encryptedText = await CryptoService.encrypt(
- '/Users/garrettwong/Git/forseti-visualizer/forseti-api/dockersource.env', 'asdf.env.enc');
-
- res.json({
- encryptedText
- });
- });
-
- // perhaps expose some API metadata at the root
- api.get('/dec', async (req, res) => {
- let decryptedText = await CryptoService.decrypt('asdf.env.enc', 'orginal.env');
-
- res.json({
- decryptedText
- });
- });
-
return api;
}
\ No newline at end of file
diff --git a/forseti-api/server/api/user.js b/forseti-api/server/api/user.js
new file mode 100644
index 0000000..55a191c
--- /dev/null
+++ b/forseti-api/server/api/user.js
@@ -0,0 +1,58 @@
+// Copyright 2019 Google LLC
+//
+// 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 {
+ Router
+} from 'express';
+import ForsetiService from '../services/forseti-service';
+import cors from 'cors';
+
+export default ({
+ config,
+ db
+}) => {
+ let userApi = Router();
+
+ userApi.all('*', cors());
+
+ /**
+ * @desc returns the username
+ */
+ userApi.get('/', function (req, res) {
+ res.json({
+ username: 'Me'
+ });
+ });
+
+ /**
+ * @desc returns the username
+ */
+ userApi.get('/AuthenticatedUser', ensureAuthenticated, function (req, res) {
+ console.log(req.user)
+ res.json('access granted');
+ });
+
+ return userApi;
+}
+
+function ensureAuthenticated(req, res, next) {
+ if (req.isAuthenticated()) {
+ // req.user is available for use here
+ return next();
+ }
+
+ console.log(req.user);
+ // denied. redirect to login
+ res.redirect('/auth/login')
+}
\ No newline at end of file
diff --git a/forseti-api/server/index.js b/forseti-api/server/index-REMOVE.js
similarity index 99%
rename from forseti-api/server/index.js
rename to forseti-api/server/index-REMOVE.js
index 12bb756..89345b0 100644
--- a/forseti-api/server/index.js
+++ b/forseti-api/server/index-REMOVE.js
@@ -39,7 +39,6 @@ app.use(bodyParser.json({
// connect to db
initializeDb( db => {
-
// internal middleware
app.use(middleware({ config, db }));
diff --git a/forseti-api/server/services/crypto-service.js b/forseti-api/server/services/crypto-service.js
deleted file mode 100644
index 414bfb4..0000000
--- a/forseti-api/server/services/crypto-service.js
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2019 Google LLC
-//
-// 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.
-
-/* crypto-service */
-class CryptoService {
- constructor(
- projectId = 'forseti-security-new',
- keyRingId = 'test',
- cryptoKeyId = 'quickstart') {
-
- this.projectId = projectId;
- this.keyRingId = keyRingId;
- this.cryptoKeyId = cryptoKeyId;
- }
-
- async encrypt(
- plaintextFileName = '/Users/garrettwong/Git/forseti-visualizer/forseti-api/dockersource.env',
- ciphertextFileName = 'dockersource.env.enc'
- ) {
- const fs = require('fs');
- const {
- promisify
- } = require('util');
-
- // Import the library and create a client
- const kms = require('@google-cloud/kms');
- const client = new kms.KeyManagementServiceClient();
-
- // The location of the crypto key's key ring, e.g. "global"
- const locationId = 'global';
-
- // Reads the file to be encrypted
- const readFile = promisify(fs.readFile);
- const contentsBuffer = await readFile(plaintextFileName);
- console.log(contentsBuffer);
-
- const plaintext = contentsBuffer.toString('base64');
-
- console.log(plaintext);
-
- const name = client.cryptoKeyPath(
- this.projectId,
- locationId,
- this.keyRingId,
- this.cryptoKeyId
- );
-
- // Encrypts the file using the specified crypto key
- const [result] = await client.encrypt({
- name,
- plaintext
- });
- const writeFile = promisify(fs.writeFile);
- await writeFile(ciphertextFileName, Buffer.from(result.ciphertext, 'base64'));
- console.log(`Encrypted ${plaintextFileName} using ${result.name}.`);
- console.log(`Result saved to ${ciphertextFileName}.`);
-
- return Buffer.from(result.ciphertext, 'base64');
- }
-
- async decrypt(
- ciphertextFileName = 'dockersource.env.enc',
- plaintextFileName = 'dockersource.env.decrypted'
- ) {
- const fs = require('fs');
- const {
- promisify
- } = require('util');
-
- // Import the library and create a client
- const kms = require('@google-cloud/kms');
- const client = new kms.KeyManagementServiceClient();
-
- // The location of the crypto key's key ring, e.g. "global"
- const locationId = 'global';
-
- // Reads the file to be decrypted
- const readFile = promisify(fs.readFile);
- const contentsBuffer = await readFile(ciphertextFileName);
- const name = client.cryptoKeyPath(
- this.projectId,
- locationId,
- this.keyRingId,
- this.cryptoKeyId
- );
- const ciphertext = contentsBuffer.toString('base64');
-
- // Decrypts the file using the specified crypto key
- const [result] = await client.decrypt({
- name,
- ciphertext
- });
-
- // Writes the decrypted file to disk
- const writeFile = promisify(fs.writeFile);
- await writeFile(plaintextFileName, Buffer.from(result.plaintext, 'base64'));
- console.log(
- `Decrypted ${ciphertextFileName}, result saved to ${plaintextFileName}.`
- );
-
- console.log(Buffer.from(result.plaintext, 'base64').toString('utf8'));
-
- return Buffer.from(result.plaintext, 'base64').toString('utf8');
- }
-
-}
-
-export default new CryptoService();
\ No newline at end of file
diff --git a/forseti-api/public/scripts/carousel.js b/forseti-api/server/services/database-service-base.js
similarity index 66%
rename from forseti-api/public/scripts/carousel.js
rename to forseti-api/server/services/database-service-base.js
index f6ce06e..a744d93 100644
--- a/forseti-api/public/scripts/carousel.js
+++ b/forseti-api/server/services/database-service-base.js
@@ -12,10 +12,15 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-document.addEventListener('DOMContentLoaded', function () {
- var elems = document.querySelectorAll('.carousel');
+/* database-service-base */
+import MySQLDbConnection from './mysql-db-connection';
- let options = { duration: 500 }
-
- var instances = M.Carousel.init(elems, options);
-});
\ No newline at end of file
+class DatabaseServiceBase {
+ constructor() {}
+
+ getMySqlDbConnection(hostname, user, pass, schema) {
+ return new MySQLDbConnection(hostname, user, pass, schema);
+ }
+}
+
+export default DatabaseServiceBase;
\ No newline at end of file
diff --git a/forseti-api/server/services/forseti-service.js b/forseti-api/server/services/forseti-service.js
index 3560603..e9eb82a 100644
--- a/forseti-api/server/services/forseti-service.js
+++ b/forseti-api/server/services/forseti-service.js
@@ -13,27 +13,11 @@
// limitations under the License.
/* forseti-service */
-import MySQLDbConnection from './mysql-db-connection';
+import DatabaseServiceBase from './database-service-base.js';
-let secrets = {
- hostname: process.env.CLOUDSQL_HOSTNAME,
- user: process.env.CLOUDSQL_USERNAME,
- pass: process.env.CLOUDSQL_PASSWORD,
- schema: process.env.CLOUDSQL_SCHEMA,
-
- forsetiServerVmChannel: process.env.FORSETI_SERVER_VM_CHANNEL,
- forsetiDataModelHandle: process.env.FORSETI_DATA_MODEL_HANDLE
-};
-
-function getMySqlDbConnection() {
- console.log(secrets);
-
- let mySqlDbConn = new MySQLDbConnection(secrets.hostname, secrets.user, secrets.pass, secrets.schema);
- return mySqlDbConn;
-}
-class ForsetiService {
+class ForsetiService extends DatabaseServiceBase {
constructor() {
-
+ super()
}
/*
@@ -46,23 +30,47 @@ class ForsetiService {
return results;
});
*/
- getResources(cb) {
+ getResources(parentId, cb) {
+ // include parent and its children
+ let parentIdSqlPhrase = parentId ?
+ `AND (g.resource_id = '${parentId}' OR g.parent_id =
+ (SELECT id
+ FROM gcp_inventory
+ WHERE inventory_index_id = g.inventory_index_id AND
+ category = 'resource' AND
+ resource_id = '${parentId}'
+ )
+ )` : '';
+
+ console.log(parentIdSqlPhrase);
+
+ // GETS resources from the last successful inventory?
let sql = `
- SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id,
+ SELECT g.id,
+ g.resource_type,
+ g.category,
+ g.resource_id,
+ g.parent_id AS parent_id,
+ g.full_name AS full_name,
IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname,
- IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as qq,
+ IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as lifecycle_state,
g.inventory_index_id
FROM gcp_inventory g
WHERE g.inventory_index_id = (SELECT id
FROM inventory_index
- WHERE inventory_status = 'SUCCESS'
+ WHERE inventory_status IN ('SUCCESS', 'PARTIAL_SUCCESS')
ORDER BY completed_at_datetime DESC LIMIT 1)
AND (g.category='resource')
AND g.resource_type IN ('organization', 'project', 'folder',
'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance', 'instance',
'dataset', 'firewall', 'bucket', 'serviceaccount', 'serviceaccount_key', 'network')
- #AND (g.resource_data->>'$.lifecycleState' != 'DELETE_REQUESTED' || g.resource_data->>'$.lifecycleState' is NULL)
+
+ ${parentIdSqlPhrase}
+
+ -- this will filter out DELETE_REQUESTED projects and the child resources under the DELETE_REQUESTED state resources
+ AND (g.resource_data->>'$.lifecycleState' != 'DELETE_REQUESTED' || g.resource_data->>'$.lifecycleState' is NULL)
+ AND (g.parent_id NOT IN (SELECT id FROM gcp_inventory gsub WHERE gsub.id = g.parent_id AND gsub.resource_data->>'$.lifecycleState' = 'DELETE_REQUESTED'))
ORDER BY CASE
WHEN g.resource_type = 'organization' THEN 0
@@ -70,7 +78,12 @@ class ForsetiService {
WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;`;
try {
- let mySqlDbConn = getMySqlDbConnection();
+ let mySqlDbConn = this.getMySqlDbConnection(
+ process.env.CLOUDSQL_HOSTNAME,
+ process.env.CLOUDSQL_USERNAME,
+ process.env.CLOUDSQL_PASSWORD,
+ process.env.CLOUDSQL_SCHEMA
+ );
mySqlDbConn.query(sql, cb);
} catch (ex) {
console.log(ex);
@@ -83,14 +96,18 @@ class ForsetiService {
* function (error, results, fields) {
if (error) throw error;
- console.log('durr', results, fields);
-
return results;
});
*/
getViolations(inventoryIndexId, cb) {
- let getInventoryIndexId = '(SELECT id FROM inventory_index WHERE inventory_status = \'SUCCESS\' ORDER BY completed_at_datetime DESC LIMIT 1)';
- if (inventoryIndexId === null || inventoryIndexId === 0) getInventoryIndexId = inventoryIndexId;
+ let getInventoryIndexIdSqlStmt = `(SELECT id
+ FROM inventory_index
+ WHERE inventory_status IN ('SUCCESS', 'PARTIAL_SUCCESS')
+ ORDER BY completed_at_datetime DESC LIMIT 1)`;
+
+ if (inventoryIndexId !== null && inventoryIndexId > 0) {
+ getInventoryIndexIdSqlStmt = inventoryIndexId;
+ }
let sql = `
SELECT ii.id as inventory_index_id, si.id as scanner_index_id, v.* FROM violations v
@@ -98,13 +115,20 @@ class ForsetiService {
ON v.scanner_index_id = si.id
JOIN inventory_index ii
ON si.inventory_index_id = ii.id
- WHERE ii.id = ${getInventoryIndexId};`;
+ WHERE ii.id = ${getInventoryIndexIdSqlStmt}`;
+
+ console.log('gv', inventoryIndexId, sql);
try {
- let mySqlDbConn = getMySqlDbConnection();
+ let mySqlDbConn = this.getMySqlDbConnection(
+ process.env.CLOUDSQL_HOSTNAME,
+ process.env.CLOUDSQL_USERNAME,
+ process.env.CLOUDSQL_PASSWORD,
+ process.env.CLOUDSQL_SCHEMA
+ );
mySqlDbConn.query(sql, cb);
} catch (ex) {
- console.log(ex);
+ console.log('getViolations', ex);
}
}
@@ -130,23 +154,23 @@ class ForsetiService {
// The protoDescriptor object has the full package hierarchy
var ex = protoDescriptor.explain;
- let channel = secrets.forsetiServerVmChannel;
+ let channel = process.env.FORSETI_SERVER_VM_CHANNEL;
let res = new ex.Explain(channel, grpc.credentials.createInsecure());
var meta = new grpc.Metadata();
- meta.add('handle', secrets.forsetiDataModelHandle);
-
+ meta.add('handle', process.env.FORSETI_DATA_MODEL_HANDLE);
+
console.log(ex);
console.log(res);
console.log('channel', channel);
- console.log('channel', secrets.forsetiDataModelHandle);
-
+ console.log('channel', process.env.FORSETI_DATA_MODEL_HANDLE);
+
res.getAccessByMembers({
member_name: iamPrefix
}, meta, cb);
}
- /**
+ /**
* gets the iam explain of a given prefix
* @param {*} role ''
* @param {*} cb function for callback processing
@@ -167,14 +191,14 @@ class ForsetiService {
var protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
// The protoDescriptor object has the full package hierarchy
var ex = protoDescriptor.explain;
-
- let channel = secrets.forsetiServerVmChannel;
+
+ let channel = process.env.FORSETI_SERVER_VM_CHANNEL;
let res = new ex.Explain(channel, grpc.credentials.createInsecure());
console.log(res);
var meta = new grpc.Metadata();
- meta.add('handle', secrets.forsetiDataModelHandle);
-
+ meta.add('handle', process.env.FORSETI_DATA_MODEL_HANDLE);
+
res.getAccessByPermissions({
role_name: 'roles/owner',
permission_name: '',
@@ -197,10 +221,15 @@ class ForsetiService {
});
*/
getResourcesJson(cb) {
- let sql = "SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id, IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname, IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as qq FROM gcp_inventory g WHERE g.inventory_index_id = (SELECT id FROM inventory_index ORDER BY completed_at_datetime DESC LIMIT 1) AND (g.category='resource') AND g.resource_type IN ('organization', 'project', 'folder', 'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance') ORDER BY CASE WHEN g.resource_type = 'organization' THEN 0 WHEN g.resource_type = 'folder' THEN 1 WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;";
+ let sql = "SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id, IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname, IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as lifecycle_state FROM gcp_inventory g WHERE g.inventory_index_id = (SELECT id FROM inventory_index ORDER BY completed_at_datetime DESC LIMIT 1) AND (g.category='resource') AND g.resource_type IN ('organization', 'project', 'folder', 'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance') ORDER BY CASE WHEN g.resource_type = 'organization' THEN 0 WHEN g.resource_type = 'folder' THEN 1 WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;";
try {
- let mySqlDbConn = getMySqlDbConnection();
+ let mySqlDbConn = this.getMySqlDbConnection(
+ process.env.CLOUDSQL_HOSTNAME,
+ process.env.CLOUDSQL_USERNAME,
+ process.env.CLOUDSQL_PASSWORD,
+ process.env.CLOUDSQL_SCHEMA
+ );
mySqlDbConn.query(sql, cb);
} catch (ex) {
console.log(ex);
diff --git a/forseti-api/server/services/mysql-db-connection.js b/forseti-api/server/services/mysql-db-connection.js
index 3425417..64926fc 100644
--- a/forseti-api/server/services/mysql-db-connection.js
+++ b/forseti-api/server/services/mysql-db-connection.js
@@ -14,21 +14,36 @@
class MySQLDatabaseConnection {
constructor(host, user, password, database) {
+ this.initializeConnection(host, user, password, database);
+ }
+
+ initializeConnection(host, user, password, database) {
const mysql = require('mysql');
- this.connection = mysql.createConnection({
+ let connection = mysql.createConnection({
host: host,
user: user,
password: password,
database: database
});
- this.connection.connect(function(err) {
+ connection.connect(function (err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
});
+
+ connection.on('error', (err) => {
+ console.log('db error', err);
+ if (err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually
+ this.initializeConnection(host, user, password, database); // lost due to either server restart, or a
+ } else { // connnection idle timeout (the wait_timeout
+ throw err; // server variable configures this)
+ }
+ });
+
+ this.connection = connection;
}
getActiveConnection() {
diff --git a/forseti-api/server/services/oauth2.js b/forseti-api/server/services/oauth2.js
index 0a2fc0f..c9dd09e 100644
--- a/forseti-api/server/services/oauth2.js
+++ b/forseti-api/server/services/oauth2.js
@@ -57,24 +57,24 @@ function extractProfile(profile) {
// object, which will be set at `req.user` in route handlers after
// authentication.
passport.use(new GoogleStrategy({
- clientID: config.OAUTH2_CLIENT_ID,
- clientSecret: config.OAUTH2_CLIENT_SECRET,
- callbackURL: config.OAUTH2_CALLBACK,
+ clientID: config.oauth2ClientId,
+ clientSecret: config.oauth2ClientSecret,
+ callbackURL: config.oauth2Callback,
accessType: 'offline'
}, (accessToken, refreshToken, profile, cb) => {
// Extract the minimal profile information we need from the profile object
// provided by Google
- console.log('oauth2.js: passport.use cb', accessToken, refreshToken, profile);
-
+ console.log('oauth2.js: passport.use', accessToken, refreshToken, profile);
+
cb(null, extractProfile(profile));
}));
passport.serializeUser((user, cb) => {
- console.log('oauth2.js: serializeUser');
+ console.log('oauth2.js: serializeUser', user);
cb(null, user);
});
passport.deserializeUser((obj, cb) => {
- console.log('oauth2.js: deserializeUser');
+ console.log('oauth2.js: deserializeUser', obj);
cb(null, obj);
});
// [END setup]
@@ -128,7 +128,7 @@ router.get(
passport.authenticate('google', {
scope: ['email', 'profile']
}, (err, user, info) => {
- console.log('uh oh');
+ console.log('an error has occurred with authentication');
})
);
// [END authorize]
@@ -145,6 +145,7 @@ router.get(
// Redirect back to the original page, if any
(req, res) => {
console.log('oauth2.js: /auth/google/callback');
+ console.log(req.session.oauth2return);
const redirect = req.session.oauth2return || '/';
delete req.session.oauth2return;
diff --git a/forseti-api/setup.sh b/forseti-api/setup.sh
deleted file mode 100644
index ea24531..0000000
--- a/forseti-api/setup.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2019 Google LLC
-#
-# 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.
-
-#!/bin/sh
-
-# create GKE cluster
-./infrastructure/gke/create_cluster.sh
-
-# set credentials
-./infrastructure/gke/get_credentials.sh
\ No newline at end of file
diff --git a/forseti-api/source.env b/forseti-api/source.env
index 3a15031..2ac150c 100644
--- a/forseti-api/source.env
+++ b/forseti-api/source.env
@@ -1,6 +1,6 @@
export CLOUDSQL_HOSTNAME="127.0.0.1"
export CLOUDSQL_USERNAME="root"
-export CLOUDSQL_PASSWORD="password"
+export CLOUDSQL_PASSWORD=""
export CLOUDSQL_SCHEMA="forseti_security"
export FORSETI_SERVER_VM_CHANNEL="35.232.32.159:50051"
export FORSETI_DATA_MODEL_HANDLE="f240aa3a5bc9fd9acfaf50fdd3620534"
diff --git a/forseti-api/test/server.test.js b/forseti-api/test/server.test.js
new file mode 100644
index 0000000..cda310b
--- /dev/null
+++ b/forseti-api/test/server.test.js
@@ -0,0 +1,81 @@
+// Copyright 2019 Google LLC
+//
+// 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 http from 'http'
+import {
+ assert
+} from 'chai'
+
+import server from '../server.js';
+
+describe('Server.js', () => {
+
+ it('should return a status code of success', done => {
+ http.get('http://127.0.0.1:8080', res => {
+ assert.equal(200, res.statusCode);
+ done();
+ });
+ });
+
+
+ it('should have an api endpoint', done => {
+ http.get('http://127.0.0.1:8080/api', res => {
+ assert.equal(200, res.statusCode);
+ done()
+ });
+ });
+
+ it('should have an api endpoint that returns version', done => {
+ http.get('http://127.0.0.1:8080/api', res => {
+ res.setEncoding('utf8');
+ let rawData = '';
+ res.on('data', (chunk) => {
+ rawData += chunk;
+ });
+
+ res.on('end', () => {
+ try {
+ const parsedData = JSON.parse(rawData);
+ console.log(parsedData);
+ assert.isNotNull(parsedData.version)
+ done();
+ } catch (e) {
+ console.error(e.message);
+ }
+ });
+ });
+ });
+
+ // Forseti Server Tests (need Cloud SQL Proxy enabled and need to set ENV vars)
+ it('should return forseti assets', done => {
+ http.get('http://127.0.0.1:8080/api/forseti', res => {
+ res.setEncoding('utf8');
+ let rawData = '';
+ res.on('data', (chunk) => {
+ rawData += chunk;
+ });
+
+ res.on('end', () => {
+ try {
+ const parsedData = JSON.parse(rawData);
+ console.log(parsedData);
+ assert.isNotNull(parsedData.version)
+ done();
+ } catch (e) {
+ console.error(e.message);
+ }
+ });
+ });
+ });
+})
\ No newline at end of file
diff --git a/forseti-api/test/server/api/forseti.test.js b/forseti-api/test/server/api/forseti.test.js
new file mode 100644
index 0000000..01532f1
--- /dev/null
+++ b/forseti-api/test/server/api/forseti.test.js
@@ -0,0 +1,44 @@
+// Copyright 2019 Google LLC
+//
+// 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 http from 'http'
+import {
+ assert
+} from 'chai'
+import chai from 'chai';
+import chaiHttp from 'chai-http';
+
+chai.use(chaiHttp);
+chai.should();
+
+import forseti from '../../../server/api/forseti.js';
+
+describe('forseti.js', () => {
+
+ it('should get records', done => {
+ console.log('FORSETI!!!')
+ console.log(forseti)
+ done()
+
+ // chai.request(forseti)
+ // .get('/')
+ // .end((err, res) => {
+ // console.log(err, res)
+ // res.should.have.status(200);
+ // res.body.should.be.a('object');
+ // done();
+ // });
+ });
+
+})
\ No newline at end of file
diff --git a/forseti-api/public/scripts/q-zone.js b/forseti-api/test/server/services/database-service-base.test.js
similarity index 50%
rename from forseti-api/public/scripts/q-zone.js
rename to forseti-api/test/server/services/database-service-base.test.js
index e62f85b..e11bfb7 100644
--- a/forseti-api/public/scripts/q-zone.js
+++ b/forseti-api/test/server/services/database-service-base.test.js
@@ -12,21 +12,31 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-document.addEventListener('DOMContentLoaded', function () {
- let options = {};
- var elems = document.querySelectorAll('.tap-target');
- var instances = M.TapTarget.init(elems, options);
+/* forseti-service */
+import {
+ assert
+} from 'chai'
+import chai from 'chai'
+import sinon from 'sinon'
+import sinonChai from 'sinon-chai'
+chai.use(sinonChai)
+import DatabaseServiceBase from '../../../server/services/database-service-base.js'
+describe('database-service-base.js', () => {
+ let sut
+ let testConfig = {
+ hostname: '127.0.0.1',
+ user: 'user',
+ pass: '',
+ schema: 'forseti_security'
+ }
- let element = document.getElementById('open-menu-btn');
- console.log(element);
- element.addEventListener('click', function() {
- // get instance
-
- let instanceEls = document.getElementsByClassName('tap-target');
- let instance = M.TapTarget.getInstance(instanceEls[0]);
- console.log(instance);
- instance.open();
- });
-});
\ No newline at end of file
+ beforeEach(() => {
+ sut = new DatabaseServiceBase()
+ })
+
+ it('should set properties', done => {
+ done()
+ })
+})
\ No newline at end of file
diff --git a/forseti-api/test/server/services/forseti-service.test.js b/forseti-api/test/server/services/forseti-service.test.js
new file mode 100644
index 0000000..56d5b3a
--- /dev/null
+++ b/forseti-api/test/server/services/forseti-service.test.js
@@ -0,0 +1,71 @@
+// Copyright 2019 Google LLC
+//
+// 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.
+
+/* forseti-service */
+import {
+ assert
+} from 'chai'
+import chai from 'chai'
+import sinon from 'sinon'
+import sinonChai from 'sinon-chai'
+chai.use(sinonChai)
+
+import ForsetiService from '../../../server/services/forseti-service.js'
+
+
+describe('forseti-service.js', () => {
+ let sut
+ let initEventSpy
+ const OLD_ENV = process.env
+
+ beforeEach(() => {
+ sut = ForsetiService
+
+ initEventSpy = sinon.spy()
+ initEventSpy()
+
+ // set ForsetiService env varsiables
+ process.env = {
+ CLOUDSQL_HOSTNAME: '127.0.0.1',
+ CLOUDSQL_USERNAME: 'root',
+ CLOUDSQL_PASSWORD: '',
+ CLOUDSQL_SCHEMA: 'forseti_security'
+ }
+ })
+
+ afterEach(() => {
+ process.env = OLD_ENV;
+ });
+
+ it('should have been called', done => {
+ assert.isTrue(initEventSpy.called);
+ // console.log(sut.getResourcesJson())
+ done()
+ })
+
+ it('get resources should call callback', done => {
+ let cb = function (error, results) {
+ // console.log(error, results)
+ assert.isNull(error)
+ done()
+ }
+ sut.getResources(null, cb)
+ })
+
+ // it('getExplainIdentity should be called', done => {
+ // sut.getExplainIdentity('user/garrettwong@gwongcloud.com', function (error, results) {
+ // console.log(error, results)
+ // })
+ // })
+})
\ No newline at end of file
diff --git a/forseti-visualizer-ui/package-lock.json b/forseti-visualizer-ui/package-lock.json
index c7d57df..1b5d2b6 100644
--- a/forseti-visualizer-ui/package-lock.json
+++ b/forseti-visualizer-ui/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "forseti-visualizer-ui",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -154,7 +154,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
"integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
- "dev": true,
"requires": {
"@babel/types": "^7.0.0"
}
@@ -798,7 +797,6 @@
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
"integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
- "dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.10",
@@ -2679,11 +2677,28 @@
"integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
"dev": true
},
+ "arr-filter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
+ "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
+ "requires": {
+ "make-iterator": "^1.0.0"
+ },
+ "dependencies": {
+ "make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
"arr-union": {
"version": "3.1.0",
@@ -2697,6 +2712,14 @@
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
+ "array-every": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/array-every/-/array-every-0.1.2.tgz",
+ "integrity": "sha1-vlTPf7/ExHd7uoXHr37awoNtg+0=",
+ "requires": {
+ "make-iterator": "^0.1.1"
+ }
+ },
"array-filter": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
@@ -2709,6 +2732,25 @@
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
"dev": true
},
+ "array-intersection": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/array-intersection/-/array-intersection-0.1.2.tgz",
+ "integrity": "sha1-sU7wId8l6cnYBBFshHzGoNZ8+s4=",
+ "requires": {
+ "array-every": "^0.1.2",
+ "array-slice": "^0.2.3",
+ "array-unique": "^0.2.1",
+ "filter-array": "^0.2.0",
+ "index-of": "^0.1.1"
+ },
+ "dependencies": {
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ }
+ }
+ },
"array-map": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
@@ -2721,6 +2763,11 @@
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
+ "array-slice": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+ "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU="
+ },
"array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -5141,6 +5188,11 @@
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
"dev": true
},
+ "debounce": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
+ "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg=="
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -6060,8 +6112,7 @@
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
},
"etag": {
"version": "1.8.1",
@@ -6183,6 +6234,52 @@
}
}
},
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "requires": {
+ "fill-range": "^2.1.0"
+ },
+ "dependencies": {
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
"expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
@@ -6470,6 +6567,11 @@
"schema-utils": "^1.0.0"
}
},
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
+ },
"fileset": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
@@ -6509,6 +6611,105 @@
}
}
},
+ "filter-array": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/filter-array/-/filter-array-0.2.0.tgz",
+ "integrity": "sha1-n29M6vW16Ka2dKW1RgU3cUqMUfE=",
+ "requires": {
+ "arr-filter": "^1.1.0",
+ "kind-of": "^1.1.0",
+ "micromatch": "^2.1.0"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
+ "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ }
+ }
+ },
"finalhandler": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
@@ -6636,8 +6837,15 @@
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "requires": {
+ "for-in": "^1.0.1"
+ }
},
"forever-agent": {
"version": "0.6.1",
@@ -7320,6 +7528,38 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
"glob-parent": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
@@ -7440,9 +7680,9 @@
"dev": true
},
"handlebars": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
- "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.2.tgz",
+ "integrity": "sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg==",
"dev": true,
"requires": {
"neo-async": "^2.6.0",
@@ -7954,6 +8194,11 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "index-of": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/index-of/-/index-of-0.1.1.tgz",
+ "integrity": "sha1-2FWvNjQbKE2tYbvXFpXGxpTBV6w="
+ },
"indexes-of": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
@@ -8115,8 +8360,7 @@
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-builtin-module": {
"version": "1.0.0",
@@ -8207,11 +8451,23 @@
"integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
"dev": true
},
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "dev": true
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"is-extglob": {
"version": "2.1.1",
@@ -8305,6 +8561,16 @@
"isobject": "^3.0.1"
}
},
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
@@ -8371,8 +8637,7 @@
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isemail": {
"version": "3.2.0",
@@ -9287,8 +9552,7 @@
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
},
"kleur": {
"version": "3.0.2",
@@ -9450,8 +9714,7 @@
"lodash": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
- "dev": true
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -9580,6 +9843,14 @@
"pify": "^3.0.0"
}
},
+ "make-iterator": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-0.1.1.tgz",
+ "integrity": "sha1-hz0nuBmKRlqBSDtvXRbaToY+z1s=",
+ "requires": {
+ "for-own": "^0.1.1"
+ }
+ },
"makeerror": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -9619,6 +9890,11 @@
"object-visit": "^1.0.0"
}
},
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
+ },
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -9663,6 +9939,11 @@
"readable-stream": "^2.0.1"
}
},
+ "merge": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
+ "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ=="
+ },
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@@ -10131,7 +10412,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dev": true,
"requires": {
"remove-trailing-separator": "^1.0.1"
}
@@ -13348,6 +13628,15 @@
"es-abstract": "^1.5.1"
}
},
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
"object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -13661,6 +13950,32 @@
"safe-buffer": "^5.1.1"
}
},
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -14378,6 +14693,11 @@
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
"dev": true
},
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
"prettier": {
"version": "1.16.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz",
@@ -14582,6 +14902,23 @@
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
"dev": true
},
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
+ }
+ }
+ },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -14765,6 +15102,14 @@
"private": "^0.1.6"
}
},
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
"regex-not": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
@@ -14827,8 +15172,7 @@
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "dev": true
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"renderkid": {
"version": "2.0.3",
@@ -14885,14 +15229,12 @@
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
- "dev": true
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"request": {
"version": "2.88.0",
@@ -16369,8 +16711,7 @@
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-object-path": {
"version": "0.3.0",
@@ -16935,6 +17276,23 @@
"vue-style-loader": "^4.1.0"
}
},
+ "vue-pagination-2": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/vue-pagination-2/-/vue-pagination-2-1.6.2.tgz",
+ "integrity": "sha512-t0UlPJYIgPHJ6ovh32HkQZkvKROMBssfyOQxueFYWbjYwZmhug0HrGEHezrCkRIzNggvjxLXAhLyoRqOlCdajw==",
+ "requires": {
+ "merge": "^1.2.0",
+ "vue": ">=2.0.0",
+ "vuex": "^2.0.0"
+ },
+ "dependencies": {
+ "vuex": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz",
+ "integrity": "sha512-5oJPOJySBgSgSzoeO+gZB/BbN/XsapgIF6tz34UwJqnGZMQurzIO3B4KIBf862gfc9ya+oduY5sSkq+5/oOilQ=="
+ }
+ }
+ },
"vue-property-decorator": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-6.1.0.tgz",
@@ -16945,11 +17303,21 @@
"vue-class-component": "^6.1.0"
}
},
+ "vue-resource": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/vue-resource/-/vue-resource-0.9.3.tgz",
+ "integrity": "sha1-q0bhxE6iGRQtzCiuQEOzsEyAlZ0="
+ },
"vue-router": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",
"integrity": "sha512-opKtsxjp9eOcFWdp6xLQPLmRGgfM932Tl56U9chYTnoWqKxQ8M20N7AkdEbM5beUh6wICoFGYugAX9vQjyJLFg=="
},
+ "vue-select": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-3.2.0.tgz",
+ "integrity": "sha512-FfARbDuJWQNpYm6X9zPWCsYXmz33TNR2oqY8FktKRVksKfp1tZPqL9g+/7wgsaMaqUxcIxYEUVV7C3AD+H5cxA=="
+ },
"vue-server-renderer": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.9.tgz",
@@ -17024,6 +17392,28 @@
"loader-utils": "^1.0.2"
}
},
+ "vue-tables-2": {
+ "version": "1.4.70",
+ "resolved": "https://registry.npmjs.org/vue-tables-2/-/vue-tables-2-1.4.70.tgz",
+ "integrity": "sha512-lexKk46BtRfivir1iVHIGTJjm8f4GrsL1hc4dOkDH7kVSEORc09iR9sp9uk3/vzQ101QgObdWEve5X4gLdctEQ==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0-beta.49",
+ "array-intersection": "^0.1.2",
+ "clone": "^2.1.1",
+ "debounce": "^1.1",
+ "merge": "^1.2.0",
+ "vue": ">=2.0.0",
+ "vue-pagination-2": "^1.6",
+ "vue-resource": "^0.9.0"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+ }
+ }
+ },
"vue-template-compiler": {
"version": "2.5.21",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz",
diff --git a/forseti-visualizer-ui/package.json b/forseti-visualizer-ui/package.json
index a0e44f8..695f600 100644
--- a/forseti-visualizer-ui/package.json
+++ b/forseti-visualizer-ui/package.json
@@ -1,9 +1,9 @@
{
"name": "forseti-visualizer-ui",
- "version": "1.0.2",
+ "version": "2.0.0",
"private": true,
"scripts": {
- "build": "vue-cli-service build",
+ "build": "vue-cli-service build; rm -rf ../forseti-api/dist-forseti-visualizer-ui; cp -R dist/ ../forseti-api/dist-forseti-visualizer-ui;",
"serve": "vue-cli-service serve --port 8081",
"start": "npm run serve",
"lint": "vue-cli-service lint",
@@ -16,6 +16,8 @@
"npm": "^6.10.1",
"vue": "^2.5.21",
"vue-router": "^3.0.2",
+ "vue-select": "^3.2.0",
+ "vue-tables-2": "^1.4.70",
"vuetify": "^1.3.0",
"vuex": "^3.1.0"
},
@@ -30,7 +32,7 @@
"babel-jest": "^24.5.0",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
- "handlebars": ">=4.1.2",
+ "handlebars": "^4.4.2",
"jest": "^24.5.0",
"jest-vue-preprocessor": "^1.5.0",
"jsdom": "^14.0.0",
diff --git a/forseti-visualizer-ui/public/dataset1_resources.json b/forseti-visualizer-ui/public/dataset1_resources.json
index 91484a0..aac6469 100644
--- a/forseti-visualizer-ui/public/dataset1_resources.json
+++ b/forseti-visualizer-ui/public/dataset1_resources.json
@@ -6,7 +6,7 @@
"parent_id": null,
"resource_data_displayname": "mycloud.com",
"resource_data_name": "organizations/358329783624",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087269,
@@ -16,7 +16,7 @@
"parent_id": 1086937,
"resource_data_displayname": "Machine Learning",
"resource_data_name": "folders/379678980128",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087270,
@@ -26,7 +26,7 @@
"parent_id": 1086937,
"resource_data_displayname": "Common Services",
"resource_data_name": "folders/631974286168",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087271,
@@ -36,7 +36,7 @@
"parent_id": 1086937,
"resource_data_displayname": "Next2019",
"resource_data_name": "folders/95108949912",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087272,
@@ -46,7 +46,7 @@
"parent_id": 1086937,
"resource_data_displayname": "Audit",
"resource_data_name": "folders/429021693524",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087268,
@@ -56,7 +56,7 @@
"parent_id": 1086937,
"resource_data_displayname": "",
"resource_data_name": "datadog",
- "qq": "DELETE_REQUESTED",
+ "lifecycle_state": "DELETE_REQUESTED",
"inventory_index_id": 1552609278876965
}, {
"id": 1087273,
@@ -66,7 +66,7 @@
"parent_id": 1086937,
"resource_data_displayname": "",
"resource_data_name": "actions-codelab2",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087274,
@@ -76,7 +76,7 @@
"parent_id": 1086937,
"resource_data_displayname": "",
"resource_data_name": "actions-codelab",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087275,
@@ -86,7 +86,7 @@
"parent_id": 1086937,
"resource_data_displayname": "",
"resource_data_name": "the-core",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087598,
@@ -96,7 +96,7 @@
"parent_id": 1087271,
"resource_data_displayname": "",
"resource_data_name": "forsetiviz",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087601,
@@ -106,7 +106,7 @@
"parent_id": 1087269,
"resource_data_displayname": "",
"resource_data_name": "machine-learning-space",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087457,
@@ -116,7 +116,7 @@
"parent_id": 1087270,
"resource_data_displayname": "",
"resource_data_name": "devops",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087458,
@@ -126,7 +126,7 @@
"parent_id": 1087272,
"resource_data_displayname": "",
"resource_data_name": "cloud-identity-log-export",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087460,
@@ -136,7 +136,7 @@
"parent_id": 1087270,
"resource_data_displayname": "",
"resource_data_name": "log-sinks",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087461,
@@ -146,7 +146,7 @@
"parent_id": 1087272,
"resource_data_displayname": "",
"resource_data_name": "billing-export",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087462,
@@ -156,7 +156,7 @@
"parent_id": 1087270,
"resource_data_displayname": "",
"resource_data_name": "gwc-service-accounts",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087476,
@@ -166,7 +166,7 @@
"parent_id": 1087272,
"resource_data_displayname": "",
"resource_data_name": "forseti-security",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087486,
@@ -176,7 +176,7 @@
"parent_id": 1087270,
"resource_data_displayname": "",
"resource_data_name": "sandbox",
- "qq": "ACTIVE",
+ "lifecycle_state": "ACTIVE",
"inventory_index_id": 1552609278876965
}, {
"id": 1087747,
@@ -186,7 +186,7 @@
"parent_id": 1087728,
"resource_data_displayname": "",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com/keys/f870bb1119d03960447cf5607fdc23d983f5cba1",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087748,
@@ -196,7 +196,7 @@
"parent_id": 1087458,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087749,
@@ -206,7 +206,7 @@
"parent_id": 1087486,
"resource_data_displayname": "App Engine default service account",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-d24a@appspot.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087519,
@@ -216,7 +216,7 @@
"parent_id": 1087460,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087520,
@@ -226,7 +226,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "apps/sandbox-d24a",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087523,
@@ -236,7 +236,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087526,
@@ -246,7 +246,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087276,
@@ -256,7 +256,7 @@
"parent_id": 1087273,
"resource_data_displayname": "",
"resource_data_name": "apps/actions-codelab2-c23dc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087277,
@@ -266,7 +266,7 @@
"parent_id": 1087274,
"resource_data_displayname": "",
"resource_data_name": "apps/actions-codelab-2b402",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087533,
@@ -276,7 +276,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087789,
@@ -286,7 +286,7 @@
"parent_id": 1087462,
"resource_data_displayname": "terraform",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087278,
@@ -296,7 +296,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "apps/gwc-core",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087280,
@@ -306,7 +306,7 @@
"parent_id": 1087274,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087538,
@@ -316,7 +316,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "cloud-sql-network",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087539,
@@ -326,7 +326,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "datalab-network",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087540,
@@ -336,7 +336,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087541,
@@ -346,7 +346,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "msad-1-net",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087542,
@@ -356,7 +356,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "test-vpc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087297,
@@ -366,7 +366,7 @@
"parent_id": 1087273,
"resource_data_displayname": "App Engine default service account",
"resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/actions-codelab2-c23dc@appspot.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087810,
@@ -376,7 +376,7 @@
"parent_id": 1087789,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/181e7ae878a7aa904867465f56c56a1fa09c0aef",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087299,
@@ -386,7 +386,7 @@
"parent_id": 1087274,
"resource_data_displayname": "Dialogflow Integrations",
"resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087811,
@@ -396,7 +396,7 @@
"parent_id": 1087789,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/70dadc2b7b6933386b2ec6785c01036a12fd5e5b",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087812,
@@ -406,7 +406,7 @@
"parent_id": 1087486,
"resource_data_displayname": "firebase-adminsdk",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/firebase-adminsdk-bzpww@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087813,
@@ -416,7 +416,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-client-vm-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087302,
@@ -426,7 +426,7 @@
"parent_id": 1087299,
"resource_data_displayname": "",
"resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com/keys/6bdb3d2678f354e7e135a1129bc13df98587bec1",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087814,
@@ -436,7 +436,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-server-vm-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087303,
@@ -446,7 +446,7 @@
"parent_id": 1087273,
"resource_data_displayname": "firebase-adminsdk",
"resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/firebase-adminsdk-ja904@actions-codelab2-c23dc.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087815,
@@ -456,7 +456,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-viz",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087304,
@@ -466,7 +466,7 @@
"parent_id": 1087274,
"resource_data_displayname": "App Engine default service account",
"resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/actions-codelab-2b402@appspot.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087305,
@@ -476,7 +476,7 @@
"parent_id": 1087273,
"resource_data_displayname": "Dialogflow Integrations",
"resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087306,
@@ -486,7 +486,7 @@
"parent_id": 1087274,
"resource_data_displayname": "firebase-adminsdk",
"resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/firebase-adminsdk-su0if@actions-codelab-2b402.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087307,
@@ -496,7 +496,7 @@
"parent_id": 1087305,
"resource_data_displayname": "",
"resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com/keys/c361c09f92c96d133416fc8cd9be2765ddd5200c",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087309,
@@ -506,7 +506,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087822,
@@ -516,7 +516,7 @@
"parent_id": 1087462,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/724908491897-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087316,
@@ -526,7 +526,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087319,
@@ -536,7 +536,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087838,
@@ -546,7 +546,7 @@
"parent_id": 1087461,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/billing-export-224721/serviceAccounts/821978887269-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087839,
@@ -556,7 +556,7 @@
"parent_id": 1087486,
"resource_data_displayname": "Sandbox Service Account",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087841,
@@ -566,7 +566,7 @@
"parent_id": 1087462,
"resource_data_displayname": "deployment-sa",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087844,
@@ -576,7 +576,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087589,
@@ -586,7 +586,7 @@
"parent_id": 1087275,
"resource_data_displayname": "cloud-identity-sa",
"resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087845,
@@ -596,7 +596,7 @@
"parent_id": 1087458,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/716672103529-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087590,
@@ -606,7 +606,7 @@
"parent_id": 1087589,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087846,
@@ -616,7 +616,7 @@
"parent_id": 1087841,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com/keys/77983d81a130c15f09463ad216945ef586fa07ed",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087591,
@@ -626,7 +626,7 @@
"parent_id": 1087589,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087592,
@@ -636,7 +636,7 @@
"parent_id": 1087275,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/gwc-core/serviceAccounts/1012227841684-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087848,
@@ -646,7 +646,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-1cjx",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087593,
@@ -656,7 +656,7 @@
"parent_id": 1087275,
"resource_data_displayname": "App Engine default service account",
"resource_data_name": "projects/gwc-core/serviceAccounts/gwc-core@appspot.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087849,
@@ -666,7 +666,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-bn9k",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087594,
@@ -676,7 +676,7 @@
"parent_id": 1087275,
"resource_data_displayname": "Terraform service account",
"resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087850,
@@ -686,7 +686,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-wzfq",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087595,
@@ -696,7 +696,7 @@
"parent_id": 1087594,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com/keys/6fbe7d606eee666ef72a93fbe5904ccd9a82c689",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087596,
@@ -706,7 +706,7 @@
"parent_id": 1087275,
"resource_data_displayname": "deployment-sa",
"resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087597,
@@ -716,7 +716,7 @@
"parent_id": 1087596,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com/keys/7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087599,
@@ -726,7 +726,7 @@
"parent_id": 1087275,
"resource_data_displayname": "Vault Admin",
"resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087600,
@@ -736,7 +736,7 @@
"parent_id": 1087599,
"resource_data_displayname": "",
"resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com/keys/3bea3132931ff03185fe8c176cde8cc99dfbd977",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087602,
@@ -746,7 +746,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "apps/machine-learning-space-60f8",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087605,
@@ -756,7 +756,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "forseti-viz-icons",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087606,
@@ -766,7 +766,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "garrettwong-buckettest",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087609,
@@ -776,7 +776,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core-cloud-identity-bucket",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087610,
@@ -786,7 +786,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core-terraform",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087866,
@@ -796,7 +796,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-5m8f",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087611,
@@ -806,7 +806,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core-txf",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087612,
@@ -816,7 +816,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "allow-nat",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087868,
@@ -826,7 +826,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-lprx",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087613,
@@ -836,7 +836,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087614,
@@ -846,7 +846,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087870,
@@ -856,7 +856,7 @@
"parent_id": 1087458,
"resource_data_displayname": "Cloud Identity Service Account",
"resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087615,
@@ -866,7 +866,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087871,
@@ -876,7 +876,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-w0gl",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087616,
@@ -886,7 +886,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087617,
@@ -896,7 +896,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "deny-nat-egress",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087873,
@@ -906,7 +906,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-forsetiviz-cluster-default-pool-d1b8ab4a-l9gq",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087618,
@@ -916,7 +916,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "deny-to-nat",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087619,
@@ -926,7 +926,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core-vault",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087620,
@@ -936,7 +936,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core-vault-assets",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087621,
@@ -946,7 +946,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gwc-core.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087622,
@@ -956,7 +956,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "staging.gwc-core.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087623,
@@ -966,7 +966,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "us.artifacts.gwc-core.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087879,
@@ -976,7 +976,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087624,
@@ -986,7 +986,7 @@
"parent_id": 1087462,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087880,
@@ -996,7 +996,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "tf-lb-https-gke",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087625,
@@ -1006,7 +1006,7 @@
"parent_id": 1087462,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087626,
@@ -1016,7 +1016,7 @@
"parent_id": 1087462,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087627,
@@ -1026,7 +1026,7 @@
"parent_id": 1087462,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087883,
@@ -1036,7 +1036,7 @@
"parent_id": 1087870,
"resource_data_displayname": "",
"resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com/keys/6a1f60f162aff5348c3013658a524610904a67ef",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087628,
@@ -1046,7 +1046,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "nat-instance",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087629,
@@ -1056,7 +1056,7 @@
"parent_id": 1087461,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087885,
@@ -1066,7 +1066,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087630,
@@ -1076,7 +1076,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "natted-instance",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087886,
@@ -1086,7 +1086,7 @@
"parent_id": 1087460,
"resource_data_displayname": "log-sinks Project Service Account",
"resource_data_name": "projects/log-sinks-13e2/serviceAccounts/project-service-account@log-sinks-13e2.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087631,
@@ -1096,7 +1096,7 @@
"parent_id": 1087461,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087632,
@@ -1106,7 +1106,7 @@
"parent_id": 1087461,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087633,
@@ -1116,7 +1116,7 @@
"parent_id": 1087461,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087634,
@@ -1126,7 +1126,7 @@
"parent_id": 1087458,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087635,
@@ -1136,7 +1136,7 @@
"parent_id": 1087458,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087636,
@@ -1146,7 +1146,7 @@
"parent_id": 1087458,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087637,
@@ -1156,7 +1156,7 @@
"parent_id": 1087458,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087638,
@@ -1166,7 +1166,7 @@
"parent_id": 1087457,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087639,
@@ -1176,7 +1176,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-server-db-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087645,
@@ -1186,7 +1186,7 @@
"parent_id": 1087486,
"resource_data_displayname": "cloud-identity-sa",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087906,
@@ -1196,7 +1196,7 @@
"parent_id": 1087476,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087919,
@@ -1206,7 +1206,7 @@
"parent_id": 1087906,
"resource_data_displayname": "",
"resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/eb6651a1fdaff077959a5ede567614cabc9137b7",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087921,
@@ -1216,7 +1216,7 @@
"parent_id": 1087906,
"resource_data_displayname": "",
"resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/be66264f720a23f37ac32f847c9e28e57a0b9821",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087669,
@@ -1226,7 +1226,7 @@
"parent_id": 1087645,
"resource_data_displayname": "",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9167572ee699c606085ee658d0f2856b40c165a3",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087671,
@@ -1236,7 +1236,7 @@
"parent_id": 1087645,
"resource_data_displayname": "",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/7e42a7c738ec078a05533980ecad4173578d22d8",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087674,
@@ -1246,7 +1246,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "app-fw",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087930,
@@ -1256,7 +1256,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "artifacts.sandbox-d24a.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087675,
@@ -1266,7 +1266,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "block85",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087676,
@@ -1276,7 +1276,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "default-allow-http",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087677,
@@ -1286,7 +1286,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "default-allow-http-8080",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087678,
@@ -1296,7 +1296,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "default-allow-https",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087679,
@@ -1306,7 +1306,7 @@
"parent_id": 1087486,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087680,
@@ -1316,7 +1316,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "express-fw",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087681,
@@ -1326,7 +1326,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "firewall-rules-grpc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087682,
@@ -1336,7 +1336,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-client-allow-ssh-external-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087683,
@@ -1346,7 +1346,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-client-deny-all-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087684,
@@ -1356,7 +1356,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-server-allow-grpc-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087685,
@@ -1366,7 +1366,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-server-allow-ssh-external-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087686,
@@ -1376,7 +1376,7 @@
"parent_id": 1087476,
"resource_data_displayname": "",
"resource_data_name": "forseti-server-deny-all-586f404",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087942,
@@ -1386,7 +1386,7 @@
"parent_id": 1087476,
"resource_data_displayname": "forseti-server-gcp-586f404",
"resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087687,
@@ -1396,7 +1396,7 @@
"parent_id": 1087679,
"resource_data_displayname": "",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com/keys/d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087943,
@@ -1406,7 +1406,7 @@
"parent_id": 1087601,
"resource_data_displayname": "firebase-adminsdk",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/firebase-adminsdk-2gg81@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087688,
@@ -1416,7 +1416,7 @@
"parent_id": 1087457,
"resource_data_displayname": "Dev Ops Service Account",
"resource_data_name": "projects/devops-1ca6/serviceAccounts/devops-sa@devops-1ca6.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087944,
@@ -1426,7 +1426,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "eu-bucket-gcs",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087689,
@@ -1436,7 +1436,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087690,
@@ -1446,7 +1446,7 @@
"parent_id": 1087462,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087691,
@@ -1456,7 +1456,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087692,
@@ -1466,7 +1466,7 @@
"parent_id": 1087486,
"resource_data_displayname": "my translation lab service account",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087948,
@@ -1476,7 +1476,7 @@
"parent_id": 1087598,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/forsetiviz/serviceAccounts/656666665848-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087693,
@@ -1486,7 +1486,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087949,
@@ -1496,7 +1496,7 @@
"parent_id": 1087476,
"resource_data_displayname": "forseti-client-gcp-586f404",
"resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-client-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087694,
@@ -1506,7 +1506,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087950,
@@ -1516,7 +1516,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "sandbox-d24a-lb-assets-9c8b",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087695,
@@ -1526,7 +1526,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087696,
@@ -1536,7 +1536,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087697,
@@ -1546,7 +1546,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087698,
@@ -1556,7 +1556,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087954,
@@ -1566,7 +1566,7 @@
"parent_id": 1087601,
"resource_data_displayname": "Cloud Identity Service Account",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087699,
@@ -1576,7 +1576,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-aa62a218-all",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087700,
@@ -1586,7 +1586,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-044938d7-all",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087956,
@@ -1596,7 +1596,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "sandbox-d24a-txf",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087701,
@@ -1606,7 +1606,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-aa62a218-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087702,
@@ -1616,7 +1616,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-044938d7-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087958,
@@ -1626,7 +1626,7 @@
"parent_id": 1087954,
"resource_data_displayname": "",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com/keys/817321bb30aa63c7ba5688e5308c1e597016eb60",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087703,
@@ -1636,7 +1636,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "gke-tf-lb-https-gke-aa62a218-vms",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087959,
@@ -1646,7 +1646,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "sandbox-d24a.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087448,
@@ -1656,7 +1656,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087704,
@@ -1666,7 +1666,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-cl-cluster-044938d7-vms",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087960,
@@ -1676,7 +1676,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "cl-cluster",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087705,
@@ -1686,7 +1686,7 @@
"parent_id": 1087461,
"resource_data_displayname": "",
"resource_data_name": "default",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087961,
@@ -1696,7 +1696,7 @@
"parent_id": 1087601,
"resource_data_displayname": "Dialogflow Integrations",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087706,
@@ -1706,7 +1706,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "k8s-542aec7db3ea1d72-node-http-hc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087962,
@@ -1716,7 +1716,7 @@
"parent_id": 1087486,
"resource_data_displayname": "",
"resource_data_name": "staging.sandbox-d24a.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087707,
@@ -1726,7 +1726,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-forsetiviz-cluster-f293571b-all",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087963,
@@ -1736,7 +1736,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "forsetiviz-cluster",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087708,
@@ -1746,7 +1746,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "k8s-8c74983584882cf4-node-http-hc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087964,
@@ -1756,7 +1756,7 @@
"parent_id": 1087961,
"resource_data_displayname": "",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com/keys/630a2263e95a102deacbcaccf97fb53c6e6dc038",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087453,
@@ -1766,7 +1766,7 @@
"parent_id": 1087273,
"resource_data_displayname": "",
"resource_data_name": "actions-codelab2-c23dc.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087965,
@@ -1776,7 +1776,7 @@
"parent_id": 1087601,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/428092455983-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087454,
@@ -1786,7 +1786,7 @@
"parent_id": 1087273,
"resource_data_displayname": "",
"resource_data_name": "staging.actions-codelab2-c23dc.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087710,
@@ -1796,7 +1796,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-forsetiviz-cluster-f293571b-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087966,
@@ -1806,7 +1806,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "tf-lb-https-gke",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087455,
@@ -1816,7 +1816,7 @@
"parent_id": 1087274,
"resource_data_displayname": "",
"resource_data_name": "actions-codelab-2b402.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087711,
@@ -1826,7 +1826,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "k8s-923f70a0fe8acf4d-node-http-hc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087967,
@@ -1836,7 +1836,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "artifacts.forsetiviz.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087712,
@@ -1846,7 +1846,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "gke-forsetiviz-cluster-f293571b-vms",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087968,
@@ -1856,7 +1856,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "forsetiviz_cloudbuild",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087713,
@@ -1866,7 +1866,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "tf-lb-https-gke-hc-0",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087714,
@@ -1876,7 +1876,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "k8s-95a374b364bdb4ad-node-http-hc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087970,
@@ -1886,7 +1886,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "artifacts.machine-learning-space-60f8.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087459,
@@ -1896,7 +1896,7 @@
"parent_id": 1087274,
"resource_data_displayname": "",
"resource_data_name": "staging.actions-codelab-2b402.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087715,
@@ -1906,7 +1906,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "k8s-de802f70d972df6f-node-http-hc",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087971,
@@ -1916,7 +1916,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "machine-learning-space-60f8-lb-assets-19ff",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087716,
@@ -1926,7 +1926,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "k8s-fw-a1658c9ab435411e9b70d42010a80006",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087972,
@@ -1936,7 +1936,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "machine-learning-space-60f8.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087717,
@@ -1946,7 +1946,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "k8s-fw-a5bb0df4e430011e9b5e142010a8a006",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087973,
@@ -1956,7 +1956,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "mls-bucket",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087718,
@@ -1966,7 +1966,7 @@
"parent_id": 1087598,
"resource_data_displayname": "",
"resource_data_name": "k8s-fw-a930c138442eb11e9b5e142010a8a006",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087463,
@@ -1976,7 +1976,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "allow-example-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087719,
@@ -1986,7 +1986,7 @@
"parent_id": 1087692,
"resource_data_displayname": "",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9a76c99c5ea3f67c397291befa3b0594fabd3312",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087464,
@@ -1996,7 +1996,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "allow-example-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087465,
@@ -2006,7 +2006,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "datalab-network-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087721,
@@ -2016,7 +2016,7 @@
"parent_id": 1087457,
"resource_data_displayname": "Compute Engine default service account",
"resource_data_name": "projects/devops-1ca6/serviceAccounts/168499148573-compute@developer.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087466,
@@ -2026,7 +2026,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-http",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087467,
@@ -2036,7 +2036,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-https",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087468,
@@ -2046,7 +2046,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-icmp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087469,
@@ -2056,7 +2056,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-internal",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087470,
@@ -2066,7 +2066,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-rdp",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087471,
@@ -2076,7 +2076,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "default-allow-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087472,
@@ -2086,7 +2086,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-2-3beda741-all",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087728,
@@ -2096,7 +2096,7 @@
"parent_id": 1087486,
"resource_data_displayname": "Dialogflow Integrations",
"resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087473,
@@ -2106,7 +2106,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-2-3beda741-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087474,
@@ -2116,7 +2116,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-2-3beda741-vms",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087475,
@@ -2126,7 +2126,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-3-d2bbade1-all",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087477,
@@ -2136,7 +2136,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-3-d2bbade1-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087478,
@@ -2146,7 +2146,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "gke-standard-cluster-3-d2bbade1-vms",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087479,
@@ -2156,7 +2156,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "istio-multicluster-test-pods",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087480,
@@ -2166,7 +2166,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "ldap-389",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087481,
@@ -2176,7 +2176,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "msad-1-allow-internal-ports",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087482,
@@ -2186,7 +2186,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "msad-1-tcp-3389",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087994,
@@ -2196,7 +2196,7 @@
"parent_id": 1087601,
"resource_data_displayname": "",
"resource_data_name": "staging.machine-learning-space-60f8.appspot.com",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087483,
@@ -2206,7 +2206,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "natfirewall",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087484,
@@ -2216,7 +2216,7 @@
"parent_id": 1087275,
"resource_data_displayname": "",
"resource_data_name": "vault-us-central1-vm-ssh",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}, {
"id": 1087485,
@@ -2226,6 +2226,6 @@
"parent_id": 1087460,
"resource_data_displayname": "",
"resource_data_name": "",
- "qq": null,
+ "lifecycle_state": null,
"inventory_index_id": 1552609278876965
}]
\ No newline at end of file
diff --git a/forseti-visualizer-ui/public/dataset2_resources.json b/forseti-visualizer-ui/public/dataset2_resources.json
new file mode 100644
index 0000000..4a15be5
--- /dev/null
+++ b/forseti-visualizer-ui/public/dataset2_resources.json
@@ -0,0 +1 @@
+[{"id":1,"resource_type":"organization","category":"resource","resource_id":"358329783625","parent_id":null,"resource_data_displayname":"gwongcloud.com","resource_data_name":"organizations/358329783625","lifecycle_state":"ACTIVE"},{"id":458,"resource_type":"folder","category":"resource","resource_id":"28858332928","parent_id":1,"resource_data_displayname":"Networks","resource_data_name":"folders/28858332928","lifecycle_state":"ACTIVE"},{"id":462,"resource_type":"folder","category":"resource","resource_id":"537072548021","parent_id":1,"resource_data_displayname":"Sandbox","resource_data_name":"folders/537072548021","lifecycle_state":"ACTIVE"},{"id":463,"resource_type":"folder","category":"resource","resource_id":"671911703963","parent_id":1,"resource_data_displayname":"Forseti Security","resource_data_name":"folders/671911703963","lifecycle_state":"ACTIVE"},{"id":464,"resource_type":"folder","category":"resource","resource_id":"95108949912","parent_id":1,"resource_data_displayname":"Next2019","resource_data_name":"folders/95108949912","lifecycle_state":"ACTIVE"},{"id":526,"resource_type":"project","category":"resource","resource_id":"qw-iotlab","parent_id":462,"resource_data_displayname":"","resource_data_name":"qw-iotlab","lifecycle_state":"DELETE_REQUESTED"},{"id":787,"resource_type":"project","category":"resource","resource_id":"fs-2-18-default-vpc-tf-3-0-0","parent_id":463,"resource_data_displayname":"","resource_data_name":"fs-2-18-default-vpc-tf-3-0-0","lifecycle_state":"ACTIVE"},{"id":796,"resource_type":"project","category":"resource","resource_id":"forseti-security-1e88","parent_id":464,"resource_data_displayname":"","resource_data_name":"forseti-security","lifecycle_state":"ACTIVE"},{"id":546,"resource_type":"project","category":"resource","resource_id":"devops-shared-vpc","parent_id":462,"resource_data_displayname":"","resource_data_name":"devops-shared-vpc","lifecycle_state":"ACTIVE"},{"id":549,"resource_type":"project","category":"resource","resource_id":"billing-export-224721","parent_id":462,"resource_data_displayname":"","resource_data_name":"billing-export","lifecycle_state":"ACTIVE"},{"id":842,"resource_type":"project","category":"resource","resource_id":"forsetiviz","parent_id":464,"resource_data_displayname":"","resource_data_name":"forsetiviz","lifecycle_state":"ACTIVE"},{"id":861,"resource_type":"project","category":"resource","resource_id":"forseti-visualizer","parent_id":464,"resource_data_displayname":"","resource_data_name":"forseti-visualizer","lifecycle_state":"ACTIVE"},{"id":620,"resource_type":"project","category":"resource","resource_id":"sandbox-0700","parent_id":462,"resource_data_displayname":"","resource_data_name":"sandbox","lifecycle_state":"ACTIVE"},{"id":624,"resource_type":"project","category":"resource","resource_id":"forsetivisualizer","parent_id":463,"resource_data_displayname":"","resource_data_name":"forsetivisualizer","lifecycle_state":"ACTIVE"},{"id":465,"resource_type":"project","category":"resource","resource_id":"devops-1ca6","parent_id":462,"resource_data_displayname":"","resource_data_name":"devops","lifecycle_state":"DELETE_REQUESTED"},{"id":466,"resource_type":"project","category":"resource","resource_id":"forseti-thd-inventory","parent_id":462,"resource_data_displayname":"","resource_data_name":"forseti-thd-inventory","lifecycle_state":"DELETE_REQUESTED"},{"id":467,"resource_type":"project","category":"resource","resource_id":"molten-position-249017","parent_id":462,"resource_data_displayname":"","resource_data_name":"test","lifecycle_state":"DELETE_REQUESTED"},{"id":470,"resource_type":"project","category":"resource","resource_id":"gwc-core","parent_id":1,"resource_data_displayname":"","resource_data_name":"gwc-core","lifecycle_state":"ACTIVE"},{"id":472,"resource_type":"project","category":"resource","resource_id":"network-prd-3aa9","parent_id":458,"resource_data_displayname":"","resource_data_name":"network-prd","lifecycle_state":"ACTIVE"},{"id":473,"resource_type":"project","category":"resource","resource_id":"network-sbx-da13","parent_id":458,"resource_data_displayname":"","resource_data_name":"network-sbx","lifecycle_state":"ACTIVE"},{"id":475,"resource_type":"project","category":"resource","resource_id":"cloud-identity-log-export-e896","parent_id":462,"resource_data_displayname":"","resource_data_name":"cloud-identity-log-export","lifecycle_state":"ACTIVE"},{"id":476,"resource_type":"project","category":"resource","resource_id":"sandbox-shared-vpc-578f","parent_id":462,"resource_data_displayname":"","resource_data_name":"sandbox-shared-vpc","lifecycle_state":"ACTIVE"},{"id":477,"resource_type":"project","category":"resource","resource_id":"no-default-compute-sa","parent_id":462,"resource_data_displayname":"","resource_data_name":"no-default-compute-sa","lifecycle_state":"ACTIVE"},{"id":478,"resource_type":"project","category":"resource","resource_id":"gwc-service-accounts","parent_id":462,"resource_data_displayname":"","resource_data_name":"gwc-service-accounts","lifecycle_state":"ACTIVE"},{"id":1308,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"4025963219678881414","parent_id":796,"resource_data_displayname":"","resource_data_name":"forseti-security-1e88-app-gke","lifecycle_state":null},{"id":800,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"2301409683793334845","parent_id":787,"resource_data_displayname":"","resource_data_name":"forseti-server-db-fddd5c12","lifecycle_state":null},{"id":808,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"5687320152789765761","parent_id":796,"resource_data_displayname":"","resource_data_name":"forseti-server-db-586f404","lifecycle_state":null},{"id":823,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"17312885983706794283","parent_id":620,"resource_data_displayname":"","resource_data_name":"forseti-server-db-dae313d2","lifecycle_state":null},{"id":850,"resource_type":"appengine_app","category":"resource","resource_id":"12935056022365487321","parent_id":842,"resource_data_displayname":"","resource_data_name":"apps/forsetiviz","lifecycle_state":null},{"id":474,"resource_type":"appengine_app","category":"resource","resource_id":"3676575200200642704","parent_id":470,"resource_data_displayname":"","resource_data_name":"apps/gwc-core","lifecycle_state":null},{"id":481,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"7671372235984159196","parent_id":477,"resource_data_displayname":"","resource_data_name":"forseti-server-db-26ff15b3","lifecycle_state":null},{"id":1262,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"17126004098909737197","parent_id":842,"resource_data_displayname":"","resource_data_name":"forsetiviz-app","lifecycle_state":null},{"id":1268,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"12160021543758426534","parent_id":861,"resource_data_displayname":"","resource_data_name":"forseti-visualizer-app-gke","lifecycle_state":null}]
\ No newline at end of file
diff --git a/forseti-visualizer-ui/src/App.vue b/forseti-visualizer-ui/src/App.vue
index 03f50cf..ad0a0f8 100644
--- a/forseti-visualizer-ui/src/App.vue
+++ b/forseti-visualizer-ui/src/App.vue
@@ -3,22 +3,16 @@
Forseti
- Visualizer
+ Visualizer v2.0
Visualizer
-
-
+
diff --git a/forseti-visualizer-ui/src/components/Body.vue b/forseti-visualizer-ui/src/components/Body.vue
index bbf612a..a4bc48e 100644
--- a/forseti-visualizer-ui/src/components/Body.vue
+++ b/forseti-visualizer-ui/src/components/Body.vue
@@ -31,7 +31,11 @@
class="zoom-button"
style="position: absolute; left: 48px; top: 11px;"
>-
- Project Id: {{projectId}}
+
+ {{projectId ? 'Project: ' + projectId : ''}}
+
@@ -53,6 +57,7 @@ import ForsetiResourceConverter from '../services/ForsetiResourceConverter';
import ResourceDataServiceHandler from '../services/ResourceDataServiceHandler';
import Filters from '../services/Filters';
import Sorters from '../services/Sorters';
+import TooltipRenderer from '../services/TooltipRenderer';
import Orientation from '../constants/Orientation';
import ColorConfig from '../constants/ColorConfig';
@@ -93,11 +98,11 @@ export default {
.attr('height', this.height)
.style('pointer-events', 'all');
- if (this.projectId) {
- alert('project id: ' + this.projectId);
- }
+ // if (this.projectId) {
+ // alert('project id: ' + this.projectId);
+ // }
- this.init(this.orientation);
+ this.init(this.orientation, this.projectId);
},
/**
@@ -124,6 +129,26 @@ export default {
return resourceNode;
},
+ /**
+ * @function setViolationsMap
+ * @description convert violationsData to violations map
+ * @returns undefined
+ */
+ setViolationsMap: function(violationsData) {
+ for (let i = 0; i < violationsData.length; i++) {
+ const KEY = violationsData[i].full_name;
+ if (!this.violationsMap[KEY]) {
+ this.violationsMap[KEY] = [];
+ }
+ this.violationsMap[KEY].push(violationsData[i]);
+ }
+ console.log(
+ 'violationsMap',
+ violationsData,
+ this.violationsMap
+ );
+ },
+
/**
* @function getDistinctResourceTypes
* @description gets distinct resource types that exist in this.resourceArray
@@ -147,10 +172,14 @@ export default {
* @returns array of resources
*/
filterResourceArray: function() {
+ console.log('filterResourceArray1', this.resourceArray, this.selectedFilterResourcess);
+
let mappedResourceFilter = this.selectedFilterResources.map(
ForsetiResourceConverter.convertResource
);
+ console.log('filterResourceArray2', this.mappedResourceFilter);
+
// apply resource filter. always include organization/folder/projects so that resource paths are maintained
this.resourceArray = this.resourceArray.filter(res => {
if (
@@ -169,19 +198,21 @@ export default {
return false;
});
-
// Filter based on set parent ( setParent() ) being clicked
// At least one node has a null parent_id field infers that there is a node at the top of the tree
let resourceArrayHasOneNullParentId = ForsetiSetParentService.determineIfOneNullParentId(
this.resourceArray
);
+
if (!resourceArrayHasOneNullParentId) {
ForsetiSetParentService.setMinParentIdToNull(
this.resourceArray
);
}
+ console.log('filterResourceArray3', this.parentNode, this.resourceArray);
+
if (this.parentNode) {
let subResourceArray = ForsetiSetParentService.getResourceArraySubset(
this.resourceArray,
@@ -201,7 +232,7 @@ export default {
* @description Initializes the Vue Component and the Tree Visualization
* @param orientation - [Orientation.Vertical, Orientation.Horizontal]
*/
- init: function(orientation) {
+ init: function(orientation, parentId = undefined) {
let dataService;
if (this.useCache) {
@@ -212,7 +243,7 @@ export default {
}
// ELSE: useCache=false: (fetch from the database)
- dataService.getForsetiResources().then(resourcesData => {
+ dataService.getForsetiResources(parentId).then(resourcesData => {
// get inventory index id
if (resourcesData.length > 0) {
let filteredResourcesData = resourcesData;
@@ -227,6 +258,9 @@ export default {
curVal.resource_data_name;
}
});
+
+ console.log(filteredResourcesData);
+
/* end filtered data */
let inventoryIndexId =
filteredResourcesData[0].inventory_index_id;
@@ -234,23 +268,8 @@ export default {
dataService
.getViolations(inventoryIndexId)
.then(violationsData => {
- // { resource_id: { violation } }
- for (let i = 0; i < violationsData.length; i++) {
- if (
- violationsData[i].resource_type ===
- ResourceType.SERVICE_ACCOUNT_KEY
- ) {
- this.violationsMap[
- JSON.parse(
- violationsData[i].violation_data
- ).key_id
- ] = violationsData[i];
- } else {
- this.violationsMap[
- violationsData[i].resource_id
- ] = violationsData[i];
- }
- }
+ // { full_name: { violation } }
+ this.setViolationsMap(violationsData);
this.resourceArray = filteredResourcesData
.map(ResourceDataServiceHandler.handle)
@@ -261,6 +280,16 @@ export default {
// initialize tree
this.initTree(orientation, filteredResourceArray);
});
+ } else {
+ if (parentId) {
+ alert(
+ `No resources found for the project: ${parentId}`
+ );
+ } else {
+ alert(
+ 'No resources found for the Forseti GCP Organization'
+ );
+ }
}
});
},
@@ -276,9 +305,14 @@ export default {
* }
*/
initTree: function(orientation, data) {
+ console.log('initTree', orientation, data);
+
this.tree = d3
.tree()
.size([this.width - VisualizerConfig.MARGIN.top, this.height]);
+
+ console.log('tree', this.tree, this.treeData);
+
this.treeData = d3
.stratify()
.id(function(d) {
@@ -288,6 +322,8 @@ export default {
return d.parent_id;
})(data);
+ console.log('td', this.treeData);
+
// assign the name to each node
this.treeData.each(function(d) {
if (d.data.resource_type === ResourceType.SERVICE_ACCOUNT_KEY) {
@@ -297,6 +333,8 @@ export default {
}
});
+ console.log('td2', this.treeData);
+
// treeData is the root of the tree,
// and the tree has all the data we need in it now.
// let's draw that thing...
@@ -328,6 +366,8 @@ export default {
this.zoomScale = d3.event.transform.k;
});
+ console.log(orientation, this.zoomListener);
+
// set initial zoom
if (orientation === Orientation.Vertical) {
this.svg.call(
@@ -335,7 +375,10 @@ export default {
d3.zoomIdentity.translate(this.width / 2, this.height / 2)
);
+ console.log('asadf???', data);
+
// g "container", initially translated by the margin left and top
+ this.svg.selectAll('g').remove();
this.g = this.svg
.append('g')
.attr(
@@ -346,6 +389,8 @@ export default {
VisualizerConfig.MARGIN.top +
')'
);
+ console.log(this.g);
+ window.uh = this.g;
// prevent dbl click
this.svg.on('dblclick.zoom', null);
@@ -360,6 +405,7 @@ export default {
)
.on('dblclick', null);
+ this.svg.selectAll('g').remove();
this.g = this.svg
.append('g')
.attr(
@@ -532,50 +578,29 @@ export default {
.duration(VisualizerConfig.ANIMATION_DURATION)
.style('opacity', 0.9);
- let tooltipContent = '';
- if (this.violationsMap[d.data.resource_id]) {
- // if a violation exists
- tooltipDiv.style(
- 'background',
- VisualizerConfig.TOOLTIP_VIOLATION_BG_COLOR
- );
+ let violationExists =
+ this.violationsMap[d.data.full_name] !== undefined
+ ? true
+ : false;
- // ${violationsMap[d.data.resource_id].violation_data}
- tooltipContent = `
-
-
${this.violationsMap[d.data.resource_id].violation_type}
- ${this.violationsMap[d.data.resource_id].rule_name}
- `;
-
- // send event
- if (this.bottomSheetEnabled) {
- this.$root.$emit(
- 'send',
- d,
- this.violationsMap[d.data.resource_id]
- );
- }
- } else {
- // if a violation does NOT exist
- tooltipDiv.style(
- 'background',
- ColorConfig.NODE_BG_COLOR
- );
+ let tooltipContent = TooltipRenderer.getTooltipHtml(
+ violationExists,
+ d,
+ this.violationsMap
+ );
- // default tooltipContent
- tooltipContent = `
-
-
${d.data.resource_name}
-
- ${d.data.resource_data_name}
-
- ${d.data.resource_type}
- `;
-
- // send event
- if (this.bottomSheetEnabled) {
- this.$root.$emit('send', d, {});
- }
+ tooltipDiv.style(
+ 'background',
+ TooltipRenderer.getTooltipBackground(violationExists)
+ );
+
+ // send event
+ if (this.bottomSheetEnabled) {
+ this.$root.$emit(
+ 'send',
+ d,
+ this.violationsMap[d.data.full_name]
+ );
}
tooltipDiv
@@ -602,12 +627,12 @@ export default {
return d._children ? 1 : 0;
})
.style('stroke-opacity', d => {
- return this.violationsMap[d.data.resource_id] !== undefined
+ return this.violationsMap[d.data.full_name] !== undefined
? 1
: 0;
})
.style('stroke', d => {
- return this.violationsMap[d.data.resource_id] !== undefined
+ return this.violationsMap[d.data.full_name] !== undefined
? ColorConfig.DANGER
: ColorConfig.BLACK;
});
@@ -675,13 +700,13 @@ export default {
return d._children ? 1 : 0;
})
.style('stroke-opacity', d => {
- return this.violationsMap[d.data.resource_id] !== undefined
+ return this.violationsMap[d.data.full_name] !== undefined
? 1
: 0;
})
.style('stroke', d => {
// set to red
- return this.violationsMap[d.data.resource_id] !== undefined
+ return this.violationsMap[d.data.full_name] !== undefined
? ColorConfig.DANGER
: ColorConfig.BLACK;
});
@@ -1023,8 +1048,7 @@ export default {
this.selectedFilterResources = selectedFilterResources;
this._resetSvg();
-
- this.init(this.orientation);
+ this.init(this.orientation, this.projectId);
},
/**
@@ -1033,9 +1057,10 @@ export default {
*/
resetParent: function() {
this.parentNode = null;
+ this.projectId = null;
this._resetSvg();
- this.init(this.orientation);
+ this.init(this.orientation, this.projectId);
},
/**
@@ -1175,11 +1200,13 @@ export default {
* @description Refresh the grid: clears and recreates
*/
_resetSvg: function() {
+ console.log(this.svg);
+
d3.select('#d3-area')
.selectAll('svg')
.remove();
- // reset
+ // append a new svg?
this.svg = d3
.select('#d3-area')
.append('svg')
@@ -1187,6 +1214,8 @@ export default {
.attr('height', this.height)
.style('pointer-events', 'all');
+ console.log(this.svg);
+
// reset vars
this.expand = true;
this.expandAll = false;
@@ -1201,7 +1230,7 @@ export default {
this._resetSvg();
- this.init(this.orientation);
+ this.init(this.orientation, this.projectId);
},
/**
@@ -1306,12 +1335,12 @@ export default {
return d._children ? 1 : 0;
})
.style('stroke-opacity', function(d) {
- return violationsMap[d.data.resource_id] !== undefined
+ return violationsMap[d.data.full_name] !== undefined
? 1
: 0;
})
.style('stroke', function(d) {
- return violationsMap[d.data.resource_id] !== undefined
+ return violationsMap[d.data.full_name] !== undefined
? ColorConfig.DANGER
: ColorConfig.BLACK;
});
@@ -1337,14 +1366,14 @@ export default {
return d._children ? 1 : 0;
})
.style('stroke-opacity', function(d) {
- return this.violationsMap[d.data.resource_id] !==
+ return this.violationsMap[d.data.full_name] !==
undefined
? 1
: 0;
})
.style('stroke', function(d) {
// set to red
- return this.violationsMap[d.data.resource_id] !==
+ return this.violationsMap[d.data.full_name] !==
undefined
? ColorConfig.DANGER
: ColorConfig.BLACK;
@@ -1450,7 +1479,7 @@ export default {
data: () => ({
// global: set this to use JSON files vs. dynamic
// useCache: false, // default to using server data
- useCache: true, // default to using cached files.json
+ useCache: false, // default to using cached files.json
useJson: true, // false defers to using a .csv
useWideView: false, // false defers to keeping node view default screen (hxw)
@@ -1556,15 +1585,21 @@ div.tooltip {
text-align: left;
padding-left: 15px;
width: 300px;
- height: 100px;
+ /* height: 100px; */
padding: 12px;
font: 14px sans-serif;
- border: 14px solid black;
+ border: 4px solid black;
opacity: 0.5;
border-radius: 8px;
pointer-events: none;
stroke-width: 3px;
+ overflow: scroll;
+ word-wrap: break-word;
+}
+div.tooltip-content {
+ text-align: left;
+ margin-left: 20px;
}
.zoom-button {
diff --git a/forseti-visualizer-ui/src/components/BottomDetailsView.vue b/forseti-visualizer-ui/src/components/BottomDetailsView.vue
index f599f8b..cea20f3 100644
--- a/forseti-visualizer-ui/src/components/BottomDetailsView.vue
+++ b/forseti-visualizer-ui/src/components/BottomDetailsView.vue
@@ -14,7 +14,7 @@
- {{ (node !== null && node.data !== null) ? node.data.resource_type : "" }}
+ {{ (node !== undefined && node.data !== undefined) ? node.data.resource_type : "" }}
@@ -57,7 +57,9 @@ export default {
data: () => ({
tiles: [],
}),
- mounted() {},
+ mounted() {
+
+ },
};
diff --git a/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue b/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue
index ed7e375..08b2f10 100644
--- a/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue
+++ b/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue
@@ -88,7 +88,7 @@ export default {
sheetOpen: Boolean,
},
data: () => ({
- iamPolicies: {},
+ // iamPolicies: {},
rowsPerPageItems: [4, 8, 12],
pagination: {
rowsPerPage: 4,
diff --git a/forseti-visualizer-ui/src/components/Navbar.vue b/forseti-visualizer-ui/src/components/Navbar.vue
index 8970456..cb331a8 100644
--- a/forseti-visualizer-ui/src/components/Navbar.vue
+++ b/forseti-visualizer-ui/src/components/Navbar.vue
@@ -100,7 +100,7 @@
v-model="selectedFilterResources"
:items="items"
label="Filter by a list of resource types"
- v-on:change="filterResources"
+ v-on:input="filterResources"
multiple
chips
:menu-props="{ maxHeight: '400px', overflowY: true }"
@@ -153,7 +153,7 @@ export default {
computed: mapState(['resourceArray']),
watch: {
resourceArray(newValue, oldValue) {
- console.log(`Watch: Updating from ${oldValue} to ${newValue}`);
+ // console.log(`Watch: Updating from ${oldValue} to ${newValue}`);
},
},
@@ -296,12 +296,12 @@ export default {
data: () => ({
// global: set this to use JSON files vs. dynamic
// useCache: false, // default to using server data
- useCache: true, // default to using cached files.json
+ useCache: false, // default to using cached files.json
useJson: true, // false defers to using a .csv
useWideView: false, // false defers to keeping node view default screen (hxw)
// filter variables
- nodeName: 'dia-dog-flow',
+ nodeName: '',
expand: true,
expandAll: false,
showViolations: true,
diff --git a/forseti-visualizer-ui/src/components/ResourceNavbar.vue b/forseti-visualizer-ui/src/components/ResourceNavbar.vue
new file mode 100644
index 0000000..d6fde9f
--- /dev/null
+++ b/forseti-visualizer-ui/src/components/ResourceNavbar.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+ Search Filters
+
+
+
+
+
+ fas fa-question-circle
+
+
+
+
+ Help
+
+
+
+
+ Filter by Resource Types
+
+
+
+ Select the resource types to be searched for - these resource types are defined in Forseti.
+
+
+
+ Filter by Project
+
+
+
+ Select the Project ID within the target organization.
+
+
+
+ Filter by Inventory Index Snapshot
+
+
+
+ The Inventory Index Snapshot is a Forseti construct for everytime forseti inventories an organization. A snapshot is taken by default every 2 hours.
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{filterData.selectedInventoryIndexId}}
+
+
+
Clear
+
+
Search
+
+
+
+
+
+
+
diff --git a/forseti-visualizer-ui/src/components/Resources.vue b/forseti-visualizer-ui/src/components/Resources.vue
index 0276cfd..e771444 100644
--- a/forseti-visualizer-ui/src/components/Resources.vue
+++ b/forseti-visualizer-ui/src/components/Resources.vue
@@ -1,64 +1,126 @@
-
-
-
-
-
-
- {{ props.item.name }}
- {{ props.item.resource_type }}
- {{ props.item.resource_id }}
-
-
-
-
-
-
- {{beautify(props.item) }}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.item.name }}
+ {{ props.item.resource_data_name }}
+ {{ props.item.resource_type }}
+ {{ props.item.resource_id }}
+
+
+ fa-sitemap
+
+
+
+ fa-edit
+
+
+
+
+
+
+
+
+
+
+ {{beautify(props.item) }}
+
+
+
+
+
+
+
+
+
diff --git a/forseti-visualizer-ui/src/components/Violations.vue b/forseti-visualizer-ui/src/components/Violations.vue
deleted file mode 100644
index 685fc1c..0000000
--- a/forseti-visualizer-ui/src/components/Violations.vue
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
-
- {{ props.item.violationType }}
- {{ props.item.resourceName }}
- {{ props.item.violationData }}
-
-
-
-
-
-
-
- Resource data for: {{props.item.resourcePath}}
-
- {{ beautify(props.item.resourceData) }}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-visualizer-ui/src/components/Visualizer.vue b/forseti-visualizer-ui/src/components/Visualizer.vue
deleted file mode 100644
index d4c51db..0000000
--- a/forseti-visualizer-ui/src/components/Visualizer.vue
+++ /dev/null
@@ -1,1701 +0,0 @@
-
-
-
-
-
-
- Forseti-Visualizer
-
-
-
-
-
-
- exit_to_app
-
-
- {{left}} {{drawer}} Drawer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Reset Zoom
-
-
-
-
-
- fas fa-cog
-
-
-
-
- Settings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Close
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Search
-
-
Reset to Org
-
Set Parent
-
-
-
-
-
-
-
-
-
-
-
Explain Identity
-
-
-
-
-
-
- +
- -
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/forseti-visualizer-ui/src/constants/VisualizerConfig.js b/forseti-visualizer-ui/src/constants/VisualizerConfig.js
index ef4b102..17085cb 100644
--- a/forseti-visualizer-ui/src/constants/VisualizerConfig.js
+++ b/forseti-visualizer-ui/src/constants/VisualizerConfig.js
@@ -33,9 +33,6 @@ const VisualizerConfig = {
DEFAULT_WIDTH: 1200,
NODE_RADIUS: 22, // in 'px'
- // TOOLTIP
- TOOLTIP_VIOLATION_BG_COLOR: 'pink',
-
// NODE BG IMAGE
NODE_IMG_X: -16,
NODE_IMG_Y: -16,
diff --git a/forseti-visualizer-ui/src/main.js b/forseti-visualizer-ui/src/main.js
index fa39f9a..d236ae1 100644
--- a/forseti-visualizer-ui/src/main.js
+++ b/forseti-visualizer-ui/src/main.js
@@ -17,10 +17,8 @@ import './plugins/vuetify';
import VueRouter from 'vue-router';
import App from './App.vue';
-import Violations from './components/Violations';
import Viz from './components/Body';
import Resources from './components/Resources';
-import Visualizer from './components/Visualizer';
Vue.use(VueRouter);
@@ -37,18 +35,10 @@ const routes = [{
component: Viz,
props: true
},
- {
- path: '/violations',
- component: Violations
- },
{
path: '/resources',
component: Resources
},
- {
- path: '/visualizer',
- component: Visualizer
- },
]
Vue.config.productionTip = false;
diff --git a/forseti-visualizer-ui/src/services/DataService.js b/forseti-visualizer-ui/src/services/DataService.js
index 3381a55..ade6396 100644
--- a/forseti-visualizer-ui/src/services/DataService.js
+++ b/forseti-visualizer-ui/src/services/DataService.js
@@ -21,19 +21,21 @@ class DataService {
*/
constructor() {
// THIS SHOULD BE ENABLED THIS WHEN DEPLOYING ALONE WITH forseti-visualizer
- // this.host = 'http://localhost:8080';
+ this.host = 'http://localhost:8080';
// THIS SHOULD BE ENABLED THIS WHEN DEPLOYING VIA FORSETI-API
- this.host = '';
+ // this.host = '';
}
/**
* @function getForsetiResources
* @description gets forseti resources (for structure, reference ./forseti-visualizer-ui/public/dataset1_resources.json)
+ * @param parentId
* @return promise containing an array of forseti-resources
*/
- getForsetiResources() {
- let url = `${this.host}/api/forseti/resources`;
+ getForsetiResources(parentId) {
+ // let url = `${this.host}/api/forseti/resources`;
+ let url = `${this.host}/api/forseti/resources/${parentId ? parentId : ''}`;
return $.get(url);
}
diff --git a/forseti-visualizer-ui/src/services/Filters.js b/forseti-visualizer-ui/src/services/Filters.js
index b6bed23..61f2bc2 100644
--- a/forseti-visualizer-ui/src/services/Filters.js
+++ b/forseti-visualizer-ui/src/services/Filters.js
@@ -14,7 +14,7 @@
let Filters = {
nonNullAndActive: function (data) {
- if (data.qq === null || data.qq === 'ACTIVE') return true;
+ if (data.lifecycle_state === null || data.lifecycle_state === 'ACTIVE') return true;
return false;
},
/**
diff --git a/forseti-visualizer-ui/src/services/TooltipRenderer.js b/forseti-visualizer-ui/src/services/TooltipRenderer.js
new file mode 100644
index 0000000..cf4e034
--- /dev/null
+++ b/forseti-visualizer-ui/src/services/TooltipRenderer.js
@@ -0,0 +1,103 @@
+// Copyright 2019 Google LLC
+//
+// 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 ColorConfig from '../constants/ColorConfig';
+
+let ResourceTypeTooltipRenderer = {
+ createList: function (dictionary) {
+ // expected object: { action: [thingsToDo1, thingsToDo2], action2: [] }
+ let listHtml = '
';
+ for (let key in dictionary) {
+ let value = dictionary[key];
+
+ listHtml += `${key}: `;
+
+ if (value) listHtml += '';
+ for (let subKey in value) {
+ let subValue = value[subKey];
+
+ listHtml += `${subValue} `;
+ }
+ if (value) listHtml += ' ';
+ }
+ listHtml += '';
+ return listHtml;
+ },
+
+ renderViolations: function (violations) {
+ let content = '
';
+ for (let i = 0; i < violations.length; i++) {
+ content += this.render(violations[i].violation_type, violations[i]);
+ }
+ content += '
';
+ return content;
+ },
+
+ render: function (violationType, violation) {
+ switch (violationType) {
+ case 'FIREWALL_BLACKLIST_VIOLATION':
+ // create list of recommended action
+ let recommendedActionsList = this.createList(
+ JSON.parse(violation.violation_data).recommended_actions);
+
+ return `
+
+
${violation.violation_type}
+ ${violation.rule_name} has been violated.
+
+ Recommendations:
+
+ ${recommendedActionsList}
+ `;
+ default:
+ return `
+
+
${violation.violation_type}
+ ${violation.rule_name}
+
+ ${JSON.stringify(JSON.parse(violation.violation_data))}
+ `;
+ }
+ }
+}
+
+let TooltipRenderer = {
+ getTooltipHtml: function (violationExists, d, violationsMap) {
+ let tooltipContent = '';
+
+ if (violationExists) {
+ console.log(violationsMap[d.data.full_name])
+
+ tooltipContent = ResourceTypeTooltipRenderer.renderViolations(
+ violationsMap[d.data.full_name]);
+ } else { // violation does NOT exist
+ tooltipContent = `
+
+
${d.data.resource_name}
+ ${d.data.resource_data_name}
+
+ ${d.data.resource_type}
+ `;
+ }
+ return tooltipContent;
+ },
+
+ getTooltipBackground: function (violationExists) {
+ return violationExists ?
+ ColorConfig.DANGER :
+ ColorConfig.NODE_BG_COLOR;
+ }
+};
+
+export default TooltipRenderer;
\ No newline at end of file
diff --git a/forseti-visualizer-ui/src/types/ResourceNode.js b/forseti-visualizer-ui/src/types/ResourceNode.js
index 4b0a34f..afdd363 100644
--- a/forseti-visualizer-ui/src/types/ResourceNode.js
+++ b/forseti-visualizer-ui/src/types/ResourceNode.js
@@ -24,7 +24,7 @@ class ResourceNode {
this.image = "/img/Compute Engine.239b71be.png";
this.inventory_index_id = 1552609278876965;
this.parent_id = 1087601;
- this.qq = null;
+ this.lifecycle_state = null;
this.resource_data_displayname = "gke-tf-lb-https-gke-default-pool-25a75700-wzfq";
this.resource_data_name = "gke-tf-lb-https-gke-default-pool-25a75700-wzfq";
this.resource_id = "1191788173398596818";
diff --git a/test b/test
deleted file mode 100644
index 0ddf2ba..0000000
--- a/test
+++ /dev/null
@@ -1 +0,0 @@
-i
diff --git a/tools/cloud_sql_proxy b/tools/cloud_sql_proxy
new file mode 100755
index 0000000..0cb6279
Binary files /dev/null and b/tools/cloud_sql_proxy differ
diff --git a/tools/start_cloud_sql_proxy.sample.sh b/tools/start_cloud_sql_proxy.sample.sh
new file mode 100644
index 0000000..f899ce4
--- /dev/null
+++ b/tools/start_cloud_sql_proxy.sample.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+INSTANCE_CONNECTION_NAME="[PROJECT_ID]:[CLOUDSQL_REGION]:[CLOUDSQL_INSTANCE_ID]"
+
+./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306
\ No newline at end of file
diff --git a/tools/start_cloud_sql_proxy_fs-2-23.sh b/tools/start_cloud_sql_proxy_fs-2-23.sh
new file mode 100755
index 0000000..b894021
--- /dev/null
+++ b/tools/start_cloud_sql_proxy_fs-2-23.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+INSTANCE_CONNECTION_NAME="fs-2-23:us-west1:forseti-server-db-d4bc233d"
+
+./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306
\ No newline at end of file